| //INFORMATION |
| //organization "CTTC"; |
| //contact "Pol Alemany, Ricard Vilalta, Juan Luis de la Cruz"; |
| //description "Network Slice components definition"; |
| |
| // MODULE STRUCTURE |
| module instantiation-parameters { |
| //header information |
| yang-version 1; |
| namespace "urn:ietf:params:xml:ns:yang:nfvo:instantiation-parameters"; |
| prefix "instantiation-parameters"; |
| |
| import rw-project { |
| prefix "rw-project"; |
| } |
| |
| import nsd { |
| prefix "nsd"; |
| } |
| |
| import vnfd { |
| prefix "vnfd"; |
| } |
| |
| import nsr { |
| prefix "nsr"; |
| } |
| |
| import ietf-inet-types { |
| prefix "inet"; |
| } |
| |
| import ietf-yang-types { |
| prefix "ietf-yang"; |
| } |
| |
| //revision history |
| revision 2018-09-14 { |
| description "Initial version"; |
| } |
| |
| grouping ns_instantiate { |
| leaf nsName { |
| mandatory true; |
| type string; |
| } |
| leaf nsDescription { |
| type string; |
| } |
| leaf nsdId { |
| mandatory true; |
| type leafref { |
| path "/nsd:nsd-catalog/nsd:nsd/nsd:id"; |
| } |
| } |
| leaf vimAccountId { |
| mandatory true; |
| type string; |
| } |
| leaf ssh_keys { |
| type string; |
| } |
| leaf nsr_id { |
| config false; |
| type leafref { |
| path "/rw-project:project/nsr:ns-instance-opdata/nsr:nsr/nsr:ns-instance-config-ref"; |
| } |
| } |
| list vnf { |
| key "member-vnf-index"; |
| uses vnf; |
| } |
| list vld { |
| key "name"; |
| uses vld; |
| } |
| } |
| |
| grouping vnf { |
| leaf member-vnf-index{ |
| mandatory true; |
| type string; |
| } |
| leaf vimAccountId { |
| type string; |
| } |
| list vdu { |
| key "id"; |
| uses ns_instantiate_vdu; |
| } |
| list internal-vld { |
| key "name"; |
| uses ns-instantiate-internal-vld; |
| } |
| } |
| |
| grouping vld { |
| leaf name { |
| type string; |
| } |
| leaf vim-network-name { |
| type string; |
| } |
| container ip-profile { |
| uses ip-profile-update-schema; |
| } |
| list vnfd-connection-point-ref { |
| key "member-vnf-index-ref vnfd-connection-point-ref"; |
| leaf member-vnf-index-ref { |
| type leafref { |
| //path "../../../vnf/member-vnf-index"; |
| path "/nsd:nsd-catalog/nsd:nsd/nsd:constituent-vnfd/nsd:member-vnf-index"; |
| } |
| } |
| leaf vnfd-connection-point-ref { |
| type leafref { |
| path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:connection-point/vnfd:name"; |
| } |
| } |
| leaf ip-address{ |
| type inet:ip-address; |
| } |
| } |
| } |
| |
| grouping ns_instantiate_vdu { |
| leaf id { |
| mandatory true; |
| type string; |
| } |
| list volume { |
| key "name"; |
| leaf name { |
| mandatory true; |
| type string; |
| } |
| leaf vim-volume-id { |
| mandatory true; |
| type string; |
| } |
| } |
| list interface { |
| key "name"; |
| leaf name { |
| mandatory true; |
| type string; |
| } |
| leaf ip-address { |
| type inet:ip-address; |
| } |
| leaf mac-address { |
| type ietf-yang:mac-address; |
| } |
| leaf floating-ip-required { |
| type boolean; |
| } |
| } |
| } |
| |
| grouping ns-instantiate-internal-vld { |
| leaf name { |
| mandatory true; |
| type string; |
| } |
| leaf vim-network-name { |
| type string; |
| } |
| container ip-profile { |
| uses ip-profile-update-schema; |
| } |
| list internal-connection-point { |
| key "id-ref"; |
| leaf id-ref { |
| mandatory true; |
| type string; |
| } |
| leaf ip-address{ |
| type inet:ip-address; |
| } |
| } |
| } |
| |
| grouping ip-profile-update-schema { //each leaf/list is either null or something |
| leaf ip-version { |
| type inet:ip-version; |
| } |
| leaf subnet-address { |
| type inet:ip-prefix; |
| } |
| leaf gateway-address { |
| type inet:ip-prefix; |
| } |
| list dns-server { |
| key "address"; |
| leaf address { |
| mandatory true; |
| type inet:ip-address; |
| } |
| } |
| container dhcp-params { |
| leaf enabled { |
| type boolean; |
| } |
| leaf count { |
| type uint8; // >=1 |
| } |
| leaf start-address { |
| type inet:ip-address; |
| } |
| } |
| } |
| |
| } |