Loading example-data/nfv.xml +24 −6 Original line number Original line Diff line number Diff line Loading @@ -11,17 +11,14 @@ <name>Firewall VDU</name> <name>Firewall VDU</name> <int-cpd> <int-cpd> <id>inside</id> <id>inside</id> <ext-cpd>inside</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <int-cpd> <int-cpd> <id>management</id> <id>management</id> <ext-cpd>management</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <int-cpd> <int-cpd> <id>outside</id> <id>outside</id> <ext-cpd>outside</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <virtual-compute-desc>asa-vcd</virtual-compute-desc> <virtual-compute-desc>asa-vcd</virtual-compute-desc> Loading Loading @@ -51,14 +48,26 @@ </sw-image-desc> </sw-image-desc> <ext-cpd> <ext-cpd> <id>inside</id> <id>inside</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>inside</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <ext-cpd> <ext-cpd> <id>management</id> <id>management</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <ext-cpd> <ext-cpd> <id>outside</id> <id>outside</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>outside</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <df> <df> Loading Loading @@ -97,17 +106,14 @@ <name>Router VDU</name> <name>Router VDU</name> <int-cpd> <int-cpd> <id>left</id> <id>left</id> <ext-cpd>left</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <int-cpd> <int-cpd> <id>management</id> <id>management</id> <ext-cpd>management</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <int-cpd> <int-cpd> <id>right</id> <id>right</id> <ext-cpd>right</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <virtual-compute-desc>csr-vcd</virtual-compute-desc> <virtual-compute-desc>csr-vcd</virtual-compute-desc> Loading Loading @@ -137,14 +143,26 @@ </sw-image-desc> </sw-image-desc> <ext-cpd> <ext-cpd> <id>left</id> <id>left</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>left</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <ext-cpd> <ext-cpd> <id>management</id> <id>management</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <ext-cpd> <ext-cpd> <id>right</id> <id>right</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>right</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <df> <df> Loading src/yang/etsi-nfv-ns.yang +18 −21 Original line number Original line Diff line number Diff line Loading @@ -4,10 +4,7 @@ submodule etsi-nfv-ns { prefix nfv; prefix nfv; } } import etsi-nfv-common { include etsi-nfv-common; prefix common; } include etsi-nfv-vnf; include etsi-nfv-vnf; include etsi-nfv-pnf; include etsi-nfv-pnf; Loading Loading @@ -248,7 +245,7 @@ submodule etsi-nfv-ns { information element"; information element"; } } uses common:connectivity-type; uses connectivity-type; list df { list df { key "id"; key "id"; Loading Loading @@ -364,7 +361,7 @@ submodule etsi-nfv-ns { "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc information element"; information element"; } } uses common:security-parameters; uses security-parameters; } } list vnffgd { list vnffgd { Loading Loading @@ -485,7 +482,7 @@ submodule etsi-nfv-ns { } } container ns { container ns { leaf nsd-id { leaf nsd-id { must ". = deref(../../ns-profile-id)/../nsd-id" { must ". = deref(../../nested-ns-profile-id)/../nsd-id" { } } type leafref { type leafref { Loading Loading @@ -745,7 +742,7 @@ submodule etsi-nfv-ns { } } leaf min-number-of-instances { leaf min-number-of-instances { mandatory true; default 1; type uint16; type uint16; description description "Minimum number of instances of the VNF based on this "Minimum number of instances of the VNF based on this Loading @@ -756,7 +753,7 @@ submodule etsi-nfv-ns { } } leaf max-number-of-instances { leaf max-number-of-instances { mandatory true; default 1; type uint16; type uint16; description description "Maximum number of instances of the VNF based on this "Maximum number of instances of the VNF based on this Loading @@ -766,7 +763,7 @@ submodule etsi-nfv-ns { element"; element"; } } uses common:local-affinity-or-anti-affinity-rule; uses local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { list affinity-or-anti-affinity-group { key "id"; key "id"; Loading Loading @@ -932,7 +929,7 @@ submodule etsi-nfv-ns { information element"; information element"; } } uses common:local-affinity-or-anti-affinity-rule; uses local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { list affinity-or-anti-affinity-group { key "id"; key "id"; Loading @@ -959,7 +956,7 @@ submodule etsi-nfv-ns { reference reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; information element"; uses common:link-bitrate-requirements; uses link-bitrate-requirements; } } container min-bitrate-requirements { container min-bitrate-requirements { description description Loading @@ -968,7 +965,7 @@ submodule etsi-nfv-ns { reference reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; information element"; uses common:link-bitrate-requirements; uses link-bitrate-requirements; } } } } Loading Loading @@ -1048,7 +1045,7 @@ submodule etsi-nfv-ns { leaf affinity-type { leaf affinity-type { mandatory true; mandatory true; type common:affinity-type; type affinity-type; description description "Specifies the type of relationship that the members of "Specifies the type of relationship that the members of the group have: 'affinity' or 'anti-affinity.'"; the group have: 'affinity' or 'anti-affinity.'"; Loading @@ -1059,7 +1056,7 @@ submodule etsi-nfv-ns { leaf affinity-scope { leaf affinity-scope { mandatory true; mandatory true; type common:affinity-scope; type affinity-scope; description description "Specifies the scope of the affinity or anti-affinity "Specifies the scope of the affinity or anti-affinity relationship e.g. a NFVI node, an NFVI PoP, etc."; relationship e.g. a NFVI node, an NFVI PoP, etc."; Loading Loading @@ -1123,7 +1120,7 @@ submodule etsi-nfv-ns { } } leaf number-of-instances { leaf number-of-instances { mandatory true; default 1; type uint32; type uint32; description description "Specifies the number of VNF instances required for "Specifies the number of VNF instances required for Loading Loading @@ -1156,7 +1153,7 @@ submodule etsi-nfv-ns { VirtualLinkToLevelMapping information element"; VirtualLinkToLevelMapping information element"; } } uses common:link-bitrate-requirements; uses link-bitrate-requirements; } } list ns-to-level-mapping { list ns-to-level-mapping { Loading @@ -1183,7 +1180,7 @@ submodule etsi-nfv-ns { } } leaf number-of-instances { leaf number-of-instances { mandatory true; default 1; type uint32; type uint32; description description "Specifies the number of nested NS instances required "Specifies the number of nested NS instances required Loading Loading @@ -1289,7 +1286,7 @@ submodule etsi-nfv-ns { } } leaf min-number-of-instances { leaf min-number-of-instances { type uint16; type uint16; mandatory true; default 1; description description "Minimum number of nested NS instances based on the "Minimum number of nested NS instances based on the referenced NSD that is permitted to exist for this referenced NSD that is permitted to exist for this Loading @@ -1300,7 +1297,7 @@ submodule etsi-nfv-ns { } } leaf max-number-of-instances { leaf max-number-of-instances { type uint16; type uint16; mandatory true; default 1; description description "Maximum number of nested NS instances based on the "Maximum number of nested NS instances based on the referenced NSD that is permitted to exist for this referenced NSD that is permitted to exist for this Loading Loading @@ -1484,7 +1481,7 @@ submodule etsi-nfv-ns { } } } } } } uses common:security-parameters; uses security-parameters; } } } } } } src/yang/etsi-nfv-vnf.yang +129 −15 Original line number Original line Diff line number Diff line Loading @@ -54,7 +54,7 @@ submodule etsi-nfv-vnf { VirtualNetworkInterfaceRequirements information element"; VirtualNetworkInterfaceRequirements information element"; } } leaf support-mandatory { leaf support-mandatory { mandatory true; default "false"; type boolean; type boolean; description description "Indicates whether fulfilling the constraint is "Indicates whether fulfilling the constraint is Loading Loading @@ -117,7 +117,7 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; } } leaf layer-protocol { leaf layer-protocol { mandatory true; default Ethernet; type identityref { type identityref { base layer-protocol; base layer-protocol; } } Loading Loading @@ -700,8 +700,8 @@ submodule etsi-nfv-vnf { fraction-digits 1; fraction-digits 1; range "0..max"; range "0..max"; } } units "Gb"; units "MBytes"; mandatory true; default 1; description description "Amount of virtual memory in MB."; "Amount of virtual memory in MB."; reference reference Loading Loading @@ -773,7 +773,7 @@ submodule etsi-nfv-vnf { type uint16 { type uint16 { range "1..max"; range "1..max"; } } mandatory true; default 1; description description "Number of virtual CPUs."; "Number of virtual CPUs."; reference reference Loading Loading @@ -820,7 +820,7 @@ submodule etsi-nfv-vnf { container virtual-cpu-pinning { container virtual-cpu-pinning { presence "Set to specify CPU pinning."; presence "Set to specify CPU pinning."; leaf cpu-pinning-policy { leaf cpu-pinning-policy { mandatory true; default "dynamic"; type enumeration { type enumeration { enum "static"; enum "static"; enum "dynamic"; enum "dynamic"; Loading Loading @@ -866,7 +866,7 @@ submodule etsi-nfv-vnf { enum "swap"; enum "swap"; enum "ephemeral"; enum "ephemeral"; } } mandatory true; default "root"; description description "Type of virtualised storage resource (e.g. volume, "Type of virtualised storage resource (e.g. volume, object)."; object)."; Loading @@ -877,7 +877,7 @@ submodule etsi-nfv-vnf { leaf size-of-storage { leaf size-of-storage { type uint64; type uint64; units "Gb"; units "Gb"; mandatory true; default 1; description description "Size of virtualised storage resource (e.g. size of "Size of virtualised storage resource (e.g. size of volume, in Gb)"; volume, in Gb)"; Loading Loading @@ -964,7 +964,7 @@ submodule etsi-nfv-vnf { information element."; information element."; } } leaf container-format { leaf container-format { mandatory true; default "bare"; type enumeration { type enumeration { enum "aki" { enum "aki" { description description Loading Loading @@ -1004,7 +1004,7 @@ submodule etsi-nfv-vnf { information element."; information element."; } } leaf disk-format { leaf disk-format { mandatory true; default "qcow2"; type enumeration { type enumeration { enum "aki" { enum "aki" { description description Loading Loading @@ -1102,7 +1102,7 @@ submodule etsi-nfv-vnf { information element."; information element."; } } leaf image { leaf image { mandatory true; default "."; type inet:uri; type inet:uri; description description "This is a reference to the actual software image. "This is a reference to the actual software image. Loading Loading @@ -1274,10 +1274,12 @@ submodule etsi-nfv-vnf { } } } } leaf cpd { leaf cpd { type leafref { path "deref(../vdu-id)/../int-cpd/id"; path "deref(../vdu-id)/../int-cpd/id"; } } } } } } } uses virtual-network-interface-requirements; uses virtual-network-interface-requirements; uses vnf-cpd; uses vnf-cpd; } } Loading Loading @@ -1327,7 +1329,7 @@ submodule etsi-nfv-vnf { } } leaf min-number-of-instances { leaf min-number-of-instances { type uint16; type uint16; mandatory true; default 1; description description "Minimum number of instances of the VNFC based on this "Minimum number of instances of the VNFC based on this VDU that is permitted to exist for this flavour."; VDU that is permitted to exist for this flavour."; Loading @@ -1337,7 +1339,7 @@ submodule etsi-nfv-vnf { } } leaf max-number-of-instances { leaf max-number-of-instances { type uint16; type uint16; mandatory true; default 1; must ". >= ../nfv:min-number-of-instances"; must ". >= ../nfv:min-number-of-instances"; reference reference "GS NFV IFA011: Section 7.1.8.3, VduProfile information "GS NFV IFA011: Section 7.1.8.3, VduProfile information Loading Loading @@ -1498,7 +1500,7 @@ submodule etsi-nfv-vnf { must ". >= ../../../../nfv:df/" + must ". >= ../../../../nfv:df/" + "nfv:vdu-profile[id=current()/../nfv:id]/" + "nfv:vdu-profile[id=current()/../nfv:id]/" + "nfv:min-number-of-instances"; "nfv:min-number-of-instances"; mandatory true; default 1; description description "Number of instances of VNFC based on this VDU to "Number of instances of VNFC based on this VDU to deploy for this level."; deploy for this level."; Loading Loading @@ -1795,6 +1797,118 @@ submodule etsi-nfv-vnf { AffinityOrAntiAffinityGroup information element"; AffinityOrAntiAffinityGroup information element"; } } } } list indicator { key "id"; leaf id { type string; description "Unique identifier."; reference "GS NFV IFA011: Section 7.1.11.2 VnfIndicator information element"; } leaf name { type string; description "The human readable name of the VnfIndicator."; reference "GS NFV IFA011: Section 7.1.11.2 VnfIndicator information element"; } leaf indicator-value { type string; description "Defines the allowed values or value ranges of this indicator."; reference "GS NFV IFA011: Section 7.1.11.2 VnfIndicator information element"; } leaf source { type enumeration { enum vnf; enum em; enum both; } description "Describe the source of the indicator. The possible values are: • VNF. • EM. • Both. This tells the consumer where to send the subscription request."; reference "GS NFV IFA011: Section 7.1.11.2 VnfIndicator information element"; } description "Declares the VNF indicators that are supported by this VNF (specific to this DF)."; reference "GS NFV IFA011: Section 7.1.8.2 VnfDf information element"; } list supported-vnf-interfaces { key "name"; leaf name { type enumeration { enum vnf-configuration; enum vnf-indicator; } description "Identifies an interface produced by the VNF. Valid values: - VNF_CONFIGURATION - VNF_INDICATOR"; reference "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails information element"; } leaf-list cpd-id { type leafref { path "../../../ext-cpd/id"; } description "References one or more CPDs from which to instantiate external CPs through which interface endpoints on the VNF side can be reached by the VNFM."; reference "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails information element"; } list interface-details { key "key"; leaf key { type string; } leaf value { type string; } } description "Indicates which interfaces the VNF produces and provides additional details on how to access the interface endpoints."; reference "GS NFV IFA011: Section 7.1.8.2 VnfDf information element"; } list monitoring-parameter { list monitoring-parameter { key "id"; key "id"; Loading Loading
example-data/nfv.xml +24 −6 Original line number Original line Diff line number Diff line Loading @@ -11,17 +11,14 @@ <name>Firewall VDU</name> <name>Firewall VDU</name> <int-cpd> <int-cpd> <id>inside</id> <id>inside</id> <ext-cpd>inside</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <int-cpd> <int-cpd> <id>management</id> <id>management</id> <ext-cpd>management</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <int-cpd> <int-cpd> <id>outside</id> <id>outside</id> <ext-cpd>outside</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <virtual-compute-desc>asa-vcd</virtual-compute-desc> <virtual-compute-desc>asa-vcd</virtual-compute-desc> Loading Loading @@ -51,14 +48,26 @@ </sw-image-desc> </sw-image-desc> <ext-cpd> <ext-cpd> <id>inside</id> <id>inside</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>inside</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <ext-cpd> <ext-cpd> <id>management</id> <id>management</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <ext-cpd> <ext-cpd> <id>outside</id> <id>outside</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>outside</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <df> <df> Loading Loading @@ -97,17 +106,14 @@ <name>Router VDU</name> <name>Router VDU</name> <int-cpd> <int-cpd> <id>left</id> <id>left</id> <ext-cpd>left</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <int-cpd> <int-cpd> <id>management</id> <id>management</id> <ext-cpd>management</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <int-cpd> <int-cpd> <id>right</id> <id>right</id> <ext-cpd>right</ext-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </int-cpd> </int-cpd> <virtual-compute-desc>csr-vcd</virtual-compute-desc> <virtual-compute-desc>csr-vcd</virtual-compute-desc> Loading Loading @@ -137,14 +143,26 @@ </sw-image-desc> </sw-image-desc> <ext-cpd> <ext-cpd> <id>left</id> <id>left</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>left</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <ext-cpd> <ext-cpd> <id>management</id> <id>management</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <ext-cpd> <ext-cpd> <id>right</id> <id>right</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>right</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> </ext-cpd> <df> <df> Loading
src/yang/etsi-nfv-ns.yang +18 −21 Original line number Original line Diff line number Diff line Loading @@ -4,10 +4,7 @@ submodule etsi-nfv-ns { prefix nfv; prefix nfv; } } import etsi-nfv-common { include etsi-nfv-common; prefix common; } include etsi-nfv-vnf; include etsi-nfv-vnf; include etsi-nfv-pnf; include etsi-nfv-pnf; Loading Loading @@ -248,7 +245,7 @@ submodule etsi-nfv-ns { information element"; information element"; } } uses common:connectivity-type; uses connectivity-type; list df { list df { key "id"; key "id"; Loading Loading @@ -364,7 +361,7 @@ submodule etsi-nfv-ns { "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc information element"; information element"; } } uses common:security-parameters; uses security-parameters; } } list vnffgd { list vnffgd { Loading Loading @@ -485,7 +482,7 @@ submodule etsi-nfv-ns { } } container ns { container ns { leaf nsd-id { leaf nsd-id { must ". = deref(../../ns-profile-id)/../nsd-id" { must ". = deref(../../nested-ns-profile-id)/../nsd-id" { } } type leafref { type leafref { Loading Loading @@ -745,7 +742,7 @@ submodule etsi-nfv-ns { } } leaf min-number-of-instances { leaf min-number-of-instances { mandatory true; default 1; type uint16; type uint16; description description "Minimum number of instances of the VNF based on this "Minimum number of instances of the VNF based on this Loading @@ -756,7 +753,7 @@ submodule etsi-nfv-ns { } } leaf max-number-of-instances { leaf max-number-of-instances { mandatory true; default 1; type uint16; type uint16; description description "Maximum number of instances of the VNF based on this "Maximum number of instances of the VNF based on this Loading @@ -766,7 +763,7 @@ submodule etsi-nfv-ns { element"; element"; } } uses common:local-affinity-or-anti-affinity-rule; uses local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { list affinity-or-anti-affinity-group { key "id"; key "id"; Loading Loading @@ -932,7 +929,7 @@ submodule etsi-nfv-ns { information element"; information element"; } } uses common:local-affinity-or-anti-affinity-rule; uses local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { list affinity-or-anti-affinity-group { key "id"; key "id"; Loading @@ -959,7 +956,7 @@ submodule etsi-nfv-ns { reference reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; information element"; uses common:link-bitrate-requirements; uses link-bitrate-requirements; } } container min-bitrate-requirements { container min-bitrate-requirements { description description Loading @@ -968,7 +965,7 @@ submodule etsi-nfv-ns { reference reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; information element"; uses common:link-bitrate-requirements; uses link-bitrate-requirements; } } } } Loading Loading @@ -1048,7 +1045,7 @@ submodule etsi-nfv-ns { leaf affinity-type { leaf affinity-type { mandatory true; mandatory true; type common:affinity-type; type affinity-type; description description "Specifies the type of relationship that the members of "Specifies the type of relationship that the members of the group have: 'affinity' or 'anti-affinity.'"; the group have: 'affinity' or 'anti-affinity.'"; Loading @@ -1059,7 +1056,7 @@ submodule etsi-nfv-ns { leaf affinity-scope { leaf affinity-scope { mandatory true; mandatory true; type common:affinity-scope; type affinity-scope; description description "Specifies the scope of the affinity or anti-affinity "Specifies the scope of the affinity or anti-affinity relationship e.g. a NFVI node, an NFVI PoP, etc."; relationship e.g. a NFVI node, an NFVI PoP, etc."; Loading Loading @@ -1123,7 +1120,7 @@ submodule etsi-nfv-ns { } } leaf number-of-instances { leaf number-of-instances { mandatory true; default 1; type uint32; type uint32; description description "Specifies the number of VNF instances required for "Specifies the number of VNF instances required for Loading Loading @@ -1156,7 +1153,7 @@ submodule etsi-nfv-ns { VirtualLinkToLevelMapping information element"; VirtualLinkToLevelMapping information element"; } } uses common:link-bitrate-requirements; uses link-bitrate-requirements; } } list ns-to-level-mapping { list ns-to-level-mapping { Loading @@ -1183,7 +1180,7 @@ submodule etsi-nfv-ns { } } leaf number-of-instances { leaf number-of-instances { mandatory true; default 1; type uint32; type uint32; description description "Specifies the number of nested NS instances required "Specifies the number of nested NS instances required Loading Loading @@ -1289,7 +1286,7 @@ submodule etsi-nfv-ns { } } leaf min-number-of-instances { leaf min-number-of-instances { type uint16; type uint16; mandatory true; default 1; description description "Minimum number of nested NS instances based on the "Minimum number of nested NS instances based on the referenced NSD that is permitted to exist for this referenced NSD that is permitted to exist for this Loading @@ -1300,7 +1297,7 @@ submodule etsi-nfv-ns { } } leaf max-number-of-instances { leaf max-number-of-instances { type uint16; type uint16; mandatory true; default 1; description description "Maximum number of nested NS instances based on the "Maximum number of nested NS instances based on the referenced NSD that is permitted to exist for this referenced NSD that is permitted to exist for this Loading Loading @@ -1484,7 +1481,7 @@ submodule etsi-nfv-ns { } } } } } } uses common:security-parameters; uses security-parameters; } } } } } }
src/yang/etsi-nfv-vnf.yang +129 −15 Original line number Original line Diff line number Diff line Loading @@ -54,7 +54,7 @@ submodule etsi-nfv-vnf { VirtualNetworkInterfaceRequirements information element"; VirtualNetworkInterfaceRequirements information element"; } } leaf support-mandatory { leaf support-mandatory { mandatory true; default "false"; type boolean; type boolean; description description "Indicates whether fulfilling the constraint is "Indicates whether fulfilling the constraint is Loading Loading @@ -117,7 +117,7 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; "GS NFV IFA011: Section 7.1.6.3, Cpd information element."; } } leaf layer-protocol { leaf layer-protocol { mandatory true; default Ethernet; type identityref { type identityref { base layer-protocol; base layer-protocol; } } Loading Loading @@ -700,8 +700,8 @@ submodule etsi-nfv-vnf { fraction-digits 1; fraction-digits 1; range "0..max"; range "0..max"; } } units "Gb"; units "MBytes"; mandatory true; default 1; description description "Amount of virtual memory in MB."; "Amount of virtual memory in MB."; reference reference Loading Loading @@ -773,7 +773,7 @@ submodule etsi-nfv-vnf { type uint16 { type uint16 { range "1..max"; range "1..max"; } } mandatory true; default 1; description description "Number of virtual CPUs."; "Number of virtual CPUs."; reference reference Loading Loading @@ -820,7 +820,7 @@ submodule etsi-nfv-vnf { container virtual-cpu-pinning { container virtual-cpu-pinning { presence "Set to specify CPU pinning."; presence "Set to specify CPU pinning."; leaf cpu-pinning-policy { leaf cpu-pinning-policy { mandatory true; default "dynamic"; type enumeration { type enumeration { enum "static"; enum "static"; enum "dynamic"; enum "dynamic"; Loading Loading @@ -866,7 +866,7 @@ submodule etsi-nfv-vnf { enum "swap"; enum "swap"; enum "ephemeral"; enum "ephemeral"; } } mandatory true; default "root"; description description "Type of virtualised storage resource (e.g. volume, "Type of virtualised storage resource (e.g. volume, object)."; object)."; Loading @@ -877,7 +877,7 @@ submodule etsi-nfv-vnf { leaf size-of-storage { leaf size-of-storage { type uint64; type uint64; units "Gb"; units "Gb"; mandatory true; default 1; description description "Size of virtualised storage resource (e.g. size of "Size of virtualised storage resource (e.g. size of volume, in Gb)"; volume, in Gb)"; Loading Loading @@ -964,7 +964,7 @@ submodule etsi-nfv-vnf { information element."; information element."; } } leaf container-format { leaf container-format { mandatory true; default "bare"; type enumeration { type enumeration { enum "aki" { enum "aki" { description description Loading Loading @@ -1004,7 +1004,7 @@ submodule etsi-nfv-vnf { information element."; information element."; } } leaf disk-format { leaf disk-format { mandatory true; default "qcow2"; type enumeration { type enumeration { enum "aki" { enum "aki" { description description Loading Loading @@ -1102,7 +1102,7 @@ submodule etsi-nfv-vnf { information element."; information element."; } } leaf image { leaf image { mandatory true; default "."; type inet:uri; type inet:uri; description description "This is a reference to the actual software image. "This is a reference to the actual software image. Loading Loading @@ -1274,10 +1274,12 @@ submodule etsi-nfv-vnf { } } } } leaf cpd { leaf cpd { type leafref { path "deref(../vdu-id)/../int-cpd/id"; path "deref(../vdu-id)/../int-cpd/id"; } } } } } } } uses virtual-network-interface-requirements; uses virtual-network-interface-requirements; uses vnf-cpd; uses vnf-cpd; } } Loading Loading @@ -1327,7 +1329,7 @@ submodule etsi-nfv-vnf { } } leaf min-number-of-instances { leaf min-number-of-instances { type uint16; type uint16; mandatory true; default 1; description description "Minimum number of instances of the VNFC based on this "Minimum number of instances of the VNFC based on this VDU that is permitted to exist for this flavour."; VDU that is permitted to exist for this flavour."; Loading @@ -1337,7 +1339,7 @@ submodule etsi-nfv-vnf { } } leaf max-number-of-instances { leaf max-number-of-instances { type uint16; type uint16; mandatory true; default 1; must ". >= ../nfv:min-number-of-instances"; must ". >= ../nfv:min-number-of-instances"; reference reference "GS NFV IFA011: Section 7.1.8.3, VduProfile information "GS NFV IFA011: Section 7.1.8.3, VduProfile information Loading Loading @@ -1498,7 +1500,7 @@ submodule etsi-nfv-vnf { must ". >= ../../../../nfv:df/" + must ". >= ../../../../nfv:df/" + "nfv:vdu-profile[id=current()/../nfv:id]/" + "nfv:vdu-profile[id=current()/../nfv:id]/" + "nfv:min-number-of-instances"; "nfv:min-number-of-instances"; mandatory true; default 1; description description "Number of instances of VNFC based on this VDU to "Number of instances of VNFC based on this VDU to deploy for this level."; deploy for this level."; Loading Loading @@ -1795,6 +1797,118 @@ submodule etsi-nfv-vnf { AffinityOrAntiAffinityGroup information element"; AffinityOrAntiAffinityGroup information element"; } } } } list indicator { key "id"; leaf id { type string; description "Unique identifier."; reference "GS NFV IFA011: Section 7.1.11.2 VnfIndicator information element"; } leaf name { type string; description "The human readable name of the VnfIndicator."; reference "GS NFV IFA011: Section 7.1.11.2 VnfIndicator information element"; } leaf indicator-value { type string; description "Defines the allowed values or value ranges of this indicator."; reference "GS NFV IFA011: Section 7.1.11.2 VnfIndicator information element"; } leaf source { type enumeration { enum vnf; enum em; enum both; } description "Describe the source of the indicator. The possible values are: • VNF. • EM. • Both. This tells the consumer where to send the subscription request."; reference "GS NFV IFA011: Section 7.1.11.2 VnfIndicator information element"; } description "Declares the VNF indicators that are supported by this VNF (specific to this DF)."; reference "GS NFV IFA011: Section 7.1.8.2 VnfDf information element"; } list supported-vnf-interfaces { key "name"; leaf name { type enumeration { enum vnf-configuration; enum vnf-indicator; } description "Identifies an interface produced by the VNF. Valid values: - VNF_CONFIGURATION - VNF_INDICATOR"; reference "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails information element"; } leaf-list cpd-id { type leafref { path "../../../ext-cpd/id"; } description "References one or more CPDs from which to instantiate external CPs through which interface endpoints on the VNF side can be reached by the VNFM."; reference "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails information element"; } list interface-details { key "key"; leaf key { type string; } leaf value { type string; } } description "Indicates which interfaces the VNF produces and provides additional details on how to access the interface endpoints."; reference "GS NFV IFA011: Section 7.1.8.2 VnfDf information element"; } list monitoring-parameter { list monitoring-parameter { key "id"; key "id"; Loading