From 4327978a4ab75c8981f68fad727db7306d503edc Mon Sep 17 00:00:00 2001 From: Mahesh Jethanandani Date: Thu, 19 Dec 2019 12:17:33 -0800 Subject: [PATCH] nfv/SOL006#12 - SOL006ed331 FEAT03 - NFVI MOD --- example-data/complex-vnfd.xml | 24 ++++++ example-data/nfv-nsd.xml | 3 + example-data/nfv-vnfd.xml | 3 + example-data/nfv.xml | 9 +++ src/yang/etsi-nfv-common.yang | 134 ++++++++++++++++++++++++++++++++++ src/yang/etsi-nfv-vnf.yang | 23 ++++++ 6 files changed, 196 insertions(+) diff --git a/example-data/complex-vnfd.xml b/example-data/complex-vnfd.xml index 33cbe84..b4191b5 100644 --- a/example-data/complex-vnfd.xml +++ b/example-data/complex-vnfd.xml @@ -118,12 +118,18 @@ ipv4 + + 1 + mgmt ipv4 + + 1 + in @@ -155,6 +161,9 @@ control-plane + + 1 + control-plane-standby @@ -163,11 +172,17 @@ control-plane + + 1 + data-plane 2 8 + + 1 + il-1 @@ -238,6 +253,9 @@ control-plane + + 1 + control-plane-standby @@ -246,11 +264,17 @@ control-plane + + 1 + data-plane 1 4 + + 1 + il-1 diff --git a/example-data/nfv-nsd.xml b/example-data/nfv-nsd.xml index f834ad4..3c67dd9 100644 --- a/example-data/nfv-nsd.xml +++ b/example-data/nfv-nsd.xml @@ -84,6 +84,9 @@ firewall 1 2 + + 1 + double diff --git a/example-data/nfv-vnfd.xml b/example-data/nfv-vnfd.xml index 8a53ada..d96c434 100644 --- a/example-data/nfv-vnfd.xml +++ b/example-data/nfv-vnfd.xml @@ -71,6 +71,9 @@ firewall 1 2 + + 1 + double diff --git a/example-data/nfv.xml b/example-data/nfv.xml index 125aaaa..6636d0a 100644 --- a/example-data/nfv.xml +++ b/example-data/nfv.xml @@ -67,6 +67,9 @@ ethernet + + 1 + inside @@ -95,6 +98,9 @@ firewall 1 2 + + 1 + inside-vl @@ -241,6 +247,9 @@ router 1 2 + + 1 + double diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang index d96c76c..a4eb255 100644 --- a/src/yang/etsi-nfv-common.yang +++ b/src/yang/etsi-nfv-common.yang @@ -3,6 +3,13 @@ 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)"; @@ -397,9 +404,125 @@ submodule etsi-nfv-common { } } + 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 + "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.17, NfviMaintenanceInfo + information element"; + } + + leaf min-recovery-time-between-impacts { + type yang:timeticks; + description + "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.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"; + } + } + } + } + grouping local-affinity-or-anti-affinity-rule { list local-affinity-or-anti-affinity-rule { key "type scope"; + leaf type { type affinity-type; description @@ -419,6 +542,17 @@ submodule etsi-nfv-common { "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."; + } } } diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 93ae4e7..9952e3d 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -1256,6 +1256,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; @@ -1470,6 +1481,7 @@ submodule etsi-nfv-vnf { reference "GS NFV IFA011: Section 7.1.8.3, VduProfile information element."; + leaf id { type leafref { path "../../../" + @@ -1483,6 +1495,17 @@ submodule etsi-nfv-vnf { 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 { -- GitLab