Loading example-data/nfv.xml +24 −6 Original line number Diff line number Diff line Loading @@ -11,17 +11,14 @@ <name>Firewall VDU</name> <int-cpd> <id>inside</id> <ext-cpd>inside</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <int-cpd> <id>management</id> <ext-cpd>management</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <int-cpd> <id>outside</id> <ext-cpd>outside</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <virtual-compute-desc>asa-vcd</virtual-compute-desc> Loading Loading @@ -51,14 +48,26 @@ </sw-image-desc> <ext-cpd> <id>inside</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>inside</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>management</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>outside</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>outside</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <df> Loading Loading @@ -97,17 +106,14 @@ <name>Router VDU</name> <int-cpd> <id>left</id> <ext-cpd>left</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <int-cpd> <id>management</id> <ext-cpd>management</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <int-cpd> <id>right</id> <ext-cpd>right</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <virtual-compute-desc>csr-vcd</virtual-compute-desc> Loading Loading @@ -137,14 +143,26 @@ </sw-image-desc> <ext-cpd> <id>left</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>left</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>management</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>right</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>right</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <df> Loading src/yang/etsi-nfv-ns.yang +18 −21 Original line number Diff line number Diff line Loading @@ -4,10 +4,7 @@ submodule etsi-nfv-ns { prefix nfv; } import etsi-nfv-common { prefix common; } include etsi-nfv-common; include etsi-nfv-vnf; include etsi-nfv-pnf; Loading Loading @@ -248,7 +245,7 @@ submodule etsi-nfv-ns { information element"; } uses common:connectivity-type; uses connectivity-type; list df { key "id"; Loading Loading @@ -364,7 +361,7 @@ submodule etsi-nfv-ns { "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc information element"; } uses common:security-parameters; uses security-parameters; } list vnffgd { Loading Loading @@ -485,7 +482,7 @@ submodule etsi-nfv-ns { } container ns { leaf nsd-id { must ". = deref(../../ns-profile-id)/../nsd-id" { must ". = deref(../../nested-ns-profile-id)/../nsd-id" { } type leafref { Loading Loading @@ -745,7 +742,7 @@ submodule etsi-nfv-ns { } leaf min-number-of-instances { mandatory true; default 1; type uint16; description "Minimum number of instances of the VNF based on this Loading @@ -756,7 +753,7 @@ submodule etsi-nfv-ns { } leaf max-number-of-instances { mandatory true; default 1; type uint16; description "Maximum number of instances of the VNF based on this Loading @@ -766,7 +763,7 @@ submodule etsi-nfv-ns { element"; } uses common:local-affinity-or-anti-affinity-rule; uses local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { key "id"; Loading Loading @@ -932,7 +929,7 @@ submodule etsi-nfv-ns { information element"; } uses common:local-affinity-or-anti-affinity-rule; uses local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { key "id"; Loading @@ -959,7 +956,7 @@ submodule etsi-nfv-ns { reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; uses common:link-bitrate-requirements; uses link-bitrate-requirements; } container min-bitrate-requirements { description Loading @@ -968,7 +965,7 @@ submodule etsi-nfv-ns { reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; uses common:link-bitrate-requirements; uses link-bitrate-requirements; } } Loading Loading @@ -1048,7 +1045,7 @@ submodule etsi-nfv-ns { leaf affinity-type { mandatory true; type common:affinity-type; type affinity-type; description "Specifies the type of relationship that the members of the group have: 'affinity' or 'anti-affinity.'"; Loading @@ -1059,7 +1056,7 @@ submodule etsi-nfv-ns { leaf affinity-scope { mandatory true; type common:affinity-scope; type affinity-scope; description "Specifies the scope of the affinity or anti-affinity relationship e.g. a NFVI node, an NFVI PoP, etc."; Loading Loading @@ -1123,7 +1120,7 @@ submodule etsi-nfv-ns { } leaf number-of-instances { mandatory true; default 1; type uint32; description "Specifies the number of VNF instances required for Loading Loading @@ -1156,7 +1153,7 @@ submodule etsi-nfv-ns { VirtualLinkToLevelMapping information element"; } uses common:link-bitrate-requirements; uses link-bitrate-requirements; } list ns-to-level-mapping { Loading @@ -1183,7 +1180,7 @@ submodule etsi-nfv-ns { } leaf number-of-instances { mandatory true; default 1; type uint32; description "Specifies the number of nested NS instances required Loading Loading @@ -1289,7 +1286,7 @@ submodule etsi-nfv-ns { } leaf min-number-of-instances { type uint16; mandatory true; default 1; description "Minimum number of nested NS instances based on the referenced NSD that is permitted to exist for this Loading @@ -1300,7 +1297,7 @@ submodule etsi-nfv-ns { } leaf max-number-of-instances { type uint16; mandatory true; default 1; description "Maximum number of nested NS instances based on the 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 Diff line number Diff line Loading @@ -54,7 +54,7 @@ submodule etsi-nfv-vnf { VirtualNetworkInterfaceRequirements information element"; } leaf support-mandatory { mandatory true; default "false"; type boolean; description "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."; } leaf layer-protocol { mandatory true; default Ethernet; type identityref { base layer-protocol; } Loading Loading @@ -700,8 +700,8 @@ submodule etsi-nfv-vnf { fraction-digits 1; range "0..max"; } units "Gb"; mandatory true; units "MBytes"; default 1; description "Amount of virtual memory in MB."; reference Loading Loading @@ -773,7 +773,7 @@ submodule etsi-nfv-vnf { type uint16 { range "1..max"; } mandatory true; default 1; description "Number of virtual CPUs."; reference Loading Loading @@ -820,7 +820,7 @@ submodule etsi-nfv-vnf { container virtual-cpu-pinning { presence "Set to specify CPU pinning."; leaf cpu-pinning-policy { mandatory true; default "dynamic"; type enumeration { enum "static"; enum "dynamic"; Loading Loading @@ -866,7 +866,7 @@ submodule etsi-nfv-vnf { enum "swap"; enum "ephemeral"; } mandatory true; default "root"; description "Type of virtualised storage resource (e.g. volume, object)."; Loading @@ -877,7 +877,7 @@ submodule etsi-nfv-vnf { leaf size-of-storage { type uint64; units "Gb"; mandatory true; default 1; description "Size of virtualised storage resource (e.g. size of volume, in Gb)"; Loading Loading @@ -964,7 +964,7 @@ submodule etsi-nfv-vnf { information element."; } leaf container-format { mandatory true; default "bare"; type enumeration { enum "aki" { description Loading Loading @@ -1004,7 +1004,7 @@ submodule etsi-nfv-vnf { information element."; } leaf disk-format { mandatory true; default "qcow2"; type enumeration { enum "aki" { description Loading Loading @@ -1102,7 +1102,7 @@ submodule etsi-nfv-vnf { information element."; } leaf image { mandatory true; default "."; type inet:uri; description "This is a reference to the actual software image. Loading Loading @@ -1274,10 +1274,12 @@ submodule etsi-nfv-vnf { } } leaf cpd { type leafref { path "deref(../vdu-id)/../int-cpd/id"; } } } } uses virtual-network-interface-requirements; uses vnf-cpd; } Loading Loading @@ -1327,7 +1329,7 @@ submodule etsi-nfv-vnf { } leaf min-number-of-instances { type uint16; mandatory true; default 1; description "Minimum number of instances of the VNFC based on this VDU that is permitted to exist for this flavour."; Loading @@ -1337,7 +1339,7 @@ submodule etsi-nfv-vnf { } leaf max-number-of-instances { type uint16; mandatory true; default 1; must ". >= ../nfv:min-number-of-instances"; reference "GS NFV IFA011: Section 7.1.8.3, VduProfile information Loading Loading @@ -1498,7 +1500,7 @@ submodule etsi-nfv-vnf { must ". >= ../../../../nfv:df/" + "nfv:vdu-profile[id=current()/../nfv:id]/" + "nfv:min-number-of-instances"; mandatory true; default 1; description "Number of instances of VNFC based on this VDU to deploy for this level."; Loading Loading @@ -1795,6 +1797,118 @@ submodule etsi-nfv-vnf { 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 { key "id"; Loading Loading
example-data/nfv.xml +24 −6 Original line number Diff line number Diff line Loading @@ -11,17 +11,14 @@ <name>Firewall VDU</name> <int-cpd> <id>inside</id> <ext-cpd>inside</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <int-cpd> <id>management</id> <ext-cpd>management</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <int-cpd> <id>outside</id> <ext-cpd>outside</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <virtual-compute-desc>asa-vcd</virtual-compute-desc> Loading Loading @@ -51,14 +48,26 @@ </sw-image-desc> <ext-cpd> <id>inside</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>inside</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>management</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>outside</id> <int-cpd> <vdu-id>firewall</vdu-id> <cpd>outside</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <df> Loading Loading @@ -97,17 +106,14 @@ <name>Router VDU</name> <int-cpd> <id>left</id> <ext-cpd>left</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <int-cpd> <id>management</id> <ext-cpd>management</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <int-cpd> <id>right</id> <ext-cpd>right</ext-cpd> <layer-protocol>Ethernet</layer-protocol> </int-cpd> <virtual-compute-desc>csr-vcd</virtual-compute-desc> Loading Loading @@ -137,14 +143,26 @@ </sw-image-desc> <ext-cpd> <id>left</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>left</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>management</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>right</id> <int-cpd> <vdu-id>router</vdu-id> <cpd>right</cpd> </int-cpd> <layer-protocol>Ethernet</layer-protocol> </ext-cpd> <df> Loading
src/yang/etsi-nfv-ns.yang +18 −21 Original line number Diff line number Diff line Loading @@ -4,10 +4,7 @@ submodule etsi-nfv-ns { prefix nfv; } import etsi-nfv-common { prefix common; } include etsi-nfv-common; include etsi-nfv-vnf; include etsi-nfv-pnf; Loading Loading @@ -248,7 +245,7 @@ submodule etsi-nfv-ns { information element"; } uses common:connectivity-type; uses connectivity-type; list df { key "id"; Loading Loading @@ -364,7 +361,7 @@ submodule etsi-nfv-ns { "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc information element"; } uses common:security-parameters; uses security-parameters; } list vnffgd { Loading Loading @@ -485,7 +482,7 @@ submodule etsi-nfv-ns { } container ns { leaf nsd-id { must ". = deref(../../ns-profile-id)/../nsd-id" { must ". = deref(../../nested-ns-profile-id)/../nsd-id" { } type leafref { Loading Loading @@ -745,7 +742,7 @@ submodule etsi-nfv-ns { } leaf min-number-of-instances { mandatory true; default 1; type uint16; description "Minimum number of instances of the VNF based on this Loading @@ -756,7 +753,7 @@ submodule etsi-nfv-ns { } leaf max-number-of-instances { mandatory true; default 1; type uint16; description "Maximum number of instances of the VNF based on this Loading @@ -766,7 +763,7 @@ submodule etsi-nfv-ns { element"; } uses common:local-affinity-or-anti-affinity-rule; uses local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { key "id"; Loading Loading @@ -932,7 +929,7 @@ submodule etsi-nfv-ns { information element"; } uses common:local-affinity-or-anti-affinity-rule; uses local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { key "id"; Loading @@ -959,7 +956,7 @@ submodule etsi-nfv-ns { reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; uses common:link-bitrate-requirements; uses link-bitrate-requirements; } container min-bitrate-requirements { description Loading @@ -968,7 +965,7 @@ submodule etsi-nfv-ns { reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; uses common:link-bitrate-requirements; uses link-bitrate-requirements; } } Loading Loading @@ -1048,7 +1045,7 @@ submodule etsi-nfv-ns { leaf affinity-type { mandatory true; type common:affinity-type; type affinity-type; description "Specifies the type of relationship that the members of the group have: 'affinity' or 'anti-affinity.'"; Loading @@ -1059,7 +1056,7 @@ submodule etsi-nfv-ns { leaf affinity-scope { mandatory true; type common:affinity-scope; type affinity-scope; description "Specifies the scope of the affinity or anti-affinity relationship e.g. a NFVI node, an NFVI PoP, etc."; Loading Loading @@ -1123,7 +1120,7 @@ submodule etsi-nfv-ns { } leaf number-of-instances { mandatory true; default 1; type uint32; description "Specifies the number of VNF instances required for Loading Loading @@ -1156,7 +1153,7 @@ submodule etsi-nfv-ns { VirtualLinkToLevelMapping information element"; } uses common:link-bitrate-requirements; uses link-bitrate-requirements; } list ns-to-level-mapping { Loading @@ -1183,7 +1180,7 @@ submodule etsi-nfv-ns { } leaf number-of-instances { mandatory true; default 1; type uint32; description "Specifies the number of nested NS instances required Loading Loading @@ -1289,7 +1286,7 @@ submodule etsi-nfv-ns { } leaf min-number-of-instances { type uint16; mandatory true; default 1; description "Minimum number of nested NS instances based on the referenced NSD that is permitted to exist for this Loading @@ -1300,7 +1297,7 @@ submodule etsi-nfv-ns { } leaf max-number-of-instances { type uint16; mandatory true; default 1; description "Maximum number of nested NS instances based on the 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 Diff line number Diff line Loading @@ -54,7 +54,7 @@ submodule etsi-nfv-vnf { VirtualNetworkInterfaceRequirements information element"; } leaf support-mandatory { mandatory true; default "false"; type boolean; description "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."; } leaf layer-protocol { mandatory true; default Ethernet; type identityref { base layer-protocol; } Loading Loading @@ -700,8 +700,8 @@ submodule etsi-nfv-vnf { fraction-digits 1; range "0..max"; } units "Gb"; mandatory true; units "MBytes"; default 1; description "Amount of virtual memory in MB."; reference Loading Loading @@ -773,7 +773,7 @@ submodule etsi-nfv-vnf { type uint16 { range "1..max"; } mandatory true; default 1; description "Number of virtual CPUs."; reference Loading Loading @@ -820,7 +820,7 @@ submodule etsi-nfv-vnf { container virtual-cpu-pinning { presence "Set to specify CPU pinning."; leaf cpu-pinning-policy { mandatory true; default "dynamic"; type enumeration { enum "static"; enum "dynamic"; Loading Loading @@ -866,7 +866,7 @@ submodule etsi-nfv-vnf { enum "swap"; enum "ephemeral"; } mandatory true; default "root"; description "Type of virtualised storage resource (e.g. volume, object)."; Loading @@ -877,7 +877,7 @@ submodule etsi-nfv-vnf { leaf size-of-storage { type uint64; units "Gb"; mandatory true; default 1; description "Size of virtualised storage resource (e.g. size of volume, in Gb)"; Loading Loading @@ -964,7 +964,7 @@ submodule etsi-nfv-vnf { information element."; } leaf container-format { mandatory true; default "bare"; type enumeration { enum "aki" { description Loading Loading @@ -1004,7 +1004,7 @@ submodule etsi-nfv-vnf { information element."; } leaf disk-format { mandatory true; default "qcow2"; type enumeration { enum "aki" { description Loading Loading @@ -1102,7 +1102,7 @@ submodule etsi-nfv-vnf { information element."; } leaf image { mandatory true; default "."; type inet:uri; description "This is a reference to the actual software image. Loading Loading @@ -1274,10 +1274,12 @@ submodule etsi-nfv-vnf { } } leaf cpd { type leafref { path "deref(../vdu-id)/../int-cpd/id"; } } } } uses virtual-network-interface-requirements; uses vnf-cpd; } Loading Loading @@ -1327,7 +1329,7 @@ submodule etsi-nfv-vnf { } leaf min-number-of-instances { type uint16; mandatory true; default 1; description "Minimum number of instances of the VNFC based on this VDU that is permitted to exist for this flavour."; Loading @@ -1337,7 +1339,7 @@ submodule etsi-nfv-vnf { } leaf max-number-of-instances { type uint16; mandatory true; default 1; must ". >= ../nfv:min-number-of-instances"; reference "GS NFV IFA011: Section 7.1.8.3, VduProfile information Loading Loading @@ -1498,7 +1500,7 @@ submodule etsi-nfv-vnf { must ". >= ../../../../nfv:df/" + "nfv:vdu-profile[id=current()/../nfv:id]/" + "nfv:min-number-of-instances"; mandatory true; default 1; description "Number of instances of VNFC based on this VDU to deploy for this level."; Loading Loading @@ -1795,6 +1797,118 @@ submodule etsi-nfv-vnf { 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 { key "id"; Loading