Naas


 * Launchpad Entry: NovaSpec:foo or SwiftSpec:foo
 * Created:
 * Contributors:

Summary
{1} This is a draft with changes added on top of the NaaS core published few days ago. Changes will be highlighted with {1} in the beginning and end {2}

The core functionality of Openstack Network-as-a-service (NaaS) is to provide a customer-facing service for creating and managing networks intended as "collection of virtual ports with shared connectivity".

{1} The highest level is connectivity, isolation and uniformity. Connectivity is about providing means for a given entity (e.g. VM, FW) to connect with another entity. It behooves creation of a clear definition of Compute Network and Storage interaction for connectivity purposes, a basic set of Compute to vSwitch to NIC semantics and use of proper addressing (L2 and L3) and other semantics including provisions for QoS and Security. Isolation is about providing a tenant/project an independent network that is not shared or accessible by non authorized users of the shared physical network. It can be done by L2 and/or L3 semantics or physical isolation. Uniformity is about coordination of plugins and other network services/capabilities such that in a predefined section of the network (a “NaaS Zone”), all services are provided in a way that allows workload placement to be performed anywhere with same network/connectivity/QoS results {2}

Release Note
Here is the Word Doc that describes this blueprint attachment:paas.doc

Rationale
A network created with the core NaaS API can be regarded as a virtual network switch {1} and related network devices attached to it, {2} which potentially spans over all the compute nodes in the cloud. NaaS APIs should be decoupled by the actual implementation of the core service, which should be provided by a plugin implementing the core Naas API. This implies that NaaS does not mandate any specific model for created networks (e.g.: VLANs, IP tunnels). {1} However, NaaS API may present some requirements that a plugin should support. {2} The core NaaS service can also be regarded as a container for higher level services, for instance DHCP and NAT. Higher level services will come their own API and implementation and they are discussed in detail in the Naas-Higher-Layer blueprint.

Goals
== Goal 1: Allow customers and CSPs to create networks. Networks can either be private, i.e.: available only to a specific customer, or shared. Networks shared only among a specific group of customers can also be considered. Goal 2: Allow customers and CSPs to manage virtual ports for their networks, and attach instances or other network appliances (physical or virtual) available in the cloud to them. == == Goal 3: Allow customers and CSPs to extend their networks from the cloud to a remote site, by attaching a bridging device (L2? L3???) within the cloud to their networks'; the bridging device would then bridge to the appropriate remote site. == == Goal 4: Allow customers and CSPs to securely configure network policies for networks, ports, and devices attached to them. These policies can include, for instance, port security polices, access control lists, high availability or QoS policies (which are typically available on physical network switches). Basic set of VIF and virtual Switch configuration options will be supported. == == Goal 5: Allow CSPs to register and configure the plugins providing the actual implementation of the core service, as well as register and configure plugins for higher-level services such as DHCP, Firewall or Load Balancing. CSPs shoould be able to select and plug in third-party technologies as appropriate. This may be for extended features, improved performance, or reduced complexity or cost. ==

Design
You can have subsections that better describe specific parts of the issue.

Implementation
This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

UI Changes
Should cover changes required to the UI, or specific UI that is required to implement this

Code Changes
Code changes should include an overview of what needs to change, and in some cases even the specific details.

Migration
Include:


 * data migration, if any
 * redirects from old URLs to new ones, if any
 * how users will be pointed to the new way of doing things, if necessary.

Test/Demo Plan
This need not be added or completed until the specification is nearing beta.

Unresolved issues
This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

BoF agenda and discussion
Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.