Netvirt: Spec for enhancement to VLAN provider network support 01/52201/11
authorRavindra Thakur <ravindra.nath.thakur@ericsson.com>
Thu, 23 Feb 2017 08:59:39 +0000 (14:29 +0530)
committerAlon Kochba <alonko@hpe.com>
Tue, 21 Mar 2017 10:45:26 +0000 (12:45 +0200)
Change-Id: Iaba120d7b3e2174fc59913546a82575e0ce8ba97
Signed-off-by: Ravindra Thakur <ravindra.nath.thakur@ericsson.com>
docs/specs/index.rst
docs/specs/vlan-provider-enhancement.rst [new file with mode: 0644]

index 0058025bf40998b631f2ae250467c3ddc199cb4a..70ecf94099f2f490514d8998c1dba913b4a0f789 100644 (file)
@@ -9,24 +9,25 @@ Contents:
 .. toctree::
    :maxdepth: 1
 
-   Design Specification Template <specs-template>
    ACL Remote ACLs - Indirection Table to Improve Scale <remote_acl_indirection>
-   IPv6 Inter Data Center connectivity using L3VPN <ipv6-interdc-l3vpn>
    ACL Statistics <acl-stats>
    Conntrack Based SNAT <conntrack-based-snat>
    Cross site connectivity with federation service <federation-plugin>
+   DHCP Server with dynamic allocation pool <dhcp-dynamic-allocation-pool>
+   Design Specification Template <specs-template>
    Discovery of directly connected PNFs in Flat/VLAN provider networks <directly_connected_pnf_discovery>
    ECMP Support for BGP based L3VPN <ecmp-bgp-l3vpn>
+   Element counters <element-counters>
+   Enhancement to VLAN provider network support <vlan-provider-enhancement>
    Hairpinning of floating IPs in flat/VLAN provider networks <hairpinning-flat-vlan>
+   IPv6 Inter Data Center connectivity using L3VPN <ipv6-interdc-l3vpn>
    IPv6 L3 North-South support for Flat/VLAN based Provider Networks <ipv6-cvr-north-south>
+   Listener Dependency Helper, avoids waiting for dependent IID <listener-dependency-helper>
+   Netvirt counters <netvirt-statistics-spec>
+   Policy based path selection for multiple VxLAN tunnels <policy-based-path-selection>
+   QoS Alert <qos-alert>
    Quality of Service <qos>
    Setup Source-MAC-Address for routed packets to virtual endpoints <setup-smac-for-routed-packets-to-virt-endpoints>
    Support of VXLAN based connectivity across Datacenters <l3vpn-over-vxlan-with-evpn-rt5>
    Temporary SMAC Learning <temporary-smac-learning>
    VNI based L2 switching, L3 forwarding and NATing <vni-based-l2-switching-l3-forwarding-and-NATing>
-   Netvirt counters <netvirt-statistics-spec>
-   Policy based path selection for multiple VxLAN tunnels <policy-based-path-selection>
-   QoS Alert <qos-alert>
-   DHCP Server with dynamic allocation pool <dhcp-dynamic-allocation-pool>
-   Listener Dependency Helper, avoids waiting for dependent IID <listener-dependency-helper>
-   Element counters <element-counters>
diff --git a/docs/specs/vlan-provider-enhancement.rst b/docs/specs/vlan-provider-enhancement.rst
new file mode 100644 (file)
index 0000000..79227f7
--- /dev/null
@@ -0,0 +1,177 @@
+.. contents:: Table of Contents
+      :depth: 3
+
+=============================================
+Enhancement to VLAN Provider Network Support
+=============================================
+
+https://git.opendaylight.org/gerrit/#/q/topic:vlan-provider-network
+
+This feature aims to enhance the support for VLAN provider networks that are not of type
+external.As part of this enhancement, ELAN pipeline processing for the network will be
+done on the switch only if there is at least one VM port in the network on the switch.
+The behavior of VLAN provider networks of type external and flat networks will remain
+unchanged as of now. The optimization for external network is out of scope of this spec
+and will be handled as part of future releases.
+
+
+Problem description
+===================
+
+Current ODL implementation supports all configured VLAN segments corresponding to VLAN
+provider networks on a particular patch port on all Open vSwitch which are part of the
+network. This could have adverse performance impacts because every provider patch port
+will receive and processes broadcast traffic for all configured VLAN segments even in
+cases when the switch doesn't have a VM port in the network.  Furthermore, for unknown
+SMACs it leads to unnecessary punts from ELAN pipeline to controller for source MAC
+learning from all the switches.
+
+Use Cases
+---------
+L2 forwarding between OVS switches using provider type VLAN over L2 segment of the
+underlay fabric
+
+Proposed change
+===============
+
+Instead of creating the VLAN member interface on the patch port at the time of network
+creation, VLAN member interface creation will be deferred until a VM port comes up in the
+switch in the VLAN provider network. Switch pipeline will not process broadcast traffic on
+this switch in a VLAN provider network until VM port is added to the network. This will be
+applicable to VLAN provider network without external router attribute set.
+
+Elan service binding will also be done at the time of VLAN member interface
+creation. Since many neutron ports on same switch can belong to a single VLAN provider
+network, the flow rule should be created only once when first VM comes up and should be
+deleted when there are no more neutron ports in the switch for the VLAN provider network.
+
+Pipeline changes
+----------------
+None.
+
+Yang changes
+------------
+``elan:elan-instances`` container will be enhanced with information whether an external
+router is attached to VLAN provider network.
+
+.. code-block:: none
+   :caption: elan.yang
+   :emphasize-lines: 18-22
+
+   container elan-instances {
+        description
+           "elan instances configuration parameters. Elan instances support both the VLAN and VNI based elans.";
+
+        list elan-instance {
+            max-elements "unbounded";
+            min-elements "0";
+            key "elan-instance-name";
+            description
+                "Specifies the name of the elan instance. It is a string of 1 to 31
+                 case-sensitive characters.";
+            leaf elan-instance-name {
+                type string;
+                description "The name of the elan-instance.";
+            }
+            ...
+
+            leaf external {
+                description "indicates whether the network has external router attached to it";
+                type boolean;
+                default "false";
+            }
+        }
+   }
+
+
+Configuration impact
+---------------------
+None
+
+Clustering considerations
+-------------------------
+None
+
+Other Infra considerations
+--------------------------
+N.A.
+
+Security considerations
+-----------------------
+None.
+
+Scale and Performance Impact
+----------------------------
+Performance will improve because of the following:
+
+1. Switch will drop packets if it doesn't have a VM port in the VLAN on which packet is
+   received.
+2. Unnecessary punts to the controller from ELAN pipeline for source mac learning will be
+   prevented.
+
+Targeted Release
+-----------------
+Carbon.
+
+Alternatives
+------------
+N.A.
+
+Usage
+=====
+
+Features to Install
+-------------------
+This feature can be used by installing odl-netvirt-openstack.
+This feature doesn't add any new karaf feature.
+
+REST API
+--------
+
+CLI
+---
+
+Implementation
+==============
+
+Assignee(s)
+-----------
+Primary assignee:
+ - Ravindra Nath Thakur (ravindra.nath.thakur@ericsson.com)
+ - Naveen Kumar Verma (naveen.kumar.verma@ericsson.com)
+
+
+Other contributors:
+ - Ravi Sundareswaran (ravi.sundareswaran@ericsson.com)
+
+Work Items
+----------
+N.A.
+
+Dependencies
+============
+This doesn't add any new dependencies.
+
+
+Testing
+=======
+Capture details of testing that will need to be added.
+
+Unit Tests
+----------
+
+Integration Tests
+-----------------
+
+CSIT
+----
+
+Documentation Impact
+====================
+This feature will not require any change in User Guide.
+
+
+References
+==========
+
+[1] https://trello.com/c/A6Km6J3D/110-flat-and-vlan-network-type