diff --git a/example-data/nfv.xml b/example-data/nfv.xml
index 15ef3fefb8d5bc1ff51cc18e740b98d5e50cf36b..a956b2b51ebb5f5c36cab9095f918b8eefc8bded 100644
--- a/example-data/nfv.xml
+++ b/example-data/nfv.xml
@@ -4,7 +4,7 @@
My Company
My Company ASAv
9.8
- 9.8
+ 9.8
My Company Vnfm
firewall
@@ -206,7 +206,7 @@
firewall
ASA
- normal
+ normal
single
1
1
@@ -241,7 +241,6 @@
fw2dpi
- 1.0
Ethernet
@@ -257,7 +256,6 @@
mgmt
- 1.0
IPv4
@@ -273,7 +271,6 @@
r2fw
- 1.0
Ethernet
@@ -292,7 +289,7 @@
firewall
ASA
- normal
+ normal
single
1
1
@@ -314,7 +311,7 @@
router
CSR
- normal
+ normal
single
1
1
@@ -336,7 +333,7 @@
mgmt
mgmt
- normal
+ normal
1000
@@ -347,7 +344,7 @@
r2fw
r2fw
- normal
+ normal
10000000
@@ -373,7 +370,7 @@
firewall
ASA
- normal
+ normal
single
1
1
@@ -402,7 +399,7 @@
router
CSR
- normal
+ normal
single
1
1
@@ -435,7 +432,7 @@
fw2dpi
fw2dpi
- normal
+ normal
1000000
@@ -446,7 +443,7 @@
mgmt
mgmt
- normal
+ normal
1000
@@ -457,7 +454,7 @@
r2fw
r2fw
- normal
+ normal
1000000
@@ -499,7 +496,6 @@
r2fw
- 1.0
IPv4
@@ -518,7 +514,7 @@
router
CSR
- normal
+ normal
single
1
1
@@ -533,7 +529,7 @@
r2fw
r2fw
- r2fw
+ r2fw
500
diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang
index 9fc55dc5f8e46a1bb09090214721d753836aacb8..23092426674b924167c950a593d8e903b548d710 100644
--- a/src/yang/etsi-nfv-common.yang
+++ b/src/yang/etsi-nfv-common.yang
@@ -215,8 +215,8 @@ submodule etsi-nfv-common {
enum "end-healing";
enum "start-termination";
enum "end-termination";
- enum "start-vnf-flavor-change";
- enum "end-vnf-flavor-change";
+ enum "start-vnf-flavour-change";
+ enum "end-vnf-flavour-change";
enum "start-vnf-operation-change";
enum "end-vnf-operation-change";
enum "start-vnf-ext-conn-change";
@@ -571,5 +571,115 @@ submodule etsi-nfv-common {
reference
"GS NFV IFA011: Section 7.1.6.3 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.";
+ }
}
}
diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang
index b75eff2af3d56343bb38cdf3094307b66d881461..3b8aef3cfb092781b9b22457fcc037d98c1fd7ec 100644
--- a/src/yang/etsi-nfv-ns.yang
+++ b/src/yang/etsi-nfv-ns.yang
@@ -226,25 +226,6 @@ submodule etsi-nfv-ns {
information element";
}
- leaf provider {
- type string;
- description
- "Defines the organization generating the VLD.";
- reference
- "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
- information element";
- }
-
- leaf version {
- mandatory true;
- type string;
- description
- "Specifies the version of the VLD.";
- reference
- "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
- information element";
- }
-
uses connectivity-type;
list df {
@@ -434,25 +415,54 @@ submodule etsi-nfv-ns {
key "id";
description
- "A pool of descriptors of connection points attached to
- one of the constituent VNFs and PNFs and/or one of the
- SAPs of the parent NS or of a nested NS.";
+ "Describes a pool of descriptors of connection points
+ attached to one of the constituent VNFs and PNFs and/or
+ one of the SAPs of the parent NS or of a nested NS.";
reference
"GS NFV IFA014: Section 6.4.2.2 Vnffgd information
element";
leaf id {
type string;
+ }
+
+ choice constituent-base-element-id {
+ mandatory "true";
+ container vnf-profile {
+ leaf vnf-profile-id {
+ must ". = deref(../../vnfd-profile-id)" {
+ }
+ type leafref {
+ path "/nfv/nsd/df/vnf-profile/id";
+ }
+ }
+ }
+ container pnf-profile {
+ leaf pnf-profile-id {
+ must ". = deref(../../pnfd-profile-id)" {
+ }
+ type leafref {
+ path "/nfv/nsd/df/pnf-profile/id";
+ }
+ }
+ }
+ container ns-profile {
+ leaf ns-profile-id {
+ must ". = deref(../../ns-profile-id)" {
+ }
+ type leafref {
+ path "/nfv/nsd/df/ns-profile/id";
+ }
+ }
+ }
description
- "Identifier of this CpdPool information element. It
- identifies a pool of descriptors of connection points
- and NS SAPs.";
+ "Reference to the profile of an NS constituent.";
reference
- "GS NFV IFA014: Section 6.4.4.2 CpdPool information
- element";
+ "GS NFV IFA014: Section 6.4.8 CpdInConstituentElement
+ information element";
}
- choice cpd-id {
+ choice constituent-cpd-id {
container vnf {
leaf vnfd-id {
must ". = deref(../../vnfd-profile-id)/../vnfd-id" {
@@ -483,7 +493,8 @@ submodule etsi-nfv-ns {
}
container ns {
leaf nsd-id {
- must ". = deref(../../nested-ns-profile-id)/../nsd-id" {
+ must ". = deref(../../nested-ns-profile-id)/" +
+ "../nsd-id" {
}
type leafref {
@@ -664,7 +675,7 @@ submodule etsi-nfv-ns {
"GS NFV IFA014: Section 6.3.2.2 NsDf information element";
}
- leaf flavor-key {
+ leaf flavour-key {
type leafref {
path "../monitored-info/id";
}
@@ -715,7 +726,7 @@ submodule etsi-nfv-ns {
element";
}
- leaf flavor-id {
+ leaf flavour-id {
mandatory true;
type leafref {
path "deref(../vnfd-id)/../df/id";
@@ -730,7 +741,7 @@ submodule etsi-nfv-ns {
leaf instantiation-level {
mandatory true;
type leafref {
- path "deref(../flavor-id)/../instantiation-level/id";
+ path "deref(../flavour-id)/../instantiation-level/id";
}
description
"Identifier of the instantiation level of the VNF DF
@@ -964,7 +975,7 @@ submodule etsi-nfv-ns {
information element";
}
- leaf flavor-id {
+ leaf flavour-id {
mandatory true;
type leafref {
path "deref(../virtual-link-desc-id)/../df/id";
@@ -1542,6 +1553,16 @@ submodule etsi-nfv-ns {
"GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
information element";
}
+
+ leaf collection-period {
+ type string;
+ description
+ "An attribute that describes the periodicity at
+ which to collect the performance information.";
+ reference
+ "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
+ information element";
+ }
}
}
}
diff --git a/src/yang/etsi-nfv-pnf.yang b/src/yang/etsi-nfv-pnf.yang
index c7a8ff01e49c21d2606581d34a19eb87e01b7e34..ae7ef81fd3c4659ed7555fcc33202a7355113396 100644
--- a/src/yang/etsi-nfv-pnf.yang
+++ b/src/yang/etsi-nfv-pnf.yang
@@ -111,6 +111,7 @@ submodule etsi-nfv-pnf {
reference
"GS NFV-IFA014: Section 6.6.2, Pnfd information element";
}
+ uses security-group-rule;
}
}
}
diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang
index ab3319ef1ea808427ec581f1d54ee9408bc97c9f..112fe39331226468666ad931b5e489ee36f659f2 100755
--- a/src/yang/etsi-nfv-vnf.yang
+++ b/src/yang/etsi-nfv-vnf.yang
@@ -45,6 +45,7 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
+
leaf description {
type string;
description
@@ -53,6 +54,7 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
+
leaf support-mandatory {
default "false";
type boolean;
@@ -64,8 +66,11 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
+
list network-interface-requirements {
key "key";
+ min-elements "1";
+
leaf key {
type string;
}
@@ -80,7 +85,8 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
- leaf niclo-requirements {
+
+ leaf nicio-requirements {
type leafref {
path "/nfv/vnfd/virtual-compute-descriptor/id";
}
@@ -280,18 +286,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.4, VduCpd information
element.";
}
-
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 IFA011: Section 7.1.6.3 Cpd information element";
- }
}
leaf virtual-compute-desc {
type leafref {
@@ -555,10 +550,10 @@ submodule etsi-nfv-vnf {
fraction-digits 1;
range "0..max";
}
- units "Gb";
+ units "GB";
default 1;
description
- "Amount of virtual memory in MB.";
+ "Amount of virtual memory in GB.";
reference
"GS NFV IFA011: Section 7.1.9.3, Information elements
related to Virtual Memory.";
@@ -672,29 +667,51 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.9.3.2, VirtualCpuData
information element.";
}
- container virtual-cpu-pinning {
+ container pinning {
presence "Set to specify CPU pinning.";
- leaf cpu-pinning-policy {
+ leaf policy {
default "dynamic";
type enumeration {
enum "static";
enum "dynamic";
}
description
- "Indicates the policy for CPU pinning. The policy can
- take values of 'static' or 'dynamic'. The cardinality
- can be 0 during the allocation request, if no
- particular value is requested.";
+ "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
+ virtualCpuPinningRules. In case of 'dynamic' the
+ allocation of virtual CPU cores to logical CPU cores
+ is decided by the VIM. (e.g. SMT (Simultaneous
+ MultiThreading) requirements).";
+ reference
+ "GS NFV IFA011: Section 7.1.9.2.4,
+ VirtualCpuPinningData information element.";
}
- container cpu-pinning-map {
- when "../nfv:cpu-pinning-policy = 'static'";
+
+ list rule {
+ when "../nfv:policy = 'static'";
+ key "key";
+ leaf key {
+ type string;
+ }
+ leaf value {
+ type string;
+ }
+ description
+ "A 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.";
}
description
- "If cpuPinningPolicy is defined as 'static', the
- cpuPinningMap provides the map of pinning virtual
- CPU cores to physical CPU cores/threads. Cardinality
- is 0 if cpuPinningPolicy has a different value than
- 'static'.";
+ "The virtual CPU pinning configuration for the
+ virtualised compute resource.";
+ reference
+ "GS NFV IFA011: Section 7.1.9.2.3,
+ VirtualCpuData information element.";
}
}
}
@@ -731,11 +748,11 @@ submodule etsi-nfv-vnf {
}
leaf size-of-storage {
type uint64;
- units "Gb";
+ units "GB";
default 0;
description
"Size of virtualised storage resource (e.g. size of
- volume, in Gb)";
+ volume, in GB)";
reference
"GS NFV IFA011: Section 7.1.9.4, Information elements
related to Virtual Storage.";
@@ -936,7 +953,7 @@ submodule etsi-nfv-vnf {
}
leaf min-disk {
type uint64;
- units "Gb";
+ units "GB";
default 0;
description
"The minimal disk size requirement for this software
@@ -953,7 +970,7 @@ submodule etsi-nfv-vnf {
fraction-digits 1;
range "0..max";
}
- units "Gb";
+ units "GB";
default 0;
description
"The minimal RAM requirement for this software image.
@@ -967,7 +984,7 @@ submodule etsi-nfv-vnf {
}
leaf size {
type uint64;
- units "Gb";
+ units "GB";
description
"The size of this software image.";
reference
@@ -1024,7 +1041,7 @@ submodule etsi-nfv-vnf {
Information elements.";
}
- list desc-flavor {
+ list flavour {
key "id";
description
"Describes a specific flavour of the VL with specific
@@ -1038,7 +1055,7 @@ submodule etsi-nfv-vnf {
description
"Identifies a flavour within a VnfVirtualLinkDesc.";
reference
- "GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavor
+ "GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavour
information element.";
}
container qos {
@@ -1046,7 +1063,7 @@ submodule etsi-nfv-vnf {
description
"QoS of the VL.";
reference
- "GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavor
+ "GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavour
information element.";
leaf latency {
@@ -1120,102 +1137,7 @@ submodule etsi-nfv-vnf {
}
}
- 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.";
- }
+ uses security-group-rule;
list ext-cpd {
key "id";
@@ -1245,25 +1167,14 @@ submodule etsi-nfv-vnf {
}
}
leaf cpd {
- type leafref {
- path "deref(../vdu-id)/../int-cpd/id";
- }
+ type leafref {
+ path "deref(../vdu-id)/../int-cpd/id";
+ }
}
}
}
uses virtual-network-interface-requirements;
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 IFA011: Section 7.1.6.3 Cpd information element";
- }
}
list df {
@@ -1282,15 +1193,15 @@ submodule etsi-nfv-vnf {
"Identifier of this DF within the VNFD.";
reference
"GS NFV IFA011: Section 7.1.8, Information elements
- to the DeploymentFlavor.";
+ to the DeploymentFlavour.";
}
leaf description {
type string;
description
- "Human readable description of the deployment flavor";
+ "Human readable description of the deployment flavour";
reference
"GS NFV IFA011: Section 7.1.8, Information elements
- to the DeploymentFlavor.";
+ to the DeploymentFlavour.";
}
list vdu-profile {
key "id";
@@ -1300,7 +1211,7 @@ submodule etsi-nfv-vnf {
a given VDU used in a deployment flavour.";
reference
"GS NFV IFA011: Section 7.1.8, Information elements
- to the DeploymentFlavor.";
+ to the DeploymentFlavour.";
leaf id {
type leafref {
path "../../../nfv:vdu/nfv:id";
@@ -1373,7 +1284,7 @@ submodule etsi-nfv-vnf {
}
}
list virtual-link-profile {
- key "id flavor";
+ key "id flavour";
description
"Defines the internal VLD along with additional data which
is used in this DF.";
@@ -1391,10 +1302,11 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
}
- leaf flavor {
+
+ leaf flavour {
type leafref {
path "deref(../../../ext-cpd/int-virtual-link-desc)" +
- "/../desc-flavor/id";
+ "/../flavour/id";
}
description
"Identifies a flavour within the VnfVirtualLinkDesc.";
@@ -1403,6 +1315,7 @@ submodule etsi-nfv-vnf {
information element.";
}
uses local-affinity-or-anti-affinity-rule;
+
list affinity-or-anti-affinity-group {
key "id";
leaf id {
@@ -1419,7 +1332,248 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
}
+
+ container max-bit-rate-requirements {
+ leaf root {
+ mandatory "true";
+ type uint32;
+ description
+ "Throughput requirement of the link (e.g. bitrate of
+ E-Line, root bitrate of E-Tree, aggregate capacity
+ of E-LAN).";
+ reference
+ "GS NFV IFA011: Section 7.1.8.6,
+ LinkBitrateRequirements information element.";
+ }
+
+ leaf leaf {
+ type uint32;
+ description
+ "Throughput requirement of leaf connections to the
+ link when applicable to the connectivity type
+ (e.g. for E-Tree and E-LAN branches).";
+ reference
+ "GS NFV IFA011: Section 7.1.8.6,
+ LinkBitrateRequirements information element.";
+ }
+ description
+ "Specifies the maximum bitrate requirements for a VL
+ instantiated according to this profile.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
+ information element.";
+ }
+
+ container min-bit-rate-requirements {
+ leaf root {
+ mandatory "true";
+ type uint32;
+ description
+ "Throughput requirement of the link (e.g. bitrate of
+ E-Line, root bitrate of E-Tree, aggregate capacity
+ of E-LAN).";
+ reference
+ "GS NFV IFA011: Section 7.1.8.6,
+ LinkBitrateRequirements information element.";
+ }
+
+ leaf leaf {
+ type uint32;
+ description
+ "Throughput requirement of leaf connections to the
+ link when applicable to the connectivity type
+ (e.g. for E-Tree and E-LAN branches).";
+ reference
+ "GS NFV IFA011: Section 7.1.8.6,
+ LinkBitrateRequirements information element.";
+ }
+ description
+ "Specifies the minimum bitrate requirements for a VL
+ instantiated according to this profile.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
+ information element.";
+ }
+
+ 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.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.13,
+ 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 IFA011: Section 7.1.8.14,
+ 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.
+ Possible values: FLAT, VLAN, VXLAN, GRE.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.14,
+ L2ProtocolData information element.";
+ }
+
+ leaf vlan-transparent {
+ type boolean;
+ description
+ "Specifies whether to support VLAN transparency for
+ this L2 protocol or not.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.14,
+ L2ProtocolData information element.";
+ }
+
+ leaf mtu {
+ type uint16;
+ description
+ "Specifies the maximum transmission unit (MTU) value
+ for this L2 protocol.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.14,
+ 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 IFA011: Section 7.1.8.13,
+ 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 IFA011: Section 7.1.8.15,
+ L3ProtocolData information element.";
+ }
+
+ leaf ip-version {
+ type enumeration {
+ enum ipv4;
+ enum ipv6;
+ }
+ default "ipv4";
+ description
+ "Specifies IP version of this L3 protocol.
+ Value:
+ • IPV4.
+ • IPV6.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.15,
+ L3ProtocolData information element.";
+ }
+
+ leaf cidr {
+ type string;
+ description
+ "Specifies the CIDR (Classless InterDomain Routing)
+ of this L3 protocol.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.15,
+ 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 IFA011: Section 7.1.8.15,
+ L3ProtocolData information element.";
+ }
+
+ leaf gateway-ip {
+ type inet:ip-address;
+ description
+ "Specifies the gateway IP address for this L3
+ protocol.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.15,
+ L3ProtocolData information element.";
+ }
+
+ leaf dhcp-enabled {
+ type boolean;
+ default "true";
+ description
+ "Indicates whether DHCP (Dynamic Host Configuration
+ Protocol) is enabled or disabled for this L3
+ protocol.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.15,
+ L3ProtocolData information element.";
+ }
+
+ leaf ipv6-address-mode {
+ when "../ip-version = 'ipv6'";
+ type enumeration {
+ enum slaac;
+ enum dhcpv6-stateful;
+ enum dhcpv6-stateless;
+ }
+ description
+ "Specifies IPv6 address mode. Possible values:
+ • SLAAC.
+ • DHCPV6-STATEFUL.
+ • DHCPV6-STATELESS.
+ May be present when the value of the ipVersion
+ attribute is 'IPV6' and shall be absent otherwise.";
+ reference
+ "GS NFV IFA011: Section 7.1.8.15,
+ 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 IFA011: Section 7.1.8.13,
+ 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 IFA011: Section 7.1.8.4, VirtualLinkProfile
+ information element.";
+ }
}
+
list instantiation-level {
key "id";
min-elements 1;
@@ -1557,8 +1711,23 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.8.2 VnfDf information
element";
- leaf instantiate-vnf-op-config {
- type string;
+ container instantiate-vnf-op-config {
+ list parameter {
+ key "key";
+ leaf key {
+ type string;
+ }
+ leaf value {
+ type string;
+ }
+ description
+ "Array of KVP requirements for VNF-specific parameters
+ to be passed when invoking the InstantiateVnf
+ operation.";
+ reference
+ "GS NFV IFA011: Section 7.1.5.3
+ InstantiateVnfOpConfig information element";
+ }
description
"Configuration parameters for the InstantiateVnf
operation.";
@@ -1566,6 +1735,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
}
+
container scale-vnf-op-config {
description
"Configuration parameters for the ScaleVnf operation.";
@@ -1582,12 +1752,13 @@ submodule etsi-nfv-vnf {
type string;
}
description
- "VNF-specific parameter to be passed when invoking
- the ScaleVnf operation.";
- reference
+ "Array of KVP requirements for VNFspecific parameters
+ to be passed when invoking the ScaleVnf operation.";
+ reference
"GS NFV IFA011: Section 7.1.5.4 ScaleVnfOpConfig
information element";
}
+
leaf scaling-by-more-than-one-step-supported {
type boolean;
default false;
@@ -1601,6 +1772,7 @@ submodule etsi-nfv-vnf {
ScaleVnfOpConfig information element";
}
}
+
container scale-vnf-to-level-op-config {
description
"This information element defines attributes that
@@ -1619,14 +1791,17 @@ submodule etsi-nfv-vnf {
type string;
}
description
- "VNF-specific parameter to be passed when invoking
- the ScaleVnfToLevel operation.";
+ "Array of KVP requirements for VNF-specific parameters
+ to be passed when invoking the ScaleVnfToLevel
+ operation.";
reference
"GS NFV IFA011: Section 7.1.5.5
ScaleVnfToLevelOpConfig information element";
}
+
leaf arbitrary-target-levels-supported {
type boolean;
+ default "false";
description
"Signals whether scaling according to the parameter
'scaleInfo' is supported by this VNF.";
@@ -1635,6 +1810,7 @@ submodule etsi-nfv-vnf {
ScaleVnfToLevelOpConfig information element";
}
}
+
container heal-vnf-op-config {
description
"This information element defines attributes that
@@ -1643,16 +1819,23 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
- leaf parameter {
- type string;
+ list parameter {
+ key "key";
+ leaf key {
+ type string;
+ }
+ leaf value {
+ type string;
+ }
description
- "VNF-specific parameter to be passed when invoking
- the HealVnf operation.";
+ "Array of KVP requirements for VNF-specific parameters
+ to be passed when invoking the HealVnf operation.";
reference
"GS NFV IFA011: Section 7.1.5.6 HealVnfOpConfig
information element";
}
- leaf cause {
+
+ leaf-list cause {
type string;
description
"Supported 'cause' parameter values.";
@@ -1661,6 +1844,7 @@ submodule etsi-nfv-vnf {
information element";
}
}
+
container terminate-vnf-op-config {
description
"This information element defines attributes that
@@ -1668,8 +1852,10 @@ submodule etsi-nfv-vnf {
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
+
leaf min-graceful-termination {
type yang:timeticks;
+ default "1";
description
"Minimum timeout value for graceful termination of
a VNF instance.";
@@ -1677,6 +1863,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.7
TerminateVnfOpConfig information element";
}
+
leaf max-recommended-graceful-termination {
type yang:timeticks;
description
@@ -1691,7 +1878,25 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.7
TerminateVnfOpConfig information element";
}
+
+ list parameter {
+ key "key";
+ leaf key {
+ type string;
+ }
+ leaf value {
+ type string;
+ }
+ description
+ "Array of KVP requirements for VNF-specific parameters
+ to be passed when invoking the TerminateVnf
+ operation.";
+ reference
+ "GS NFV IFA011: Section 7.1.5.7
+ TerminateVnfOpConfig information element";
+ }
}
+
container operate-vnf-op-config {
description
"This information element defines attributes that
@@ -1702,6 +1907,7 @@ submodule etsi-nfv-vnf {
leaf min-graceful-stop-timeout {
type yang:timeticks;
+ default "1";
description
"Minimum timeout value for graceful stop of a VNF
instance.";
@@ -1709,6 +1915,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.8
OperateVnfOpConfig information element";
}
+
leaf max-recommended-graceful-stop-timeout {
type yang:timeticks;
description
@@ -1723,8 +1930,77 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.8
OperateVnfOpConfig information element";
}
+
+ list parameter {
+ key "key";
+ leaf key {
+ type string;
+ }
+ leaf value {
+ type string;
+ }
+ description
+ "Array of KVP requirements for VNF-specific parameters
+ to be passed when invoking the OperateVnf
+ operation.";
+ reference
+ "GS NFV IFA011: Section 7.1.5.8
+ OperateVnfOpConfig information element";
+ }
+ }
+
+ container change-vnf-flavour-op-config {
+ list parameter {
+ key "key";
+ leaf key {
+ type string;
+ }
+ leaf value {
+ type string;
+ }
+ description
+ "Array of KVP requirements for VNF-specific parameters
+ to be passed when invoking the OperateVnf
+ operation.";
+ reference
+ "GS NFV IFA011: Section 7.1.5.9
+ ChangeVnfFlavour information element";
+ }
+ description
+ "Configuration parameters for the ChangeVnfFlavour
+ operation.";
+ reference
+ "GS NFV IFA011: Section 7.1.5.2
+ VnfLcmOperationsConfiguration information element";
+ }
+
+ container change-ext-vnf-connectivity-op-config {
+ list parameter {
+ key "key";
+ leaf key {
+ type string;
+ }
+ leaf value {
+ type string;
+ }
+ description
+ "Array of KVP requirements for VNF-specific parameters
+ to be passed when invoking the
+ ChangeExtVnfConnectivity operation.";
+ reference
+ "GS NFV IFA011: Section 7.1.5.10
+ ChangeExtVnfConnectivityOpConfig information
+ element";
+ }
+ description
+ "Configuration parameters for the
+ ChangeExtVnfConnectivity operation.";
+ reference
+ "GS NFV IFA011: Section 7.1.5.2
+ VnfLcmOperationsConfiguration information element";
}
}
+
list affinity-or-anti-affinity-group {
key "id";
description
@@ -2115,7 +2391,7 @@ submodule etsi-nfv-vnf {
reference
"GS NFV IFA011: Section 7.1.2 VNFD information element";
- leaf auto-scalable {
+ leaf is-auto-scalable-enabled {
type boolean;
description
"It permits to enable (TRUE) / disable (FALSE) the
@@ -2124,7 +2400,8 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
information element";
}
- leaf auto-healable {
+
+ leaf is-auto-heal-enabled {
type boolean;
description
"It permits to enable (TRUE) / disable (FALSE) the
@@ -2133,6 +2410,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
information element";
}
+
list additional-configurable-property {
key "key";
leaf key {
@@ -2222,7 +2500,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element";
}
- leaf lcm-transition-event {
+ leaf-list lcm-transition-event {
type string;
description
"Describes the transition VNF lifecycle event(s) that