Freeze upstream versions
[netvirt.git] / docs / specs / oxygen / vlan-provider-enhancement.rst
1 .. contents:: Table of Contents
2       :depth: 3
3
4 =============================================
5 Enhancement to VLAN Provider Network Support
6 =============================================
7
8 https://git.opendaylight.org/gerrit/#/q/topic:vlan-provider-network
9
10 This feature aims to enhance the support for VLAN provider networks that are not of type
11 external.As part of this enhancement, ELAN pipeline processing for the network will be
12 done on the switch only if there is at least one VM port in the network on the switch.
13 The behavior of VLAN provider networks of type external and flat networks will remain
14 unchanged as of now. The optimization for external network is out of scope of this spec
15 and will be handled as part of future releases.
16
17
18 Problem description
19 ===================
20
21 Current ODL implementation supports all configured VLAN segments corresponding to VLAN
22 provider networks on a particular patch port on all Open vSwitch which are part of the
23 network. This could have adverse performance impacts because every provider patch port
24 will receive and processes broadcast traffic for all configured VLAN segments even in
25 cases when the switch doesn't have a VM port in the network.  Furthermore, for unknown
26 SMACs it leads to unnecessary punts from ELAN pipeline to controller for source MAC
27 learning from all the switches.
28
29 Use Cases
30 ---------
31 L2 forwarding between OVS switches using provider type VLAN over L2 segment of the
32 underlay fabric
33
34 Proposed change
35 ===============
36
37 Instead of creating the VLAN member interface on the patch port at the time of network
38 creation, VLAN member interface creation will be deferred until a VM port comes up in the
39 switch in the VLAN provider network. Switch pipeline will not process broadcast traffic on
40 this switch in a VLAN provider network until VM port is added to the network. This will be
41 applicable to VLAN provider network without external router attribute set.
42
43 Elan service binding will also be done at the time of VLAN member interface
44 creation. Since many neutron ports on same switch can belong to a single VLAN provider
45 network, the flow rule should be created only once when first VM comes up and should be
46 deleted when there are no more neutron ports in the switch for the VLAN provider network.
47
48 Pipeline changes
49 ----------------
50 None.
51
52 Yang changes
53 ------------
54 ``elan:elan-instances`` container will be enhanced with information whether an external
55 router is attached to VLAN provider network.
56
57 .. code-block:: none
58    :caption: elan.yang
59    :emphasize-lines: 18-22
60
61    container elan-instances {
62         description
63            "elan instances configuration parameters. Elan instances support both the VLAN and VNI based elans.";
64
65         list elan-instance {
66             max-elements "unbounded";
67             min-elements "0";
68             key "elan-instance-name";
69             description
70                 "Specifies the name of the elan instance. It is a string of 1 to 31
71                  case-sensitive characters.";
72             leaf elan-instance-name {
73                 type string;
74                 description "The name of the elan-instance.";
75             }
76             ...
77
78             leaf external {
79                 description "indicates whether the network has external router attached to it";
80                 type boolean;
81                 default "false";
82             }
83         }
84    }
85
86
87 Configuration impact
88 ---------------------
89 None
90
91 Clustering considerations
92 -------------------------
93 None
94
95 Other Infra considerations
96 --------------------------
97 N.A.
98
99 Security considerations
100 -----------------------
101 None.
102
103 Scale and Performance Impact
104 ----------------------------
105 Performance will improve because of the following:
106
107 1. Switch will drop packets if it doesn't have a VM port in the VLAN on which packet is
108    received.
109 2. Unnecessary punts to the controller from ELAN pipeline for source mac learning will be
110    prevented.
111
112 Targeted Release
113 -----------------
114 Carbon.
115
116 Alternatives
117 ------------
118 N.A.
119
120 Usage
121 =====
122
123 Features to Install
124 -------------------
125 This feature can be used by installing odl-netvirt-openstack.
126 This feature doesn't add any new karaf feature.
127
128 REST API
129 --------
130
131 CLI
132 ---
133
134 Implementation
135 ==============
136
137 Assignee(s)
138 -----------
139 Primary assignee:
140  - Ravindra Nath Thakur (ravindra.nath.thakur@ericsson.com)
141  - Naveen Kumar Verma (naveen.kumar.verma@ericsson.com)
142
143
144 Other contributors:
145  - Ravi Sundareswaran (ravi.sundareswaran@ericsson.com)
146
147 Work Items
148 ----------
149 N.A.
150
151 Dependencies
152 ============
153 This doesn't add any new dependencies.
154
155
156 Testing
157 =======
158 Capture details of testing that will need to be added.
159
160 Unit Tests
161 ----------
162
163 Integration Tests
164 -----------------
165
166 CSIT
167 ----
168
169 Documentation Impact
170 ====================
171 This feature will not require any change in User Guide.
172
173
174 References
175 ==========
176
177 [1] https://trello.com/c/A6Km6J3D/110-flat-and-vlan-network-type