Loading example-data/nfv.xml +11 −37 Original line number Original line Diff line number Diff line Loading @@ -11,14 +11,17 @@ <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 @@ -48,26 +51,14 @@ </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 @@ -106,14 +97,17 @@ <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 @@ -143,26 +137,14 @@ </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 Loading @@ -243,9 +225,7 @@ <id>fw2dpi</id> <id>fw2dpi</id> <version>1.0</version> <version>1.0</version> <connectivity-type> <connectivity-type> <layer-protocol> <layer-protocol>Ethernet</layer-protocol> <protocol>Ethernet</protocol> </layer-protocol> </connectivity-type> </connectivity-type> <df> <df> <id>normal</id> <id>normal</id> Loading @@ -259,9 +239,7 @@ <id>mgmt</id> <id>mgmt</id> <version>1.0</version> <version>1.0</version> <connectivity-type> <connectivity-type> <layer-protocol> <layer-protocol>IPv4</layer-protocol> <protocol>IPv4</protocol> </layer-protocol> </connectivity-type> </connectivity-type> <df> <df> <id>normal</id> <id>normal</id> Loading @@ -275,9 +253,7 @@ <id>r2fw</id> <id>r2fw</id> <version>1.0</version> <version>1.0</version> <connectivity-type> <connectivity-type> <layer-protocol> <layer-protocol>Ethernet</layer-protocol> <protocol>Ethernet</protocol> </layer-protocol> </connectivity-type> </connectivity-type> <df> <df> <id>normal</id> <id>normal</id> Loading Loading @@ -471,9 +447,7 @@ <id>r2fw</id> <id>r2fw</id> <version>1.0</version> <version>1.0</version> <connectivity-type> <connectivity-type> <layer-protocol> <layer-protocol>IPv4</layer-protocol> <protocol>IPv4</protocol> </layer-protocol> </connectivity-type> </connectivity-type> <df> <df> <id>r2fw</id> <id>r2fw</id> Loading src/yang/etsi-nfv-common.yang +28 −271 Original line number Original line Diff line number Diff line Loading @@ -6,13 +6,13 @@ submodule etsi-nfv-common { description description "Common data types for ETSI data models."; "Common data types for ETSI data models."; revision 2019-03-18 { revision 2018-06-19 { description description "Initial revision "Initial revision Common data structures to support VNFD and NSD according to: Common data structures to support VNFD and NSD according to: ETSI GS NFV-IFA 014 Ed261v252 ETSI GS NFV-IFA 014 Ed251v244 ETSI GS NFV-IFA 011 Ed261v254"; ETSI GS NFV-IFA 011 Ed251v243"; } } /* /* Loading Loading @@ -253,20 +253,14 @@ submodule etsi-nfv-common { grouping connectivity-type { grouping connectivity-type { container connectivity-type { container connectivity-type { list layer-protocol { leaf layer-protocol { key "protocol"; mandatory true; leaf protocol { type identityref { type identityref { base layer-protocol; base layer-protocol; } } } description description "Identifies the protocols that the VL uses (Ethernet, "Identifies the protocol this VL gives access to (Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer MPLS, ODU2, IPV4, IPV6, Pseudo-Wire)."; protocol of the VL protocol stack shall always be provided. The lower layer protocols may be included when there are specific requirements on these layers."; reference reference "GS NFV IFA011: Section 7.1.7.3, ConnectivityType "GS NFV IFA011: Section 7.1.7.3, ConnectivityType information element."; information element."; Loading Loading @@ -376,23 +370,30 @@ submodule etsi-nfv-common { } } } } // The following grouping is Cpd information element as defined in // IFA014. IFA011 defines its own Cpd information element, which // is defined in etsi-nfv-vnf.yang file. Do not use this grouping // for inclusion in a Vnf. grouping cpd { grouping cpd { description description "A Cpd information element describes network "The Cpd information element specifies the characteristics of connectivity to a compute resource or a VL."; connection points attached to NFs and NSs. This is an abstract class used as parent for the various Cpd classes. It has an attribute 'trunkMode' which enables the NFVO to identify whether the Cp instantiated from the Cpd is in trunk mode or not."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; leaf id { leaf id { type string; type string; description description "Identifier of this Cpd information element."; "Identifier of this Cpd information element."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } } leaf layer-protocol { leaf-list layer-protocol { mandatory true; default Ethernet; type identityref { type identityref { base layer-protocol; base layer-protocol; } } Loading @@ -401,9 +402,8 @@ submodule etsi-nfv-common { corresponding to the CPD support for connectivity purposes corresponding to the CPD support for connectivity purposes (e.g. Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire, etc.)."; (e.g. Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire, etc.)."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } } leaf role { leaf role { type identityref { type identityref { base cp-role; base cp-role; Loading @@ -415,9 +415,8 @@ submodule etsi-nfv-common { a tree flow pattern within the NS will have legal cpRoles a tree flow pattern within the NS will have legal cpRoles of ROOT and LEAF."; of ROOT and LEAF."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } } leaf description { leaf description { type string; type string; description description Loading @@ -425,140 +424,8 @@ submodule etsi-nfv-common { connection point (e.g. connection point for control plane connection point (e.g. connection point for control plane traffic)."; traffic)."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } list protocol { key "associated-layer-protocol"; leaf associated-layer-protocol { type identityref { base layer-protocol; } description "One of the values of the attribute layerProtocol of the Cpd IE."; reference "GS NFV IFA011: Section 7.1.6.8 CpProtocolData information element"; } list address-data { key "type"; leaf type { type identityref { base address-type; } description "Describes the type of the address to be assigned to the CP instantiated from the parent CPD. Value: • MAC address. • IP address. • Etc. The content type shall be aligned with the address type supported by the layerProtocol attribute of the parent CPD."; reference "GS NFV IFA011: Section 7.1.3.3 AddressData information element"; } container l2-address-data { when "../type='mac-address'"; leaf mac-address-assignment { type boolean; default true; description "Specify if the MAC address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility. If it is set to False, it will be provided by an external entity, e.g. OSS/BSS."; reference "GS NFV IFA011: Section 7.1.3.5 L2AddressData information element"; } description "Provides the information on the MAC addresses to be assigned to the CP(s) instantiated from the parent CPD. Shall be present when the addressType is MAC address."; reference "GS NFV IFA011: Section 7.1.3.3 AddressData information element"; } container l3-address-data { when "../type='ip-address'"; leaf ip-address-assignment { type boolean; default "true"; description "Specify if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility. "; reference "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } leaf floating-ip-activated { type boolean; default "true"; description "Specify if the floating IP scheme is activated on the CP or not."; reference "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } leaf ip-address-type { type enumeration { enum "ipv4"; enum "ipv6"; } description "Define address type. The address type should be aligned with the address type supported by the layerProtocol attribute of the parent VnfExtCpd."; reference "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } leaf number-of-ip-addresses { type uint32; description "Minimum number of IP addresses to be assigned based on this L3AddressData information element."; reference "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } } description "Provides information on the addresses to be assigned to the CP(s) instantiated from the CPD."; reference "GS NFV IFA011: Section 7.1.6.8 CpProtocolData information element"; } } description "Identifies the protocol layering information the CP uses for connectivity purposes and associated information. There shall be one cpProtocol for each layer protocol as indicated by the attribute layerProtocol. When a PnfExtCpd as defined in ETSI GS NFV-IFA 014 [i.8] is inherited from this Cpd, the cardinality is set to 0."; reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; } leaf trunk-mode { leaf trunk-mode { type boolean; type boolean; description description Loading @@ -569,117 +436,7 @@ submodule etsi-nfv-common { is not configured for the Cp i.e. It is equivalent to is not configured for the Cp i.e. It is equivalent to Boolean value 'false'."; Boolean value 'false'."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } leaf security-group-rule-id { type leafref { path "/nfv/vnfd/security-group-rule/id"; } description "Reference of the security group rules bound to this CPD."; reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; } } grouping security-group-rule { list security-group-rule { key "id"; leaf id { type string; description "Identifier of this SecurityGroupRule information element."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf description { type string; description "Human readable description of the security group rule."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf direction { type enumeration { enum ingress; enum egress; } default "ingress"; description "The direction in which the security group rule is applied. Permitted values: INGRESS, EGRESS. Defaults to INGRESS."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf ether-type { type enumeration { enum ipv4; enum ipv6; } default "ipv4"; description "Indicates the protocol carried over the Ethernet layer. Permitted values: IPV4, IPV6. Defaults to IPV4."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf protocol { type enumeration { enum tcp; enum udp; enum icmp; } default "tcp"; description "Indicates the protocol carried over the IP layer. Permitted values: any protocol defined in the IANA protocol registry, e.g. TCP, UDP, ICMP, etc. Defaults to TCP."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf port-range-min { must ". <= ../port-range-max"; type uint16; default "0"; description "Indicates minimum port number in the range that is matched by the security group rule. Defaults to 0."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf port-range-max { must ". >= ../port-range-min"; type uint16; default "65535"; description "Indicates maximum port number in the range that is matched by the security group rule. Defaults to 65535."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } description "Defines security group rules to be used by the VNF."; reference "GS NFV IFA011: Section 7.1.2, VNFD information element."; } } } } } } src/yang/etsi-nfv-ns.yang +25 −23 Original line number Original line Diff line number Diff line Loading @@ -4,21 +4,24 @@ submodule etsi-nfv-ns { prefix nfv; prefix nfv; } } include etsi-nfv-common; import etsi-nfv-common { prefix common; } include etsi-nfv-vnf; include etsi-nfv-vnf; include etsi-nfv-pnf; include etsi-nfv-pnf; description description "Models for NS according to ETSI GS NFV-IFA 014."; "Models for NS according to ETSI GS NFV-IFA 014."; revision 2019-03-18 { revision 2017-01-20 { description description "Initial revision "Initial revision Common data structure to support NSD according to: Common data structure to support NSD according to: ETSI GS NFV-IFA 014 Ed261v252"; ETSI GS NFV-IFA 011 Ed251v243"; reference reference "ETSI GS NFV-IFA 014 Ed261v252"; "ETSI GS NFV-IFA 011 Ed251v243"; } } grouping resource-handle { grouping resource-handle { Loading Loading @@ -130,7 +133,7 @@ submodule etsi-nfv-ns { description description "Identifier of this Cpd information element."; "Identifier of this Cpd information element."; reference reference "GS NFV IFA014: Section 6.6.3.1 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } } leaf address-assignment { leaf address-assignment { Loading Loading @@ -245,7 +248,7 @@ submodule etsi-nfv-ns { information element"; information element"; } } uses connectivity-type; uses common:connectivity-type; list df { list df { key "id"; key "id"; Loading @@ -269,7 +272,6 @@ submodule etsi-nfv-ns { } } container qos { container qos { presence "VL QoS parameters"; description description "The QoS information element specifies quality of "The QoS information element specifies quality of service parameters applicable to a VL."; service parameters applicable to a VL."; Loading Loading @@ -362,7 +364,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 security-parameters; uses common:security-parameters; } } list vnffgd { list vnffgd { Loading Loading @@ -483,7 +485,7 @@ submodule etsi-nfv-ns { } } container ns { container ns { leaf nsd-id { leaf nsd-id { must ". = deref(../../nested-ns-profile-id)/../nsd-id" { must ". = deref(../../ns-profile-id)/../nsd-id" { } } type leafref { type leafref { Loading Loading @@ -743,7 +745,7 @@ submodule etsi-nfv-ns { } } leaf min-number-of-instances { leaf min-number-of-instances { default 1; mandatory true; 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 @@ -754,7 +756,7 @@ submodule etsi-nfv-ns { } } leaf max-number-of-instances { leaf max-number-of-instances { default 1; mandatory true; 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 @@ -764,7 +766,7 @@ submodule etsi-nfv-ns { element"; element"; } } uses local-affinity-or-anti-affinity-rule; uses common:local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { list affinity-or-anti-affinity-group { key "id"; key "id"; Loading Loading @@ -930,7 +932,7 @@ submodule etsi-nfv-ns { information element"; information element"; } } uses local-affinity-or-anti-affinity-rule; uses common:local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { list affinity-or-anti-affinity-group { key "id"; key "id"; Loading @@ -957,7 +959,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 link-bitrate-requirements; uses common:link-bitrate-requirements; } } container min-bitrate-requirements { container min-bitrate-requirements { description description Loading @@ -966,7 +968,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 link-bitrate-requirements; uses common:link-bitrate-requirements; } } } } Loading Loading @@ -1046,7 +1048,7 @@ submodule etsi-nfv-ns { leaf affinity-type { leaf affinity-type { mandatory true; mandatory true; type affinity-type; type common: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 @@ -1057,7 +1059,7 @@ submodule etsi-nfv-ns { leaf affinity-scope { leaf affinity-scope { mandatory true; mandatory true; type affinity-scope; type common: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 @@ -1121,7 +1123,7 @@ submodule etsi-nfv-ns { } } leaf number-of-instances { leaf number-of-instances { default 1; mandatory true; type uint32; type uint32; description description "Specifies the number of VNF instances required for "Specifies the number of VNF instances required for Loading Loading @@ -1154,7 +1156,7 @@ submodule etsi-nfv-ns { VirtualLinkToLevelMapping information element"; VirtualLinkToLevelMapping information element"; } } uses link-bitrate-requirements; uses common:link-bitrate-requirements; } } list ns-to-level-mapping { list ns-to-level-mapping { Loading @@ -1181,7 +1183,7 @@ submodule etsi-nfv-ns { } } leaf number-of-instances { leaf number-of-instances { default 1; mandatory true; type uint32; type uint32; description description "Specifies the number of nested NS instances required "Specifies the number of nested NS instances required Loading Loading @@ -1287,7 +1289,7 @@ submodule etsi-nfv-ns { } } leaf min-number-of-instances { leaf min-number-of-instances { type uint16; type uint16; default 1; mandatory true; 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 @@ -1298,7 +1300,7 @@ submodule etsi-nfv-ns { } } leaf max-number-of-instances { leaf max-number-of-instances { type uint16; type uint16; default 1; mandatory true; 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 @@ -1482,7 +1484,7 @@ submodule etsi-nfv-ns { } } } } } } uses security-parameters; uses common:security-parameters; } } } } } } src/yang/etsi-nfv-pnf.yang +3 −4 Original line number Original line Diff line number Diff line Loading @@ -12,15 +12,15 @@ submodule etsi-nfv-pnf { description description "Models for PNFD according to GS NFV-IFA 014."; "Models for PNFD according to GS NFV-IFA 014."; revision 2019-03-18 { revision 2018-06-25 { description description "Initial revision. "Initial revision. Common data structure to support VNFD according to: Common data structure to support VNFD according to: ETSI GS NFV-IFA 014 Ed261v252"; ETSI GS NFV-IFA 014 Ed251v244"; reference reference "ETSI GS NFV-IFA 014 Ed261v252"; "ETSI GS NFV-IFA 014 Ed251v244"; } } grouping pnfd { grouping pnfd { Loading Loading @@ -111,7 +111,6 @@ submodule etsi-nfv-pnf { reference reference "GS NFV-IFA014: Section 6.6.2, Pnfd information element"; "GS NFV-IFA014: Section 6.6.2, Pnfd information element"; } } uses security-group-rule; } } } } } } src/yang/etsi-nfv-vnf.yang +178 −188 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
example-data/nfv.xml +11 −37 Original line number Original line Diff line number Diff line Loading @@ -11,14 +11,17 @@ <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 @@ -48,26 +51,14 @@ </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 @@ -106,14 +97,17 @@ <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 @@ -143,26 +137,14 @@ </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 Loading @@ -243,9 +225,7 @@ <id>fw2dpi</id> <id>fw2dpi</id> <version>1.0</version> <version>1.0</version> <connectivity-type> <connectivity-type> <layer-protocol> <layer-protocol>Ethernet</layer-protocol> <protocol>Ethernet</protocol> </layer-protocol> </connectivity-type> </connectivity-type> <df> <df> <id>normal</id> <id>normal</id> Loading @@ -259,9 +239,7 @@ <id>mgmt</id> <id>mgmt</id> <version>1.0</version> <version>1.0</version> <connectivity-type> <connectivity-type> <layer-protocol> <layer-protocol>IPv4</layer-protocol> <protocol>IPv4</protocol> </layer-protocol> </connectivity-type> </connectivity-type> <df> <df> <id>normal</id> <id>normal</id> Loading @@ -275,9 +253,7 @@ <id>r2fw</id> <id>r2fw</id> <version>1.0</version> <version>1.0</version> <connectivity-type> <connectivity-type> <layer-protocol> <layer-protocol>Ethernet</layer-protocol> <protocol>Ethernet</protocol> </layer-protocol> </connectivity-type> </connectivity-type> <df> <df> <id>normal</id> <id>normal</id> Loading Loading @@ -471,9 +447,7 @@ <id>r2fw</id> <id>r2fw</id> <version>1.0</version> <version>1.0</version> <connectivity-type> <connectivity-type> <layer-protocol> <layer-protocol>IPv4</layer-protocol> <protocol>IPv4</protocol> </layer-protocol> </connectivity-type> </connectivity-type> <df> <df> <id>r2fw</id> <id>r2fw</id> Loading
src/yang/etsi-nfv-common.yang +28 −271 Original line number Original line Diff line number Diff line Loading @@ -6,13 +6,13 @@ submodule etsi-nfv-common { description description "Common data types for ETSI data models."; "Common data types for ETSI data models."; revision 2019-03-18 { revision 2018-06-19 { description description "Initial revision "Initial revision Common data structures to support VNFD and NSD according to: Common data structures to support VNFD and NSD according to: ETSI GS NFV-IFA 014 Ed261v252 ETSI GS NFV-IFA 014 Ed251v244 ETSI GS NFV-IFA 011 Ed261v254"; ETSI GS NFV-IFA 011 Ed251v243"; } } /* /* Loading Loading @@ -253,20 +253,14 @@ submodule etsi-nfv-common { grouping connectivity-type { grouping connectivity-type { container connectivity-type { container connectivity-type { list layer-protocol { leaf layer-protocol { key "protocol"; mandatory true; leaf protocol { type identityref { type identityref { base layer-protocol; base layer-protocol; } } } description description "Identifies the protocols that the VL uses (Ethernet, "Identifies the protocol this VL gives access to (Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer MPLS, ODU2, IPV4, IPV6, Pseudo-Wire)."; protocol of the VL protocol stack shall always be provided. The lower layer protocols may be included when there are specific requirements on these layers."; reference reference "GS NFV IFA011: Section 7.1.7.3, ConnectivityType "GS NFV IFA011: Section 7.1.7.3, ConnectivityType information element."; information element."; Loading Loading @@ -376,23 +370,30 @@ submodule etsi-nfv-common { } } } } // The following grouping is Cpd information element as defined in // IFA014. IFA011 defines its own Cpd information element, which // is defined in etsi-nfv-vnf.yang file. Do not use this grouping // for inclusion in a Vnf. grouping cpd { grouping cpd { description description "A Cpd information element describes network "The Cpd information element specifies the characteristics of connectivity to a compute resource or a VL."; connection points attached to NFs and NSs. This is an abstract class used as parent for the various Cpd classes. It has an attribute 'trunkMode' which enables the NFVO to identify whether the Cp instantiated from the Cpd is in trunk mode or not."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; leaf id { leaf id { type string; type string; description description "Identifier of this Cpd information element."; "Identifier of this Cpd information element."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } } leaf layer-protocol { leaf-list layer-protocol { mandatory true; default Ethernet; type identityref { type identityref { base layer-protocol; base layer-protocol; } } Loading @@ -401,9 +402,8 @@ submodule etsi-nfv-common { corresponding to the CPD support for connectivity purposes corresponding to the CPD support for connectivity purposes (e.g. Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire, etc.)."; (e.g. Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire, etc.)."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } } leaf role { leaf role { type identityref { type identityref { base cp-role; base cp-role; Loading @@ -415,9 +415,8 @@ submodule etsi-nfv-common { a tree flow pattern within the NS will have legal cpRoles a tree flow pattern within the NS will have legal cpRoles of ROOT and LEAF."; of ROOT and LEAF."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } } leaf description { leaf description { type string; type string; description description Loading @@ -425,140 +424,8 @@ submodule etsi-nfv-common { connection point (e.g. connection point for control plane connection point (e.g. connection point for control plane traffic)."; traffic)."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } list protocol { key "associated-layer-protocol"; leaf associated-layer-protocol { type identityref { base layer-protocol; } description "One of the values of the attribute layerProtocol of the Cpd IE."; reference "GS NFV IFA011: Section 7.1.6.8 CpProtocolData information element"; } list address-data { key "type"; leaf type { type identityref { base address-type; } description "Describes the type of the address to be assigned to the CP instantiated from the parent CPD. Value: • MAC address. • IP address. • Etc. The content type shall be aligned with the address type supported by the layerProtocol attribute of the parent CPD."; reference "GS NFV IFA011: Section 7.1.3.3 AddressData information element"; } container l2-address-data { when "../type='mac-address'"; leaf mac-address-assignment { type boolean; default true; description "Specify if the MAC address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility. If it is set to False, it will be provided by an external entity, e.g. OSS/BSS."; reference "GS NFV IFA011: Section 7.1.3.5 L2AddressData information element"; } description "Provides the information on the MAC addresses to be assigned to the CP(s) instantiated from the parent CPD. Shall be present when the addressType is MAC address."; reference "GS NFV IFA011: Section 7.1.3.3 AddressData information element"; } container l3-address-data { when "../type='ip-address'"; leaf ip-address-assignment { type boolean; default "true"; description "Specify if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility. "; reference "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } leaf floating-ip-activated { type boolean; default "true"; description "Specify if the floating IP scheme is activated on the CP or not."; reference "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } leaf ip-address-type { type enumeration { enum "ipv4"; enum "ipv6"; } description "Define address type. The address type should be aligned with the address type supported by the layerProtocol attribute of the parent VnfExtCpd."; reference "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } leaf number-of-ip-addresses { type uint32; description "Minimum number of IP addresses to be assigned based on this L3AddressData information element."; reference "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } } description "Provides information on the addresses to be assigned to the CP(s) instantiated from the CPD."; reference "GS NFV IFA011: Section 7.1.6.8 CpProtocolData information element"; } } description "Identifies the protocol layering information the CP uses for connectivity purposes and associated information. There shall be one cpProtocol for each layer protocol as indicated by the attribute layerProtocol. When a PnfExtCpd as defined in ETSI GS NFV-IFA 014 [i.8] is inherited from this Cpd, the cardinality is set to 0."; reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; } leaf trunk-mode { leaf trunk-mode { type boolean; type boolean; description description Loading @@ -569,117 +436,7 @@ submodule etsi-nfv-common { is not configured for the Cp i.e. It is equivalent to is not configured for the Cp i.e. It is equivalent to Boolean value 'false'."; Boolean value 'false'."; reference reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } leaf security-group-rule-id { type leafref { path "/nfv/vnfd/security-group-rule/id"; } description "Reference of the security group rules bound to this CPD."; reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; } } grouping security-group-rule { list security-group-rule { key "id"; leaf id { type string; description "Identifier of this SecurityGroupRule information element."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf description { type string; description "Human readable description of the security group rule."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf direction { type enumeration { enum ingress; enum egress; } default "ingress"; description "The direction in which the security group rule is applied. Permitted values: INGRESS, EGRESS. Defaults to INGRESS."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf ether-type { type enumeration { enum ipv4; enum ipv6; } default "ipv4"; description "Indicates the protocol carried over the Ethernet layer. Permitted values: IPV4, IPV6. Defaults to IPV4."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf protocol { type enumeration { enum tcp; enum udp; enum icmp; } default "tcp"; description "Indicates the protocol carried over the IP layer. Permitted values: any protocol defined in the IANA protocol registry, e.g. TCP, UDP, ICMP, etc. Defaults to TCP."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf port-range-min { must ". <= ../port-range-max"; type uint16; default "0"; description "Indicates minimum port number in the range that is matched by the security group rule. Defaults to 0."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } leaf port-range-max { must ". >= ../port-range-min"; type uint16; default "65535"; description "Indicates maximum port number in the range that is matched by the security group rule. Defaults to 65535."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; } description "Defines security group rules to be used by the VNF."; reference "GS NFV IFA011: Section 7.1.2, VNFD information element."; } } } } } }
src/yang/etsi-nfv-ns.yang +25 −23 Original line number Original line Diff line number Diff line Loading @@ -4,21 +4,24 @@ submodule etsi-nfv-ns { prefix nfv; prefix nfv; } } include etsi-nfv-common; import etsi-nfv-common { prefix common; } include etsi-nfv-vnf; include etsi-nfv-vnf; include etsi-nfv-pnf; include etsi-nfv-pnf; description description "Models for NS according to ETSI GS NFV-IFA 014."; "Models for NS according to ETSI GS NFV-IFA 014."; revision 2019-03-18 { revision 2017-01-20 { description description "Initial revision "Initial revision Common data structure to support NSD according to: Common data structure to support NSD according to: ETSI GS NFV-IFA 014 Ed261v252"; ETSI GS NFV-IFA 011 Ed251v243"; reference reference "ETSI GS NFV-IFA 014 Ed261v252"; "ETSI GS NFV-IFA 011 Ed251v243"; } } grouping resource-handle { grouping resource-handle { Loading Loading @@ -130,7 +133,7 @@ submodule etsi-nfv-ns { description description "Identifier of this Cpd information element."; "Identifier of this Cpd information element."; reference reference "GS NFV IFA014: Section 6.6.3.1 Cpd information element"; "GS NFC IFA014: Section 6.6.3.1 Cpd information element"; } } leaf address-assignment { leaf address-assignment { Loading Loading @@ -245,7 +248,7 @@ submodule etsi-nfv-ns { information element"; information element"; } } uses connectivity-type; uses common:connectivity-type; list df { list df { key "id"; key "id"; Loading @@ -269,7 +272,6 @@ submodule etsi-nfv-ns { } } container qos { container qos { presence "VL QoS parameters"; description description "The QoS information element specifies quality of "The QoS information element specifies quality of service parameters applicable to a VL."; service parameters applicable to a VL."; Loading Loading @@ -362,7 +364,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 security-parameters; uses common:security-parameters; } } list vnffgd { list vnffgd { Loading Loading @@ -483,7 +485,7 @@ submodule etsi-nfv-ns { } } container ns { container ns { leaf nsd-id { leaf nsd-id { must ". = deref(../../nested-ns-profile-id)/../nsd-id" { must ". = deref(../../ns-profile-id)/../nsd-id" { } } type leafref { type leafref { Loading Loading @@ -743,7 +745,7 @@ submodule etsi-nfv-ns { } } leaf min-number-of-instances { leaf min-number-of-instances { default 1; mandatory true; 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 @@ -754,7 +756,7 @@ submodule etsi-nfv-ns { } } leaf max-number-of-instances { leaf max-number-of-instances { default 1; mandatory true; 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 @@ -764,7 +766,7 @@ submodule etsi-nfv-ns { element"; element"; } } uses local-affinity-or-anti-affinity-rule; uses common:local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { list affinity-or-anti-affinity-group { key "id"; key "id"; Loading Loading @@ -930,7 +932,7 @@ submodule etsi-nfv-ns { information element"; information element"; } } uses local-affinity-or-anti-affinity-rule; uses common:local-affinity-or-anti-affinity-rule; list affinity-or-anti-affinity-group { list affinity-or-anti-affinity-group { key "id"; key "id"; Loading @@ -957,7 +959,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 link-bitrate-requirements; uses common:link-bitrate-requirements; } } container min-bitrate-requirements { container min-bitrate-requirements { description description Loading @@ -966,7 +968,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 link-bitrate-requirements; uses common:link-bitrate-requirements; } } } } Loading Loading @@ -1046,7 +1048,7 @@ submodule etsi-nfv-ns { leaf affinity-type { leaf affinity-type { mandatory true; mandatory true; type affinity-type; type common: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 @@ -1057,7 +1059,7 @@ submodule etsi-nfv-ns { leaf affinity-scope { leaf affinity-scope { mandatory true; mandatory true; type affinity-scope; type common: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 @@ -1121,7 +1123,7 @@ submodule etsi-nfv-ns { } } leaf number-of-instances { leaf number-of-instances { default 1; mandatory true; type uint32; type uint32; description description "Specifies the number of VNF instances required for "Specifies the number of VNF instances required for Loading Loading @@ -1154,7 +1156,7 @@ submodule etsi-nfv-ns { VirtualLinkToLevelMapping information element"; VirtualLinkToLevelMapping information element"; } } uses link-bitrate-requirements; uses common:link-bitrate-requirements; } } list ns-to-level-mapping { list ns-to-level-mapping { Loading @@ -1181,7 +1183,7 @@ submodule etsi-nfv-ns { } } leaf number-of-instances { leaf number-of-instances { default 1; mandatory true; type uint32; type uint32; description description "Specifies the number of nested NS instances required "Specifies the number of nested NS instances required Loading Loading @@ -1287,7 +1289,7 @@ submodule etsi-nfv-ns { } } leaf min-number-of-instances { leaf min-number-of-instances { type uint16; type uint16; default 1; mandatory true; 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 @@ -1298,7 +1300,7 @@ submodule etsi-nfv-ns { } } leaf max-number-of-instances { leaf max-number-of-instances { type uint16; type uint16; default 1; mandatory true; 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 @@ -1482,7 +1484,7 @@ submodule etsi-nfv-ns { } } } } } } uses security-parameters; uses common:security-parameters; } } } } } }
src/yang/etsi-nfv-pnf.yang +3 −4 Original line number Original line Diff line number Diff line Loading @@ -12,15 +12,15 @@ submodule etsi-nfv-pnf { description description "Models for PNFD according to GS NFV-IFA 014."; "Models for PNFD according to GS NFV-IFA 014."; revision 2019-03-18 { revision 2018-06-25 { description description "Initial revision. "Initial revision. Common data structure to support VNFD according to: Common data structure to support VNFD according to: ETSI GS NFV-IFA 014 Ed261v252"; ETSI GS NFV-IFA 014 Ed251v244"; reference reference "ETSI GS NFV-IFA 014 Ed261v252"; "ETSI GS NFV-IFA 014 Ed251v244"; } } grouping pnfd { grouping pnfd { Loading Loading @@ -111,7 +111,6 @@ submodule etsi-nfv-pnf { reference reference "GS NFV-IFA014: Section 6.6.2, Pnfd information element"; "GS NFV-IFA014: Section 6.6.2, Pnfd information element"; } } uses security-group-rule; } } } } } }
src/yang/etsi-nfv-vnf.yang +178 −188 File changed.Preview size limit exceeded, changes collapsed. Show changes