All the yang files from SO committed to IM
[osm/IM.git] / models / yang / vlr.yang
diff --git a/models/yang/vlr.yang b/models/yang/vlr.yang
new file mode 100644 (file)
index 0000000..b079dff
--- /dev/null
@@ -0,0 +1,191 @@
+
+/*
+ * 
+ *   Copyright 2016 RIFT.IO Inc
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ *
+ */
+
+module vlr
+{
+  namespace "urn:ietf:params:xml:ns:yang:nfvo:vlr";
+  prefix "vlr";
+
+  import rw-pb-ext {
+    prefix "rwpb";
+  }
+
+  import ietf-inet-types {
+    prefix "inet";
+  }
+
+  import ietf-yang-types {
+    prefix "yang";
+  }
+
+  import mano-types {
+    prefix "manotypes";
+  }
+
+
+  revision 2015-09-10 {
+    description
+      "Initial revision. This YANG file defines
+       the Virtual Link Record (VLR)";
+    reference
+      "Derived from earlier versions of base YANG files";
+  }
+
+  container vlr-catalog {
+    config false;
+
+    list vlr {
+      key "id";
+      unique "name";
+
+      leaf id {
+        description "Identifier for the VLR.";
+        type yang:uuid;
+      }
+
+      leaf name {
+        description "VLR name.";
+        type string;
+      }
+
+      leaf nsr-id-ref {
+        description 
+            "NS instance identifier. 
+             This is a leafref /nsr:ns-instance-config/nsr:nsr/nsr:id";
+        type yang:uuid;
+      }
+
+      leaf vld-ref {
+        description
+          "Reference to VLD
+           /nsr:ns-instance-config/nsr:nsr[nsr:id=../nsr-id-ref]/nsd/vld:vld/vld:id";
+        type string;
+      }
+
+      leaf res-id {
+        description "Identifier for resmgr id mapping";
+        type yang:uuid;
+      }
+
+      leaf short-name {
+        description "Short name to appear as label in the UI";
+        type string;
+      }
+
+      leaf vendor {
+        description "Provider of the VLR.";
+        type string;
+      }
+
+      leaf description {
+        description "Description of the VLR.";
+        type string;
+      }
+
+      leaf version {
+        description "Version of the VLR";
+        type string;
+      }
+
+      leaf type {
+        type manotypes:virtual-link-type;
+      }
+
+      leaf root-bandwidth {
+        description
+            "For ELAN this is the aggregate bandwidth.";
+        type uint64;
+      }
+
+      leaf leaf-bandwidth {
+        description
+            "For ELAN this is the bandwidth of branches.";
+        type uint64;
+      }
+
+      leaf create-time {
+        description
+          "Creation timestamp of this Virtual Link.
+          The timestamp is expressed as seconds 
+          since unix epoch - 1970-01-01T00:00:00Z";
+
+        type uint32;
+      }
+
+      leaf uptime {
+        description
+          "Active period of this Virtual Link.
+          Uptime is expressed in seconds";
+
+        type uint32;
+      }
+
+      leaf network-id {
+        description 
+            "Identifier for the allocated network resource.";
+        type string;
+      }
+
+      leaf vim-network-name {
+        description
+            "Name of network in VIM account. This is used to indicate
+            pre-provisioned network name in cloud account.";
+        type string;
+      }
+
+      // replicate for pnfd container here
+
+      uses manotypes:provider-network;
+      uses manotypes:ip-profile-info;
+      
+      leaf status {
+        description
+            "Status of the virtual link record.";
+        type enumeration {
+          enum LINK_UP;
+          enum DEGRADED;
+          enum LINK_DOWN;
+        }
+      }
+      leaf operational-status {
+        description
+          "The operational status of the Virtual Link
+            init                 : The VL is in init stat.
+            vl-alloc-pending     : The VL alloc is pending in VIM
+            running              : The VL is up  and running in VM
+            vl-terminate-pending : The VL is being terminated in VIM.
+            terminated           : The VL is terminated in the VM.
+            failed               : The VL instantiation failed in VIM.
+          ";
+
+        type enumeration {
+          rwpb:enum-type "VlOperationalStatus";
+          enum init;
+          enum vl-alloc-pending;
+          enum running;
+          enum vl-terminate-pending;
+          enum terminated;
+          enum failed;
+        }
+      }
+    }
+  }
+}
+