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
f390bc69
Commit
f390bc69
authored
Oct 30, 2018
by
Mahesh Jethanandani
Browse files
Updating models to IFA011/14 2.6.1
parent
06d73e3c
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
src/yang/etsi-nfv-common.yang
View file @
f390bc69
module
etsi-nfv-common
{
module
etsi-nfv-common
{
namespace
"urn:etsi:params:xml:ns:yang:etsi-nfv-common"
;
namespace
"urn:etsi:params:xml:ns:yang:etsi-nfv-common"
;
yang-version
1.1
;
prefix
common
;
prefix
common
;
description
description
...
@@ -368,18 +369,28 @@ module etsi-nfv-common {
...
@@ -368,18 +369,28 @@ module etsi-nfv-common {
information element."
;
information element."
;
}
}
}
}
// The following grouping is Cpd information element as defined in
// IFA014. IFA011 defines its own Cpd information element, which
// is defined in etsi-nfv-vnf.yang file. Do not use this grouping
// for inclusion in a Vnf.
grouping
cpd
{
grouping
cpd
{
description
description
"A Cpd information element describes network connectivity to a
"The Cpd information element specifies the characteristics of
compute resource or a VL."
;
connection points attached to NFs and NSs. This is an
abstract class used as parent for the various Cpd classes.
It has an attribute 'trunkMode' which enables the NFVO to
identify whether the Cp instantiated from the Cpd is in trunk
mode or not."
;
reference
reference
"GS NFC IFA011: Section 7.1.6.3 Cpd Information Element"
;
"GS NFC IFA014: Section 6.6.3.1 Cpd information element"
;
leaf
id
{
leaf
id
{
type
string
;
type
string
;
description
description
"Identifier of this Cpd information element."
;
"Identifier of this Cpd information element."
;
reference
reference
"GS NF
V
IFA01
1
: Section
7.1
.6.3
,
Cpd information element
.
"
;
"GS NF
C
IFA01
4
: Section
6
.6.3
.1
Cpd information element"
;
}
}
leaf
layer-protocol
{
leaf
layer-protocol
{
mandatory
true
;
mandatory
true
;
...
@@ -387,134 +398,45 @@ module etsi-nfv-common {
...
@@ -387,134 +398,45 @@ module etsi-nfv-common {
base
common
:
layer-protocol
;
base
common
:
layer-protocol
;
}
}
description
description
"Identifies
which
protocol th
e CP uses for connectivity
"Identifies
a
protocol th
at the connection points
purposes (Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire,
corresponding to the CPD support for connectivity purposes
etc.)."
;
(e.g. Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire,
etc.)."
;
reference
reference
"GS NF
V
IFA01
1
: Section
7.1
.6.3
,
Cpd information element
.
"
;
"GS NF
C
IFA01
4
: Section
6
.6.3
.1
Cpd information element"
;
}
}
leaf
role
{
leaf
role
{
type
identityref
{
type
identityref
{
base
common
:
cp-role
;
base
common
:
cp-role
;
}
}
description
description
"Identifies the role of the port in the context of the
"Identifies the role of the connection points
traffic flow patterns in the VNF or parent NS. For example a
corresponding to the CPD in the context of the traffic
VNF with a tree flow pattern within the VNF will have legal
flow patterns in the VNF, PNF or NS. For example an NS with
cpRoles of ROOT and LEAF."
;
a tree flow pattern within the NS will have legal cpRoles
of ROOT and LEAF."
;
reference
reference
"GS NF
V
IFA01
1
: Section
7.1
.6.3
,
Cpd information element
.
"
;
"GS NF
C
IFA01
4
: Section
6
.6.3
.1
Cpd information element"
;
}
}
leaf
description
{
leaf
description
{
type
string
;
type
string
;
description
description
"Human readable description of the connection point"
;
"Provides human-readable information on the purpose of the
reference
connection point (e.g. connection point for control plane
"GS NFV IFA011: Section 7.1.6.3, Cpd information element."
;
traffic)."
;
}
container
protocol
{
description
"Identifies the protocol layering information the CP uses for
connectivity purposes and associated information. There shall
be one cpProtocol for each layer protocol as indicated by the
attribute layerProtocol."
;
reference
reference
"GS NFV IFA011: Section 7.1.6.3, Cpd information element."
;
"GS NFC IFA014: Section 6.6.3.1 Cpd information element"
;
leaf
associated-layer-protocol
{
type
identityref
{
base
common
:
layer-protocol
;
}
description
"One of the values of the attribute layerProtocol of the Cpd
IE."
;
reference
"GS NFV IFA011: Section 7.1.6.8, CpProtocolData information
element."
;
}
list
address-data
{
key
"address-type"
;
leaf
address-type
{
type
identityref
{
base
common
:
address-type
;
}
description
"Describes the type of the address to be assigned to the CP
instantiated from the parent CPD.
Value:
• MAC address.
• IP address.
• …
The content type shall be aligned with the address type
supported by the layerProtocol attribute of the parent CPD."
;
reference
"GS NFV IFA011: Section 7.1.3.3, AddressData information
element."
;
}
container
l2-address-data
{
when
"../address-type='mac-address'"
;
}
container
l3-address-data
{
when
"../address-type='ip-address'"
;
leaf
ip-address-assignment
{
type
boolean
;
description
"Specify if the address assignment is the responsibility
of management and orchestration function or not. If it
is set to True, it is the management and orchestration
function responsibility. "
;
reference
"GS NFV IFA011: Section 7.1.3.4, L3AddressData
information element."
;
}
leaf
floating-ip-activated
{
type
boolean
;
description
"Specify if the floating IP scheme is activated on the CP
or not."
;
reference
"GS NFV IFA011: Section 7.1.3.4, L3AddressData
information element."
;
}
leaf
ip-address-type
{
type
enumeration
{
enum
"ipv4"
;
enum
"ipv6"
;
}
description
"Define address type. The address type should be aligned
with the address type supported by the layerProtocol
attribute of the parent VnfExtCpd."
;
reference
"GS NFV IFA011: Section 7.1.3.4, L3AddressData
information element."
;
}
leaf
number-of-ip-addresses
{
type
uint32
;
description
"Minimum number of IP addresses to be assigned based on
this L3AddressData information element."
;
reference
"GS NFV IFA011: Section 7.1.3.4, L3AddressData
information element."
;
}
}
description
"The AddressData information element supports providing
information about the addressing scheme and parameters
applicable to a CP."
;
reference
"GS NFV IFA011: Section 7.1.3.3, AddressData information
element."
;
}
}
}
leaf
trunk-mode
{
leaf
trunk-mode
{
type
boolean
;
type
boolean
;
description
description
"Information about whether the CP instantiated from this CPD
"Information about whether the Cp instantiated from this CPD
is in Trunk mode (802.1Q or other)."
;
is in Trunk mode (802.1Q or other). When operating in
'trunk mode', the Cp is capable of carrying traffic for
several VLANs. A cardinality of 0 implies that trunkMode
is not configured for the Cp i.e. It is equivalent to
Boolean value 'false'."
;
reference
reference
"GS NF
V
IFA01
1
: Section
7.1
.6.3
,
Cpd information element
.
"
;
"GS NF
C
IFA01
4
: Section
6
.6.3
.1
Cpd information element"
;
}
}
}
}
}
}
src/yang/etsi-nfv-ns.yang
View file @
f390bc69
This diff is collapsed.
Click to expand it.
src/yang/etsi-nfv-pnf.yang
View file @
f390bc69
submodule
etsi-nfv-pnf
{
submodule
etsi-nfv-pnf
{
yang-version
1.1
;
belongs-to
etsi-nfv
{
belongs-to
etsi-nfv
{
prefix
nfv
;
prefix
nfv
;
}
}
...
@@ -10,11 +11,6 @@ submodule etsi-nfv-pnf {
...
@@ -10,11 +11,6 @@ submodule etsi-nfv-pnf {
prefix
common
;
prefix
common
;
}
}
/*
* Include
*/
include
etsi-nfv-ns
;
description
description
"Models for PNFD according to GS NFV-IFA 014."
;
"Models for PNFD according to GS NFV-IFA 014."
;
...
@@ -37,7 +33,9 @@ submodule etsi-nfv-pnf {
...
@@ -37,7 +33,9 @@ submodule etsi-nfv-pnf {
reference
reference
"GS NFV-IFA014: Section 6.6.2, Pnfd information element"
;
"GS NFV-IFA014: Section 6.6.2, Pnfd information element"
;
container
pnfd
{
list
pnfd
{
key
"id"
;
leaf
id
{
leaf
id
{
type
string
;
type
string
;
description
description
...
@@ -83,7 +81,7 @@ submodule etsi-nfv-pnf {
...
@@ -83,7 +81,7 @@ submodule etsi-nfv-pnf {
reference
reference
"GS NFV-IFA014: Section 6.6.2, Pnfd information element"
;
"GS NFV-IFA014: Section 6.6.2, Pnfd information element"
;
}
}
list
ext-cp
{
list
ext-cp
d
{
key
"id"
;
key
"id"
;
uses
common
:
cpd
;
uses
common
:
cpd
;
description
description
...
...
src/yang/etsi-nfv-vnf.yang
View file @
f390bc69
submodule
etsi-nfv-vnf
{
submodule
etsi-nfv-vnf
{
yang-version
1.1
;
belongs-to
etsi-nfv
{
belongs-to
etsi-nfv
{
prefix
nfv
;
prefix
nfv
;
}
}
...
@@ -12,7 +13,6 @@ submodule etsi-nfv-vnf {
...
@@ -12,7 +13,6 @@ submodule etsi-nfv-vnf {
import
etsi-nfv-common
{
import
etsi-nfv-common
{
prefix
common
;
prefix
common
;
}
}
include
etsi-nfv-ns
;
description
description
"Models for VNFD according to GS NFV-IFA 011."
;
"Models for VNFD according to GS NFV-IFA 011."
;
...
@@ -101,6 +101,161 @@ submodule etsi-nfv-vnf {
...
@@ -101,6 +101,161 @@ submodule etsi-nfv-vnf {
}
}
}
}
// This grouping definition is for use within Vnfd as defined in
// IFA011. A similar definition of Cpd exists in IFA014, but
// that is for use with Sapd and Pnfd. Do not use this grouping
// for that.
grouping
cpd
{
description
"A Cpd information element describes network
connectivity to a compute resource or a VL."
;
reference
"GS NFC IFA011: Section 7.1.6.3 Cpd Information
Element"
;
leaf
id
{
type
string
;
description
"Identifier of this Cpd information element."
;
reference
"GS NFV IFA011: Section 7.1.6.3, Cpd information element."
;
}
leaf
layer-protocol
{
mandatory
true
;
type
identityref
{
base
common
:
layer-protocol
;
}
description
"Identifies which protocol the CP uses for connectivity
purposes (Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire,
etc.)."
;
reference
"GS NFV IFA011: Section 7.1.6.3, Cpd information element."
;
}
leaf
role
{
type
identityref
{
base
common
:
cp-role
;
}
description
"Identifies the role of the port in the context of the
traffic flow patterns in the VNF or parent NS. For example a
VNF with a tree flow pattern within the VNF will have legal
cpRoles of ROOT and LEAF."
;
reference
"GS NFV IFA011: Section 7.1.6.3, Cpd information element."
;
}
leaf
description
{
type
string
;
description
"Human readable description of the connection point"
;
reference
"GS NFV IFA011: Section 7.1.6.3, Cpd information element."
;
}
container
protocol
{
description
"Identifies the protocol layering information the CP uses for
connectivity purposes and associated information. There shall
be one cpProtocol for each layer protocol as indicated by the
attribute layerProtocol."
;
reference
"GS NFV IFA011: Section 7.1.6.3, Cpd information element."
;
leaf
associated-layer-protocol
{
type
identityref
{
base
common
:
layer-protocol
;
}
description
"One of the values of the attribute layerProtocol of the Cpd
IE."
;
reference
"GS NFV IFA011: Section 7.1.6.8, CpProtocolData information
element."
;
}
list
address-data
{
key
"address-type"
;
leaf
address-type
{
type
identityref
{
base
common
:
address-type
;
}
description
"Describes the type of the address to be assigned to the CP
instantiated from the parent CPD.
Value:
• MAC address.
• IP address.
• …
The content type shall be aligned with the address type
supported by the layerProtocol attribute of the parent CPD."
;
reference
"GS NFV IFA011: Section 7.1.3.3, AddressData information
element."
;
}
container
l2-address-data
{
when
"../address-type='mac-address'"
;
}
container
l3-address-data
{
when
"../address-type='ip-address'"
;
leaf
ip-address-assignment
{
type
boolean
;
description
"Specify if the address assignment is the responsibility
of management and orchestration function or not. If it
is set to True, it is the management and orchestration
function responsibility. "
;
reference
"GS NFV IFA011: Section 7.1.3.4, L3AddressData
information element."
;
}
leaf
floating-ip-activated
{
type
boolean
;
description
"Specify if the floating IP scheme is activated on the CP
or not."
;
reference
"GS NFV IFA011: Section 7.1.3.4, L3AddressData
information element."
;
}
leaf
ip-address-type
{
type
enumeration
{
enum
"ipv4"
;
enum
"ipv6"
;
}
description
"Define address type. The address type should be aligned
with the address type supported by the layerProtocol
attribute of the parent VnfExtCpd."
;
reference
"GS NFV IFA011: Section 7.1.3.4, L3AddressData
information element."
;
}
leaf
number-of-ip-addresses
{
type
uint32
;
description
"Minimum number of IP addresses to be assigned based on
this L3AddressData information element."
;
reference
"GS NFV IFA011: Section 7.1.3.4, L3AddressData
information element."
;
}
}
description
"The AddressData information element supports providing
information about the addressing scheme and parameters
applicable to a CP."
;
reference
"GS NFV IFA011: Section 7.1.3.3, AddressData information
element."
;
}
}
leaf
trunk-mode
{
type
boolean
;
description
"Information about whether the CP instantiated from this CPD
is in Trunk mode (802.1Q or other)."
;
reference
"GS NFV IFA011: Section 7.1.6.3, Cpd information element."
;
}
}
grouping
vnfd
{
grouping
vnfd
{
list
vnfd
{
list
vnfd
{
key
"id"
;
key
"id"
;
...
@@ -241,6 +396,7 @@ submodule etsi-nfv-vnf {
...
@@ -241,6 +396,7 @@ submodule etsi-nfv-vnf {
an external connection point."
;
an external connection point."
;
reference
reference
"GS NFV IFA011: Section 7.1.6.2, Vdu information element"
;
"GS NFV IFA011: Section 7.1.6.2, Vdu information element"
;
choice
cp-connection
{
choice
cp-connection
{
mandatory
true
;
mandatory
true
;
description
description
...
@@ -294,13 +450,19 @@ submodule etsi-nfv-vnf {
...
@@ -294,13 +450,19 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.4, VduCpd information
"GS NFV IFA011: Section 7.1.6.4, VduCpd information
element."
;
element."
;
}
}
uses
common
:
cpd
;
uses
cpd
;
}
}
leaf
virtual-compute-desc
{
leaf
virtual-compute-desc
{
type
leafref
{
type
leafref
{
path
"../../nfv:virtual-compute-descriptor/"
+
path
"../../nfv:virtual-compute-descriptor/"
+
"nfv:id"
;
"nfv:id"
;
}
}
must
"../../nfv:virtual-compute-descriptor[id=current()]/"
+
"nfv:virtual-memory/size >="
+
"../../nfv:sw-image-desc[id=current()/"
+
"../sw-image-desc]/min-ram"
{
}
description
description
"Describes CPU, Memory and acceleration requirements of
"Describes CPU, Memory and acceleration requirements of
the Virtualisation Container realizing this VDU."
;
the Virtualisation Container realizing this VDU."
;
...
@@ -553,7 +715,6 @@ submodule etsi-nfv-vnf {
...
@@ -553,7 +715,6 @@ submodule etsi-nfv-vnf {
fraction-digits
1
;
fraction-digits
1
;
range
"0..max"
;
range
"0..max"
;
}
}
must
". >= ../../../sw-image-desc[id=current()]/min-ram"
;
units
"Gb"
;
units
"Gb"
;
mandatory
true
;
mandatory
true
;
description
description
...
@@ -729,8 +890,6 @@ submodule etsi-nfv-vnf {
...
@@ -729,8 +890,6 @@ submodule etsi-nfv-vnf {
related to Virtual Storage."
;
related to Virtual Storage."
;
}
}
leaf
size-of-storage
{
leaf
size-of-storage
{
must
". >= ../../sw-image-desc[id=current()]/min-disk"
;
type
uint64
;
type
uint64
;
units
"Gb"
;
units
"Gb"
;
mandatory
true
;
mandatory
true
;
...
@@ -768,6 +927,9 @@ submodule etsi-nfv-vnf {
...
@@ -768,6 +927,9 @@ submodule etsi-nfv-vnf {
type
leafref
{
type
leafref
{
path
"../../sw-image-desc/id"
;
path
"../../sw-image-desc/id"
;
}
}
must
"../nfv:size-of-storage >="
+
"../../nfv:sw-image-desc[id=current()]/min-disk"
{
}
description
description
"Software image to be loaded on the VirtualStorage
"Software image to be loaded on the VirtualStorage
resource created based on this VirtualStorageDesc."
;
resource created based on this VirtualStorageDesc."
;
...
@@ -777,7 +939,8 @@ submodule etsi-nfv-vnf {
...
@@ -777,7 +939,8 @@ submodule etsi-nfv-vnf {
}
}
}
}
container
sw-image-desc
{
list
sw-image-desc
{
key
"id"
;
description
description
"Defines descriptors of software images to be used by the
"Defines descriptors of software images to be used by the
VNF."
;
VNF."
;
...
@@ -916,6 +1079,7 @@ submodule etsi-nfv-vnf {
...
@@ -916,6 +1079,7 @@ submodule etsi-nfv-vnf {
leaf
min-disk
{
leaf
min-disk
{
type
uint64
;
type
uint64
;
units
"Gb"
;
units
"Gb"
;
default
0
;
description
description
"The minimal disk size requirement for this software
"The minimal disk size requirement for this software
image. The value of the 'size of storage' attribute
image. The value of the 'size of storage' attribute
...
@@ -932,6 +1096,7 @@ submodule etsi-nfv-vnf {
...
@@ -932,6 +1096,7 @@ submodule etsi-nfv-vnf {
range
"0..max"
;
range
"0..max"
;
}
}
units
"Gb"
;
units
"Gb"
;
default
0
;
description
description
"The minimal RAM requirement for this software image.
"The minimal RAM requirement for this software image.
The value of the 'size' attribute of
The value of the 'size' attribute of
...
@@ -1122,10 +1287,10 @@ submodule etsi-nfv-vnf {
...
@@ -1122,10 +1287,10 @@ submodule etsi-nfv-vnf {
ext-CP to the VDU's CP.
ext-CP to the VDU's CP.
*/
*/
uses
virtual-network-interface-requirements
;
uses
virtual-network-interface-requirements
;
uses
common
:
cpd
;
uses
cpd
;
}
}
list
d
eployment-flavor
{
list
d
f
{
must
"nfv:default-instantiation-level or "
+
must
"nfv:default-instantiation-level or "
+
"count(nfv:instantiation-level) = 1"
;
"count(nfv:instantiation-level) = 1"
;
key
"id"
;
key
"id"
;
...
@@ -1335,11 +1500,11 @@ submodule etsi-nfv-vnf {
...
@@ -1335,11 +1500,11 @@ submodule etsi-nfv-vnf {
}
}
leaf
number-of-instances
{
leaf
number-of-instances
{
type
uint16
;
type
uint16
;
must
". <= ../../../../nfv:d
eployment-flavor
/"
+
must
". <= ../../../../nfv:d
f
/"
+
"nfv:vdu-profile[id=current()]/"
+
"nfv:vdu-profile[id=current()
/../nfv:id
]/"
+
"nfv:max-number-of-instances"
;
"nfv:max-number-of-instances"
;
must
". >= ../../../../nfv:d
eployment-flavor
/"
+
must
". >= ../../../../nfv:d
f
/"
+
"nfv:vdu-profile[id=current()]/"
+
"nfv:vdu-profile[id=current()
/../nfv:id
]/"
+
"nfv:min-number-of-instances"
;
"nfv:min-number-of-instances"
;
mandatory
true
;
mandatory
true
;
description