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";
62 leaf-list direct-port-list{
68 container networkMaps{
74 description "UUID representing the network";
77 leaf-list subnet-id-list {
79 description "List of UUIDs representing the subnets associated to the network";
84 grouping vpn-instance{
94 description "VPN name";
99 description "The UUID of the tenant that will own the subnet.";
102 leaf-list route-distinguisher {
105 "configures a route distinguisher (RD) for the VPN instance.
106 Format is ASN:nn or IP-address:nn.";
109 leaf-list import-RT {
112 "configures a list of import route target.
113 Format is ASN:nn or IP-address:nn.";
119 "configures a list of export route targets.
120 Format is ASN:nn or IP-address:nn.";
125 description "UUID of router ";
128 leaf-list network-ids {
130 description "UUID representing the network ";
138 grouping network-attributes {
141 description "UUID representing the network";
151 leaf segmentation-id {
153 description "Optional. Isolated segment on the physical network.
154 If segment-type is vlan, this ID is a vlan identifier.
155 If segment-type is vxlan, this ID is a vni.
156 If segment-type is flat/gre, this ID is set to 0";
165 description "vpn-id";
169 description "vpn name";
173 description "The UUID of the tenant that will own the subnet.";
178 description "UUID of router ";
180 leaf-list network_ids {
182 description "UUID representing the network ";
187 /* Data models to adhere to restart requirements */
188 container neutron-vpn-portip-port-data {
190 list vpn-portip-to-port {
191 key "vpn-name port-fixedip";
192 leaf vpn-name { type string;}
193 leaf port-fixedip { type string;}
194 leaf port-name { type string;}
195 leaf mac-address { type string;}
196 leaf subnet-ip { type boolean;}
200 container router-interfaces-map {
201 list router-interfaces {
203 leaf router-id { type yang:uuid; }
206 leaf interface-id { type string; }
211 /* container for DHCP Configuration */
212 container dhcp-config {
214 leaf lease-duration {
216 description "default lease duration for dhcp lease.
219 leaf default-domain {
221 description "default domain-name. used in dhcp reply";
227 description "Create one or more L3VPN(s)";
236 description "Status response for createVPN RPC";
242 description "Create one or more EVPN(s)";
251 description "Status response for createEVPN RPC";
256 grouping evpn-instance {
261 description "evpn-id";
266 description "EVPN name";
271 description "The UUID of the tenant that will own the subnet.";
274 leaf-list route-distinguisher {
277 "configures a route distinguisher (RD) for the EVPN instance.
278 Format is ASN:nn or IP-address:nn.";
281 leaf-list import-RT {
284 "configures a list of import route target.
285 Format is ASN:nn or IP-address:nn.";
291 "configures a list of export route targets.
292 Format is ASN:nn or IP-address:nn.";
296 rpc associateRouter {
297 description "associates a router with L3VPN";
302 description "vpn-id";
307 description "vpn-id";
312 rpc dissociateRouter {
313 description "dissociates a router with L3VPN";
318 description "vpn-id";
323 description "router-id";
328 rpc associateNetworks {
329 description "associates a list of networks with L3VPN";
334 description "vpn-id";
336 leaf-list network-id {
338 description "network-id";
344 description "Status response for associateNetworks RPC";
349 rpc dissociateNetworks{
350 description "dissociates a list of networks with L3VPN";
355 description "vpn-id";
357 leaf-list network-id {
359 description "network-id";
365 description "Status response for dissociateNetworks RPC";
371 description "returns EVPN configuration";
375 description "evpn-id";
379 list evpn-instances {
386 description "delete EVPNs for specified Id list";
390 description "evpn-id";
396 description "Status response for deleteEVPN RPC";
402 description "delete VPNs for specified Id list";
406 description "vpn-id";
412 description "Status response for deleteL3VPN RPC";
418 description "returns VPN configuration";
422 description "vpn-id";
426 list l3vpn-instances {
432 rpc get-fixedIPs-for-neutron-port {
433 description "returns neutron port fixed IPs";
442 description "The neutron port fixedIPs list corresponding to the port uuid";
447 notification subnet-added-to-vpn{
448 description "new subnet added to vpn";
464 uses network-attributes;
467 notification subnet-deleted-from-vpn{
468 description "subnet deleted from vpn";
486 notification subnet-updated-in-vpn{
487 description "subnet updated in vpn";
505 notification port-added-to-subnet{
506 description "port added to subnet";
521 notification port-removed-from-subnet{
522 description "port removed from subnet";
537 notification router-associated-to-vpn {
538 description "router association to vpn";
547 notification router-disassociated-from-vpn {
548 description "router disassociation from vpn";