blob: 63556d76c3ccf9c15d8e4df172cbb0c73bbb6109 [file] [log] [blame]
/*
*
* Copyright 2016-2017 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 project-vnfd {
prefix "project-vnfd";
}
import ietf-inet-types {
prefix "inet";
}
import ietf-yang-types {
prefix "yang";
}
import mano-types {
prefix "manotypes";
}
import rw-project {
prefix "rw-project";
}
revision 2017-02-08 {
description
"Update model to support projects.";
}
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";
}
augment "/rw-project:project" {
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 "../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
}
}
leaf member-vnf-index-ref {
description
"A reference to the consituent-vnfd id in nsd.
Should have been a leafref to:
'/rw-project:project/project-nsd:nsd-catalog:/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 "../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd"
+ "[project-vnfd:id = current()/../vld:vnfd-ref]"
+ "/project-vnfd:connection-point/project-vnfd:name";
}
}
}
// replicate for pnfd container here
uses manotypes:provider-network;
}
}
}
}