SubnetRoute enhancements to VPN Service models
[vpnservice.git] / vpnmanager / vpnmanager-api / src / main / yang / odl-l3vpn.yang
index 93d25bdf59b15a146ba5a795abf8131b7511359e..6857e98ec55b1a2c73624d70f5523b4e06cfda7c 100644 (file)
@@ -4,6 +4,7 @@ module odl-l3vpn {
 
     import yang-ext {prefix ext; revision-date "2013-07-09";}
     import l3vpn { prefix l3vpn; revision-date "2014-08-15"; }
+    import ietf-yang-types { prefix "yang"; }
 
     revision "2013-09-11" {
         description "L3 VPN Service module";
@@ -125,4 +126,112 @@ module odl-l3vpn {
         }
     }
 
+    typedef task-state {
+         type enumeration {
+           enum na {
+             value "0";
+             description
+              "Task not applicable";
+           }
+           enum pending {
+             value "1";
+             description
+              "Task is in pending state";
+           }
+           enum done {
+             value "2";
+             description
+              "Task has been completed";
+           }
+         }
+         description
+          "This value the status of any task.
+           The possible values are NA, PENDING or DONE.
+           ";
+    }
+
+
+    container subnet-op-data {
+        list subnet-op-data-entry {
+            key subnet-id;
+            leaf subnet-id {
+                type    yang:uuid;
+                description "UUID representing the subnet ";
+            }
+            leaf nh-dpnId {
+                type uint64;
+                description "DpnId for the DPN used as nexthop for this subnet";
+            }
+            leaf vpn-name {
+                type string;
+                description "VPN Instance name";
+            }
+            leaf vrf-id {
+                type string;
+            }
+            leaf subnet-cidr {
+                type string;
+                description "Subnet in cidr notation";
+            }
+            leaf route-adv-state {
+                type task-state;
+                description "The status of the subnet route advertisement. Route advertisement could be in a NA, PENDING or DONE state.";
+            }
+            leaf elan-tag{
+                type uint32;
+            }
+            list subnet-to-dpn {
+                key dpnId;
+                leaf dpnId {
+                    type uint64;
+                }
+                list vpn-interfaces {
+                    key interface-name;
+                    leaf interface-name {
+                        type string;
+                    }
+                }
+            }
+
+        }
+    }
+
+    container port-op-data {
+        list port-op-data-entry {
+            key port-id;
+            leaf port-id {
+                type  string;
+                description "UUID in string format representing the port ";
+            }
+            leaf subnet-id {
+                type  yang:uuid;
+                description "Back reference to obtain the subnet for a port ";
+            }
+            leaf dpnId {
+                type uint64;
+            }
+        }
+    }
+
+    container rd-to-elan-op{
+        list rd-to-elan-op-entry{
+            key "rd subnet-ip";
+            leaf rd {
+                type string;
+            }
+            leaf subnet-ip {
+                type string;
+            }
+            leaf next-hop-ip {
+                type string;
+            }
+            leaf vpn-name {
+                type string;
+            }
+            leaf elan-tag{
+                type uint32;
+            }
+        }
+    }
+
 }
\ No newline at end of file