Bug 5054: Fix for switch restart
[vpnservice.git] / vpnmanager / vpnmanager-api / src / main / yang / odl-l3vpn.yang
index 0221f292ab1c7767188a739cf036582e28c3ef23..93d25bdf59b15a146ba5a795abf8131b7511359e 100644 (file)
@@ -12,27 +12,117 @@ module odl-l3vpn {
     grouping adjacency-list{
         list adjacency{
             key "ip_address";
-            leaf nextHopId { type uint32;}
+            leaf nextHopIp { type string; }
             leaf ip_address {type string;}
-            leaf label {type uint32;} /* optional */
+            leaf label { type uint32; config "false"; } /* optional */
             leaf mac_address {type string;} /* optional */
         }
     }
-       
-       grouping vpn-route-list{
-               leaf-list route-entry-id{
-                       type uint32;
-               }
-       }
+
+    grouping vpn-route-list{
+        leaf-list route-entry-id{
+            type uint32;
+        }
+    }
 
     augment "/l3vpn:vpn-interfaces/l3vpn:vpn-interface" {
         ext:augment-identifier "adjacencies";
         uses adjacency-list;
     }
 
-    augment "/l3vpn:vpn-instances/l3vpn:vpn-instance" {
-        leaf vpn-id { type uint32;}
-               uses vpn-route-list;
+    augment "/l3vpn:vpn-interfaces/l3vpn:vpn-interface" {
+        ext:augment-identifier "opState";
+        leaf stateUp {type boolean; config false;}
+    }
+
+    /* Operational DS containers for reverse lookups*/
+    container prefix-to-interface {
+        config false;
+        list vpn-ids {
+           key vpn-id;
+           leaf vpn-id {type uint32;}
+           list prefixes {
+              key ip_address;
+              leaf ip_address {type string;}
+              leaf dpnId {
+                 type uint64;
+              }
+              leaf vpn-interface-name {
+                  type string;
+              }
+           }
+        }
+    }
+
+    container vpn-to-extraroute {
+        config false;
+        list vpn {
+           key vrf-id;
+           leaf vrf-id {
+              description
+                 "The vrf-id command configures a route distinguisher (RD)
+                  for the IPv4 or IPv6 address family of a VPN instance or
+                  vpn instance name for internal vpn case.";
+              type string;
+           }
+           list extraroute {
+              key prefix;
+              leaf prefix {type string;}
+                     leaf nexthop-ip {
+                         type string;
+                     }
+           }
+        }
+    }
+
+    /* Data models to adhere to restart requirements */
+    container vpn-instance-to-vpn-id {
+       list vpn-instance {
+          key vpn-instance-name;
+          leaf vpn-instance-name {
+             type string;
+          }
+          leaf vpn-id {
+             type uint32;
+          }
+          leaf vrf-id {
+              description
+                 "The vrf-id command configures a route distinguisher (RD)
+                  for the IPv4 or IPv6 address family of a VPN instance or
+                  vpn instance name for internal vpn case.";
+              type string;
+          }
+       }
+    }
+
+    container vpn-instance-op-data {
+        config false;
+        list vpn-instance-op-data-entry {
+           key vrf-id;
+           leaf vpn-id { type uint32;}
+           leaf vrf-id {
+              description
+                 "The vrf-id command configures a route distinguisher (RD)
+                  for the IPv4 or IPv6 address family of a VPN instance or
+                  vpn instance name for internal vpn case.";
+              type string;
+           }
+
+           leaf vpn-interface-count { type uint32; }
+           uses vpn-route-list;
+           list vpn-to-dpn-list {
+               key dpnId;
+               leaf dpnId {
+                  type uint64;
+               }
+               list vpn-interfaces {
+                  key interface-name;
+                  leaf interface-name {
+                      type string;
+                  }
+               }
+           }
+        }
     }
 
 }
\ No newline at end of file