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.";
130 description "UUID of router ";
133 leaf-list network-ids {
135 description "UUID representing the network ";
143 grouping network-attributes {
146 description "UUID representing the network";
156 leaf segmentation-id {
158 description "Optional. Isolated segment on the physical network.
159 If segment-type is vlan, this ID is a vlan identifier.
160 If segment-type is vxlan, this ID is a vni.
161 If segment-type is flat/gre, this ID is set to 0";
170 description "vpn-id";
174 description "vpn name";
178 description "The UUID of the tenant that will own the subnet.";
183 description "UUID of router ";
185 leaf-list network_ids {
187 description "UUID representing the network ";
192 /* Data models to adhere to restart requirements */
193 container neutron-vpn-portip-port-data {
195 list vpn-portip-to-port {
196 key "vpn-name port-fixedip";
197 leaf vpn-name { type string;}
198 leaf port-fixedip { type string;}
199 leaf port-name { type string;}
200 leaf mac-address { type string;}
201 leaf subnet-ip { type boolean;}
205 container router-interfaces-map {
206 list router-interfaces {
208 leaf router-id { type yang:uuid; }
211 leaf interface-id { type string; }
216 /* container for DHCP Configuration */
217 container dhcp-config {
219 leaf lease-duration {
221 description "default lease duration for dhcp lease.
224 leaf default-domain {
226 description "default domain-name. used in dhcp reply";
232 description "Create one or more L3VPN(s)";
241 description "Status response for createVPN RPC";
247 description "Create one or more EVPN(s)";
256 description "Status response for createEVPN RPC";
261 grouping evpn-instance {
266 description "evpn-id";
271 description "EVPN name";
276 description "The UUID of the tenant that will own the subnet.";
279 leaf-list route-distinguisher {
282 "configures a route distinguisher (RD) for the EVPN instance.
283 Format is ASN:nn or IP-address:nn.";
286 leaf-list import-RT {
289 "configures a list of import route target.
290 Format is ASN:nn or IP-address:nn.";
296 "configures a list of export route targets.
297 Format is ASN:nn or IP-address:nn.";
301 rpc associateRouter {
302 description "associates a router with L3VPN";
307 description "vpn-id";
312 description "vpn-id";
317 rpc dissociateRouter {
318 description "dissociates a router with L3VPN";
323 description "vpn-id";
328 description "router-id";
333 rpc associateNetworks {
334 description "associates a list of networks with L3VPN";
339 description "vpn-id";
341 leaf-list network-id {
343 description "network-id";
349 description "Status response for associateNetworks RPC";
354 rpc dissociateNetworks{
355 description "dissociates a list of networks with L3VPN";
360 description "vpn-id";
362 leaf-list network-id {
364 description "network-id";
370 description "Status response for dissociateNetworks RPC";
376 description "returns EVPN configuration";
380 description "evpn-id";
384 list evpn-instances {
391 description "delete EVPNs for specified Id list";
395 description "evpn-id";
401 description "Status response for deleteEVPN RPC";
407 description "delete VPNs for specified Id list";
411 description "vpn-id";
417 description "Status response for deleteL3VPN RPC";
423 description "returns VPN configuration";
427 description "vpn-id";
431 list l3vpn-instances {
437 rpc get-fixedIPs-for-neutron-port {
438 description "returns neutron port fixed IPs";
447 description "The neutron port fixedIPs list corresponding to the port uuid";
452 notification router-associated-to-vpn {
453 description "router association to vpn";
462 notification router-disassociated-from-vpn {
463 description "router disassociation from vpn";