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