############################################################################## # Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## module clearwater { namespace "http://localhost/ietf-inet-types.yang"; prefix "yang"; organization "HP"; contact "TBD"; description "This module defines a VNF Deployment Unit."; revision "2014-05-18" { description "Initial version"; reference "RFC XXXX"; } container clearwater { description "Vdus used in a vnfd"; list ellis { key id; leaf id{ type string; description "key ID for vdu1"; } description "Vdu key"; leaf instance-num { type uint16{ range 1..6;} default 1; description "Number of instances of the said VDU which shall be instantiated"; } leaf vm-image { type string; reference "uri"; description "Reference to a VM image"; } container resource { description "The required resource"; container cpu { description "The required computation resource"; leaf vCPU_num { type uint32{ range 4; } description "The number of virtual CPU units"; } list vCPU-spec { key "name"; description "Processor characteristics for the VDU"; leaf name { type string; description "Name of vCPU-spec"; } leaf description { type string; description "Description of vCPU-spec"; } leaf value { type uint32; description "Value of vCPU-spec"; } } } container memory { description "The required memory resource"; leaf memory_size { type uint32{ range 4096; } description "Memory size, unit:MBytes"; } list memory-spec { key name; description "Memory characteristics for the VDU"; leaf name { type string; description "Name of memory-spec"; } leaf description { type string; description "Description of memory-spec"; } leaf value { type uint32; description "Value of memory-spec"; } } } container disk { description "The required storage resource"; leaf disk-size { type uint32{ range 2048; } description "Virtual storage size, unit:MBytes"; } list disk-KQI { key name; description "Storage characteristics in the VDU"; leaf name { type string; description "Name of disk-KQI"; } leaf description { type string; description "Description of disk-KQI"; } leaf value { type uint32; description "Value of disk-KQI"; } } } container vnic { description "Virtual network interface card (vnic) resource"; leaf vnic-num { type uint32{ range 2; } description "The total number of virtual vnic"; } } } container workflow-script { description "VDU workflow script"; leaf init { type string; default "start.sh"; description "VDU initialization script"; } leaf terminate { type string; default "stop.sh"; description "VDU termination script"; } leaf graceful-shutdown { type string; default "shutdown.sh"; description "VDU graceful shutdown script"; } } } list bono { key id; leaf id{ type string; description "key ID for vdu2"; } description "Vdu key"; leaf instance-num { type uint16; default 3; description "Number of instances of the said VDU which shall be instantiated"; } leaf vm-image { type string; reference "URI"; description "Reference to a VM image"; } container resource { description "The required resource"; container cpu { description "The required computation resource"; leaf vCPU_num { type uint32{ range 3; } description "The number of virtual CPU units"; } list vCPU-spec { key "name"; description "Processor characteristics for the VDU"; leaf name { type string; description "Name of vCPU-spec"; } leaf description { type string; description "Description of vCPU-spec"; } leaf value { type uint32; description "Value of vCPU-spec"; } } } container memory { description "The required memory resource"; leaf memory_size { type uint32{ range 2048; } description "Memory size, unit:MBytes"; } list memory-spec { key name; description "Memory characteristics for the VDU"; leaf name { type string; description "Name of memory-spec"; } leaf description { type string; description "Description of memory-spec"; } leaf value { type uint32; description "Value of memory-spec"; } } } container disk { description "The required storage resource"; leaf disk-size { type uint32{ range 3000; } description "Virtual storage size, unit:MBytes"; } list disk-KQI { key name; description "Storage characteristics in the VDU"; leaf name { type string; description "Name of disk-KQI"; } leaf description { type string; description "Description of disk-KQI"; } leaf value { type uint32; description "Value of disk-KQI"; } } } container vnic { description "Virtual network interface card (vnic) resource"; leaf vnic-num { type uint32{ range 2; } description "The total number of virtual vnic"; } } } container workflow-script { description "VDU workflow script"; leaf init { type string; default "start.sh"; description "VDU initialization script"; } leaf terminate { type string; default "stop.sh"; description "VDU termination script"; } leaf graceful-shutdown { type string; default "shutdown.sh"; description "VDU graceful shutdown script"; } } } } }