--- /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 vld
+{
+ namespace "urn:ietf:params:xml:ns:yang:nfvo:vld";
+ prefix "vld";
+
+ import rw-pb-ext {
+ prefix "rwpb";
+ }
+
+ import vnfd {
+ prefix "vnfd";
+ }
+
+ 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 Descriptor (VLD)";
+ reference
+ "Derived from earlier versions of base YANG files";
+ }
+
+ container vld-catalog {
+
+ list vld {
+ key "id";
+
+ leaf id {
+ description "Identifier for the VLD.";
+ type yang:uuid;
+ }
+
+ leaf name {
+ description "Virtual Link Descriptor (VLD) name.";
+ type string;
+ }
+
+ leaf short-name {
+ description "Short name for VLD for UI";
+ type string;
+ }
+
+ leaf vendor {
+ description "Provider of the VLD.";
+ type string;
+ }
+
+ leaf description {
+ description "Description of the VLD.";
+ type string;
+ }
+
+ leaf version {
+ description "Version of the VLD";
+ 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;
+ }
+
+ list vnfd-connection-point-ref {
+ description
+ "A list of references to connection points.";
+ key "vnfd-ref member-vnf-index-ref";
+
+ leaf vnfd-ref {
+ description "A reference to a vnfd";
+ type leafref {
+ path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
+ }
+ }
+
+ leaf member-vnf-index-ref {
+ description
+ "A reference to the consituent-vnfd id in nsd.
+ Should have been a leafref to:
+ '/nsd:nsd-catalog:/nsd:nsd/constituent-vnfd/member-vnf-index-ref'.
+ Instead using direct leaf to avoid circular reference.";
+ type uint64;
+ }
+
+ leaf vnfd-connection-point-ref {
+ description
+ "A reference to a connection point name in a vnfd";
+ type leafref {
+ path "/vnfd:vnfd-catalog/vnfd:vnfd"
+ + "[vnfd:id = current()/../vld:vnfd-ref]"
+ + "/vnfd:connection-point/vnfd:name";
+ }
+ }
+ }
+
+ // replicate for pnfd container here
+ uses manotypes:provider-network;
+ }
+ }
+}