From d27599fb3500f160cc9b0b61cb91ee850479189b Mon Sep 17 00:00:00 2001 From: Preethika Date: Thu, 28 Jan 2021 06:04:37 +0000 Subject: [PATCH 01/25] Issue#24 Add fixedIpAddress attribute to L3AddressData Signed-off-by: Preethika --- src/yang/etsi-nfv-common.yang | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang index 18ba9a8..52befdf 100644 --- a/src/yang/etsi-nfv-common.yang +++ b/src/yang/etsi-nfv-common.yang @@ -843,6 +843,16 @@ submodule etsi-nfv-common { "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; } + + leaf fixed-ip-address { + type string; + description + "IP address to be assigned to the CP instance."; + reference + "GS NFV IFA011: Section 7.1.3.4, L3AddressData + information element."; + } + } description "Provides information on the addresses to be assigned to the -- GitLab From 3675c8a88b97ed3866d927026198ca45c72fce62 Mon Sep 17 00:00:00 2001 From: Preethika Date: Fri, 29 Jan 2021 10:46:16 +0000 Subject: [PATCH 02/25] Issue#25 FEAT02 add identifier ChangeCurrentVnfPackageOpConfig and fix cardinality Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 6b5f2dc..45da3f4 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -2473,7 +2473,8 @@ submodule etsi-nfv-vnf { } } - container change-current-vnf-package-op-config { + list change-current-vnf-package-op-config { + key "id"; description "Configuration parameters for the ChangeCurrentVnfPackageOpConfig operation."; @@ -2481,6 +2482,16 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.5.2 VnfLcmOperationsConfiguration information element"; + leaf id { + type string; + description + "Identifier of this parameter set for later referencing."; + reference + "GS NFV IFA011: Section 7.1.5.13 + ChangeCurrentVnfPackageOpConfig information + element"; + } + list parameter { key "key"; @@ -3407,7 +3418,7 @@ submodule etsi-nfv-vnf { leaf additional-params-id { type leafref { path "../../df/lcm-operations-configuration/" + - "change-current-vnf-package-op-config/parameter/key"; + "change-current-vnf-package-op-config/id"; } description "References the ChangeCurrentVnfPackageOpConfig information -- GitLab From 09b58d458568b15f99674cc8130d2b1b479cd3fb Mon Sep 17 00:00:00 2001 From: Preethika Date: Mon, 1 Feb 2021 05:38:57 +0000 Subject: [PATCH 03/25] issue#26 Fixes for IFA011ed341 based on 942 part1, part2 and part3 Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 39 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 6b5f2dc..c365b8b 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -866,7 +866,8 @@ submodule etsi-nfv-vnf { enum "dynamic"; } description - "The policy can take values of 'static' or 'dynamic'. + "Indicates the policy for CPU pinning. + The policy can take values of 'static' or 'dynamic'. In case of 'static' the virtual CPU cores are requested to be allocated to logical CPU cores according to the rules defined in @@ -890,29 +891,13 @@ submodule etsi-nfv-vnf { type string; } description - "A list of rules that should be considered during the + "List of rules that should be considered during the allocation of the virtual CPUs to logical CPUs in case of 'static' virtualCpuPinningPolicy."; reference "GS NFV IFA011: Section 7.1.9.2.4, VirtualCpuPinningData information element."; } - - leaf-list cpu-policy { - type enumeration { - enum "dedicated"; - enum "shared"; - } - description - "Shows the list of dedicated virtual CPU cores and - shared virtual CPU cores in a VM. Dedicated refers to - a virtual CPU core occupies one physical CPU core. - Shared refers to multi virtual CPU cores shared one - physical CPU core."; - reference - "GS NFV IFA011: Section 7.1.9.2.4, - VirtualCpuPinningData information element."; - } description "The virtual CPU pinning configuration for the virtualised compute resource."; @@ -1541,7 +1526,7 @@ submodule etsi-nfv-vnf { virtual IP addresses allocated when a VipCp instance is created from the VipCpd."; reference - "GS NFV IFA011: Section 7.1.x, VipCpd information element."; + "GS NFV IFA011: Section 7.1.17.2, VipCpd information element."; } leaf-list vnf-ext-cpd { @@ -1554,7 +1539,7 @@ submodule etsi-nfv-vnf { virtual IP addresses allocated when a VipCp instance is created from the VipCpd."; reference - "GS NFV IFA011: Section 7.1.x, VipCpd information element."; + "GS NFV IFA011: Section 7.1.17.2, VipCpd information element."; } leaf vip-function { @@ -1565,7 +1550,7 @@ submodule etsi-nfv-vnf { "It indicates the function the virtual IP address is used for. Permitted values: high availability, load balancing."; reference - "GS NFV IFA011: Section 7.1.x, VipCpd information element."; + "GS NFV IFA011: Section 7.1.17.2, VipCpd information element."; } uses cpd; @@ -1651,7 +1636,7 @@ submodule etsi-nfv-vnf { path "../../affinity-or-anti-affinity-group/id"; } description - "Identifier(s) of the affinity or anti-affinity + "References of the affinity or anti-affinity group(s) the VDU belongs to."; reference "GS NFV IFA011: Section 7.1.8.3, VduProfile information @@ -1708,7 +1693,7 @@ submodule etsi-nfv-vnf { path "../../affinity-or-anti-affinity-group/id"; } description - "Identifier(s) of the affinity or anti-affinity + "References of the affinity or anti-affinity group(s) the VnfVirtualLinkDesc belongs to."; reference "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile @@ -2085,10 +2070,10 @@ submodule etsi-nfv-vnf { path "../instantiation-level/id"; } description - "This attribute references the 'instantiationLevel' - entry which defines the default instantiation level for - this DF. It shall be present if there are multiple - 'instantiationLevel' entries."; + "References the 'instantiationLevel' entry which defines + the default instantiation level for this DF. It shall be + present if there are multiple 'instantiationLevel' + entries."; reference "GS NFV IFA011: Section 7.1.8.2 VnfDf information element"; -- GitLab From bbc9f5df6b0fd1da473e86d9ba56f8254cb48ac8 Mon Sep 17 00:00:00 2001 From: Preethika Date: Mon, 1 Feb 2021 10:52:31 +0000 Subject: [PATCH 04/25] issue#27 Adding Trunk port logical topology in VDU Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 79 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 6b5f2dc..506388e 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -586,6 +586,85 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.6.7, VnfcConfigurableProperties Information element."; } + + list trunk-port { + key "parent-port-cpd"; + description + "Specifies the logical topology between an intCpd in + trunk mode, used to describe a trunk port, and other + intCpds used to describe subports of the same trunk. + + Cardinality 0 is used when there is no intCpd with + trunkmode = True, or when no individual intCpds to + describe the subports are included in the Vdu."; + reference + "GS NFV IFA011: Section 7.1.6.2, Vdu information element"; + + leaf parent-port-cpd { + type leafref { + path "../int-cpd/id"; + } + description + "Reference of the internal VDU CPD which is used to + instantiate the parent port in a logical trunk model."; + reference + "GS NFV IFA011: Section 7.1.6.11, Information elements + related to TrunkPort Topology."; + } + leaf segmentation-type { + default "vlan"; + type enumeration { + enum "vlan"; + enum "inherit"; + } + description + "Specifies the encapsulation type for the traffics + coming in and out of the trunk subport. + Values: + • VLAN: the subport uses VLAN as encapsulation type. + • INHERIT: the subport gets its segmentation type + from the network it’s connected to. + + Cardinality 0 means default value VLAN is used."; + reference + "GS NFV IFA011: Section 7.1.6.11, Information elements + related to TrunkPort Topology."; + } + + list sub-port-list { + key "sub-port-cpd"; + description + "Provides information used for the subport."; + reference + "GS NFV IFA011: Section 7.1.6.11, Information elements + related to subport of a trunk parent port."; + + leaf sub-port-cpd{ + type leafref { + path "../../int-cpd/id"; + } + description + "Reference of the internal VDU CPD which is used + to instantiate the subport in a logical trunk model."; + reference + "GS NFV IFA011: Section 7.1.6.12, Information elements + related to subport of a trunk parent port."; + } + leaf segmentation-id { + type unit32; + description + "Specifies the segmentation ID for the subport, which is + used to differentiate the traffics on different networks + coming in and out of the trunk port. If a value is provided + here it may be overridden by a value provided at run time + when the infrastructure doesn’t support mapping of + segmentation IDs."; + reference + "GS NFV IFA011: Section 7.1.6.12, Information elements + related to subport of a trunk parent port."; + } + } + } } list virtual-compute-desc { -- GitLab From 2f2e2b42bc9478f2c37afc71022210caaab5add8 Mon Sep 17 00:00:00 2001 From: Preethika Date: Tue, 2 Feb 2021 07:05:49 +0000 Subject: [PATCH 05/25] issue#28 Fixes Enum Values and description from IFA011ed341 Signed-off-by: Preethika --- src/yang/etsi-nfv-common.yang | 79 ++++++++++++++++++-------- src/yang/etsi-nfv-vnf.yang | 104 ++++++++++++++++++++++------------ 2 files changed, 125 insertions(+), 58 deletions(-) diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang index 18ba9a8..16662c0 100644 --- a/src/yang/etsi-nfv-common.yang +++ b/src/yang/etsi-nfv-common.yang @@ -482,8 +482,11 @@ submodule etsi-nfv-common { "Applicable to VirtualComputeDesc and VirtualStorageDesc. When present, specifies the allowed migration types in the order of preference in case of an impact starting with the - most preferred type. Possible values: NO_MIGRATION, - OFFLINE_MIGRATION, LIVE_MIGRATION."; + most preferred type. + Values: + • NO_MIGRATION + • OFFLINE_MIGRATION + • LIVE_MIGRATION."; reference "GS NFV-IFA011: Section 7.1.8.17, NfviMaintenanceInfo information element"; @@ -565,11 +568,15 @@ submodule etsi-nfv-common { } min-elements 1; description - "Identifies the protocols that the VL uses (Ethernet, - MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer - 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."; + "Specifies the protocols that the VL uses + Values: + • Ethernet + • MPLS + • ODU2 + • IPV4 + • IPV6 + • Pseudo-Wire + • etc."; reference "GS NFV IFA011: Section 7.1.7.3, ConnectivityType information element."; @@ -578,7 +585,7 @@ submodule etsi-nfv-common { leaf flow-pattern { type flow-pattern; description - "Identifies the flow pattern of the connectivity (Line, + "Specifies the flow pattern of the connectivity (Line, Tree, Mesh)."; reference "GS NFV IFA011: Section 7.1.7.3, ConnectivityType @@ -700,9 +707,15 @@ submodule etsi-nfv-common { base layer-protocol; } description - "Identifies a protocol that the connection points - corresponding to the CPD support for connectivity purposes - (e.g. Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire, etc.)."; + "Specifies which protocol the CP uses for connectivity purposes + Values: + • Ethernet + • MPLS + • ODU2 + • IPV4 + • IPV6 + • Pseudo-Wire + • etc."; reference "GS NFV IFA011: Section 7.1.6.3 Cpd information element"; } @@ -740,7 +753,15 @@ submodule etsi-nfv-common { } description "One of the values of the attribute layerProtocol of the Cpd - IE."; + IE. + Values: + • Ethernet + • MPLS + • ODU2 + • IPV4 + • IPV6 + • Pseudo-Wire + • etc."; reference "GS NFV IFA011: Section 7.1.6.8 CpProtocolData information element"; @@ -756,10 +777,10 @@ submodule etsi-nfv-common { description "Describes the type of the address to be assigned to the CP instantiated from the parent CPD. - Value: - • MAC address. - • IP address. - • Etc. + Values: + • MAC address + • IP address + • etc. The content type shall be aligned with the address type supported by the layerProtocol attribute of the parent CPD."; @@ -826,9 +847,10 @@ submodule etsi-nfv-common { 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."; + "Define address type. + Values: + • IPV4 + • IPV6."; reference "GS NFV IFA011: Section 7.1.3.4, L3AddressData information element."; @@ -907,7 +929,10 @@ submodule etsi-nfv-common { default "ingress"; description "The direction in which the security group rule is applied. - Permitted values: INGRESS, EGRESS. Defaults to INGRESS."; + Values: + • INGRESS + • EGRESS + Defaults to INGRESS."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; @@ -921,7 +946,10 @@ submodule etsi-nfv-common { default "ipv4"; description "Indicates the protocol carried over the Ethernet layer. - Permitted values: IPV4, IPV6. Defaults to IPV4."; + Values: + • IPV4 + • IPV6 + Defaults to IPV4."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; @@ -937,8 +965,13 @@ submodule etsi-nfv-common { 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."; + protocol registry. + Values: + • TCP + • UDP + • ICMP + • etc. + Defaults to TCP."; reference "GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule information element."; diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 6b5f2dc..dd7eb37 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -194,7 +194,10 @@ submodule etsi-nfv-vnf { type affinity-type; description "Specifies whether the rule is an affinity rule or an - anti-affinity rule."; + anti-affinity rule + Values + • affinity + • anti-affinity."; reference "GS NFV IFA011: Section 7.1.8.11, LocalAffinityOrAntiAffinityRule information element."; @@ -203,9 +206,13 @@ submodule etsi-nfv-vnf { leaf scope { type affinity-scope; description - "Specifies the scope of the rule. Possible values are - 'NFVI-PoP', 'Zone', 'ZoneGroup', 'NFVI-node', and - 'network-link-and-node'."; + "Specifies the scope of the rule. + Values: + • NFVI-PoP + • Zone + • ZoneGroup + • NFVI-node + • network-link-and-node."; reference "GS NFV IFA011: Section 7.1.8.11, LocalAffinityOrAntiAffinityRule information element."; @@ -436,7 +443,8 @@ submodule etsi-nfv-vnf { "Describes the type of the virtual network interface realizing the CPs instantiated from this CPD. This is used to determine which mechanism driver(s) to be used - to bind the port. Value: + to bind the port. + Values: • NORMAL • VIRTIO • DIRECT @@ -866,7 +874,10 @@ submodule etsi-nfv-vnf { enum "dynamic"; } description - "The policy can take values of 'static' or 'dynamic'. + "Indicates the policy for CPU pinning. + Values: + • static + • dynamic In case of 'static' the virtual CPU cores are requested to be allocated to logical CPU cores according to the rules defined in @@ -963,8 +974,11 @@ submodule etsi-nfv-vnf { } default "nfv:block"; description - "Type of virtualised storage resource (BLOCK, OBJECT, - FILE)."; + "Type of virtualised storage resource + Values: + • BLOCK + • OBJECT + • FILE."; reference "GS NFV IFA011: Section 7.1.9.4, Information elements related to Virtual Storage."; @@ -1563,7 +1577,10 @@ submodule etsi-nfv-vnf { } description "It indicates the function the virtual IP address is used - for. Permitted values: high availability, load balancing."; + for. + Values: + • high availability + • load balancing."; reference "GS NFV IFA011: Section 7.1.x, VipCpd information element."; } @@ -1784,7 +1801,13 @@ submodule etsi-nfv-vnf { } description "One of the values of the attribute layerProtocol of - the ConnectivityType IE."; + the ConnectivityType IE + Values: + • Ethernet + • MPLS + • ODU2 + • Pseudo-Wire + • etc."; reference "GS NFV IFA011: Section 7.1.8.13, VirtualLinkProtocolData information element."; @@ -1814,7 +1837,11 @@ submodule etsi-nfv-vnf { } description "Specifies the network type for this L2 protocol. - Possible values: FLAT, VLAN, VXLAN, GRE."; + Values: + • FLAT + • VLAN + • VXLAN + • GRE."; reference "GS NFV IFA011: Section 7.1.8.14, L2ProtocolData information element."; @@ -1883,8 +1910,8 @@ submodule etsi-nfv-vnf { default "ipv4"; description "Specifies IP version of this L3 protocol. - Value: - • IPV4. + Values: + • IPV4 • IPV6."; reference "GS NFV IFA011: Section 7.1.8.15, @@ -1941,10 +1968,11 @@ submodule etsi-nfv-vnf { enum dhcpv6-stateless; } description - "Specifies IPv6 address mode. Possible values: - • SLAAC. - • DHCPV6-STATEFUL. - • DHCPV6-STATELESS. + "Specifies IPv6 address mode. + Values: + • SLAAC + • DHCPV6-STATEFUL + • DHCPV6-STATELESS May be present when the value of the ipVersion attribute is 'IPV6' and shall be absent otherwise."; reference @@ -2102,7 +2130,13 @@ submodule etsi-nfv-vnf { "Indicates which operations are available for this DF via the VNF LCM interface. Instantiate VNF, Query VNF and Terminate VNF are supported in all DF and therefore - need not be included in this list."; + need not be included in this list. + Values: + • Scale VNF + • Scale VNF to level + • Heal VNF + • Operate VNF + • etc."; reference "GS NFV IFA011: Section 7.1.8.2 VnfDf information element"; @@ -2597,11 +2631,11 @@ submodule etsi-nfv-vnf { enum both; } description - "Describe the source of the indicator. The possible - values are: - • VNF. - • EM. - • Both. + "Describe the source of the indicator. + Values: + • VNF + • EM + • Both This tells the consumer where to send the subscription request."; @@ -2628,11 +2662,11 @@ submodule etsi-nfv-vnf { enum vnf-lcm-coordination; } description - "Identifies an interface produced by the VNF. Valid - values: - - VNF_CONFIGURATION - - VNF_INDICATOR - - VNF_LCM_COORDINATION"; + "Identifies an interface produced by the VNF. + Values: + • VNF_CONFIGURATION + • VNF_INDICATOR + • VNF_LCM_COORDINATION"; reference "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails information element"; @@ -3429,12 +3463,12 @@ submodule etsi-nfv-vnf { description "When present, it specifies the type of modification resulting from transitioning from srcVnfdId to dstVnfdId. - The possible values include at least: + Values: - UP - indicating that the destination VNF version is newer - than the source version, - DOWN - indicating that the destination VNF version is - older than the source version. + • UP:indicating that the destination VNF version is newer + than the source version, + • DOWN:indicating that the destination VNF version is + older than the source version. When provided, UP and DOWN values shall always be supported as the first value. In addition, a vendor may @@ -3588,9 +3622,9 @@ submodule etsi-nfv-vnf { "Specifies the type of the endpoint exposing the LCM operation coordination such as other operations supporting or management systems (e.g. an EM) or the VNF instance. - Allowed values: + Values: • MGMT: coordination with other operation supporting - management systems. + management systems • VNF: coordination with the VNF instance."; reference "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination -- GitLab From 3106197bc41cafa12bc0e03bc0d0521ea6af531e Mon Sep 17 00:00:00 2001 From: Preethika Date: Thu, 4 Feb 2021 07:44:25 +0000 Subject: [PATCH 06/25] issue#29 Fixes IFA014ed341-IFA015_harmonization_corrections, set2 and addressing data inconsistency Signed-off-by: Preethika --- src/yang/etsi-nfv-ns.yang | 42 +++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 67100d9..56e0780 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -758,7 +758,7 @@ submodule etsi-nfv-ns { leaf id { type string; description - "Identifier of this vnfProfile information element. It + "Identifier of this VnfProfile information element. It uniquely identifies a VnfProfile."; reference "GS NFV IFA014: Section 6.3.3.2 VnfProfile information @@ -783,7 +783,7 @@ submodule etsi-nfv-ns { path "deref(../vnfd-id)/../nfv:df/nfv:id"; } description - "Identifies a flavour within the VNFD."; + "References a flavour within the VNFD."; reference "GS NFV IFA014: Section 6.3.3.2 VnfProfile information element"; @@ -834,8 +834,8 @@ submodule etsi-nfv-ns { path "../../affinity-or-anti-affinity-group/id"; } description - "Identifier(s) of the affinity or anti-affinity - group(s) the VnfProfile belongs to."; + "Reference(s) the affinity or anti-affinity group(s) + the VnfProfile belongs to."; reference "GS NFV IFA014: Section 6.3.3.2 VnfProfile information element"; @@ -1043,7 +1043,7 @@ submodule etsi-nfv-ns { path "deref(../virtual-link-desc-id)/../df/id"; } description - "Identifies a flavour within the VLD."; + "Refernces a flavour within the VLD."; reference "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile information element"; @@ -1056,9 +1056,9 @@ submodule etsi-nfv-ns { path "../../affinity-or-anti-affinity-group/id"; } description - "Identifies an affinity or anti-affinity group the - VLs instantiated according to the VlProfile belong - to."; + "Reference(s) the affinity or anti-affinity group(s) + the VLs instantiated according to the VlProfile + belong to."; reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; @@ -1151,8 +1151,8 @@ submodule etsi-nfv-ns { leaf id { type string; description - "Identifier of Identifier of this - AffinityOrAntiAffinityGroup information element."; + "Identifier of this AffinityOrAntiAffinityGroup + information element."; reference "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity information element"; @@ -1228,7 +1228,7 @@ submodule etsi-nfv-ns { path "../../../vnf-profile/id"; } description - "Identifies the profile to be used for a VNF + "References the profile to be used for a VNF involved in an NS level."; reference "GS NFV IFA014: Section 6.7.4.2 VnfToLevelMapping @@ -1262,7 +1262,7 @@ submodule etsi-nfv-ns { path "../../../virtual-link-profile/id"; } description - "Identifies the profile to be used for a VL involved + "References the profile to be used for a VL involved in an NS level."; reference "GS NFV IFA014: Section 6.7.5.2 @@ -1288,7 +1288,7 @@ submodule etsi-nfv-ns { path "../../../ns-profile/id"; } description - "Identifies the profile to be used for a nested NS + "References the profile to be used for a nested NS involved in the NS level."; reference "GS NFV IFA014: Section 6.7.6.2 NsToLevel information @@ -1330,7 +1330,7 @@ submodule etsi-nfv-ns { path "../ns-instantiation-level/id"; } description - "Identifies the NS level which represents the default NS + "References the NS level which represents the default NS instantiation level for this DF. It shall be present if there are multiple 'nsIinstantiationLevel' entries."; reference @@ -1436,7 +1436,7 @@ submodule etsi-nfv-ns { path "../../../../nsd/id"; } description - "Identifies the NSD applicable to NS instantiated + "References the NSD applicable to NS instantiated according to this profile."; reference "GS NFV IFA014: Section 6.3.11.2 NsProfile information @@ -1449,7 +1449,7 @@ submodule etsi-nfv-ns { path "deref(../nsd-id)/../df/id"; } description - "Identifies the applicable network service DF within + "References the applicable network service DF within the scope of the NSD."; reference "GS NFV IFA014: Section 6.3.11.2 NsProfile information @@ -1462,7 +1462,7 @@ submodule etsi-nfv-ns { path "deref(../ns-df-id)/../ns-instantiation-level/id"; } description - "Identifies the NS level within the referenced NS DF to + "References the NS level within the referenced NS DF to be used in the context of the parent NS instantiation. If not present, the default NS instantiation level as declared in the referenced NSD shall be used."; @@ -1500,8 +1500,8 @@ submodule etsi-nfv-ns { path "../../affinity-or-anti-affinity-group/id"; } description - "Identifies an affinity or anti-affinity group the NSs - created according to this NsProfile belongs to."; + "Reference(s) the affinity or anti-affinity group(s) the + NSs created according to this NsProfile belongs to."; reference "GS NFV IFA014: Section 6.3.11.2 NsProfile information element"; @@ -1623,7 +1623,7 @@ submodule etsi-nfv-ns { path "/nfv:nfv/nfv:vnfd/nfv:id"; } description - "Identifies a VNFD."; + "References a VNFD."; reference "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData information element"; @@ -1635,7 +1635,7 @@ submodule etsi-nfv-ns { path "deref(../vnfd-id)/../nfv:indicator/nfv:id"; } description - "Identifies a VNF indicator within the VNFD."; + "References a VNF indicator within the VNFD."; reference "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData information element"; -- GitLab From 55743a7e0ab1aa6308412805bc51116338fbcee1 Mon Sep 17 00:00:00 2001 From: Preethika Date: Fri, 5 Feb 2021 06:24:46 +0000 Subject: [PATCH 07/25] issue#30 Add VirtualLinkProtocolData missing in VirtualLinkProfile and fix enum in it based on IFA014ed341 Signed-off-by: Preethika --- src/yang/etsi-nfv-ns.yang | 164 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 67100d9..046f210 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -1082,6 +1082,170 @@ submodule etsi-nfv-ns { information element"; uses link-bitrate-requirements; } + container virtual-link-protocol-data { + leaf associated-layer-protocol { + type identityref { + base layer-protocol; + } + description + "One of the values of the attribute layerProtocol of + the ConnectivityType IE. + Values: + • Ethernet + • MPLS + • ODU2 + • IPV4 + • IPV6 + • Pseudo-Wire + • etc."; + reference + "GS NFV IFA014: Section 6.3.13.2, + VirtualLinkProtocolData information element."; + } + + container l2-protocol-data { + when "(../associated-layer-protocol = 'Ethernet') or " + + "(../associated-layer-protocol = 'MPLS') or " + + "(../associated-layer-protocol = 'ODU2') or " + + "(../associated-layer-protocol = 'Pseudo-Wire')"; + + leaf name { + type string; + description + "Network name associated with this L2 protocol."; + reference + "GS NFV IFA014: Section 6.3.14.2, + L2ProtocolData information element."; + } + + leaf network-type { + type enumeration { + enum flat; + enum vlan; + enum vxlan; + enum gre; + } + description + "Specifies the network type for this L2 protocol. + Values: + • FLAT + • VLAN + • VXLAN + • GRE."; + reference + "GS NFV IFA014: Section 6.3.14.2, + L2ProtocolData information element."; + } + + leaf vlan-transparent { + type boolean; + description + "Specifies whether to support VLAN transparency for + this L2 protocol or not."; + reference + "GS NFV IFA014: Section 6.3.14.2, + L2ProtocolData information element."; + } + + leaf mtu { + type uint16; + description + "Specifies the maximum transmission unit (MTU) value + for this L2 protocol."; + reference + "GS NFV IFA014: Section 6.3.14.2, + L2ProtocolData information element."; + } + + leaf segmentation-id { + type string; + description + "If present, specifies a specific virtualised network + segment, which depends on the network type. For e.g., + VLAN ID for VLAN network type and tunnel ID for + GRE/VXLAN network types."; + reference + "GS NFV IFA014: Section 6.3.14.2, + L2ProtocolData information element."; + } + + description + "Specifies the L2 protocol data for this virtual link. + Shall be present when the associatedLayerProtocol + attribute indicates a L2 protocol and shall be absent + otherwise."; + reference + "GS NFV IFA014: Section 6.3.13.2, + VirtualLinkProtocolData information element."; + } + + container l3-protocol-data { + when "(../associated-layer-protocol = 'IPv4') or " + + "(../associated-layer-protocol = 'IPv6')"; + + leaf name { + type string; + description + "Network name associated with this L3 protocol."; + reference + "GS NFV IFA014: Section 6.3.15.2, + L3ProtocolData information element."; + } + + leaf ip-version { + type enumeration { + enum ipv4; + enum ipv6; + } + default "ipv4"; + description + "Specifies IP version of this L3 protocol. + Values: + • IPV4. + • IPV6."; + reference + "GS NFV IFA014: Section 6.3.15.2, + L3ProtocolData information element."; + } + + leaf cidr { + type string; + description + "Specifies the CIDR (Classless InterDomain Routing) + of this L3 protocol. + The network address and subnet mask in + cidr format."; + reference + "GS NFV IFA014: Section 6.3.15.2, + L3ProtocolData information element."; + } + + leaf-list ip-allocation-pools { + type string; + description + "Specifies the allocation pools with start and end + IP addresses for this L3 protocol."; + reference + "GS NFV IFA014: Section 6.3.15.2, + L3ProtocolData information element."; + } + description + "Specifies the L3 protocol data for this virtual link. + Shall be present when the associatedLayerProtocol + attribute indicates a L3 protocol and shall be absent + otherwise."; + reference + "GS NFV IFA014: Section 6.3.13.2, + VirtualLinkProtocolData information element."; + } + description + "Specifies the protocol data for a VL instantiated + according to this profile. Cardinality 0 is used when + no protocol data needs to be specified."; + reference + "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile + information element"; + } } list scaling-aspect { -- GitLab From b388c8544e1043ea3ca4759b5bd7fea0ac72b318 Mon Sep 17 00:00:00 2001 From: Preethika Date: Fri, 5 Feb 2021 10:26:09 +0000 Subject: [PATCH 08/25] issue#31 Improving nsProfile attribute description and fix enum values based on IFA014ed341 Signed-off-by: Preethika --- src/yang/etsi-nfv-ns.yang | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 67100d9..504b826 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -62,8 +62,10 @@ submodule etsi-nfv-ns { leaf type { type affinity-type; description - "Specifies whether the rule is an affinity rule or an - anti-affinity rule."; + "Specifies the rule. + Values: + • AFFINITY + • ANTI_AFFINITY."; reference "GS NFV IFA014: Section 6.3.8.2, LocalAffinityOrAntiAffinityRule information element."; @@ -72,8 +74,13 @@ submodule etsi-nfv-ns { leaf scope { type affinity-scope; description - "Specifies the scope of the rule, possible values are - 'NFVI-PoP', 'NFVI-node' network-link-and-node etc."; + "Specifies the scope of the rule. + Values: + • NFVI_POP + • ZONE + • ZONE_GROUP + • NFVI_NODE + • etc."; reference "GS NFV IFA014: Section 6.3.8.2, LocalAffinityOrAntiAffinityRule information element."; @@ -631,7 +638,7 @@ submodule etsi-nfv-ns { path "../../../nfp-position-element/id"; } description - "Reference to one or a pair of CPDs or SAPDs."; + "References one or a pair of CPDs or SAPDs."; reference "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc information element"; @@ -642,16 +649,20 @@ submodule etsi-nfv-ns { base forwarding-behaviour; } description - "Identifies a rule to apply to forward traffic to CP or - SAP instances corresponding to the referenced CPD(s) - and SAPD(s). The minimum list of rules to be supported + "Specifies a rule to apply to forward traffic to CP or + SAP instances corresponding to the referenced CP + profiles(s). The minimum list of rules to be supported shall include: • ALL = Traffic flows shall be forwarded simultaneously to all CP or SAP instances created from the referenced CP profile(s). • LB = Traffic flows shall be forwarded to one CP or SAP instance created from the referenced CP profile(s) - selected based on a load-balancing algorithm."; + selected based on a load-balancing algorithm + Values: + • ALL + • LB + • etc."; reference "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc information element"; @@ -1417,7 +1428,7 @@ submodule etsi-nfv-ns { key "id"; description - "Specifies a NS Profile supported by this NS DF."; + "Specifies nested NS Profile to be used for this NS DF."; reference "GS NFV IFA014: Section 6.3.2.2 NsDf information element"; -- GitLab From 2aaee78c9dc7bdfa00e8c6f1ef5da9129aeb321a Mon Sep 17 00:00:00 2001 From: Preethika Date: Tue, 16 Feb 2021 06:15:52 +0000 Subject: [PATCH 09/25] issue#32 Implement FEAT05 - Add priority in NSD IFA014 Signed-off-by: Preethika --- src/yang/etsi-nfv-ns.yang | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 67100d9..a7964b1 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -1694,6 +1694,22 @@ submodule etsi-nfv-ns { } } + leaf priority { + type uint32; + description + "Specifies the priority for the NS instance. + + The allowed range will be reasonably high. The 'zero' + value will express the highest priority and the fact + that the NS instance based on this DF cannot be + pre-empted during resource allocation. + + Examples for the usage of priority include conflict + resolution in case of resource shortage."; + reference + "GS NFV IFA014: Section 6.3.2.2 NsDf information element"; + } + leaf service-availability-level { type uint32; description -- GitLab From b0e989a09ce43ccc6904c7d489158ed9ed42faff Mon Sep 17 00:00:00 2001 From: Preethika Date: Wed, 17 Feb 2021 05:53:57 +0000 Subject: [PATCH 10/25] issue#33 fix AffinityOrAntiAffinityGroup element information in vnfd and nsd Signed-off-by: Preethika --- example-data/complex-vnfd.xml | 4 ++-- src/yang/etsi-nfv-ns.yang | 15 +++++++++++---- src/yang/etsi-nfv-vnf.yang | 16 ++++++++++++---- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/example-data/complex-vnfd.xml b/example-data/complex-vnfd.xml index cf8048d..e1eaac6 100644 --- a/example-data/complex-vnfd.xml +++ b/example-data/complex-vnfd.xml @@ -240,7 +240,7 @@ control-plane - anti-affinity + anti-affinity nfvi-node @@ -328,7 +328,7 @@ control-plane - anti-affinity + anti-affinity nfvi-node diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 67100d9..f5ab803 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -1158,12 +1158,15 @@ submodule etsi-nfv-ns { information element"; } - leaf type { + leaf affinityorAntiaffinity { mandatory true; type affinity-type; description "Specifies the type of relationship that the members of - the group have: 'affinity' or 'anti-affinity.'"; + the group have. + Values: + • AFFINITY + • ANTI-AFFINITY"; reference "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity information element"; @@ -1174,8 +1177,12 @@ submodule etsi-nfv-ns { type affinity-scope; description "Specifies the scope of the affinity or anti-affinity - relationship e.g. a NFVI node, an NFVI PoP, - network-link-and-node etc."; + relationship. + Values: + • NFVI_NODE + • NFVI_POP + • NETWORK_LINK_AND_NODE + • etc."; reference "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity information element"; diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 6b5f2dc..05ca161 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -2535,12 +2535,15 @@ submodule etsi-nfv-vnf { AffinityOrAntiAffinityGroup information element"; } - leaf type { + leaf affinityorAntiaffinity { mandatory true; type affinity-type; description "Specifies the type of relationship that the members of - the group have: 'affinity' or 'anti-affinity'."; + the group have. + Values: + • AFFINITY + • ANTI-AFFINITY"; reference "GS NFV IFA011: Section 7.1.8.12 AffinityOrAntiAffinityGroup information element"; @@ -2551,8 +2554,13 @@ submodule etsi-nfv-vnf { type affinity-scope; description "Specifies the scope of the affinity or anti-affinity - relationship. Possible values are 'NFVI-PoP', 'Zone', - 'ZoneGroup', 'NFVI-node' and 'network-link-and-node'."; + relationship. + Values: + • NFVI-PoP + • Zone + • ZoneGroup + • NFVI-node + • network-link-and-node"; reference "GS NFV IFA011: Section 7.1.8.12 AffinityOrAntiAffinityGroup information element"; -- GitLab From aea79ca8ff8bedab23bd23a49c15fd605b9ea04a Mon Sep 17 00:00:00 2001 From: Preethika Date: Fri, 12 Mar 2021 07:12:12 +0000 Subject: [PATCH 11/25] issue#34 Addressing VnfLcmOperation coordination based on IFA011ed351 Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 138 +++++++++++++++++++++++++++++++++---- 1 file changed, 123 insertions(+), 15 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 6b5f2dc..3d0caa3 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -2672,6 +2672,68 @@ submodule etsi-nfv-vnf { element"; } + list supported-coordination-actions { + key "vnf-lcm-operation"; + + description + "References applicable LCM coordination actions + that can be invoked during each of the listed + VNF LCM operations."; + reference + "GS NFV IFA011: Section 7.1.8.2 VnfDf information + element"; + + leaf vnf-lcm-operation { + type enumeration { + enum "instantiate"; + enum "scale"; + enum "scale_to_level"; + enum "change_flavour"; + enum "terminate"; + enum "heal"; + enum "operate"; + enum "change_ext_conn"; + enum "modify_info"; + enum "create_snapshot"; + enum "revert_to_snapshot"; + } + description + "Identifies the specific VNF LCM operation. + Values: + • INSTANTIATE + • SCALE + • SCALE_TO_LEVEL + • CHANGE_FLAVOUR + • TERMINATE + • HEAL + • OPERATE + • CHANGE_EXT_CONN + • MODIFY_INFO + • CREATE_SNAPSHOT + • REVERT_TO_SNAPSHOT."; + reference + "GS NFV IFA011: Section 7.1.16.3 LcmCoordinationActionMapping + information element"; + } + leaf coordination-action-name { + type leafref { + path "../../../lcm-operations-coordination/coordination-action-name"; + } + description + "References to the names of coordination actions that can be + invoked during the LCM operation indicated by the + 'vnfLcmOperation' attribute. + + The related coordination actions shall either be declared + in the VnfLcmOperationCoordination information element + in the same VNFD, or shall be well-known standardized + coordination action name identifiers."; + reference + "GS NFV IFA011: Section 7.1.16.3 LcmCoordinationActionMapping + information element"; + } + } + list monitoring-parameter { key "id"; @@ -3523,13 +3585,14 @@ submodule etsi-nfv-vnf { information element"; } - leaf coordination-id { + leaf coordination-action-name { type leafref { - path "../../lcm-operations-coordination/id"; + path "../../lcm-operations-coordination/coordination-action-name"; } description - "Reference to applicable VNF LCM operation coordination - actions."; + "Reference to applicable VNF LCM operation coordination actions + that can be invoked during a VNF package change as defined by + the 'selector' attribute."; reference "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo information element"; @@ -3558,13 +3621,13 @@ submodule etsi-nfv-vnf { } list lcm-operations-coordination { - key "id"; + key "coordination-action-name"; - leaf id { + leaf coordination-action-name { type string; description "Identifies the specific VNF LCM operation coordination - action."; + action.Shall be unique within the scope of VNFD"; reference "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination information element"; @@ -3586,36 +3649,81 @@ submodule etsi-nfv-vnf { } description "Specifies the type of the endpoint exposing the LCM - operation coordination such as other operations supporting - or management systems (e.g. an EM) or the VNF instance. + operation coordination such as operations supporting + management systems (e.g. EM) or the VNF instance. Allowed values: - • MGMT: coordination with other operation supporting + • MGMT: coordination with operation supporting management systems. - • VNF: coordination with the VNF instance."; + • VNF: coordination with the VNF instance. + + If this attribute is omitted, the endpoint that provides + the interface will be determined at deployment time. + + If the VNF produces the LCM coordination interface, this + attribute may be omitted or may have the value 'VNF', and + a VnfInterfaceDetails entry with the 'interfaceName' + attribute set to 'VNF_LCM_COORDINATION' shall be specified + in the related deployment flavour to signal where this + interface is exposed by the VNF. + + If the VNF does not produce the LCM coordination interface + but coordination via this interface is needed, it is expected + that a management entity such as the EM exposes the coordination + interface, and consequently, this attribute shall have the + value 'MGMT'."; reference "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination information element"; } leaf coordination-stage { + type enumeration { + enum "start"; + enum "end"; + } + description + "Indicates whether the coordination action is invoked before + or after all other changes performed by the VNF LCM + operation. + Values: + • START:the coordination action is invoked after receiving + the grant and before the LCM operation performs any + other changes. + • END:the coordination action is invoked after the LCM + operation has performed all other changes. + + This attribute shall be omitted if the coordination action + is intended to be invoked at an intermediate stage of the + LCM operation, i.e. neither at the start nor at the end. + In this case, the actual instant during the LCM operation + when invoking the coordination is determined by means outside + the scope of the present document such as VNFM-internal logic + or LCM script."; + reference + "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination + information element"; + } + + leaf input-parameter { type string; description - "Indicates the coordination stage during the VNF LCM - operation."; + "Input parameter needed by the external coordinating + entity."; reference "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination information element"; } - leaf coordination-params { + leaf output-parameter { type string; description - "Input information needed by the external coordinating + "Output parameter provided by the external coordinating entity."; reference "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination information element"; } + description "Provides information used for the coordination in VNF LCM operations."; -- GitLab From 6d760e2d4e6958d0005c043505036de968ca9bd6 Mon Sep 17 00:00:00 2001 From: Preethika Date: Fri, 12 Mar 2021 07:12:12 +0000 Subject: [PATCH 12/25] issue#34 Addressing VnfLcmOperation coordination based on IFA011ed351 Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 3d0caa3..296afda 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -3704,8 +3704,15 @@ submodule etsi-nfv-vnf { information element"; } - leaf input-parameter { - type string; + list input-parameter { + key "key"; + + leaf key { + type string; + } + leaf value { + type string; + } description "Input parameter needed by the external coordinating entity."; @@ -3714,8 +3721,15 @@ submodule etsi-nfv-vnf { information element"; } - leaf output-parameter { - type string; + list output-parameter { + key "key"; + + leaf key { + type string; + } + leaf value { + type string; + } description "Output parameter provided by the external coordinating entity."; -- GitLab From 0c0beba3f43f4d17675851dda8e2f94ca5a2b11b Mon Sep 17 00:00:00 2001 From: ramanathan Date: Wed, 17 Mar 2021 12:21:33 +0530 Subject: [PATCH 13/25] Trial --- src/yang/etsi-nfv-ns.yang | 1 + 1 file changed, 1 insertion(+) diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index f9ea24b..e5dd535 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -214,6 +214,7 @@ submodule etsi-nfv-ns { } choice associated-cpd-id { + container vnf { leaf vnfd-id { mandatory true; -- GitLab From a336045c82573188ae5e08fdbb700946d22fc95b Mon Sep 17 00:00:00 2001 From: Preethika Date: Wed, 17 Mar 2021 10:29:23 +0000 Subject: [PATCH 14/25] issue #36 Fix typo data type and fix reference in trunk port data Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index d57bd33..538addf 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -610,7 +610,7 @@ submodule etsi-nfv-vnf { leaf parent-port-cpd { type leafref { - path "../int-cpd/id"; + path "../../int-cpd/id"; } description "Reference of the internal VDU CPD which is used to @@ -649,7 +649,7 @@ submodule etsi-nfv-vnf { leaf sub-port-cpd{ type leafref { - path "../../int-cpd/id"; + path "../../../int-cpd/id"; } description "Reference of the internal VDU CPD which is used @@ -659,7 +659,7 @@ submodule etsi-nfv-vnf { related to subport of a trunk parent port."; } leaf segmentation-id { - type unit32; + type uint32; description "Specifies the segmentation ID for the subport, which is used to differentiate the traffics on different networks -- GitLab From f03bf5c1a00723983c58dedaa2260541ab39cc0d Mon Sep 17 00:00:00 2001 From: Preethika Date: Thu, 18 Mar 2021 08:03:49 +0000 Subject: [PATCH 15/25] issue #38 Dependencies IE description improvement Signed-off-by: Preethika --- src/yang/etsi-nfv-ns.yang | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index f9ea24b..f9dd924 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -1767,7 +1767,10 @@ submodule etsi-nfv-ns { } } description - "References a VnfProfile or NsProfile."; + "References a VnfProfile or NsProfile for + describing dependencies between VNF and/or + nested NS instances in terms of primary + entities."; reference "GS NFV IFA014: Section 6.3.12.2 Dependencies information element"; @@ -1785,7 +1788,10 @@ submodule etsi-nfv-ns { } } description - "References a VnfProfile or NsProfile."; + "References a VnfProfile or NsProfile for + describing dependencies between VNF and/or + nested NS instances in terms of secondary + entities."; reference "GS NFV IFA014: Section 6.3.12.2 Dependencies information element"; -- GitLab From f3a40fd6e5601a484d3524fac6e044477e2eee8d Mon Sep 17 00:00:00 2001 From: Preethika Date: Thu, 18 Mar 2021 08:44:38 +0000 Subject: [PATCH 16/25] issue #39 segmentationType definition to subport level Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 538addf..941cd21 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -619,25 +619,6 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.6.11, Information elements related to TrunkPort Topology."; } - leaf segmentation-type { - default "vlan"; - type enumeration { - enum "vlan"; - enum "inherit"; - } - description - "Specifies the encapsulation type for the traffics - coming in and out of the trunk subport. - Values: - • VLAN: the subport uses VLAN as encapsulation type. - • INHERIT: the subport gets its segmentation type - from the network it’s connected to. - - Cardinality 0 means default value VLAN is used."; - reference - "GS NFV IFA011: Section 7.1.6.11, Information elements - related to TrunkPort Topology."; - } list sub-port-list { key "sub-port-cpd"; @@ -658,6 +639,25 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.6.12, Information elements related to subport of a trunk parent port."; } + leaf segmentation-type { + default "vlan"; + type enumeration { + enum "vlan"; + enum "inherit"; + } + description + "Specifies the encapsulation type for the traffics + coming in and out of the trunk subport. + Values: + • VLAN: the subport uses VLAN as encapsulation type. + • INHERIT: the subport gets its segmentation type + from the network it’s connected to. + + Cardinality 0 means default value VLAN is used."; + reference + "GS NFV IFA011: Section 7.1.6.12, Information elements + related to to subport of a trunk parent port."; + } leaf segmentation-id { type uint32; description -- GitLab From 9dc6143f532a87efa5b8bd9d80f907d307e73108 Mon Sep 17 00:00:00 2001 From: Preethika Date: Fri, 19 Mar 2021 06:09:49 +0000 Subject: [PATCH 17/25] issue #40 Add missing Dependencies definition in vnf Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 538addf..9b00c4a 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -3006,6 +3006,44 @@ submodule etsi-nfv-vnf { information element"; } } + + list dependencies { + key "id"; + + description + "Specifies the order in which instances of the VNFCs + have to be created."; + reference + "GS NFV IFA011: Section 7.1.8.2 VnfDf information element"; + + leaf id { + type string; + } + + leaf primary-id { + type leafref { + path "../../vdu-profile/id"; + } + description + "References a VduProfile for describing dependencies + between VNFCs in terms of primary entities."; + reference + "GS NFV IFA011: Section 7.1.8.19 Dependencies + information element"; + } + + leaf secondary-id { + type leafref { + path "../../vdu-profile/id"; + } + description + "References a VduProfile for describing dependencies + between VNFCs in terms of secondary entities."; + reference + "GS NFV IFA011: Section 7.1.8.19 Dependencies + information element"; + } + } } container configurable-properties { -- GitLab From d57101c34297afe43814add9eee61b7d8760182d Mon Sep 17 00:00:00 2001 From: Preethika Date: Fri, 19 Mar 2021 10:21:59 +0000 Subject: [PATCH 18/25] issue #41 IFA011ed351 updates related to the use of VIPs Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 538addf..9fc1026 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -1609,8 +1609,9 @@ submodule etsi-nfv-vnf { key "id"; leaf-list int-cpd { + min-elements 1; type leafref { - path "../../vdu/int-cpd/int-virtual-link-desc"; + path "../../vdu/int-cpd/id"; } description "Reference to the internal VDU CPD which is used to @@ -1621,17 +1622,27 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.17.2, VipCpd information element."; } - leaf-list vnf-ext-cpd { + leaf int-virtual-link-desc { type leafref { - path "../../ext-cpd/id"; + path "../../int-virtual-link-desc/id"; } description - "Reference to the VNF external CPD which is used to - instantiate external CPs. These external CPs share the - virtual IP addresses allocated when a VipCp instance is - created from the VipCpd."; + "Reference of the internal VLD which this VipCpd + connects to"; reference - "GS NFV IFA011: Section 7.1.17.2, VipCpd information element."; + "GS NFV IFA011: Section 7.1.17.2 VipCpd information element."; + } + + leaf dedicated-ip-address { + type boolean; + description + "If set to true, it indicates that the VIP address + shall be different from the addresses allocated to + all of the VduCp instances associated to it. + If set to false, the VIP address shall be the same + as one of the VduCp instances associated to it."; + reference + "GS NFV IFA011: Section 7.1.17.2 VipCpd information element."; } leaf vip-function { @@ -1652,7 +1663,7 @@ submodule etsi-nfv-vnf { description "Describes virtual IP addresses to be shared among instances - of connection points. See clause 7.1.x."; + of connection points. See clause 7.1.17."; reference "GS NFV IFA011: Section 7.1.2, VNFD information element."; } -- GitLab From 8dc2955f07238607b9ab87235703b40239943c20 Mon Sep 17 00:00:00 2001 From: Preethika Date: Fri, 19 Mar 2021 12:48:54 +0000 Subject: [PATCH 19/25] issue #42 fix tree build issue Signed-off-by: Preethika --- .jenkins.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.jenkins.sh b/.jenkins.sh index 428f508..bb32013 100644 --- a/.jenkins.sh +++ b/.jenkins.sh @@ -19,7 +19,7 @@ docker run "$IMG" echo "Building HTML tree" docker run -v"$(pwd)/src/yang/:/yang/" mjethanandani/pyang \ "/bin/sh" -c "cd /yang/ && pyang -f jstree -p /yang/ \ - /yang/etsi-nfv.yang > etsi-nfv.html" + /yang/etsi-nfv-descriptors.yang > etsi-nfv.html" sed -r -i 's|||g' src/yang/etsi-nfv.html sed -r -i 's|data\:image/gif\;base64,R0lGODlhS.*RCAA7|https://www.etsi.org/images/ETSILogoTwitter.png\" height=\"100|g' src/yang/etsi-nfv.html -- GitLab From 0d8a76a712acd623b0498862e603b9e64a4bc4fd Mon Sep 17 00:00:00 2001 From: Preethika Date: Mon, 22 Mar 2021 11:09:24 +0000 Subject: [PATCH 20/25] issue #43 updates scaling descriptors related to use of VIPs Signed-off-by: Preethika --- src/yang/etsi-nfv-vnf.yang | 117 +++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 538addf..d5343a5 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -2061,6 +2061,52 @@ submodule etsi-nfv-vnf { } } + list vip-cp-profile { + key "id"; + description + "Defines the minimum and maximum number of VIP CP instances + created from each of the VipCpds used in this flavour. + Shall be present if the deployment flavour can contain + VIP CP instances."; + reference + "GS NFV IFA011: Section 7.1.8.2, VnfDf information + element."; + + leaf id { + type leafref { + path "../../../vip-cpd/id"; + } + description + "Uniquely references a VIP CPD."; + reference + "GS NFV IFA011: Section 7.1.8.20, VipCpProfile information + element."; + } + + leaf min-number-of-instances { + type uint16; + description + "Minimum number of instances of the VIP CP based on the + referenced VIP CPD that is permitted to exist for this + flavour. Shall be zero or greater."; + reference + "GS NFV IFA011: Section 7.1.8.20, VipCpProfile information + element."; + } + + leaf max-number-of-instances { + type uint16; + description + "Maximum number of instances of the VIP CP based on the + referenced VIP CPD that is permitted to exist for this + flavour. Shall be greater than zero and not less than + the value of 'minNumberOfInstances'."; + reference + "GS NFV IFA011: Section 7.1.8.20, VipCpProfile information + element."; + } + } + list instantiation-level { key "id"; min-elements 1; @@ -2138,6 +2184,45 @@ submodule etsi-nfv-vnf { } } + list vip-cp-level { + key "id"; + description + "Indicates the number of VIP CP instances based on + a particular VipCpd to be part of this level. + + If a particular VipCpd is defined with + minNumberOfInstances= maxNumberOfInstances=1 in the + vipCpProfile of the DF, that vipCpd may be omitted + from the 'vipCpLevel' attribute, which shall be + interpreted that one related VIP CP instance is + part of this level."; + reference + "GS NFV IFA011: Section 7.1.8.7, InstantiationLevel information + element."; + + leaf id { + type leafref { + path "../../../../vip-cpd/id"; + } + description + "Uniquely references a VIP CPD."; + reference + "GS NFV IFA011: Section 7.1.10.6, VipCpLevel information + element."; + } + + leaf number-of-instances { + type uint16; + description + "Number of VIP CP instances based on the referenced + VipCpd to deploy for an instantiation level or for + a scaling delta. Shall be zero or greater."; + reference + "GS NFV IFA011: Section 7.1.10.6, VipCpLevel information + element."; + } + } + list scaling-info { key "scaling-aspect-id"; description @@ -2962,6 +3047,38 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.10.4 ScalingDelta information element"; } + + list vip-cp-delta { + key "id"; + description + "Number of VIP CP instances based on a particular + VipCpd to be created or removed."; + reference + "GS NFV IFA011: Section 7.1.10.4, ScalingDelta information + element."; + + leaf id { + type leafref { + path "../../../../../../vip-cpd/id"; + } + description + "Uniquely references a VIP CPD."; + reference + "GS NFV IFA011: Section 7.1.10.6, VipCpLevel information + element."; + } + + leaf number-of-instances { + type uint16; + description + "Number of VIP CP instances based on the referenced + VipCpd to deploy for an instantiation level or for + a scaling delta. Shall be zero or greater."; + reference + "GS NFV IFA011: Section 7.1.10.6, VipCpLevel information + element."; + } + } description "Declares different scaling deltas, each of which is applied for one or more scaling steps of this -- GitLab From 6e8b65f9e8dc921b3b304d7cef83923e91ffe736 Mon Sep 17 00:00:00 2001 From: Preethika Date: Tue, 23 Mar 2021 11:42:12 +0000 Subject: [PATCH 21/25] issue #37 SAPD Missing inherited attributes from CPD Signed-off-by: Preethika --- src/yang/etsi-nfv-ns.yang | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index f9ea24b..46df794 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -180,27 +180,6 @@ submodule etsi-nfv-ns { "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor information element"; - leaf id { - type string; - description - "Identifier of this Cpd information element."; - reference - "GS NFV IFA014: Section 6.6.3.1 Cpd information element"; - } - - leaf address-assignment { - type boolean; - description - "Specify whether the SAP address assignment is under the - responsibility of management and orchestration functions - or not. If it is set to True, management and - orchestration functions are responsible for assigning - addresses to the access points instantiated from this - SAPD."; - reference - "GS NFV IFA014: Section 6.2.3.2 Sapd information element"; - } - choice cpd-or-virtual-link { leaf virtual-link-desc { type leafref { @@ -265,8 +244,22 @@ submodule etsi-nfv-ns { } } } + + uses cpd; + leaf security-group-rule-id { + type leafref { + path "../../security-group-rule/id"; + } + description + "Reference of the security group rules bound to this + CPD."; + reference + "GS NFV IFA014: Section 6.6.3 Cpd information element"; + } } + uses security-group-rule; + list virtual-link-desc { key "id"; description -- GitLab From cf2345825a5d2c32edb2b1da1faf8fb1df232f3a Mon Sep 17 00:00:00 2001 From: ramanathan Date: Wed, 24 Mar 2021 14:08:59 +0100 Subject: [PATCH 22/25] Issue #35 IFA014ed341 fix Sapd attribute associatedCpd --- src/yang/etsi-nfv-ns.yang | 53 +++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index e5dd535..889538a 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -213,9 +213,8 @@ submodule etsi-nfv-ns { "GS NFV IFA014: Section 6.2.3.2 Sapd information element"; } - choice associated-cpd-id { - - container vnf { + container associated-cpd { + choice constituent-base-element-id { leaf vnfd-id { mandatory true; type leafref { @@ -223,16 +222,6 @@ submodule etsi-nfv-ns { } must "boolean(../../../vnfd-id[.=current()])"; } - - leaf ext-cpd-id { - mandatory true; - type leafref { - path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; - } - } - } - - container pnf { leaf pnfd-id { mandatory true; type leafref { @@ -240,30 +229,50 @@ submodule etsi-nfv-ns { } must "boolean(../pnfd-id[.=current()])"; } - - leaf ext-cpd-id { + leaf nsd-id { mandatory true; type leafref { - path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; + path "../../../../nsd/id"; } + must "boolean(../nsd-id[.=current()])"; } + description + "References the profile of an NS constituent."; + reference + "GS NFV IFA014: Section 6.4.8 CpdInConstituentElement information element"; } - container ns { - leaf nsd-id { + choice constituent-cpd-id { + leaf vnf-ext-cpd { mandatory true; type leafref { - path "../../../../nsd/id"; + path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; } - must "boolean(../nsd-id[.=current()])"; } - - leaf ext-cpd-id { + leaf pnf-ext-cpd { + mandatory true; + type leafref { + path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; + } + } + leaf sapd { mandatory true; type leafref { path "deref(../nsd-id)/../sapd/id"; } } + description + "References the VNF external CPD for a given VnfProfile, or the PNF + external CPD for a given PnfProfile, or an NS SAPD for a given NsProfile + identified by the constituentBaseElementId."; + reference + "GS NFV IFA014: Section 6.4.8 CpdInConstituentElement information element"; } + description + "Describes a CPD or SAPD in the context of an NS constituent element, which + the SAPs instantiated from this SAPD are mapped to."; + reference + "GS NFV IFA014: Section 6.2.3 Sapd information element"; + } } } -- GitLab From 4662f0bf682f191ebfb48895a7de3d2440fc0efb Mon Sep 17 00:00:00 2001 From: Preethika Date: Thu, 25 Mar 2021 08:07:40 +0000 Subject: [PATCH 23/25] Fix tree build Signed-off-by: Preethika --- .jenkins.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.jenkins.sh b/.jenkins.sh index 428f508..bb32013 100644 --- a/.jenkins.sh +++ b/.jenkins.sh @@ -19,7 +19,7 @@ docker run "$IMG" echo "Building HTML tree" docker run -v"$(pwd)/src/yang/:/yang/" mjethanandani/pyang \ "/bin/sh" -c "cd /yang/ && pyang -f jstree -p /yang/ \ - /yang/etsi-nfv.yang > etsi-nfv.html" + /yang/etsi-nfv-descriptors.yang > etsi-nfv.html" sed -r -i 's|||g' src/yang/etsi-nfv.html sed -r -i 's|data\:image/gif\;base64,R0lGODlhS.*RCAA7|https://www.etsi.org/images/ETSILogoTwitter.png\" height=\"100|g' src/yang/etsi-nfv.html -- GitLab From fd0dc7083669dc40db8bfc05d47fa47a3935a549 Mon Sep 17 00:00:00 2001 From: ramanathan Date: Thu, 1 Apr 2021 12:53:23 +0200 Subject: [PATCH 24/25] Update nfv.xml --- example-data/nfv.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/example-data/nfv.xml b/example-data/nfv.xml index ccd703c..b10aa50 100644 --- a/example-data/nfv.xml +++ b/example-data/nfv.xml @@ -343,10 +343,10 @@ outside - + CSR - left - + left + fw2dpi -- GitLab From 8b571323a7996404a9fe15de4afde8ebb6012fba Mon Sep 17 00:00:00 2001 From: ramanathan Date: Thu, 1 Apr 2021 13:01:03 +0200 Subject: [PATCH 25/25] Update nfv.xml --- example-data/nfv.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/example-data/nfv.xml b/example-data/nfv.xml index b10aa50..a74911a 100644 --- a/example-data/nfv.xml +++ b/example-data/nfv.xml @@ -585,17 +585,17 @@ CSR inside - + firewall-nsd - inside - + inside + outside - + CSR - left - + left + r2fw -- GitLab