diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1fa3fc6171c80f5e415a2766aa33457839f761b1 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Note: At this time this document is in draft state, and subject to change till the final approval. As such, files accessed/used from this repository are subject to change. Do not use as reference material. + +When approved, this README will be updated to reflect the status of the document. \ No newline at end of file diff --git a/example-data/complex-vnfd.xml b/example-data/complex-vnfd.xml index 39bbbaf03bed0b92b9fa98710adcc78be70afd2c..cf8048d9ed6ecdf8099420b9fb2e393ad4a0151e 100644 --- a/example-data/complex-vnfd.xml +++ b/example-data/complex-vnfd.xml @@ -80,8 +80,12 @@ root - root-storage - 10 + block + + 10 + true + CP + CP @@ -118,12 +122,18 @@ ipv4 + + 1 + mgmt ipv4 + + 1 + in @@ -152,22 +162,27 @@ control-plane-active 1 1 - - control-plane - + control-plane + + 1 + control-plane-standby 1 1 - - control-plane - + control-plane + + 1 + data-plane 2 8 + + 1 + il-1 @@ -210,6 +225,18 @@ 1 + + + 1 + 1 + + + + + 1 + 1 + + control-plane @@ -223,22 +250,27 @@ control-plane-active 1 1 - - control-plane - + control-plane + + 1 + control-plane-standby 1 1 - - control-plane - + control-plane + + 1 + data-plane 1 4 + + 1 + il-1 @@ -281,6 +313,18 @@ 1 + + + 1 + 1 + + + + + 1 + 1 + + control-plane diff --git a/example-data/nfv-nsd.xml b/example-data/nfv-nsd.xml index 57f7c7c840327e7396717dfcd1c5b735f36130bd..a33c698cf67f5cb4683cc59833eabdfde54204e9 100644 --- a/example-data/nfv-nsd.xml +++ b/example-data/nfv-nsd.xml @@ -1,4 +1,5 @@ - + + ASA My Company @@ -36,8 +37,10 @@ asa-vsd - nfv:root-storage - 0 + nfv:block + + 0 + asa-image @@ -49,7 +52,7 @@ bare qcow2 - 20 + 0 2.0 1 http://www.mycompany.com/asa.qcow2 @@ -84,6 +87,9 @@ firewall 1 2 + + 1 + double @@ -100,6 +106,20 @@ single + + + + 1 + 1 + + + + + 1 + 1 + + + @@ -133,4 +153,4 @@ - + diff --git a/example-data/nfv-vnfd.xml b/example-data/nfv-vnfd.xml index f9ffa74826c2b86702e49ae2472ae5f1277239d7..80679f1cc62cf0ed4b8b95577466cf3b16044f8e 100644 --- a/example-data/nfv-vnfd.xml +++ b/example-data/nfv-vnfd.xml @@ -35,8 +35,11 @@ asa-vsd - nfv:root-storage - 0 + nfv:file + + 0 + asa-image + asa-image @@ -48,7 +51,7 @@ bare qcow2 - 20 + 0 2.0 1 http://www.mycompany.com/asa.qcow2 @@ -71,6 +74,9 @@ firewall 1 2 + + 1 + double @@ -87,5 +93,19 @@ single + + + + 1 + 1 + + + + + 1 + 1 + + + diff --git a/example-data/nfv.xml b/example-data/nfv.xml index fef928e79c8de820afadfe5e03f5d361336dbe21..ccd703c0309351f77bd06017e23c619a7640ecb7 100644 --- a/example-data/nfv.xml +++ b/example-data/nfv.xml @@ -36,8 +36,12 @@ asa-vsd - root-storage - 0 + block + + 1 + true + asa-image + asa-image @@ -67,6 +71,9 @@ ethernet + + 1 + inside @@ -95,6 +102,9 @@ firewall 1 2 + + 1 + inside-vl @@ -141,6 +151,18 @@ 1 + + + 1 + 1 + + + + + 1 + 1 + + @@ -181,8 +203,11 @@ csr-vsd - root-storage - 0 + file + + 1 + csr-image + csr-image @@ -229,6 +254,9 @@ router 1 2 + + 1 + double @@ -255,6 +283,18 @@ 1 + + + 1 + 1 + + + + + 1 + 1 + + diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang index 7077b5c7b1018057b7c02829dc02f44a51e76dd7..18ba9a8b1dcc8ac334be244316434718075809bf 100644 --- a/src/yang/etsi-nfv-common.yang +++ b/src/yang/etsi-nfv-common.yang @@ -3,12 +3,37 @@ submodule etsi-nfv-common { belongs-to etsi-nfv-descriptors { prefix nfv; } + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types."; + } + organization "European Telecommunications Standards Institute (ETSI)"; description "Common data types for ETSI data models."; + revision 2020-06-10 { + description + "Version 3.3.1. + + Common data structures to support VNFD and NSD according to: + ETSI GS NFV-IFA 014 Release 3 + ETSI GS NFV-IFA 011 Release 3."; + } + + revision 2020-06-01 { + description + "Version 2.8.1. + + Common data structures to support VNFD and NSD according to: + ETSI GS NFV-IFA 014 271 + ETSI GS NFV-IFA 011 271."; + } + revision 2019-10-01 { description "Version 2.7.1. @@ -17,6 +42,7 @@ submodule etsi-nfv-common { ETSI GS NFV-IFA 014 Ed271v264 ETSI GS NFV-IFA 011 Ed271v264"; } + revision 2019-04-25 { description "Initial revision @@ -233,22 +259,22 @@ submodule etsi-nfv-common { "Base type of storage that identities can derive from."; } - identity root-storage { + identity block { base storage-type; description - "Root type of storage."; + "Block type of storage."; } - identity swap-storage { + identity object { base storage-type; description - "Swap type of storage."; + "Object type of storage."; } - identity ephemeral-storage { + identity file { base storage-type; description - "Ephemeral type of storage."; + "File type of storage."; } identity forwarding-behaviour { @@ -369,6 +395,7 @@ submodule etsi-nfv-common { enum "zone-group"; enum "zone"; enum "nfvi-pop"; + enum "network-link-and-node"; } } @@ -390,30 +417,142 @@ submodule etsi-nfv-common { enum "end-vnf-ext-conn-change"; enum "start-vnfinfo-modification"; enum "end-vnfinfo-modification"; + enum "start-vnf-snapshot-creation"; + enum "end-vnf-snapshot-creation"; + enum "start-vnf-snapshot-reverting-to"; + enum "end-vnf-snapshot-reverting-to"; + enum "start-change-current-vnf-package"; + enum "end-change-current-vnf-package"; } } - grouping local-affinity-or-anti-affinity-rule { - list local-affinity-or-anti-affinity-rule { - key "type scope"; - leaf type { - type affinity-type; + typedef external-lifecycle-management-script-event { + type enumeration { + enum "instantiation"; + enum "scaling"; + enum "healing"; + enum "termination"; + enum "vnf-flavour-change"; + enum "vnf-operation-change"; + enum "vnf-ext-conn-change"; + enum "vnfinfo-modification"; + enum "vnf-snapshot-creation"; + enum "vnf-snapshot-reverting-to"; + enum "change-current-vnf-package"; + } + } + + grouping nfvi-maintenance-info { + container nfvi-maintenance-info { + + leaf impact-notification-lead-time { + type yang:timeticks; + mandatory true; + description + "The value specifies the minimum notification lead time + requested for upcoming impact of the virtualised resource + or their group (i.e. between the notification and the + action causing the impact)."; + reference + "GS NFV-IFA011: Section 7.1.8.17, NfviMaintenanceInfo + information element"; + } + + leaf is-impact-mitigation-requested { + type boolean; + description + "When set to True, it is requested that at the time of the + notification of an upcoming change that is expected to have + an impact on the VNF, virtualised resource(s) of the same + characteristics as the impacted ones is/are provided to + compensate for the impact. Cardinality 0 corresponds to the + value False."; + reference + "GS NFV-IFA011: Section 7.1.8.17, NfviMaintenanceInfo + information element"; + } + + leaf-list supported-migration-type { + type enumeration { + enum "no-migration"; + enum "offline-migration"; + enum "live-migration"; + } + description + "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."; + reference + "GS NFV-IFA011: Section 7.1.8.17, NfviMaintenanceInfo + information element"; + } + + leaf max-undetectable-interruption-time { + type yang:timeticks; description - "Specifies whether the rule is an affinity rule or an - anti-affinity rule."; + "Applicable to VirtualComputeDesc and VirtualStorageDesc. + When present, it specifies the maximum interruption time + that can go undetected at the VNF level and therefore + which will not trigger VNFinternal recovery during live + migration."; reference - "GS NFV IFA011: Section 7.1.8.11, - LocalAffinityOrAntiAffinityRule information element."; + "GS NFV-IFA011: Section 7.1.8.17, NfviMaintenanceInfo + information element"; } - leaf scope { - type affinity-scope; + leaf min-recovery-time-between-impacts { + type yang:timeticks; description - "Specifies the scope of the rule, possible values are - 'NFVI-PoP', 'Zone', 'ZoneGroup', 'NFVI-node'."; + "When present, it specifies the time required by the group + to recover from an impact, thus, the minimum time + requested between consecutive impacts of the group."; reference - "GS NFV IFA011: Section 7.1.8.11, - LocalAffinityOrAntiAffinityRule information element."; + "GS NFV-IFA011: Section 7.1.8.17, NfviMaintenanceInfo + information element"; + } + + list max-number-of-impacted-instances { + key "group-size"; + ordered-by user; + must "./max-number-of-impacted-instances <= ./group-size"; + + leaf group-size { + type uint32; + description + "When present, it determines the size of the group for + which the maxNumberOfImpactedInstances is specified. + Otherwise the size is not limited. + + Each groupSize value specified for a group of virtual + resources shall be unique, and it shall be possible + to form an ascending ordered list of groupSizes. + + The number of instances in the group for which the + maxNumberOfImpactedInstances is specified may be equal + to groupSize or less. When the number of instances is + less than the groupSize, it shall be at least 1 if this + is the first groupSize in the ordered list of groupSizes, + or it shall be greater by at least 1 than the previous + groupSize in the ordered list of groupSizes."; + + reference + "GS NFV-IFA011: Section 7.1.8.17, NfviMaintenanceInfo + information element"; + } + + leaf max-number-of-impacted-instances { + type uint32 { + range "1 .. max"; + } + description + "The maximum number of instances that can be impacted + simultaneously within the group of the specified size."; + reference + "GS NFV-IFA011: Section 7.1.8.17, NfviMaintenanceInfo + information element"; + } } } } @@ -424,6 +563,7 @@ submodule etsi-nfv-common { type identityref { base layer-protocol; } + min-elements 1; description "Identifies the protocols that the VL uses (Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer diff --git a/src/yang/etsi-nfv-descriptors.yang b/src/yang/etsi-nfv-descriptors.yang index 0f2b64c5e221287e18881fc661e6c50ad9f443b1..fc51fbfcb196e2d2c7fd3712fdc930d8a0c90277 100644 --- a/src/yang/etsi-nfv-descriptors.yang +++ b/src/yang/etsi-nfv-descriptors.yang @@ -14,6 +14,22 @@ module etsi-nfv-descriptors { description "Network Function Virtualization Descriptors"; + revision 2020-06-10 { + description + "Version 3.3.1. + + NSD and PNFD according to ETSI GS NFV-IFA 014 Release 3 + VNFD according to ETSI GS NFV-IFA 011 Release 3."; + } + + revision 2020-06-01 { + description + "Version 2.8.1. + + NSD and PNFD according to ETSI GS NFV-IFA 014 271 + VNFD according to ETSI GS NFV-IFA 011 271."; + } + revision 2019-10-01 { description "Version 2.7.1. @@ -21,9 +37,11 @@ module etsi-nfv-descriptors { NSD and PNFD according to ETSI GS NFV-IFA 014 Ed271v264 VNFD according to ETSI GS NFV-IFA 011 Ed271v264."; } + revision 2019-04-25 { description "Initial revision. + NSD and PNFD according to ETSI GS NFV-IFA 014 Ed261v252 VNFD according to ETSI GS NFV-IFA 011 Ed261v254"; } @@ -61,7 +79,7 @@ module etsi-nfv-descriptors { key "id"; description - "The Pnfd information element is a deployment template + "The Pnfd information element is a deployment template enabling on-boarding PNFs and referencing them from an NSD. It focuses on connectivity aspects only."; reference diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 8aa781a774d201e20b35fc7c62e8c0f393293136..67100d91d55eba5004920232f2940f699a129fc1 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -11,19 +11,33 @@ submodule etsi-nfv-ns { description "Models for NS according to ETSI GS NFV-IFA 014."; + revision 2020-06-10 { + description + "Version 3.3.1. + + NSD according to ETSI GS NFV-IFA 014 Release 3."; + } + + revision 2020-06-01 { + description + "Version 2.8.1. + + NSD according to ETSI GS NFV-IFA 014 271."; + } + revision 2019-10-01 { description "Version 2.7.1. - Common data structures to support VNFD and NSD according to: - ETSI GS NFV-IFA 014 Ed271v264 - ETSI GS NFV-IFA 011 Ed271v264"; + Common data structures to support NSD according to: + ETSI GS NFV-IFA 014 Ed271v264."; } + revision 2019-04-25 { description "Initial revision - Common data structure to support NSD according to: - ETSI GS NFV-IFA 014 Ed261v252"; + + NSD according to ETSI GS NFV-IFA 014 Ed261v252."; reference "ETSI GS NFV-IFA 014 Ed261v252"; @@ -41,6 +55,31 @@ submodule etsi-nfv-ns { } } + grouping ns-local-affinity-or-anti-affinity-rule { + list local-affinity-or-anti-affinity-rule { + key "type scope"; + + leaf type { + type affinity-type; + description + "Specifies whether the rule is an affinity rule or an + anti-affinity rule."; + reference + "GS NFV IFA014: Section 6.3.8.2, + LocalAffinityOrAntiAffinityRule information element."; + } + + leaf scope { + type affinity-scope; + description + "Specifies the scope of the rule, possible values are + 'NFVI-PoP', 'NFVI-node' network-link-and-node etc."; + reference + "GS NFV IFA014: Section 6.3.8.2, + LocalAffinityOrAntiAffinityRule information element."; + } + } + } grouping nsd { leaf id { @@ -316,17 +355,16 @@ submodule etsi-nfv-ns { } leaf service-availability-level { - type enumeration { - enum "level-1"; - enum "level-2"; - enum "level-3"; - } + type uint32; description - "Specifies one of the three levels defined in ETSI - ETSI GS NFV-REL 001 [i.5] - * Level 1. - * Level 2. - * Level 3."; + "If present, specifies the service availability level + for the VL instance created from this DF. + + THE FOLLOWING STATEMENT IS SUBJECT TO CHANGE: + + Either the serviceAvailabilityLevel attribute of NS DF + or the serviceAvailabilityLevel attribute of the VL DF + may be provided, but not both."; reference "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf information element"; @@ -355,7 +393,6 @@ submodule etsi-nfv-ns { "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc information element"; } - uses security-parameters; } list vnffgd { @@ -578,7 +615,7 @@ submodule etsi-nfv-ns { list position-desc { key "id"; - min-elements 1; + min-elements 1; leaf id { type string; @@ -756,7 +793,7 @@ submodule etsi-nfv-ns { mandatory true; type leafref { path "deref(../flavour-id)/../nfv:instantiation-level/" + - "nfv:id"; + "nfv:id"; } description "Identifier of the instantiation level of the VNF DF @@ -790,23 +827,18 @@ submodule etsi-nfv-ns { element"; } - uses local-affinity-or-anti-affinity-rule; - - list affinity-or-anti-affinity-group { - key "id"; + uses ns-local-affinity-or-anti-affinity-rule; + leaf-list affinity-or-anti-affinity-group-id { + type leafref { + path "../../affinity-or-anti-affinity-group/id"; + } description "Identifier(s) of the affinity or anti-affinity group(s) the VnfProfile belongs to."; reference "GS NFV IFA014: Section 6.3.3.2 VnfProfile information element"; - - leaf id { - type leafref { - path "../../../affinity-or-anti-affinity-group/id"; - } - } } list virtual-link-connectivity { @@ -868,6 +900,21 @@ submodule etsi-nfv-ns { } } } + + leaf service-availability-level { + must "not(../../service-availability-level)"; + type uint32; + description + "If present, specifies the service availability level for + the VNF instance created from this profile. + + Either the serviceAvailabilityLevel attribute of NS DF + or the serviceAvailabilityLevel attribute of the + VnfProfile may be provided, but not both."; + reference + "GS NFV IFA014: Section 6.3.3.2 VnfProfile information + element"; + } } list pnf-profile { @@ -1002,11 +1049,12 @@ submodule etsi-nfv-ns { information element"; } - uses local-affinity-or-anti-affinity-rule; - - list affinity-or-anti-affinity-group { - key "id"; + uses ns-local-affinity-or-anti-affinity-rule; + leaf-list affinity-or-anti-affinity-group-id { + type leafref { + path "../../affinity-or-anti-affinity-group/id"; + } description "Identifies an affinity or anti-affinity group the VLs instantiated according to the VlProfile belong @@ -1014,12 +1062,6 @@ submodule etsi-nfv-ns { reference "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile information element"; - - leaf id { - type leafref { - path "../../../affinity-or-anti-affinity-group/id"; - } - } } container max-bitrate-requirements { @@ -1132,7 +1174,8 @@ 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, etc."; + relationship e.g. a NFVI node, an NFVI PoP, + network-link-and-node etc."; reference "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity information element"; @@ -1268,7 +1311,7 @@ submodule etsi-nfv-ns { "count(virtual-link-to-level-mapping) + " + "count(ns-to-level-mapping)) > 0" { error-message - "At least one attribute between " + + "At least one attribute between " + "vnf-to-level-mapping, " + "virtual-link-to-level-mapping and " + "ns-to-level-mapping shall be present."; @@ -1306,7 +1349,7 @@ submodule etsi-nfv-ns { leaf value { type string; } - description + description "Array of KVP requirements for additional parameters of NS to be passed when invoking the Instantiate Ns operation."; @@ -1327,7 +1370,7 @@ submodule etsi-nfv-ns { leaf value { type string; } - description + description "Array of KVP requirements for additional parameters of NS to be passed when invoking the Scale Ns operation."; @@ -1348,7 +1391,7 @@ submodule etsi-nfv-ns { leaf value { type string; } - description + description "Array of KVP requirements for additional parameters of NS to be passed when invoking the Heal Ns operation."; @@ -1367,7 +1410,7 @@ submodule etsi-nfv-ns { } must "boolean(../../nested-nsd-id[.=current()/nsd-id])" { error-message - "PNFDs in the profile has to be listed as a " + + "PNFDs in the profile has to be listed as a " + "dependency of the network service " + "descriptor."; } @@ -1400,7 +1443,7 @@ submodule etsi-nfv-ns { element"; } - leaf ns-df-id { + leaf ns-df-id { mandatory true; type leafref { path "deref(../nsd-id)/../df/id"; @@ -1413,7 +1456,7 @@ submodule etsi-nfv-ns { element"; } - leaf instantiation-level-id { + leaf instantiation-level-id { mandatory true; type leafref { path "deref(../ns-df-id)/../ns-instantiation-level/id"; @@ -1428,7 +1471,7 @@ submodule etsi-nfv-ns { element"; } - leaf min-number-of-instances { + leaf min-number-of-instances { type uint16; default 1; description @@ -1440,7 +1483,7 @@ submodule etsi-nfv-ns { element"; } - leaf max-number-of-instances { + leaf max-number-of-instances { type uint16; default 1; description @@ -1452,21 +1495,16 @@ submodule etsi-nfv-ns { element"; } - list affinity-or-anti-affinity-group-id { - key "id"; - + leaf-list affinity-or-anti-affinity-group-id { + type leafref { + 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 "GS NFV IFA014: Section 6.3.11.2 NsProfile information element"; - - leaf id { - type leafref { - path "../../../affinity-or-anti-affinity-group/id"; - } - } } list virtual-link-connectivity { @@ -1553,7 +1591,7 @@ submodule etsi-nfv-ns { information element"; } - choice secondary-id { + choice secondary-id { leaf secondary-vnf-profile { type leafref { path "../../vnf-profile/vnfd-id"; @@ -1591,7 +1629,7 @@ submodule etsi-nfv-ns { information element"; } - leaf vnf-indicator { + leaf vnf-indicator { mandatory true; type leafref { path "deref(../vnfd-id)/../nfv:indicator/nfv:id"; @@ -1655,6 +1693,24 @@ submodule etsi-nfv-ns { } } } + + leaf service-availability-level { + type uint32; + description + "If present, specifies the service availability level for + the NS instance created from this DF. + + THE FOLLOWING STATEMENT IS SUBJECT TO CHANGE: + + Either the serviceAvailabilityLevel attribute of NS DF or + the serviceAvailabilityLevel attribute of the NS + constituents of the NS may be provided, but not both. + When a SAL information is assigned to an NS, this + information does not apply to any constituents of type + ‘nested NS’."; + reference + "GS NFV IFA014: Section 6.3.2.2 NsDf information element"; + } } uses security-parameters; } diff --git a/src/yang/etsi-nfv-nsd.yang b/src/yang/etsi-nfv-nsd.yang index 304fc30e19f93ead8831dc49a57dd6d382b9f85a..8c9f21b4d160536cb24298defc3127f0aba01173 100644 --- a/src/yang/etsi-nfv-nsd.yang +++ b/src/yang/etsi-nfv-nsd.yang @@ -13,27 +13,44 @@ module etsi-nfv-nsd { description "Network Services Descriptors"; + revision 2020-06-10 { + description + "Version 3.3.1. + + NSD according to ETSI GS NFV-IFA 014 Release 3."; + } + + revision 2020-06-01 { + description + "Version 2.8.1. + + NSD according to ETSI GS NFV-IFA 014 271."; + } + revision 2019-10-01 { description "Version 2.7.1. - Common data structures to support VNFD and NSD according to: - ETSI GS NFV-IFA 014 Ed271v264 - ETSI GS NFV-IFA 011 Ed271v264"; + Common data structures to support NSD according to: + ETSI GS NFV-IFA 014 Ed271v264."; } + revision 2019-04-25 { description "Initial revision. - NSD according to ETSI GS NFV-IFA 014 Ed261v252."; + Common data structures to support NSD according to: + ETSI GS NFV-IFA 014 Ed261v252."; } container nsd { list nsd { key "id"; + max-elements 1; uses nfv:nsd; + description - "The NSD information element is a deployment template whose + "The NSD information element is a deployment template whose instances are used by the NFVO for the lifecycle management of NSs."; reference diff --git a/src/yang/etsi-nfv-pnf.yang b/src/yang/etsi-nfv-pnf.yang index 170e9638b87a37dba4fe7599d1bb97ed0d4c3c2b..a24746c4f24414b0cf80b553ec837926e2a83276 100644 --- a/src/yang/etsi-nfv-pnf.yang +++ b/src/yang/etsi-nfv-pnf.yang @@ -12,19 +12,33 @@ submodule etsi-nfv-pnf { description "Models for PNFD according to GS NFV-IFA 014."; + revision 2020-06-10 { + description + "Version 3.3.1. + + PNFD according to ETSI GS NFV-IFA 014 Release 3."; + } + + revision 2020-06-01 { + description + "Version 2.8.1. + + PNFD according to ETSI GS NFV-IFA 014 271."; + } + revision 2019-10-01 { description "Version 2.7.1. - Common data structures to support VNFD and NSD according to: - ETSI GS NFV-IFA 014 Ed271v264 - ETSI GS NFV-IFA 011 Ed271v264"; + Common data structures to support PNFD according to: + ETSI GS NFV-IFA 014 Ed271v264"; } + revision 2019-04-25 { description "Initial revision. - Common data structure to support VNFD according to: + Common data structures to support PNFD according to: ETSI GS NFV-IFA 014 Ed261v252"; reference diff --git a/src/yang/etsi-nfv-pnfd.yang b/src/yang/etsi-nfv-pnfd.yang index 8b3e46ebd17181c3e4ccd1b2dfd03817479e302a..c79d6b9c19ec5752f29bf5c97f7fef32fff9e967 100644 --- a/src/yang/etsi-nfv-pnfd.yang +++ b/src/yang/etsi-nfv-pnfd.yang @@ -13,16 +13,31 @@ module etsi-nfv-pnfd { description "Physcial Network Function Descriptor."; + revision 2020-06-10 { + description + "Version 3.3.1. + + PNFD according to ETSI GS NFV-IFA 014 Release 3."; + } + + revision 2020-06-01 { + description + "Version 2.8.1. + + PNFD according to ETSI GS NFV-IFA 014 271."; + } + revision 2019-10-01 { description "Version 2.7.1. - NSD according to ETSI GS NFV-IFA 014 Ed271v264."; + PNFD according to ETSI GS NFV-IFA 014 Ed271v264."; } + revision 2019-04-25 { description "Initial revision. - NSD according to ETSI GS NFV-IFA 014 Ed261v252."; + PNFD according to ETSI GS NFV-IFA 014 Ed261v252."; } container pnfd { diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 283217a50a5da677784713f4b209cef71a3b05fa..6b5f2dc9374bf377237e2b22f39e3dabf34693f4 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -16,20 +16,35 @@ submodule etsi-nfv-vnf { description "Models for VNFD according to GS NFV-IFA 011."; + revision 2020-06-10 { + description + "Version 3.3.1. + + Data structures to support VNFD according to + ETSI GS NFV-IFA 011 Release 3."; + } + + revision 2020-06-01 { + description + "Version 2.8.1. + + VNFD according to ETSI GS NFV-IFA 011 271."; + } + revision 2019-10-01 { description "Version 2.7.1. - Common data structures to support VNFD and NSD according to: - ETSI GS NFV-IFA 014 Ed271v264 + Data structures to support VNFD according to: ETSI GS NFV-IFA 011 Ed271v264"; } + revision 2019-03-18 { description "Initial revision. - Common data structure to support VNFD according to: - VNFD according to ETSI GS NFV-IFA 011 Ed261v254"; + Data structure to support VNFD according to: + ETSI GS NFV-IFA 011 Ed261v254"; reference "ETSI GS NFV-IFA 011 Ed261v254"; @@ -64,7 +79,7 @@ submodule etsi-nfv-vnf { } leaf support-mandatory { - status "deprecated"; + status "deprecated"; default "false"; type boolean; description @@ -95,6 +110,117 @@ submodule etsi-nfv-vnf { "GS NFV-IFA011: Section 7.1.6.6, VirtualNetworkInterfaceRequirements information element"; } + + leaf nic-io-requirements { + type leafref { + path "/nfv:nfv/nfv:vnfd/nfv:virtual-compute-desc/" + + "nfv:logical-node/nfv:id"; + } + description + "This references (couples) the CPD with any logical node + I/O requirements (for network devices) that may have been + created. Linking these attributes is necessary so that I/O + requirements that need to be articulated at the logical + node level can be associated with the network interface + requirements associated with the CPD."; + reference + "GS NFV-IFA011: Section 7.1.6.6, + VirtualNetworkInterfaceRequirements information element"; + } + } + } + + grouping block-storage-data { + leaf size-of-storage { + type uint64; + units "GB"; + default 0; + description + "Size of virtualized storage resource in GB."; + reference + "GS NFV IFA011: Section 7.1.9.4.3, BlockStorageData + Information element."; + } + + list vdu-storage-requirements { + key "key"; + + leaf key { + type string; + } + + leaf value { + type string; + } + description + "An array of key-value pairs that articulate + the storage deployment requirements."; + reference + "GS NFV IFA011: Section 7.1.9.4.3, BlockStorageData + Information element."; + } + + leaf rdma-enabled { + type boolean; + description + "Indicate if the storage support RDMA."; + reference + "GS NFV IFA011: Section 7.1.9.4.3, BlockStorageData + Information element."; + } + + leaf sw-image-desc { + type leafref { + path "../../../sw-image-desc/id"; + } + must "../size-of-storage >=" + + "../../../sw-image-desc[id=current()]/min-disk" { + } + description + "Software image to be loaded on the VirtualStorage + resource created based on this VirtualStorageDesc. + Shall be absent when used for virtual disks."; + reference + "GS NFV IFA011: Section 7.1.9.4.3, BlockStorageData + Information element."; + } + } + + grouping vnf-local-affinity-or-anti-affinity-rule { + list local-affinity-or-anti-affinity-rule { + key "type scope"; + + leaf type { + type affinity-type; + description + "Specifies whether the rule is an affinity rule or an + anti-affinity rule."; + reference + "GS NFV IFA011: Section 7.1.8.11, + LocalAffinityOrAntiAffinityRule information element."; + } + + 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'."; + reference + "GS NFV IFA011: Section 7.1.8.11, + LocalAffinityOrAntiAffinityRule information element."; + } + + uses nfvi-maintenance-info { + description + "When present, provides information on the impact tolerance + and rules to be observed when a group of instances based + on the same VDU is impacted during NFVI operation and + maintenance (e.g. NFVI resource upgrades)."; + reference + "GS NFV IFA011: Section 7.1.8.11, + LocalAffinityOrAntiAffinityRule information element."; + } } } @@ -303,11 +429,11 @@ submodule etsi-nfv-vnf { } leaf vnic-type { - type identityref { - base vnic-type; - } - description - "Describes the type of the virtual network interface + type identityref { + base vnic-type; + } + description + "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: @@ -491,6 +617,7 @@ submodule etsi-nfv-vnf { list requirement-detail { key "key"; + min-elements 1; leaf key { type string; @@ -770,6 +897,22 @@ submodule etsi-nfv-vnf { "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."; @@ -778,6 +921,24 @@ submodule etsi-nfv-vnf { VirtualCpuData information element."; } } + + list virtual-disk { + key "id"; + + description + "The local or ephemeral disk(s) of the virtualised compute."; + reference + "GS NFV IFA011: Section 7.1.9.2.2, VirtualComputeDesc + Information element."; + + leaf id { + type string; + description + "Unique identifier for the list of virtual disks."; + } + + uses block-storage-data; + } } list virtual-storage-desc { @@ -797,70 +958,99 @@ submodule etsi-nfv-vnf { leaf type-of-storage { // Needed to be able to onboard images - default root-storage; type identityref { base storage-type; } + default "nfv:block"; description - "Type of virtualised storage resource (e.g. volume, - object)."; + "Type of virtualised storage resource (BLOCK, OBJECT, + FILE)."; reference "GS NFV IFA011: Section 7.1.9.4, Information elements related to Virtual Storage."; } - leaf size-of-storage { - type uint64; - units "GB"; - default 0; - description - "Size of virtualised storage resource (e.g. size of - volume, in GB)"; - reference - "GS NFV IFA011: Section 7.1.9.4, Information elements - related to Virtual Storage."; - } - - list vdu-storage-requirements { - key "key"; - - leaf key { - type string; - } + choice storage { + container block-storage-data { + when '../type-of-storage = "nfv:block"'; + description + "Specifies the details of block storage. It shall + be present when the 'typeOfStorage' attribute is set to + 'BLOCK'. It shall be absent otherwise."; + reference + "GS NFV IFA011: Section 7.1.9.4, Information elements + related to Virtual Storage."; + + uses block-storage-data; + } + + container object-storage-data { + when '../type-of-storage = "nfv:object"'; + description + "Specifies the details of object storage. It shall be + present when the 'typeOfStorage' attribute is set to + 'OBJECT'. It shall be absent otherwise."; + reference + "GS NFV IFA011: Section 7.1.9.4, Information elements + related to Virtual Storage."; + + leaf max-size-of-storage { + type uint64; + units "GB"; + default 0; + description + "Max size of virtualised storage resource in GB."; + reference + "GS NFV IFA011: Section 7.1.9.4.4, ObjectStorage Information + element."; + } + } - leaf value { - type string; - } - description - "Array of key-value pairs that articulate the storage - deployment requirements."; - reference - "GS NFV IFA011: Section 7.1.9.4.2, VirtualStorageDesc - information element."; - } + container file-storage-data { + when '../type-of-storage = "nfv:file"'; + description + "Specifies the details of file storage. It shall be present + when the 'typeOfStorage' attribute is set to 'FILE'. It + shall be absent otherwise."; + reference + "GS NFV IFA011: Section 7.1.9.4, Information elements + related to Virtual Storage."; + + leaf size-of-storage { + type uint64; + units "GB"; + default 0; + description + "Size of virtualised storage resource in GB."; + reference + "GS NFV IFA011: Section 7.1.9.4.5, FileStorageData + Information element."; + } - leaf rdma-enabled { - type boolean; - description - "Indicate if the storage support RDMA."; - reference - "GS NFV IFA011: Section 7.1.9.4, Information elements - related to Virtual Storage."; - } + leaf file-system-protocol { + type string; + default "cifs"; + description + "The shared file system protocol (e.g. NFS, CIFS)."; + reference + "GS NFV IFA011: Section 7.1.9.4.5, FileStorageData + Information element."; + } - leaf sw-image-desc { - type leafref { - path "../../sw-image-desc/id"; - } - must "../size-of-storage >=" + - "../../sw-image-desc[id=current()]/min-disk" { - } - description - "Software image to be loaded on the VirtualStorage - resource created based on this VirtualStorageDesc."; - reference - "GS NFV IFA011: Section 7.1.9.4, Information elements - related to Virtual Storage."; + leaf int-virtual-link-desc { + type leafref { + path "../../../sw-image-desc/id"; + } + mandatory true; + description + "Reference of the internal VLD which this file storage + connects to. The attached VDUs shall connect to the + same internal VLD."; + reference + "GS NFV IFA011: Section 7.1.9.4.5, FileStorageData + Information element."; + } + } } } @@ -1240,6 +1430,17 @@ submodule etsi-nfv-vnf { } uses monitoring-parameter; } + + uses nfvi-maintenance-info { + description + "When present, provides information on the rules to be + observed when an instance based on this + VnfVirtualLinkDesc is impacted during NFVI operation and + maintenance (e.g. NFVI resource upgrades)."; + reference + "GS NFV IFA011: Section 7.1.7.2, VnfVirtualLinkDesc + information element."; + } } uses security-group-rule; @@ -1443,30 +1644,30 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.8.3, VduProfile information element."; } - uses local-affinity-or-anti-affinity-rule; - - list affinity-or-anti-affinity-group { - key "id"; + uses vnf-local-affinity-or-anti-affinity-rule; + leaf-list affinity-or-anti-affinity-group-id { + type leafref { + path "../../affinity-or-anti-affinity-group/id"; + } description "Identifier(s) of the affinity or anti-affinity group(s) the VDU belongs to."; reference "GS NFV IFA011: Section 7.1.8.3, VduProfile information element."; - leaf id { - type leafref { - path "../../../" + - "affinity-or-anti-affinity-group/id"; - } - description - "Identifies an affinity or anti-affinity group to - which the affinity or anti-affinity rule applies."; - reference - "GS NFV IFA011: Section 7.1.8.12, AffinityOrAntiAffinity - information element."; - } } + + uses nfvi-maintenance-info { + description + "When present, provides information on the impact + tolerance and rules to be observed when instance(s) of + the VDU are impacted during NFVI operation and + maintenance (e.g. NFVI resource upgrades)."; + reference + "GS NFV IFA011: Section 7.1.8.3, VduProfile information + element."; + } } list virtual-link-profile { @@ -1500,15 +1701,12 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile information element."; } - uses local-affinity-or-anti-affinity-rule; + uses vnf-local-affinity-or-anti-affinity-rule; - list affinity-or-anti-affinity-group { - key "id"; - leaf id { - type leafref { - path "../../../affinity-or-anti-affinity-group/id"; - } - } + leaf-list affinity-or-anti-affinity-group-id { + type leafref { + path "../../affinity-or-anti-affinity-group/id"; + } description "Identifier(s) of the affinity or anti-affinity group(s) the VnfVirtualLinkDesc belongs to."; @@ -1642,17 +1840,17 @@ submodule etsi-nfv-vnf { L2ProtocolData information element."; } - leaf segmentation-id { - type string; - description + 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 + reference "GS NFV IFA011: Section 7.1.8.14, L2ProtocolData information element."; - } + } description "Specifies the L2 protocol data for this virtual link. @@ -2214,6 +2412,95 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.5.2 VnfLcmOperationsConfiguration information element"; } + + container create-snapshot-vnf-op-config { + description + "Configuration parameters for the Create VNF Snapshot + operation."; + reference + "GS NFV IFA011: Section 7.1.5.2 + VnfLcmOperationsConfiguration information element"; + + list parameter { + key "key"; + min-elements 1; + + leaf key { + type string; + } + + leaf value { + type string; + } + description + "Array of KVP requirements for VNF-specific parameters + to be passed when invoking the + CreateSnapshotVnfOpConfig operation."; + reference + "GS NFV IFA011: Section 7.1.5.11 + CreateSnapshotVnfOpConfig information + element"; + } + } + + container revert-to-snapshot-vnf-op-config { + description + "Configuration parameters for the Revert-To VNF Snapshot + operation."; + reference + "GS NFV IFA011: Section 7.1.5.2 + VnfLcmOperationsConfiguration information element"; + + list parameter { + key "key"; + min-elements 1; + + leaf key { + type string; + } + + leaf value { + type string; + } + description + "Array of KVP requirements for VNF-specific parameters + to be passed when invoking the + RevertToSnapshotVnfOpConfig operation."; + reference + "GS NFV IFA011: Section 7.1.5.12 + RevertToSnapshotVnfOpConfig information + element"; + } + } + + container change-current-vnf-package-op-config { + description + "Configuration parameters for the + ChangeCurrentVnfPackageOpConfig operation."; + reference + "GS NFV IFA011: Section 7.1.5.2 + VnfLcmOperationsConfiguration 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 change current VNF + Package operation."; + reference + "GS NFV IFA011: Section 7.1.5.13 + ChangeCurrentVnfPackageOpConfig information + element"; + } + } } list affinity-or-anti-affinity-group { @@ -2241,8 +2528,8 @@ submodule etsi-nfv-vnf { leaf id { type string; description - "Identifies an affinity or anti-affinity group to which - the affinity or anti-affinity rule applies."; + "Identifier of this AffinityOrAntiAffinityGroup + information element."; reference "GS NFV IFA011: Section 7.1.8.12 AffinityOrAntiAffinityGroup information element"; @@ -2252,8 +2539,8 @@ submodule etsi-nfv-vnf { mandatory true; type affinity-type; description - "Specifies whether the rule is an affinity rule or an - anti-affinity rule."; + "Specifies the type of relationship that the members of + the group have: 'affinity' or 'anti-affinity'."; reference "GS NFV IFA011: Section 7.1.8.12 AffinityOrAntiAffinityGroup information element"; @@ -2263,8 +2550,9 @@ submodule etsi-nfv-vnf { mandatory true; type affinity-scope; description - "Specifies the scope of the rule, possible values are - 'NFVI-PoP', 'Zone', 'ZoneGroup', 'NFVI-node'."; + "Specifies the scope of the affinity or anti-affinity + relationship. Possible values are 'NFVI-PoP', 'Zone', + 'ZoneGroup', 'NFVI-node' and 'network-link-and-node'."; reference "GS NFV IFA011: Section 7.1.8.12 AffinityOrAntiAffinityGroup information element"; @@ -2337,12 +2625,14 @@ submodule etsi-nfv-vnf { type enumeration { enum vnf-configuration; enum vnf-indicator; + enum vnf-lcm-coordination; } description "Identifies an interface produced by the VNF. Valid values: - VNF_CONFIGURATION - - VNF_INDICATOR"; + - VNF_INDICATOR + - VNF_LCM_COORDINATION"; reference "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails information element"; @@ -2843,6 +3133,7 @@ submodule etsi-nfv-vnf { list lifecycle-management-script { key "id"; + description "Includes a list of events and corresponding management scripts performed for the VNF."; @@ -2856,10 +3147,25 @@ submodule etsi-nfv-vnf { } leaf-list event { - type internal-lifecycle-management-script-event; + type union { + type internal-lifecycle-management-script-event; + type external-lifecycle-management-script-event; + } description "Describes VNF lifecycle event(s) or an external stimulus - detected on a VNFM reference point."; + detected on a VNFM reference point. + + If the event is of type + internal-lifecycle-management-script-event, then depending + on whether the event is of type start-* or end-*, the + script associated with the VNF LCM operation needs to be + executed before the event, or after the event, + respectively. + + On the other hand, if the event is of type + external-lifecycle-management-script-event, then the + script associated with the event needs to be executed + for the given VNF LCM operation."; reference "GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript information element"; @@ -2931,10 +3237,15 @@ submodule etsi-nfv-vnf { } list element-group { + status deprecated; key "id"; description "Describes the associated elements of a VNFD for a certain - purpose during VNF lifecycle management."; + purpose during VNF lifecycle management. + + Reason for deprecating this node - Information about which + VDU and VLD are involved in scaling is better defined by + ScalingDelta."; reference "GS NFV IFA011: Section 7.1.2 VNFD information element"; @@ -3047,5 +3358,269 @@ submodule etsi-nfv-vnf { reference "GS NFV IFA011: Section 7.1.2 VNFD information element"; } + + list vnf-package-change-info { + // IFA011ed332 defines the key as VersionSelector, which is + // nothing but a combination of src-vnfd-id, dst-vnfd-id and + // src-flavour-id. YANG cannot use a composite as a key, and + // therefore the model breaks it out as three elements that + // form the key. + key "src-vnfd-id dst-vnfd-id src-flavour-id"; + + leaf src-vnfd-id { + type string; + description + "Identifier of the source VNFD and the source VNF + package. Either the srcVnfdId or the dstVnfdId shall be + equal to the vnfdId of the VNFD containing this version + selector."; + reference + "GS NFV IFA011: Section 7.1.15.3 VersionSelector + information element"; + } + + leaf dst-vnfd-id { + type string; + description + "Identifier of the destination VNFD and the destination + VNF package. Either the srcVnfdId or the dstVnfdId shall + be equal to the vnfdId of the VNFD containing this version + selector."; + reference + "GS NFV IFA011: Section 7.1.15.3 VersionSelector + information element"; + } + + leaf src-flavour-id { + type string; + description + "Identifier of the deployment flavour in the source VNF + package for which this modification applies. It is up to + protocol design stage to decide whether there is further + optimization potential to apply one modification for + multiple srcFlavourIds."; + reference + "GS NFV IFA011: Section 7.1.15.3 VersionSelector + information element"; + } + + leaf additional-params-id { + type leafref { + path "../../df/lcm-operations-configuration/" + + "change-current-vnf-package-op-config/parameter/key"; + } + description + "References the ChangeCurrentVnfPackageOpConfig information + element that defines the valid additional parameters for + the change."; + reference + "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo + information element"; + } + + leaf-list modification-qualifier { + type enumeration { + enum "up"; + enum "down"; + enum "vnf-upgrade"; + enum "vnf-update"; + enum "vnf-downgrade"; + } + description + "When present, it specifies the type of modification + resulting from transitioning from srcVnfdId to dstVnfdId. + The possible values include at least: + + 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 + specify additional values and provide such values to + qualify further the change between the two versions such + as VNF_UPGRADE, VNF_UPDATE, VNF_DOWNGRADE, etc."; + reference + "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo + information element"; + } + + leaf-list additional-modification-description { + type string; + description + "A VNF provider may define additional information to + qualify further the change between the two versions, + such as 'VNF upgrade', 'VNF update', 'VNF downgrade', + etc."; + reference + "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo + information element"; + } + + list component-mapping { + key "type"; + + leaf type { + type string; + description + "The type of component or property. Possible values + differentiate whether changes concern to some VNF + component (e.g., VDU, internal VLD, etc.) or property + (e.g., a Scaling Aspect, etc.)."; + reference + "GS NFV IFA011: Section 7.1.15.4 ComponentMapping + information element"; + } + + leaf source-desc-id { + type string; + description + "Identifier of the component or property in the source + VNFD."; + reference + "GS NFV IFA011: Section 7.1.15.4 ComponentMapping + information element"; + } + + leaf dst-desc-id { + type string; + description + "Identifier of the component or property in the + destination VNFD."; + reference + "GS NFV IFA011: Section 7.1.15.4 ComponentMapping + information element"; + } + + leaf description { + type string; + description + "Human readable description of the component changes."; + reference + "GS NFV IFA011: Section 7.1.15.4 ComponentMapping + information element"; + } + + description + "Mapping information related to identifiers of components in + source VNFD and destination VNFD that concern to the change + process."; + reference + "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo + information element"; + } + + leaf lcm-script-id { + type leafref { + path "../../lifecycle-management-script/id"; + } + description + "Reference to a lifecycle management script that is executed + as part of this 'change current VNF Package' process."; + reference + "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo + information element"; + } + + leaf coordination-id { + type leafref { + path "../../lcm-operations-coordination/id"; + } + description + "Reference to applicable VNF LCM operation coordination + actions."; + reference + "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo + information element"; + } + + leaf dst-flavour-id { + type leafref { + path "../../df/id"; + } + description + "Identifies the deployment flavour in the destination VNF + package for which this change applies. The flavour ID is + defined in the destination VNF package."; + reference + "GS NFV IFA011: Section 7.1.15.2 VnfPackageChangeInfo + information element"; + } + description + "Information used for performing the change of the current + VNF Package. More than one VNF Package Change Info construct + is possible to cater the possibility that changes of the + current VNF Package can be performed for different source + VNFDs."; + reference + "GS NFV IFA011: Section 7.1.2 VNFD information element"; + } + + list lcm-operations-coordination { + key "id"; + + leaf id { + type string; + description + "Identifies the specific VNF LCM operation coordination + action."; + reference + "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination + information element"; + } + + leaf description { + type string; + description + "Human readable description of the coordination action."; + reference + "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination + information element"; + } + + leaf endpoint-type { + type enumeration { + enum "mgmt"; + enum "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. + Allowed values: + • MGMT: coordination with other operation supporting + management systems. + • VNF: coordination with the VNF instance."; + reference + "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination + information element"; + } + + leaf coordination-stage { + type string; + description + "Indicates the coordination stage during the VNF LCM + operation."; + reference + "GS NFV IFA011: Section 7.1.16.2 VnfLcmOperationCoordination + information element"; + } + + leaf coordination-params { + type string; + description + "Input information needed 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."; + reference + "GS NFV IFA011: Section 7.1.2 VNFD information element"; + } } } diff --git a/src/yang/etsi-nfv-vnfd.yang b/src/yang/etsi-nfv-vnfd.yang index f5fcc6282c69ff9dbc8054d2af0bea71bbc4fd58..25bff84f0d7e026b02078b1f2d60162bae4680d2 100644 --- a/src/yang/etsi-nfv-vnfd.yang +++ b/src/yang/etsi-nfv-vnfd.yang @@ -13,15 +13,31 @@ module etsi-nfv-vnfd { description "Virtual Network Function Descriptor."; + revision 2020-06-10 { + description + "Version 3.3.1. + + VNFD according to ETSI GS NFV-IFA 011 Release 3."; + } + + revision 2020-06-01 { + description + "Version 2.8.1. + + VNFD according to ETSI GS NFV-IFA 011 271."; + } + revision 2019-10-01 { description "Revision 2.7.1. VNFD according to ETSI GS NFV-IFA 011 Ed271v264."; } + revision 2019-03-18 { description "Initial revision. + VNFD according to ETSI GS NFV-IFA 011 Ed261v254."; }