Provide IntentServiceManager and MplsLabelManagerService classes
[vpnservice.git] / vpnintent / api / src / main / yang / vpnintent.yang
index bb2528f2cf0b6cbf30ffe990eba93733f1212a6c..e9a971db1e976e08dd30de6e2778efbc0b514e71 100644 (file)
@@ -24,12 +24,29 @@ module vpnintent {
         }
     }
 
+    typedef failover-type {
+        type enumeration {
+            enum fast-reroute {
+                value 1;
+            }
+            enum slow-reroute {
+                value 2;
+            }
+        }
+    }
+
     grouping vpn-intent {
         leaf vpn-name {
             type string;
             description "VPN name";
             mandatory true;
         }
+        leaf path-protection {
+            type boolean;
+        }
+        leaf failover-type {
+            type failover-type;
+        }
         list endpoint {
             key "site-name";
             uses endpoint-fields;
@@ -58,12 +75,18 @@ module vpnintent {
         list label {
             key "label-id";
             leaf "label-id"{
-                type uint64;
-                description "MPLS or other label ID.";
+                type uint32 {
+                    range "0 .. 524288";
+                }
+                description "20 bit MPLS label ID";
                 mandatory true;
             }
             uses endpoint-fields;
             description "Keep track of MPLS/other label endpoint relation.";
         }
      }
+
+    container mpls-labels {
+        uses labels;
+   }
   }