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 +17 −20 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 @@ -345,7 +342,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 @@ -495,7 +492,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 @@ -755,7 +752,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 @@ -766,7 +763,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 @@ -776,7 +773,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 @@ -988,7 +985,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 @@ -1015,7 +1012,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 @@ -1024,7 +1021,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 @@ -1104,7 +1101,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 @@ -1115,7 +1112,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 @@ -1179,7 +1176,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 @@ -1212,7 +1209,7 @@ submodule etsi-nfv-ns { VirtualLinkToLevelMapping information element"; } uses common:link-bitrate-requirements; uses link-bitrate-requirements; } list ns-to-level-mapping { Loading @@ -1239,7 +1236,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 @@ -1345,7 +1342,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 @@ -1356,7 +1353,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 @@ -1567,7 +1564,7 @@ submodule etsi-nfv-ns { } } } uses common:security-parameters; uses security-parameters; } } } src/yang/etsi-nfv-vnf.yang +124 −10 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ submodule etsi-nfv-vnf { } leaf support-mandatory { mandatory true; default "false"; type boolean; description "Indicates whether fulfilling the constraint is Loading Loading @@ -623,7 +623,7 @@ submodule etsi-nfv-vnf { type uint16 { range "1..max"; } mandatory true; default 1; description "Number of virtual CPUs."; reference Loading Loading @@ -738,7 +738,7 @@ submodule etsi-nfv-vnf { enum "swap"; enum "ephemeral"; } mandatory true; default "root"; description "Type of virtualised storage resource (e.g. volume, object)."; Loading Loading @@ -836,7 +836,7 @@ submodule etsi-nfv-vnf { information element."; } leaf container-format { mandatory true; default "bare"; type enumeration { enum "aki" { description Loading Loading @@ -876,7 +876,7 @@ submodule etsi-nfv-vnf { information element."; } leaf disk-format { mandatory true; default "qcow2"; type enumeration { enum "aki" { description Loading Loading @@ -974,7 +974,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 @@ -1148,10 +1148,12 @@ submodule etsi-nfv-vnf { } } leaf cpd { type leafref { path "deref(../vdu-id)/../int-cpd/id"; } } } } uses virtual-network-interface-requirements; uses cpd; } Loading Loading @@ -1201,7 +1203,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 @@ -1211,7 +1213,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 @@ -1615,7 +1617,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 @@ -2034,6 +2036,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 +17 −20 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 @@ -345,7 +342,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 @@ -495,7 +492,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 @@ -755,7 +752,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 @@ -766,7 +763,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 @@ -776,7 +773,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 @@ -988,7 +985,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 @@ -1015,7 +1012,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 @@ -1024,7 +1021,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 @@ -1104,7 +1101,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 @@ -1115,7 +1112,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 @@ -1179,7 +1176,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 @@ -1212,7 +1209,7 @@ submodule etsi-nfv-ns { VirtualLinkToLevelMapping information element"; } uses common:link-bitrate-requirements; uses link-bitrate-requirements; } list ns-to-level-mapping { Loading @@ -1239,7 +1236,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 @@ -1345,7 +1342,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 @@ -1356,7 +1353,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 @@ -1567,7 +1564,7 @@ submodule etsi-nfv-ns { } } } uses common:security-parameters; uses security-parameters; } } }
src/yang/etsi-nfv-vnf.yang +124 −10 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ submodule etsi-nfv-vnf { } leaf support-mandatory { mandatory true; default "false"; type boolean; description "Indicates whether fulfilling the constraint is Loading Loading @@ -623,7 +623,7 @@ submodule etsi-nfv-vnf { type uint16 { range "1..max"; } mandatory true; default 1; description "Number of virtual CPUs."; reference Loading Loading @@ -738,7 +738,7 @@ submodule etsi-nfv-vnf { enum "swap"; enum "ephemeral"; } mandatory true; default "root"; description "Type of virtualised storage resource (e.g. volume, object)."; Loading Loading @@ -836,7 +836,7 @@ submodule etsi-nfv-vnf { information element."; } leaf container-format { mandatory true; default "bare"; type enumeration { enum "aki" { description Loading Loading @@ -876,7 +876,7 @@ submodule etsi-nfv-vnf { information element."; } leaf disk-format { mandatory true; default "qcow2"; type enumeration { enum "aki" { description Loading Loading @@ -974,7 +974,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 @@ -1148,10 +1148,12 @@ submodule etsi-nfv-vnf { } } leaf cpd { type leafref { path "deref(../vdu-id)/../int-cpd/id"; } } } } uses virtual-network-interface-requirements; uses cpd; } Loading Loading @@ -1201,7 +1203,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 @@ -1211,7 +1213,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 @@ -1615,7 +1617,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 @@ -2034,6 +2036,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