Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
NFV - Network Functions Virtualisation
SOL006
Commits
2ec0a0f9
Commit
2ec0a0f9
authored
Oct 07, 2019
by
jethanandani
Browse files
Merge branch 'v2.7.1' into 'bug#252'
# Conflicts: # example-data/nfv-nsd.xml # example-data/nfv-vnfd.xml
parents
70442076
a342a58a
Pipeline
#1621
passed with stage
in 0 seconds
Changes
6
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
example-data/nfv-nsd.xml
View file @
2ec0a0f9
...
@@ -133,4 +133,4 @@
...
@@ -133,4 +133,4 @@
</ns-instantiation-level>
</ns-instantiation-level>
</df>
</df>
</nsd>
</nsd>
</
nsd
>
</
config
>
src/yang/etsi-nfv-common.yang
View file @
2ec0a0f9
...
@@ -9,6 +9,14 @@ submodule etsi-nfv-common {
...
@@ -9,6 +9,14 @@ submodule etsi-nfv-common {
description
description
"Common data types for ETSI data models."
;
"Common data types for ETSI data models."
;
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"
;
}
revision
2019-04-25
{
revision
2019-04-25
{
description
description
"Initial revision
"Initial revision
...
@@ -243,6 +251,99 @@ submodule etsi-nfv-common {
...
@@ -243,6 +251,99 @@ submodule etsi-nfv-common {
"Ephemeral type of storage."
;
"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
the CPs instantiated from this CPD. This is used to determine
which mechanism driver(s) to be used to bind the port. Value:
• NORMAL
• VIRTIO
• DIRECT
• BAREMETAL
• VIRTIO-FORWARDER
• DIRECT-PHYSICAL
• SMART-NIC"
;
}
identity
normal
{
base
vnic-type
;
description
"Normal NIC."
;
}
identity
virtio
{
base
vnic-type
;
description
"VirtIO NIC."
;
}
identity
direct
{
base
vnic-type
;
description
"Direct NIC type."
;
}
identity
bare-metal
{
base
vnic-type
;
description
"Bare metal NIC type."
;
}
identity
virtio-forwarder
{
base
vnic-type
;
description
"VirtIO Forwarder NIC type."
;
}
identity
direct-physical
{
base
vnic-type
;
description
"Direct physical NIC type."
;
}
identity
smart-nic
{
base
vnic-type
;
description
"SmartNIC or Smart NIC type."
;
}
/*
/*
* Typedefs
* Typedefs
*/
*/
...
@@ -294,8 +395,8 @@ submodule etsi-nfv-common {
...
@@ -294,8 +395,8 @@ submodule etsi-nfv-common {
grouping
local-affinity-or-anti-affinity-rule
{
grouping
local-affinity-or-anti-affinity-rule
{
list
local-affinity-or-anti-affinity-rule
{
list
local-affinity-or-anti-affinity-rule
{
key
"
affinity-type affinity-
scope"
;
key
"
type
scope"
;
leaf
affinity-
type
{
leaf
type
{
type
affinity-type
;
type
affinity-type
;
description
description
"Specifies whether the rule is an affinity rule or an
"Specifies whether the rule is an affinity rule or an
...
@@ -305,7 +406,7 @@ submodule etsi-nfv-common {
...
@@ -305,7 +406,7 @@ submodule etsi-nfv-common {
LocalAffinityOrAntiAffinityRule information element."
;
LocalAffinityOrAntiAffinityRule information element."
;
}
}
leaf
affinity-
scope
{
leaf
scope
{
type
affinity-scope
;
type
affinity-scope
;
description
description
"Specifies the scope of the rule, possible values are
"Specifies the scope of the rule, possible values are
...
...
src/yang/etsi-nfv-ns.yang
View file @
2ec0a0f9
...
@@ -11,6 +11,14 @@ submodule etsi-nfv-ns {
...
@@ -11,6 +11,14 @@ submodule etsi-nfv-ns {
description
description
"Models for NS according to ETSI GS NFV-IFA 014."
;
"Models for NS according to ETSI GS NFV-IFA 014."
;
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"
;
}
revision
2019-04-25
{
revision
2019-04-25
{
description
description
"Initial revision
"Initial revision
...
@@ -97,7 +105,7 @@ submodule etsi-nfv-ns {
...
@@ -97,7 +105,7 @@ submodule etsi-nfv-ns {
leaf-list
vnfd-id
{
leaf-list
vnfd-id
{
type
leafref
{
type
leafref
{
path
"
../../
vnfd/id"
;
path
"
/nfv:nfv/nfv:
vnfd/
nfv:
id"
;
}
}
description
description
"References the VNFD of a constituent VNF."
;
"References the VNFD of a constituent VNF."
;
...
@@ -108,7 +116,7 @@ submodule etsi-nfv-ns {
...
@@ -108,7 +116,7 @@ submodule etsi-nfv-ns {
leaf-list
pnfd-id
{
leaf-list
pnfd-id
{
type
leafref
{
type
leafref
{
path
"
../../
pnfd/id"
;
path
"
/nfv:nfv/nfv:
pnfd/
nfv:
id"
;
}
}
description
description
"References the PNFD of a constituent PNF."
;
"References the PNFD of a constituent PNF."
;
...
@@ -164,7 +172,7 @@ submodule etsi-nfv-ns {
...
@@ -164,7 +172,7 @@ submodule etsi-nfv-ns {
leaf
vnfd-id
{
leaf
vnfd-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"
../../../../
vnfd/id"
;
path
"
/nfv:nfv/nfv:
vnfd/
nfv:
id"
;
}
}
must
"boolean(../../../vnfd-id[.=current()])"
;
must
"boolean(../../../vnfd-id[.=current()])"
;
}
}
...
@@ -172,7 +180,7 @@ submodule etsi-nfv-ns {
...
@@ -172,7 +180,7 @@ submodule etsi-nfv-ns {
leaf
ext-cpd-id
{
leaf
ext-cpd-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"deref(../vnfd-id)/../ext-cpd/id"
;
path
"deref(../vnfd-id)/../
nfv:
ext-cpd/
nfv:
id"
;
}
}
}
}
}
}
...
@@ -181,7 +189,7 @@ submodule etsi-nfv-ns {
...
@@ -181,7 +189,7 @@ submodule etsi-nfv-ns {
leaf
pnfd-id
{
leaf
pnfd-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"
../../../../
pnfd/id"
;
path
"
/nfv:nfv/nfv:
pnfd/
nfv:
id"
;
}
}
must
"boolean(../pnfd-id[.=current()])"
;
must
"boolean(../pnfd-id[.=current()])"
;
}
}
...
@@ -189,7 +197,7 @@ submodule etsi-nfv-ns {
...
@@ -189,7 +197,7 @@ submodule etsi-nfv-ns {
leaf
ext-cpd-id
{
leaf
ext-cpd-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"deref(../pnfd-id)/../ext-cpd/id"
;
path
"deref(../pnfd-id)/../
nfv:
ext-cpd/
nfv:
id"
;
}
}
}
}
}
}
...
@@ -415,121 +423,132 @@ submodule etsi-nfv-ns {
...
@@ -415,121 +423,132 @@ submodule etsi-nfv-ns {
element"
;
element"
;
}
}
list
cpd-pool
{
list
nfp-position-element
{
key
"id"
;
key
"id"
;
description
min-elements
1
;
"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
{
leaf
id
{
type
string
;
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
{
container
desc
{
mandatory
"true"
;
choice
constituent-base-element-id
{
container
vnf-profile
{
mandatory
"true"
;
leaf
vnf-profile-id
{
container
vnf-profile
{
must
". = deref(../../vnfd-profile-id)"
{
leaf
vnf-profile-id
{
}
must
". = deref(../../vnfd-profile-id)"
{
type
leafref
{
}
path
"../../../../../nsd/df/vnf-profile/id"
;
type
leafref
{
path
"../../../../../../nsd/df/vnf-profile/id"
;
}
}
}
}
}
}
container
pnf-profile
{
container
pnf-profile
{
leaf
pnf-profile
-id
{
leaf
pnf-profile-id
{
must
". = deref(../../
pnf
d
-profile-id
)"
{
must
". = deref(../../pnfd-profile-id)"
{
}
}
type
leafref
{
type
leafref
{
path
"../../../../../../nsd/df/pnf-profile/id"
;
path
"../../../../../nsd/df/pnf-profile/id"
;
}
}
}
}
}
}
container
ns-profile
{
container
ns-profile
{
leaf
ns-profile
-id
{
leaf
ns-profile-id
{
must
". = deref(../../
ns-profile-id
)"
{
must
". = deref(../../ns-profile-id)"
{
}
}
type
leafref
{
type
leafref
{
path
"../../../../../../nsd/df/ns-profile/id"
;
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
{
choice
constituent-cpd-id
{
container
vnf
{
container
vnf
{
leaf
vnfd-id
{
leaf
vnfd-id
{
must
". = deref(../../vnfd-profile-id)/../vnfd-id"
{
must
". = deref(../../vnfd-profile-id)/../vnfd-id"
{
}
}
type
leafref
{
type
leafref
{
path
"../../../../../vnfd/id"
;
path
"/nfv:nfv/nfv:vnfd/nfv:id"
;
}
}
}
}
leaf
cpd-id
{
leaf
cpd-id
{
type
leafref
{
type
leafref
{
path
"deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"
;
path
"deref(../vnfd-id)/../ext-cpd/id"
;
}
}
}
}
}
}
container
pnf
{
container
pnf
{
leaf
pnfd-id
{
leaf
pnfd-id
{
must
". = deref(../../pnfd-profile-id)/../pnfd-id"
{
must
". = deref(../../pnfd-profile-id)/../pnfd-id"
{
}
type
leafref
{
path
"/nfv:nfv/nfv:pnfd/nfv:id"
;
}
}
}
type
leafref
{
leaf
pnf-cpd-id
{
path
"../../../../../pnfd/id"
;
type
leafref
{
path
"deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"
;
}
}
}
}
}
leaf
pnf-cpd-id
{
container
ns
{
type
leafref
{
leaf
nsd-id
{
path
"deref(../pnfd-id)/../ext-cpd/id"
;
must
". = deref(../../nested-ns-profile-id)/"
+
"../nsd-id"
{
}
type
leafref
{
path
"../../../../../../nsd/id"
;
}
}
}
}
leaf
sap-cpd-id
{
}
type
leafref
{
container
ns
{
path
"deref(../nsd-id)/../sapd/id"
;
leaf
nsd-id
{
}
must
". = deref(../../nested-ns-profile-id)/"
+
"../nsd-id"
{
}
type
leafref
{
path
"../../../../../nsd/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
description
"A reference to the descriptor of a connection point
"Specifies a CPD or SAPD in the context of a profile
attached to one of the constituent VNFs and PNFs or to
of an NS constituent element."
;
the descriptor of a NS SAP."
;
reference
reference
"GS NFV IFA014: Section 6.4.
4
.2
CpdPool information
"GS NFV IFA014: Section 6.4.
6
.2
NfpPositionElement
element"
;
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
{
list
nfpd
{
key
"id"
;
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
{
leaf
id
{
type
string
;
type
string
;
description
description
...
@@ -544,32 +563,18 @@ submodule etsi-nfv-ns {
...
@@ -544,32 +563,18 @@ submodule etsi-nfv-ns {
type
string
;
type
string
;
description
description
"Provides an NFP classification and selection rule.
"Provides an NFP classification and selection rule.
The rule may be expressed as a criteria constructed
The rule may be expressed as a criteria constructed
out
out
of atomic assertions linked by Boolean operators
of atomic assertions linked by Boolean operators
AND,
AND,
OR and NOT."
;
OR and NOT."
;
reference
reference
"GS NFV IFA014: Section 6.4.3.2 Nfpd information
"GS NFV IFA014: Section 6.4.3.2 Nfpd information
element"
;
element"
;
}
}
list
position-desc
-id
{
list
position-desc
{
key
"id"
;
key
"id"
;
description
min-elements
1
;
"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
{
leaf
id
{
type
string
;
type
string
;
...
@@ -580,68 +585,69 @@ submodule etsi-nfv-ns {
...
@@ -580,68 +585,69 @@ submodule etsi-nfv-ns {
information element"
;
information element"
;
}
}
list
cp-profile-id
{
leaf-list
nfp-position-element-id
{
key
"id"
;
type
leafref
{
path
"../../../nfp-position-element/id"
;
}
description
description
"References the profile of a connection point to be
"Reference to one or a pair of CPDs or SAPDs."
;
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."
;
reference
reference
"GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
"GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
information element"
;
information element"
;
}
leaf
id
{
leaf
forwarding-behaviour
{
type
string
;
type
identityref
{
description
base
forwarding-behaviour
;
"Identifier of this CpProfile information element.
It uniquely identifies a CpProfile."
;
reference
"GS NFV IFA014: Section 6.4.6.2 CpProfile
information element"
;
}
}
description
"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"
;
}
list
constituent-profile-elements
{
leaf
forwarding-behavior-input-parameters
{
key
"id"
;
type
string
;
description
description
"Provides input parameters to configure the forwarding
"Specifies the constituents of the CpProfile."
;
behaviour (e.g. identifies a load balancing
reference
algorithm)."
;
"GS NFV IFA014: Section 6.4.6.2 CpProfile
reference
information element"
;
"GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
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"
;