blob: 616bad0bae80095e4de2140284898e5a573fd8a5 [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 vlr
{
namespace "urn:ietf:params:xml:ns:yang:nfvo:vlr";
prefix "vlr";
import rw-pb-ext {
prefix "rwpb";
}
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 Record (VLR)";
reference
"Derived from earlier versions of base YANG files";
}
augment "/rw-project:project" {
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 /rw-project:project/nsr:ns-instance-config/nsr:nsr/nsr:id";
type yang:uuid;
}
leaf vld-ref {
description
"Reference to VLD
/rw-project:project/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;
}
}
}
}
}
}