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
Hide whitespace changes
Inline
Side-by-side
src/yang/etsi-nfv-common.yang
View file @
f390bc69
module
etsi-nfv-common
{
namespace
"urn:etsi:params:xml:ns:yang:etsi-nfv-common"
;
yang-version
1.1
;
prefix
common
;
description
...
...
@@ -368,18 +369,28 @@ module etsi-nfv-common {
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
{
description
"A Cpd information element describes network connectivity to a
compute resource or a VL."
;
"The Cpd information element specifies the characteristics of
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
"GS NFC IFA011: Section 7.1.6.3 Cpd Information Element"
;
"GS NFC IFA014: Section 6.6.3.1 Cpd information element"
;
leaf
id
{
type
string
;
description
"Identifier of this Cpd information element."
;
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
{
mandatory
true
;
...
...
@@ -387,134 +398,45 @@ module etsi-nfv-common {
base
common
:
layer-protocol
;
}
description
"Identifies
which
protocol th
e CP uses for connectivity
purposes (Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire,
etc.)."
;
"Identifies
a
protocol th
at the connection points
corresponding to the CPD support for connectivity purposes
(e.g. Ethernet, MPLS, ODU2, IPV4, IPV6, Pseudo-Wire,
etc.)."
;
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
{
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."
;
"Identifies the role of the connection points
corresponding to the CPD in the context of the traffic
flow patterns in the VNF, PNF or NS. For example an NS with
a tree flow pattern within the NS will have legal cpRoles
of ROOT and LEAF."
;
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
{
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."
;
"Provides human-readable information on the purpose of the
connection point (e.g. connection point for control plane
traffic)."
;
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."
;
}
"GS NFC IFA014: Section 6.6.3.1 Cpd 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)."
;
"Information about whether the Cp instantiated from this CPD
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
"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
submodule
etsi-nfv-ns
{
yang-version
1.1
;
belongs-to
etsi-nfv
{
prefix
nfv
;
}
...
...
@@ -7,6 +8,9 @@ submodule etsi-nfv-ns {
prefix
common
;
}
include
etsi-nfv-vnf
;
include
etsi-nfv-pnf
;
description
"Models for NS according to ETSI GS NFV-IFA 014."
;
...
...
@@ -17,14 +21,14 @@ submodule etsi-nfv-ns {
ETSI GS NFV-IFA 011 Ed251v243"
;
reference
"ETSI GS NFV-IFA 011 Ed251v243"
;
"ETSI GS NFV-IFA 011 Ed251v243"
;
}
grouping
resource-handle
{
leaf
vim-id
{
type
string
;
}
leaf
res
r
ouce-provider-id
{
leaf
resou
r
ce-provider-id
{
type
string
;
}
leaf
resource-id
{
...
...
@@ -32,169 +36,309 @@ submodule etsi-nfv-ns {
}
}
grouping
nsd
{
list
nsd
{
key
"id"
;
leaf
id
{
type
string
;
description
"Uniquely identifies an network service descriptor"
;
"Identifier of this NSD information element. It Globally
uniquely identifies an instance of the NSD."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
}
leaf
designer
{
type
string
;
description
"Identifies the designer of the network service descriptor"
;
"Identifies the designer of the NSD."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
}
leaf
version
{
type
string
;
description
"Identifies the version of the network service descriptor"
;
"Identifies the version of the NSD."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
}
leaf
name
{
type
string
;
description
"Provides the human readable name of the network service. descriptor"
;
"Provides the human readable name of the NSD."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
}
leaf
invariant-id
{
description
"Identifies an network service descriptor in a version
independent manner. This attribute is invariant across
versions of the network service descriptor."
;
type
string
;
description
"Identifies an NSD in a version independent manner. This
attribute is invariant across versions of the network
service descriptor."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
}
leaf-list
nested-nsd
{
leaf-list
nested-nsd-id
{
must
". != ../id"
;
type
leafref
{
path
"../../nsd/id"
;
}
must
". != ../id"
;
description
"References the NSD of a constituent nested NS."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
}
list
vnfd
{
key
"vnfd"
;
min-elements
1
;
description
"This lists the VNFDs this network service
descriptor consists of."
;
leaf
vnfd
{
type
leafref
{
path
"../../../vnfd/id"
;
}
leaf-list
vnfd-id
{
type
leafref
{
path
"../../vnfd/id"
;
}
description
"References the VNFD of a constituent VNF."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
}
list
service-access-point-descriptor
{
leaf-list
pnfd-id
{
type
leafref
{
path
"../../pnfd/id"
;
}
description
"References the PNFD of a constituent PNF."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
}
list
sapd
{
key
"id"
;
min-elements
1
;
description
"A service access point serves as the network
service's external connection point"
;
"Provides the descriptor of a service access point of the
network service."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
leaf
id
{
type
string
;
description
"Identifier of this Cpd information element."
;
reference
"GS NFC IFA014: Section 6.6.3.1 Cpd information element"
;
}
leaf
address-assignment
{
type
boolean
;
description
"Specify whether the SAP address
assignment is under the responsibility of
management and orchestration functions
"Specify whether the SAP address assignment is under the
responsibility of management and orchestration functions
or not. If it is set to True, management and
orchestration functions are responsible for
assigning addresses to the access points
instantiated from this SAPD"
;
type
empty
;
}
leaf
description
{
type
string
;
}
leaf
layer-protocol
{
type
identityref
{
base
common
:
layer-protocol
;
}
}
leaf
role
{
type
identityref
{
base
common
:
cp-role
;
}
orchestration functions are responsible for assigning
addresses to the access points instantiated from this
SAPD."
;
reference
"GS NFV IFA014: Section 6.2.3.2 Sapd information element"
;
}
leaf
virtual-link-desc
{
type
leafref
{
path
"../../virtual-link-desc/id"
;
}
description
"Can optionally connect this service-access-point to an virtual-link. If not set,
it's assumed a VNFD's connection-points references this
service-access-point."
;
}
/*
associatedCpdId:
Deliberatly not according to standard, see
vnf-profile -> sapd-connectivity
*/
"References the descriptor of the NS VL instance to
which the SAP instantiated from this SAPD connects to."
;
reference
"GS NFV IFA014: Section 6.2.3.2 Sapd information element"
;
}
choice
associated-cpd-id
{
container
vnf
{
leaf
vnfd-id
{
mandatory
true
;
type
leafref
{
path
"../../../../nfv:vnfd/nfv:id"
;
}
must
"boolean(../../../vnfd-id[.=current()])"
;
}
leaf
ext-cpd-id
{
mandatory
true
;
type
leafref
{
path
"deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"
;
}
}
}
container
pnf
{
leaf
pnfd-id
{
mandatory
true
;
type
leafref
{
path
"../../../../nfv:pnfd/nfv:id"
;
}
must
"boolean(../pnfd-id[.=current()])"
;
}
leaf
ext-cpd-id
{
mandatory
true
;
type
leafref
{
path
"deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"
;
}
}
}
container
ns
{
leaf
nsd-id
{
mandatory
true
;
type
leafref
{
path
"../../../../nfv:nsd/nfv:id"
;
}
must
"boolean(../nsd-id[.=current()])"
;
}
leaf
ext-cpd-id
{
mandatory
true
;
type
leafref
{
path
"deref(../nsd-id)/../nfv:sapd/nfv:id"
;
}
}
}
}
}
list
virtual-link-desc
{
key
"id"
;
description
"The virtual-link-desc information element provides general information
enabling the instantiation of virtual links."
;
"Provides the constituent VLDs."
;
reference
"GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
information element"
;
leaf
id
{
type
string
;
description
"Identifier of the NsVirtualLinkDesc information element.
It uniquely identifies a VLD."
;
reference
"GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
information element"
;
}
leaf
provider
{
description
"Defines the organization generating the VLD. "
;
type
string
;
description
"Defines the organization generating the VLD."
;
reference
"GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
information element"
;
}
leaf
version
{
mandatory
true
;
type
string
;
description
"Specifies the version of the VLD."
;
reference
"GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
information element"
;
}
uses
common
:
connectivity-type
;
list
d
eployment-flavor
{
list
d
f
{
key
"id"
;
description
"The VirtualLinkDf information element specifies
properties for instantiating a VL according to a
specific flavour."
;
reference
"GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
information element"
;
leaf
id
{
type
string
;
description
"Identifies this VirtualLinkDf information element
within a VLD."
;
reference
"GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
information element"
;
}
container
qos
{
description
"The QoS information element specifies quality of
service parameters applicable to a VL."
;
reference
"GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
information element"
;
leaf
latency
{
mandatory
true
;
description
"Specifies the maximum latency in ms."
;
type
uint32
;
units
"ms"
;
description
"Specifies the maximum latency in ms."
;
reference
"GS NFV IFA014: Section 6.5.6.2 QoS information
element"
;
}
leaf
packet-delay-variation
{
mandatory
true
;
description
"Specifies the maximum jitter in ms."
;
type
uint32
;
units
"ms"
;
description
"Specifies the maximum jitter in ms."
;
reference
"GS NFV IFA014: Section 6.5.6.2 QoS information
element"
;
}
leaf
packet-loss-ratio
{
description
"Specifies the maximum packet loss ratio."
;
type
decimal64
{
fraction-digits
"2"
;
range
"0..1.00"
;
}
description
"Specifies the maximum packet loss ratio."
;
reference
"GS NFV IFA014: Section 6.5.6.2 QoS information
element"
;
}
leaf
priority
{
type
uint32
;
description
"Specifies the priority level in case of
congestion on the underlying physical links."
;
type
uint32
;
reference
"GS NFV IFA014: Section 6.5.6.2 QoS information
element"
;
}
}
leaf
service-availability-level
{
reference
"ETSI GS NFV-REL 001 [i.5]"
;
type
enumeration
{
enum
"level-1"
;
enum
"level-2"
;
enum
"level-3"
;
}
description
"Specifies one of the three levels defined in ETSI
ETSI GS NFV-REL 001 [i.5]
* Level 1.
* Level 2.
* Level 3."
;
reference
"GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
information element"
;
}
}
...
...
@@ -204,39 +348,284 @@ submodule etsi-nfv-ns {
enum
passive-monitoring
;
enum
active
;
}
description
"Specifies test access facilities expected on the VL."
;
reference
"GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
information element"
;
}
leaf
description
{
type
string
;
description
"Provides human-readable information on the purpose of
the virtual link (e.g. VL for control plane traffic)."
;
reference
"GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
information element"
;
}
uses
common
:
security-parameters
;
}
// vnffgd skipped since not fully specified by the spec
list
monitored-info
{
list
vnffgd
{