4 namespace "urn:opendaylight:netvirt:neutronvpn";
7 import ietf-yang-types { prefix yang; revision-date "2013-07-15";}
9 revision "2015-06-02" {
10 description "Neutron based L3Service Module, provides integration of ODL VPN service with Neutron NSF";
18 description "UUID representing the subnet ";
23 description "Specifies the subnet IP in CIDR format";
26 uses network-attributes;
30 description "The UUID of the tenant that will own the subnet.";
35 description "router to which this subnet belongs";
38 leaf router-interface-port-id {
40 description "port corresponding to router interface on this subnet";
43 leaf router-intf-mac-address {
45 description "router interface mac address on this subnet";
48 leaf router-interface-fixed-ip {
50 description "fixed ip of the router interface port on this subnet";
55 description "VPN to which this subnet belongs";
58 leaf internet-vpn-id {
60 description "internet VPN to which this IPv6 subnet belongs";
67 leaf-list direct-port-list{
73 container networkMaps{
79 description "UUID representing the network";
82 leaf-list subnet-id-list {
84 description "List of UUIDs representing the subnets associated to the network";
89 grouping vpn-instance{
99 description "VPN name";
104 description "The UUID of the tenant that will own the subnet.";
107 leaf-list route-distinguisher {
110 "configures a route distinguisher (RD) for the VPN instance.
111 Format is ASN:nn or IP-address:nn.";
114 leaf-list import-RT {
117 "configures a list of import route target.
118 Format is ASN:nn or IP-address:nn.";
124 "configures a list of export route targets.
125 Format is ASN:nn or IP-address:nn.";
132 description "UUID of router ";
136 leaf-list network-ids {
138 description "UUID representing the network ";
146 grouping network-attributes {
149 description "UUID representing the network";
159 leaf segmentation-id {
161 description "Optional. Isolated segment on the physical network.
162 If segment-type is vlan, this ID is a vlan identifier.
163 If segment-type is vxlan, this ID is a vni.
164 If segment-type is flat/gre, this ID is set to 0";
173 description "vpn-id";
177 description "vpn name";
181 description "The UUID of the tenant that will own the subnet.";
188 description "UUID of router ";
191 leaf-list network_ids {
193 description "UUID representing the network ";
198 /* Data models to adhere to restart requirements */
199 container neutron-vpn-portip-port-data {
201 list vpn-portip-to-port {
202 key "vpn-name port-fixedip";
203 leaf vpn-name { type string;}
204 leaf port-fixedip { type string;}
205 leaf port-name { type string;}
206 leaf mac-address { type string;}
207 leaf subnet-ip { type boolean;}
208 leaf learnt-ip { type boolean; default false;}
212 container router-interfaces-map {
213 list router-interfaces {
215 leaf router-id { type yang:uuid; }
218 leaf interface-id { type string; }
223 /* container for DHCP Configuration */
224 container dhcp-config {
226 leaf lease-duration {
228 description "default lease duration for dhcp lease.
231 leaf default-domain {
233 description "default domain-name. used in dhcp reply";
239 description "Create one or more L3VPN(s)";
248 description "Status response for createVPN RPC";
254 description "Create one or more EVPN(s)";
263 description "Status response for createEVPN RPC";
268 grouping evpn-instance {
273 description "evpn-id";
278 description "EVPN name";
283 description "The UUID of the tenant that will own the subnet.";
286 leaf-list route-distinguisher {
289 "configures a route distinguisher (RD) for the EVPN instance.
290 Format is ASN:nn or IP-address:nn.";
293 leaf-list import-RT {
296 "configures a list of import route target.
297 Format is ASN:nn or IP-address:nn.";
303 "configures a list of export route targets.
304 Format is ASN:nn or IP-address:nn.";
308 rpc associateRouter {
309 description "associates a router with L3VPN";
314 description "vpn-id";
319 description "list of router-ids to be associated with the vpn";
327 rpc dissociateRouter {
328 description "dissociates a router with L3VPN";
333 description "vpn-id";
338 description "list of router-ids to be dissociated from the vpn";
346 rpc associateNetworks {
347 description "associates a list of networks with L3VPN";
352 description "vpn-id";
354 leaf-list network-id {
356 description "network-id";
362 description "Status response for associateNetworks RPC";
367 rpc dissociateNetworks{
368 description "dissociates a list of networks with L3VPN";
373 description "vpn-id";
375 leaf-list network-id {
377 description "network-id";
383 description "Status response for dissociateNetworks RPC";
389 description "returns EVPN configuration";
393 description "evpn-id";
397 list evpn-instances {
404 description "delete EVPNs for specified Id list";
408 description "evpn-id";
414 description "Status response for deleteEVPN RPC";
420 description "delete VPNs for specified Id list";
424 description "vpn-id";
430 description "Status response for deleteL3VPN RPC";
436 description "returns VPN configuration";
440 description "vpn-id";
444 list l3vpn-instances {
450 rpc get-fixedIPs-for-neutron-port {
451 description "returns neutron port fixed IPs";
460 description "The neutron port fixedIPs list corresponding to the port uuid";