diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang index 63864b7df194706168fe0c55b9d12b93935bdea5..aaf829e5306799314008129488fba83de485515d 100644 --- a/src/yang/etsi-nfv-common.yang +++ b/src/yang/etsi-nfv-common.yang @@ -243,6 +243,43 @@ submodule etsi-nfv-common { "Ephemeral type of storage."; } + identity forwarding-behaviour { + description + "Base identity for forwarding behaviour."; + } + + identity all { + base forwarding-behaviour; + description + "Traffic flows shall be forwarded simultaneously to all CP + or SAP instances created from the referenced CP profile(s)."; + } + + identity lb { + base forwarding-behaviour; + description + "Traffic flows shall be forwarded to one CP or SAP instance + created from the referenced CP profile(s) selected based on + a load-balancing algorithm."; + } + + identity vip-function { + description + "Indicates the function the virtual IP address is used for."; + } + + identity high-availability { + base vip-function; + description + "High availability function."; + } + + identity load-balancing { + base vip-function; + description + "Load balancing function."; + } + identity vnic-type { description "Describes the type of the virtual network interface realizing diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 1eb49ce02f133723d16093debe9c6aef98d1397a..5f80ffe5d5dfe17f92b0136df0368e18b2c8efe8 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -415,121 +415,130 @@ submodule etsi-nfv-ns { element"; } - list cpd-pool { + list nfp-position-element { key "id"; - description - "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; + description + "Identifier of this NfpPositionElemen information + element. It uniquely identifies an + NfpPositionElemen."; + reference + "GS NFV IFA014: Section 6.4.6.2 NfpPositionElement + information element"; } - choice constituent-base-element-id { - mandatory "true"; - container vnf-profile { - leaf vnf-profile-id { - must ". = deref(../../vnfd-profile-id)" { - } - type leafref { - path "../../../../../nsd/df/vnf-profile/id"; + container desc { + choice constituent-base-element-id { + mandatory "true"; + container vnf-profile { + leaf vnf-profile-id { + must ". = deref(../../vnfd-profile-id)" { + } + type leafref { + path "../../../../../../nsd/df/vnf-profile/id"; + } } } - } - container pnf-profile { - leaf pnf-profile-id { - must ". = deref(../../pnfd-profile-id)" { - } - type leafref { - path "../../../../../nsd/df/pnf-profile/id"; + container pnf-profile { + leaf pnf-profile-id { + must ". = deref(../../pnfd-profile-id)" { + } + type leafref { + path "../../../../../../nsd/df/pnf-profile/id"; + } } } - } - container ns-profile { - leaf ns-profile-id { - must ". = deref(../../ns-profile-id)" { - } - type leafref { - path "../../../../../nsd/df/ns-profile/id"; + container ns-profile { + leaf ns-profile-id { + must ". = deref(../../ns-profile-id)" { + } + type leafref { + path "../../../../../../nsd/df/ns-profile/id"; + } } } + description + "Reference to the profile of an NS constituent."; + reference + "GS NFV IFA014: Section 6.4.8 + CpdInConstituentElement information element"; } - description - "Reference to the profile of an NS constituent."; - reference - "GS NFV IFA014: Section 6.4.8 CpdInConstituentElement - information element"; - } - choice constituent-cpd-id { - container vnf { - leaf vnfd-id { - must ". = deref(../../vnfd-profile-id)/../vnfd-id" { - } - type leafref { - path "../../../../../vnfd/id"; + choice constituent-cpd-id { + container vnf { + leaf vnfd-id { + must ". = deref(../../vnfd-profile-id)/../vnfd-id" { + } + type leafref { + path "../../../../../../vnfd/id"; + } } - } - leaf cpd-id { - type leafref { - path "deref(../vnfd-id)/../ext-cpd/id"; + leaf cpd-id { + type leafref { + path "deref(../vnfd-id)/../ext-cpd/id"; + } } } - } - container pnf { - leaf pnfd-id { - must ". = deref(../../pnfd-profile-id)/../pnfd-id" { + container pnf { + leaf pnfd-id { + must ". = deref(../../pnfd-profile-id)/../pnfd-id" { + } + type leafref { + path "../../../../../../pnfd/id"; + } } - type leafref { - path "../../../../../pnfd/id"; - } - } - leaf pnf-cpd-id { - type leafref { - path "deref(../pnfd-id)/../ext-cpd/id"; + leaf pnf-cpd-id { + type leafref { + path "deref(../pnfd-id)/../ext-cpd/id"; + } } } - } - container ns { - leaf nsd-id { - must ". = deref(../../nested-ns-profile-id)/" + - "../nsd-id" { + container ns { + leaf nsd-id { + must ". = deref(../../nested-ns-profile-id)/" + + "../nsd-id" { + } + + type leafref { + path "../../../../../../nsd/id"; + } } - - type leafref { - path "../../../../../nsd/id"; - } - } - leaf sap-cpd-id { - type leafref { - path "deref(../nsd-id)/../sapd/id"; + leaf sap-cpd-id { + type leafref { + path "deref(../nsd-id)/../sapd/id"; + } } } + description + "References the VNF external CPD for a given + VnfProfile, or the PNF external CPD for a given + PnfProfile, or a NS SAPD for a given NsProfile + identified by the constituentBaseElementId."; + reference + "GS NFV IFA014: Section 6.4.8.2 + CpdInConstituentElement information element"; } description - "A reference to the descriptor of a connection point - attached to one of the constituent VNFs and PNFs or to - the descriptor of a NS SAP."; + "Identifies a CPD or SAPD in the context of a profile + of an NS constituent element."; reference - "GS NFV IFA014: Section 6.4.4.2 CpdPool information - element"; + "GS NFV IFA014: Section 6.4.6.2 NfpPositionElement + information element"; } + description + "One or a pair of CPDs or SAPDs. These descriptors + shall be members of the CpdPool associated to the + parent VNFFG."; + reference + "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc + information element"; } list nfpd { key "id"; - description - "The network forwarding path associated to the VNFFG."; - reference - "GS NFV IFA014: Section 6.4.2.2 Vnffgd information - element"; - leaf id { type string; description @@ -544,33 +553,17 @@ submodule etsi-nfv-ns { type string; description "Provides an NFP classification and selection rule. - The rule may be expressed as a criteria constructed - out of atomic assertions linked by Boolean operators - AND, OR and NOT."; + The rule may be expressed as a criteria constructed out + of atomic assertions linked by Boolean operators AND, + OR and NOT."; reference "GS NFV IFA014: Section 6.4.3.2 Nfpd information element"; } - list position-desc-id { + list position-desc { key "id"; - description - "Describes a position in the NFP in terms of one or - more CP profiles and rules for distributing the - traffic among CP and SAP instances created from the - CPD or SAPD associated to these profiles. This shall - be connection point profile, which is either a CPD - associated with the VnfProfile of a constituent VNF, - or a CPD associated with the PnfProfile of a - constituent PNF, or a SAPD associated with the - NsProfile of a nested NS. The related VnfProfile, - PnfProfile and NsProfile shall be included in the - parent VNFFGD."; - reference - "GS NFV IFA014: Section 6.4.3.2 Nfpd information - element"; - leaf id { type string; description @@ -580,62 +573,64 @@ submodule etsi-nfv-ns { information element"; } - list cp-profile-id { - key "id"; + leaf-list nfp-position-element-id { + type leafref { + path "../../../nfp-position-element/id"; + } + description + "References NfpPositionElement associated with one of the + constituent VNF Profile, PNF Profile or NS Profile of a + nested NS."; + reference + "GS NFV IFA014: Section 6.4.2.2 Vnffgd information + element"; + } + leaf forwarding-behaviour { + type identityref { + base forwarding-behaviour; + } description - "References the profile of a connection point to be - traversed by the traffic flows matching the criteria. - This shall be a connection point attached to one of - the constituent VNFs and PNFs of the parent VNFFG, - or a SAP of one of the constituent nested NSs of the - parent VNFFG."; + "Identifies a rule to apply to forward traffic to CP or + SAP instances corresponding to the referenced CPD(s) + and SAPD(s). The minimum list of rules to be supported + shall include: + • ALL = Traffic flows shall be forwarded simultaneously + to all CP or SAP instances created from the + referenced CP profile(s). + • LB = Traffic flows shall be forwarded to one CP or SAP + instance created from the referenced CP profile(s) + selected based on a load-balancing algorithm."; reference "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc information element"; + } - leaf id { - type string; - description - "Identifier of this CpProfile information element. - It uniquely identifies a CpProfile."; - reference - "GS NFV IFA014: Section 6.4.6.2 CpProfile - information element"; - } - - list constituent-profile-elements { - key "id"; - - description - "Specifies the constituents of the CpProfile."; - reference - "GS NFV IFA014: Section 6.4.6.2 CpProfile - information element"; - - leaf id { - type string; - description - "Specifies the constituents of the CpProfile."; - reference - "GS NFV IFA014: Section 6.4.7.2 - ConstituentProfileElements information element"; - } - - leaf cpd-id { - type string; - description - "References the VNF external CPD for a given - VnfProfile, or the PNF external CPD for a given - PnfProfile, or a NS SAPD for a give NsProfile - identified by the constituentBasedElementId."; - reference - "GS NFV IFA014: Section 6.4.7.2 - ConstituentProfileElements information element"; - } - } + leaf forwarding-behavior-input-parameters { + type string; + description + "Provides input parameters to configure the forwarding + behaviour (e.g. identifies a load balancing + algorithm)."; + reference + "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc + information element"; } + + description + "Describes a position in the NFP in terms of one or more + CPDs and SAPDs and rules for distributing the traffic + among CP and SAP instances created from these CPDs + and SAPDs."; + reference + "GS NFV IFA014: Section 6.4.3.2 Nfpd information + element"; } + description + "The network forwarding path associated to the VNFFG."; + reference + "GS NFV IFA014: Section 6.4.2.2 Vnffgd information + element"; } } diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index b0d0e2d696dfc1fcff41fe18531f0624add64699..6aa9daa96d78544235eb400db0c70fed8997ad26 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -56,6 +56,7 @@ submodule etsi-nfv-vnf { } leaf support-mandatory { + status "deprecated"; default "false"; type boolean; description @@ -892,6 +893,17 @@ submodule etsi-nfv-vnf { information element."; } + leaf provider { + type string; + description + "The provider of this software image. If not present the + provider of the software image is assumed to be same as + the VNF provider."; + reference + "GS NFV IFA011: Section 7.1.6.5 SwImageDesc + information element."; + } + container checksum { leaf algorithm { @@ -1259,7 +1271,23 @@ submodule etsi-nfv-vnf { } } } + + leaf vip-cpd { + type leafref { + path "../../vip-cpd/id"; + } + description + "Reference to the VIP CPD which is used to instantiate CPs + to hold virtual IP addresses. These CPs are, in turn, + exposed as external CPs defined by this external CPD. + One and only one of the following attributes shall be + present: intVirtualLinkDesc or intCpd or vipCpd ."; + reference + "GS NFV-IFA011: Section 7.1.3.2, VnfExtCpd information + element"; + } } + uses virtual-network-interface-requirements; leaf nicio-requirements { @@ -1291,6 +1319,55 @@ submodule etsi-nfv-vnf { } } + list vip-cpd { + key "id"; + + leaf-list int-cpd { + type leafref { + path "../../vdu/int-cpd/int-virtual-link-desc"; + } + description + "Reference to the internal VDU CPD which is used to + instantiate internal CPs. These internal CPs share the + virtual IP addresses allocated when a VipCp instance + is created from the VipCpd."; + reference + "GS NFV IFA011: Section 7.1.x, VipCpd information element."; + } + + leaf-list vnf-ext-cpd { + type leafref { + path "../../ext-cpd/id"; + } + description + "Reference to the VNF external CPD which is used to + instantiate external CPs. These external CPs share the + virtual IP addresses allocated when a VipCp instance is + created from the VipCpd."; + reference + "GS NFV IFA011: Section 7.1.x, VipCpd information element."; + } + + leaf vip-function { + type identityref { + base vip-function; + } + description + "It indicates the function the virtual IP address is used + for. Permitted values: high availability, load balancing."; + reference + "GS NFV IFA011: Section 7.1.x, VipCpd information element."; + } + + uses cpd; + + description + "Describes virtual IP addresses to be shared among instances + of connection points. See clause 7.1.x."; + reference + "GS NFV IFA011: Section 7.1.2, VNFD information element."; + } + list df { must "default-instantiation-level or " + "count(instantiation-level) = 1"; @@ -1556,6 +1633,19 @@ submodule etsi-nfv-vnf { "GS NFV IFA011: Section 7.1.8.14, L2ProtocolData information element."; } + + 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 + "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