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