--- /dev/null
+
+/*
+ *
+ * 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;
+ }
+ }
+ }
+ }
+}
+