From 6a9e5ef89f7b4f61a9a1315c863e3a499ea53df1 Mon Sep 17 00:00:00 2001 From: Mahesh Jethanandani Date: Fri, 6 Dec 2019 10:21:07 +0900 Subject: [PATCH 1/2] Issue#7 - SOL006ed331 FEAT02 Vnf Software Modification --- example-data/nfv-nsd.xml | 4 +- src/yang/etsi-nfv-common.yang | 2 + src/yang/etsi-nfv-vnf.yang | 297 ++++++++++++++++++++++++++++++++-- 3 files changed, 290 insertions(+), 13 deletions(-) diff --git a/example-data/nfv-nsd.xml b/example-data/nfv-nsd.xml index 57f7c7c..8241604 100644 --- a/example-data/nfv-nsd.xml +++ b/example-data/nfv-nsd.xml @@ -1,4 +1,4 @@ - + ASA My Company @@ -133,4 +133,4 @@ - + diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang index 7077b5c..aaa8d06 100644 --- a/src/yang/etsi-nfv-common.yang +++ b/src/yang/etsi-nfv-common.yang @@ -390,6 +390,8 @@ submodule etsi-nfv-common { enum "end-vnf-ext-conn-change"; enum "start-vnfinfo-modification"; enum "end-vnfinfo-modification"; + enum "start-change-current-vnf-package"; + enum "end-change-current-vnf-package"; } } diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 283217a..52425ef 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -64,7 +64,7 @@ submodule etsi-nfv-vnf { } leaf support-mandatory { - status "deprecated"; + status "deprecated"; default "false"; type boolean; description @@ -303,11 +303,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: @@ -1642,17 +1642,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 +2214,33 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.5.2 VnfLcmOperationsConfiguration information element"; } + + container change-current-vnf-package-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 change current VNF + Package operation."; + reference + "GS NFV IFA011: Section 7.1.5.13 + ChangeCurrentVnfPackageOpConfig information + element"; + } + description + "Configuration parameters for the ModifyVnfSoftware + operation."; + reference + "GS NFV IFA011: Section 7.1.5.2 + VnfLcmOperationsConfiguration information element"; + } } list affinity-or-anti-affinity-group { @@ -2843,6 +2870,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."; @@ -3047,5 +3075,252 @@ submodule etsi-nfv-vnf { reference "GS NFV IFA011: Section 7.1.2 VNFD information element"; } + + list vnf-package-change-info { + 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"; + } + + 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"; + } } } -- GitLab From 3d8f2e5c7aef3051f149c872568f402f9c3ba973 Mon Sep 17 00:00:00 2001 From: Mahesh Jethanandani Date: Thu, 12 Dec 2019 17:37:34 -0800 Subject: [PATCH 2/2] Added explanation for keys and for additional-modification-description --- src/yang/etsi-nfv-vnf.yang | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 52425ef..4f1e081 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -3077,6 +3077,11 @@ submodule etsi-nfv-vnf { } 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 { @@ -3158,6 +3163,18 @@ submodule etsi-nfv-vnf { 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"; -- GitLab