/* * * 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 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 { enum init; enum vl-alloc-pending; enum running; enum vl-terminate-pending; enum terminated; enum failed; } } } } } }