Internet DRAFT - draft-shytyi-opsawg-vysm
draft-shytyi-opsawg-vysm
Network Working Group D. Shytyi
Internet-Draft L. Beylier
Intended status: Informational SFR
Expires: March 13, 2022 L. Iannone
Telecom ParisTech
September 9, 2021
A YANG Module for uCPE management.
draft-shytyi-opsawg-vysm-10
Abstract
This document provides a YANG data model for uCPE management (VYSM)
and definition of the uCPE equipment. The YANG Model serves as a
base framework for managing an universal Customer-Premises Equipment
(uCPE) subsystem. The model can be used by a Network Orchestrator.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 13, 2022.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
Shytyi, et al. Expires March 13, 2022 [Page 1]
Internet-Draft A YANG Module for uCPE management September 2021
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Universal CPE . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1. uCPE purpose . . . . . . . . . . . . . . . . . . . . . . 4
3.2. uCPE VNF ecosystem example . . . . . . . . . . . . . . . 4
3.3. Internal uCPE service example . . . . . . . . . . . . . . 5
4. YANG Model for uCPE management . . . . . . . . . . . . . . . 6
5. Components for uCPE Management . . . . . . . . . . . . . . . 7
6. Set of YANG Models . . . . . . . . . . . . . . . . . . . . . 9
7. Diagram overview of YANG Data Model tree for uCPE management 12
8. Security Considerations . . . . . . . . . . . . . . . . . . . 16
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16
11. Normative References . . . . . . . . . . . . . . . . . . . . 17
Appendix A. Example of the uCPE resources management . . . . . . 18
Appendix B. Example of the uCPE resources management
(deprecated) . . . . . . . . . . . . . . . . . . . . 21
Appendix C. Deprecated VNF YANG Model . . . . . . . . . . . . . 22
Appendix D. XML example of deprecated YANG model . . . . . . . . 28
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30
1. Introduction
Network Function Virtualization is a technology that allows to
virtualize the network services running on dedicated hardware. This
technology became a base for universal Customer-Premises Equipment
(uCPE). This document defines the uCPE as hardware with x86
capabilities that has a hypervisor. In other words, uCPE is a host
that may run multiple Virtual Machines with guest OSs, where each
Guest OS may represent a Physical Network Function. This document
presents the YANG Model (VYSM) to manage from an Orchestrator the
infrastructure inside the uCPE.
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Link - is an entity that enables link layer communication of nodes.
Port - node connector to the link.
Shytyi, et al. Expires March 13, 2022 [Page 2]
Internet-Draft A YANG Module for uCPE management September 2021
NE - Network Element.
NSYM - Network Yang Module.
VYSM - VNF YANG Model.
3. Universal CPE
Firstly, this document defines the platform that is controlled with
VYSM - universal CPE (uCPE). The uCPE as hardware with x86
capabilities that is generally running Linux distribution with
additional virtualization layer. Virtualization layer provides
virtual compute, virtual storage and virtual network resources. Each
VNF running in the uCPE requires the amount of virtual resources (for
example: 4 vCPUs, 4GB RAM, 40GB storage, 4 vPorts). VNFs MAY be
interconnected between each other and physical ports via Virtual
Networks. Topology construction and VM life-cycle management is
allowed via high level interface (Configuration can be done in the
same transaction). The figure below presents the uCPE architecture.
----------------------------------------|--------------
VNF1 VNF2 VNF3 |
----------------------------------------|
Virtual Virtual Virtual | uCPE software
Compute Storage Networks|
----------------------------------------|---------------
PHY x86 RAM+PHY PHYsical| uCPE Hardware
processor storage ports |
The next elements can be managed in the uCPE:
o Virtual Network Funcitons:
* Number of assigned vCPUs.
* Size of allocated RAM.
* VNF day0 config (bootstrap).
* vLinks that are attached to the VNF.
o Virtual Switches:
* vLinks that are attached to the vSW.
Shytyi, et al. Expires March 13, 2022 [Page 3]
Internet-Draft A YANG Module for uCPE management September 2021
o Virtual Links(vLinks).
o Physical Ports of the uCPE.
3.1. uCPE purpose
o uCPE replaces multiple types of equipment (Node#1 - Node#5) with 1
unit by virtualizing them as Virtual Network Functions on the top
of NFVIs:
: NODE #1 : NODE #2 : NODE #3 :NODE #4: NODE #5 :
: +-----------+ : +------+ : +------+ : +--+ : +-----+ :
.----|Aggregation|----|CE-L2 |----| CE-L3|----|FW|----|SDWAN|---LAN
: | switch | : | | : | | : | | : | | :
: +-----------+ : +------+ : +------+ : +--+ : +-----+ :
: NODE #1 : NODE #2 :
: : +.........................................+ :
: +-----------+ : | +------+ +------+ +--+ +-----+ | :
.--|Aggregation|---|--|CE-L2 |----| CE-L3|----|FW|---|SDWAN|-|---LAN
: | switch | : | | | | | | | | | | :
: +-----------+ : | +------+ +------+ +--+ +-----+ | :
: : | universal Customer-Premises Equipment | :
: : +-----------------------------------------+ :
o uCPE facilitates the interconnection between the Network Functions
(NF) as interconnection between NF is performed via virtual
links(that is part of the uCPE management). That means that no
need to hire technician to cable the equipment, it could be done
via orchestrator.
o uCPE facilitates the 0day configuration of the VNFs as its 0day
configuration can be putted remotely.
3.2. uCPE VNF ecosystem example
uCPE supports a Virtual Network Functions of different type:
o SD-WAN
o vRouter
o vFirewall
Shytyi, et al. Expires March 13, 2022 [Page 4]
Internet-Draft A YANG Module for uCPE management September 2021
o vLB(vLoad Balancer)
o vCGNAT(vCarrier Grade NAT)
o virtual WAN Optimistaion
o vWireless LAN controller
o Other...
3.3. Internal uCPE service example
The VNF in the uCPE could be a vRouter or vFirewall or an SD-WAN that
is not a default part of virtual network resources of the uCPE.
Multiple VNFs MAY be instantiated in the uCPE. With support of links
and switches, VNFs MAY participate a service chains. Example of
service chains (Note that virtual switch "vs(WAN)" connected to LAN
ports and vSW(WAN) is connected to WAN ports):
o vSW(WAN)-l1-vRouter-l2-vSW(LAN).
o vSW(WAN)-l1-vRouter-l2-vSW(Service)-l3-vFirewall-l4-vSW(LAN).
o vSW(WAN)-l1-vRouter-l2-vSW(Service1)-l3-vFirewall-l4-
vSW(Service2)-l5-SD-WAN-l6-vSW(LAN).
o vSW(WAN)-l1-SDWAN-l2-vSW(Service)-l3-vFirewall-l4-vSW(LAN).
o
vSW(WAN1)--vRouter--+
+--vLoadBalance vFirewall--vSW(LAN)
vSW(WAN2)--vRouter--+ | |
+-vSW(Service1)+
o
vSW(WAN1)--vRouter(ISP1)--+
+--SD-WAN vFirewall--vSW(LAN)
vSW(WAN2)--vRouter(ISP2)--+ | |
+-vSW(Service1)+
Shytyi, et al. Expires March 13, 2022 [Page 5]
Internet-Draft A YANG Module for uCPE management September 2021
4. YANG Model for uCPE management
Secondly, this document defines and classifies the YANG Model for
uCPE Management. This Module is modeled representation of the
specific network requirements. It provides abstraction of network
configuration and operations. The YANG Model for uCPE Management
does not describe all configuration to be performed on the devices,
but provides the configuration that is required for the "Network to
Network Element(s)" decomposition process RFC 8199 [RFC8199].
Example of the decomposition is presented in the figure below.
The Network YANG module exposes the configuration commands via the
Northbound interfaces of the orchestrator. Therefore the set of the
commands modeled in the VYSM can be inputted via Notrhbound
interfaces(for example CLI). In the example the command "vm VNF1" is
passed via Northbound interface to the orchestrator. It defines the
virtual machine name. Further the same configuration MAY be
transformed to the one or multiple Network Element payloads (for
example xml for NETCONF) that carry an equivalent of commands such as
"nf nf-name VNF1"
Shytyi, et al. Expires March 13, 2022 [Page 6]
Internet-Draft A YANG Module for uCPE management September 2021
+-+-+-+-+-+-+-+-+-+
| |
| config t |
| vm VNF1 |
+-+-+-+-+-+-+-+-+-+
#
#
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: :
: +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+ :
: | Network YANG Module | <= scope of this document :
: +-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+ :
: # :
: ############################## :
: # # # :
: '---------' '------------' '-----------' :
: 'Module1 ' ' Module 2 ' ' Module3 ' :
: '---------' '------------' '-----------' :
: # # # :
: # # ####################### :
: #### ############## # :
: # # # :
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# # #
Network # element 1 Network # element 2 Network # element3
++-+-+-+-+-+-+-+-+-+-+ -+-+-+-++-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+
| domains domain VNF1| |tenants tenant name VNF1| |nf nf-name VNF1|
++-+-+-+-+-+-+-+-+-+-+ -+-+-+-++-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+
5. Components for uCPE Management
This section provides a components overview to manage the uCPE.
There are multiple RFCs and drafts produced by the IETF community,
that are referenced in the YANG tree to manage the uCPE. Each
document produced by the IETF covers a part of uCPE Management. The
list of the documents is provided below:
o [RFC8530] - logical network elements (VNFs) properties.
o [RFC8345] - definition of networks, nodes, node-termination-
points: network includes the uCPE with uCPE's physical termination
points.
o [I-D.ietf-teas-sf-aware-topo-model]physical ports and service
functions (VNFs) interconnection matrices (PhyPort-VNF, VNF-VNF).
Shytyi, et al. Expires March 13, 2022 [Page 7]
Internet-Draft A YANG Module for uCPE management September 2021
o This document itself provides yang modules that completes the
existing documents produced by IETF.
This document introduces yang modules for 'logical network elements
properties(VNFs)" part:
o day0-info: mapping between variables inside of the bootstrap
config and required values in the list "day0-info". In the
bootstrap config the variable could be putted instead value. The
value could be set in the day0-info part (check the YANG model)
and after the value in the list will be mapped to the variable in
the bootstrap config.
o vCPU/vRAM/vDisk/VNF-ports leafs and lists.
The minimal list of yang models required for compilation of the YANG
tree to manage the uCPE is presented below:
o ieee-dot1Q-types
o ietf-interfaces
o ietf-ip
o ietf-logical-network-element
o ietf-network
o ietf-network-instance
o ietf-ietf-network-topology
o ietf-routing-types
o ietf-te-topology
o ietf-te-topology-sf
o ietf-te-types
o ietf-yang-schema-mount
o etsi-sol-006-deviation
o The YANG modules introduced in this document:
o
Shytyi, et al. Expires March 13, 2022 [Page 8]
Internet-Draft A YANG Module for uCPE management September 2021
* ietf-ucpe-lne-properties
* ietf-ucpe-lt-virtual-link-id
* ietf-ucpe-ni-properties
* ietf-ucpe-node-type
6. Set of YANG Models
This section provides a YANG models that address uCPE netowork
service resources management oranized according to the ID
[I-D.ietf-netmod-yang-packages]
<CODE BEGINS> file "ietf-ucpe-network-service-pkg.json"
========= NOTE: '\' line wrapping per BCP XX (RFC XXXX) ===========
{
"ietf-yang-instance-data:instance-data-set": {
"name": "ietf-ucpe-network-service-pkg",
"pkg-schema": {
package: "ietf-yang-package-defn-pkg@0.1.0.json"
},
"description": "YANG package for universal CPE network service",
"content-data": {
"ietf-yang-package-instance:yang-package": {
"name": "ietf-ucpe-network-service-pkg",
"version": "0.0.1",
"timestamp": "2021-09-09T17:00:00Z",
"organization": "IETF OPSAWG Working Group",
"contact" : "WG Web: <http://tools.ietf.org/wg/opsawg/>, \
WG List: <mailto:opsawg@ietf.org>, \
Author: <mailto:ietf.dmytro@shytyi.net>",
"description": "IETF uCPE network service YANG package.\
\
This package defines a small sample set of \
YANG modules that could represent the basic set of \
modules that a standard universal CPE device might be \
expected \
to support.",
"reference": "XXX, draft-shytyi-opsawg-vysm-10.xml",
"location": [ "https://github.com/dmytroshytyi/ucpe-ietf/\
ietf-ucpe-service@v0.0.1.json" ],
"module": [
{
"name": "ieee-dot1Q-types,
Shytyi, et al. Expires March 13, 2022 [Page 9]
Internet-Draft A YANG Module for uCPE management September 2021
"revision": "2015-08-18",
"location": [ "/https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/ieee-dot1Q-types.yang" ],
},
{
"name": "ietf-interfaces",
"revision": "2018-02-20",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-interfaces%402018-02-20.yang" ],
},
{
"name": "ietf-ip",
"revision": "2018-02-22",
"location": [ "https://github.com/dmytroshytyi/ucpe-ietf\
/blob/master/ietf-ip%402018-02-22.yang" ],
},
{
"name": "ietf-logical-network-element",
"revision": "2019-01-25",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-logical-network-element%402019-01-25.yang" ],
},
{
"name": "ietf-network",
"revision": "2018-02-26",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-network%402018-02-26.yang" ],
},
{
"name": "ietf-network-instance",
"revision": "2019-01-21",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-network-instance%402019-01-21.yang" ],
},
{
"name": "ietf-network-topology",
"revision": "2018-02-26",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-network-topology%402018-02-26.yang" ],
},
{
"name": "ietf-routing-types",
"revision": "2017-12-04",
Shytyi, et al. Expires March 13, 2022 [Page 10]
Internet-Draft A YANG Module for uCPE management September 2021
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-routing-types%402017-12-04.yang" ],
},
{
"name": "ietf-te-topology",
"revision": "2019-02-07",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-te-topology%402019-02-07.yang" ],
},
{
"name": "ietf-te-topology-sf",
"revision": "2019-11-03",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-te-topology-sf%402019-11-03.yang" ],
},
{
"name": "ietf-te-types",
"revision": "2019-11-18",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-te-types%402019-11-18.yang" ],
},
{
"name": "ietf-ucpe-lne-properties",
"revision": "2019-11-21",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-ucpe-lne-properties%402019-11-21.yang" ],
},
{
"name": "ietf-ucpe-lt-virtual-link-id",
"revision": "2020-02-14",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-ucpe-lt-virtual-link-id%402020-02-14.yang" ],
},
{
"name": "ietf-ucpe-ni-properties",
"revision": "2019-11-27",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-ucpe-ni-properties%402019-11-27.yang" ],
},
{
"name": "ietf-ucpe-node-type",
Shytyi, et al. Expires March 13, 2022 [Page 11]
Internet-Draft A YANG Module for uCPE management September 2021
"revision": "2020-02-14",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-ucpe-node-type%402020-02-14.yang" ],
},
{
"name": "ietf-ucpe-ni-properties",
"revision": "2019-11-27",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-ucpe-ni-properties%402019-11-27.yang" ],
},
{
"name": "ietf-yang-schema-mount",
"revision": "2019-01-14",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
ietf-yang-schema-mount%402019-01-14.yang" ],
},
{
"name": "etsi-nfv-common-deviation",
"revision": "2020-06-10",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
submodules/etsi-nfv-common-deviation.yang" ],
},
{
"name": "etsi-nfv-vnf-deviation",
"revision": "2020-06-10",
"location": [ "https://github.com/dmytroshytyi/\
ucpe-ietf/blob/master/\
submodules/etsi-nfv-vnf-deviation.yang" ],
}
]
}
}
}
}
<CODE ENDS>
7. Diagram overview of YANG Data Model tree for uCPE management
This section provides an overview of the Data YANG Model that MAY be
made with "pyang" utility. The figure below presents the tree
diagram.
Shytyi, et al. Expires March 13, 2022 [Page 12]
Internet-Draft A YANG Module for uCPE management September 2021
module: ietf-logical-network-element
+--rw logical-network-elements
+--rw logical-network-element* [name]
+--rw name string
+--rw managed? boolean
+--rw description? string
+--rw root
+--rw ietf-ucpe:logical-network-element-properties
+--rw ietf-ucpe:etsi
| +--rw ietf-ucpe:vnfd? -> /nfv/vnfd/id
| +--rw ietf-ucpe:vdu? -> /nfv/vnfd[id=current()\
/../vnfd]/vdu/id
+--rw ietf-ucpe:supporting-node? -> /nw:networks\
/network/node/node-id
+--rw ietf-ucpe:uuid? enumeration
+--rw ietf-ucpe:uuid-custom-value? string
+--rw ietf-ucpe:persistance-id? string
+--rw ietf-ucpe:pci-passthrough
| +--rw ietf-ucpe:device* [device-name]
| +--rw ietf-ucpe:device-name string
| +--rw ietf-ucpe:vendor-id? string
| +--rw ietf-ucpe:device-id? string
| +--rw ietf-ucpe:device-index? int64
+--rw ietf-ucpe:sf-cp-params* [sf-connection-point-id]
| +--rw ietf-ucpe:sf-connection-point-id string
| +--rw ietf-ucpe:io-acceleration
| | +--rw ietf-ucpe:interface-type? enumeration
| | +--rw ietf-ucpe:interface-model? enumeration
| | +--rw ietf-ucpe:number-of-queues? uint64
| +--rw ietf-ucpe:mac-params
| +--rw ietf-ucpe:mac-type? enumeration
| +--rw ietf-ucpe:custom-mac-address? string
+--rw ietf-ucpe:simplified-lne-props
| +--rw ietf-ucpe:sf-connection-points* \
[sf-connection-point-id]
| | +--rw ietf-ucpe:sf-connection-point-id string
| +--rw ietf-ucpe:ram? uint64
| +--rw ietf-ucpe:cpu? uint64
| +--rw ietf-ucpe:storages* [id]
| +--rw ietf-ucpe:id string
| +--rw ietf-ucpe:location? string
+--rw ietf-ucpe:day0-config
+--rw ietf-ucpe:location? string
+--rw ietf-ucpe:day0-var-path? string
+--rw ietf-ucpe:variable* [name]
+--rw ietf-ucpe:name string
+--rw ietf-ucpe:value? string
module: ietf-network
Shytyi, et al. Expires March 13, 2022 [Page 13]
Internet-Draft A YANG Module for uCPE management September 2021
+--rw networks
+--rw network* [network-id]
| +--rw network-id network-id
| +--rw network-types
| | +--rw tet:te-topology!
| | +--rw tet-sf:sf!
| +--rw supporting-network* [network-ref]
| | +--rw network-ref -> /networks/network\
/network-id
| +--rw node* [node-id]
| | +--rw node-id node-id
| | +--rw supporting-node* [network-ref node-ref]
| | | +--rw network-ref -> ../../../supporting\
-network/network-ref
| | | +--rw node-ref -> /networks/network\
/node/node-id
| | +--rw nt:termination-point* [tp-id]
| | | +--rw nt:tp-id tp-id
| | | +--rw nt:supporting-termination-point* \
[network-ref node-ref tp-ref]
| | | | +--rw nt:network-ref -> ../../../\
nw:supporting-node/network-ref
| | | | +--rw nt:node-ref -> ../../../\
nw:supporting-node/node-ref
| | | | +--rw nt:tp-ref -> \
/nw:networks/network[nw:network-id=current()/ \
../network-ref]/node[nw:node-id=current()/\
../node-ref]/termination-point/tp-id
| | +--rw tet:te-node-id? te-types:te-node-id
| | +--rw tet:te!
| | | +--rw tet:te-node-template* -> ../../../..\
/te/templates/node-template\
/name {template}?
| | | +--rw tet:te-node-attributes
| | | | +--rw tet-sf:service-function
| | | | +--rw tet-sf:connectivity-matrices
| | | | | +--rw tet-sf:connectivity-matrix* [id]
| | | | | +--rw tet-sf:id uint32
| | | | | +--rw tet-sf:from
| | | | | | +--rw tet-sf:service-function-id? string
| | | | | | +--rw tet-sf:sf-connection-point-id? string
| | | | | +--rw tet-sf:to
| | | | | | +--rw tet-sf:service-function-id? string
| | | | | | +--rw tet-sf:sf-connection-point-id? string
| | | | | +--rw tet-sf:enabled? boolean
| | | | | +--rw tet-sf:direction? \
connectivity-direction
| | | | | +--rw tet-sf:virtual-link-id? string
Shytyi, et al. Expires March 13, 2022 [Page 14]
Internet-Draft A YANG Module for uCPE management September 2021
| | | | +--rw tet-sf:link-terminations
| | | | +--rw tet-sf:link-termination* [id]
| | | | +--rw tet-sf:id uint32
| | | | +--rw tet-sf:from
| | | | | +--rw tet-sf:tp-ref? -> ../../../../../\
../../nt:termination-point/tp-id
| | | | +--rw tet-sf:to
| | | | | +--rw tet-sf:service-function-id? \
string
| | | | | +--rw tet-sf:sf-connection-point-id? \
string
| | | | +--rw tet-sf:enabled? boolean
| | | | +--rw tet-sf:direction? \
connectivity-direction
| | | | +--rw lt-vlink-id:virtual-link-id? string
module: ietf-network-instance
+--rw network-instances
+--rw network-instance* [name]
+--rw name string
+--rw enabled? boolean
+--rw description? string
+--rw (ni-type)?
+--rw (root-type)
+--:(vrf-root)
| +--rw vrf-root
+--:(vsi-root)
| +--rw vsi-root
| +--rw ietf-ucpe-ni:network-instance-properties
| +--rw ietf-ucpe-ni:sf-connection-points* \
[sf-connection-point-id]
| | +--rw ietf-ucpe-ni:sf-connection-point-id string
| | +--rw ietf-ucpe-ni:stacked-vlans
| | | +--rw ietf-ucpe-ni:outer-VLAN-0x8100? \
d1q:vid-range
| | | +--rw ietf-ucpe-ni:inner-VLANs-0x8100* uint16
| | +--rw ietf-ucpe-ni:QinQ
| | | +--rw ietf-ucpe-ni:svlan-0x88a8? d1q:vid-range
| | | +--rw ietf-ucpe-ni:cvlans-0x8100* uint16
| | +--rw ietf-ucpe-ni:dot1q-vlan
| | +--rw ietf-ucpe-ni:access-tag? \
d1q:vid-range
| | +--rw ietf-ucpe-ni:trunk-allowed-vlans* \
uint16
| | +--rw ietf-ucpe-ni:port-mode? \
enumeration
| +--rw ietf-ucpe-ni:io-acceleration
Shytyi, et al. Expires March 13, 2022 [Page 15]
Internet-Draft A YANG Module for uCPE management September 2021
| | +--rw ietf-ucpe-ni:dpdk
| | | +--rw ietf-ucpe-ni:rx-queues? uint16
| | | +--rw ietf-ucpe-ni:tx-queues? uint16
| | | +--rw ietf-ucpe-ni:cpu-mask? uint16
| | +--rw ietf-ucpe-ni:ebpf-xdp
| +--rw ietf-ucpe-ni:ni-area? identityref
| +--rw ietf-ucpe-ni:supporting-node? -> \
/nw:networks\
/network/node/node-id
+--:(vv-root)
+--rw vv-root
module: ietf-ucpe-lne-properties
+--rw nfv
+--rw vnfd* [id]
+--rw id string
+--rw provider string
+--rw product-name string
+--rw software-version string
+--rw version string
+--rw product-info-name? string
+--rw product-info-description? string
+--rw vnfm-info* string
+--rw localization-language? string
+--rw default-localization-language? string
+--rw vdu* [id]
| +--rw id string
| +--rw name string
| +--rw description? string
| +--rw int-cpd* [id]
etc... Following ETSI SOL006
8. Security Considerations
At this time, no security considerations are addressed by this memo.
9. IANA Considerations
No request to IANA at this time.
10. Acknowledgements
the authors would like to thank:
o Mahesh Jethanandani.
Shytyi, et al. Expires March 13, 2022 [Page 16]
Internet-Draft A YANG Module for uCPE management September 2021
o Robert Varga.
o Bill Wu.
o Joe Clarke.
o Tom Petch.
o Martin Bjorklund.
o Schonwalder Jurgen.
o Dean Bogdanovic.
o Bo Wu.
for their valuable comments.
11. Normative References
[I-D.ietf-netmod-yang-packages]
Wilton, R., Rahman, R., Clarke, J., Sterne, J., and B. Wu,
"YANG Packages", draft-ietf-netmod-yang-packages-01 (work
in progress), November 2020.
[I-D.ietf-teas-sf-aware-topo-model]
Bryskin, I., Liu, X., Lee, Y., Guichard, J., Contreras,
L., Ceccarelli, D., and J. Tantsura, "SF Aware TE Topology
YANG Model", draft-ietf-teas-sf-aware-topo-model-03 (work
in progress), March 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC8199] Bogdanovic, D., Claise, B., and C. Moberg, "YANG Module
Classification", RFC 8199, DOI 10.17487/RFC8199, July
2017, <https://www.rfc-editor.org/info/rfc8199>.
[RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N.,
Ananthakrishnan, H., and X. Liu, "A YANG Data Model for
Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March
2018, <https://www.rfc-editor.org/info/rfc8345>.
Shytyi, et al. Expires March 13, 2022 [Page 17]
Internet-Draft A YANG Module for uCPE management September 2021
[RFC8530] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X.
Liu, "YANG Model for Logical Network Elements", RFC 8530,
DOI 10.17487/RFC8530, March 2019,
<https://www.rfc-editor.org/info/rfc8530>.
Appendix A. Example of the uCPE resources management
This section provides an overview of the YIN format.
<networks xmlns="urn:ietf:params:xml:ns:yang:ietf-network">
<network>
<network-id>network-1</network-id>
<network-types>
<te-topology xmlns="urn:ietf:params:xml:ns:yang:ietf-te-topology">
<sf xmlns="urn:ietf:params:xml:ns:yang:ietf-te-topology-sf"/>
</te-topology>
</network-types>
<node>
<node-id>ucpe1</node-id>
<te-node-id xmlns="urn:ietf:params:xml:ns:yang:ietf-te-topology" \
>0.0.0.0</te-node-id>
<te xmlns="urn:ietf:params:xml:ns:yang:ietf-te-topology">
<te-node-attributes>
<service-function
xmlns="urn:ietf:params:xml:ns:yang:ietf-te-topology-sf">
<connectivity-matrices>
<connectivity-matrix>
<id>1</id>
<from>
<service-function-id>VMone</service-function-id>
<sf-connection-point-id>1</sf-connection-point-id>
</from>
<to>
<service-function-id>SwitchOne</service-function-id>
<sf-connection-point-id>11</sf-connection-point-id>
</to>
<virtual-link-id>l11</virtual-link-id>
</connectivity-matrix>
<connectivity-matrix>
<id>2</id>
<from>
<service-function-id>VMtwo</service-function-id>
<sf-connection-point-id>1</sf-connection-point-id>
</from>
<to>
<service-function-id>SwitchOne</service-function-id>
<sf-connection-point-id>12</sf-connection-point-id>
Shytyi, et al. Expires March 13, 2022 [Page 18]
Internet-Draft A YANG Module for uCPE management September 2021
</to>
<virtual-link-id>l12</virtual-link-id>
</connectivity-matrix>
<connectivity-matrix>
<id>3</id>
<from>
<service-function-id>VMthree</service-function-id>
<sf-connection-point-id>1</sf-connection-point-id>
</from>
<to>
<service-function-id>SwitchOne</service-function-id>
<sf-connection-point-id>13</sf-connection-point-id>
</to>
<virtual-link-id>l13</virtual-link-id>
</connectivity-matrix>
<connectivity-matrix>
<id>4</id>
<from>
<service-function-id>VMfour</service-function-id>
<sf-connection-point-id>1</sf-connection-point-id>
</from>
<to>
<service-function-id>SwitchOne</service-function-id>
<sf-connection-point-id>14</sf-connection-point-id>
</to>
<virtual-link-id>l14</virtual-link-id>
</connectivity-matrix>
</connectivity-matrices>
</service-function>
</te-node-attributes>
</te>
</node>
</network>
</networks>
<logical-network-elements \
xmlns="urn:ietf:params:xml:ns:yang:ietf-logical-network-element">
<logical-network-element>
<name>VMfour</name>
<logical-network-element-properties \
xmlns="urn:ietf:params:xml:ns:yang:ietf-ucpe-lne-properties">
<sf-connection-points>
<sf-connection-point-id>1</sf-connection-point-id>
</sf-connection-points>
<supporting-node>ucpe1</supporting-node>
<ram>1024</ram>
<cpu>4</cpu>
<storages>
Shytyi, et al. Expires March 13, 2022 [Page 19]
Internet-Draft A YANG Module for uCPE management September 2021
<id>1</id>
<location>vm4.qcow2</location>
</storages>
</logical-network-element-properties>
</logical-network-element>
<logical-network-element>
<name>VMone</name>
<logical-network-element-properties \
xmlns="urn:ietf:params:xml:ns:yang:ietf-ucpe-lne-properties">
<sf-connection-points>
<sf-connection-point-id>1</sf-connection-point-id>
</sf-connection-points>
<supporting-node>ucpe1</supporting-node>
<ram>1024</ram>
<cpu>4</cpu>
<storages>
<id>1</id>
<location>vm1.qcow2</location>
</storages>
</logical-network-element-properties>
</logical-network-element>
<logical-network-element>
<name>VMthree</name>
<logical-network-element-properties \
xmlns="urn:ietf:params:xml:ns:yang:ietf-ucpe-lne-properties">
<sf-connection-points>
<sf-connection-point-id>1</sf-connection-point-id>
</sf-connection-points>
<supporting-node>ucpe</supporting-node>
<ram>1024</ram>
<cpu>4</cpu>
<storages>
<id>1</id>
<location>vm3qcow2</location>
</storages>
</logical-network-element-properties>
</logical-network-element>
<logical-network-element>
<name>VMtwo</name>
<logical-network-element-properties \
xmlns="urn:ietf:params:xml:ns:yang:ietf-ucpe-lne-properties">
<sf-connection-points>
<sf-connection-point-id>1</sf-connection-point-id>
</sf-connection-points>
<supporting-node>ucpe1</supporting-node>
<ram>1024</ram>
<cpu>4</cpu>
<storages>
Shytyi, et al. Expires March 13, 2022 [Page 20]
Internet-Draft A YANG Module for uCPE management September 2021
<id>1</id>
<location>vm4.iso</location>
</storages>
</logical-network-element-properties>
</logical-network-element>
</logical-network-elements>
<network-instances \
xmlns="urn:ietf:params:xml:ns:yang:ietf-network-instance">
<network-instance>
<name>SwitchOne</name>
<network-instance-properties \
xmlns="urn:ietf:params:xml:ns:yang:ietf-ucpe-ni-properties">
<sf-connection-points>
<sf-connection-point-id>10</sf-connection-point-id>
<dot1q-vlan>
<trunk-allowed-vlans>112</trunk-allowed-vlans>
<trunk-allowed-vlans>113</trunk-allowed-vlans>
<trunk-allowed-vlans>114</trunk-allowed-vlans>
<port-mode>trunk</port-mode>
</dot1q-vlan>
</sf-connection-points>
<sf-connection-points>
<sf-connection-point-id>11</sf-connection-point-id>
</sf-connection-points>
<dot1q-vlan>
<access-tag>111</access-tag>
</dot1q-vlan>
<sf-connection-points>
<sf-connection-point-id>12</sf-connection-point-id>
</sf-connection-points>
<sf-connection-points>
<sf-connection-point-id>13</sf-connection-point-id>
</sf-connection-points>
<sf-connection-points>
<sf-connection-point-id>14</sf-connection-point-id>
</sf-connection-points>
<supporting-node>ucpe1</supporting-node>
</network-instance-properties>
</network-instance>
</network-instances>
Appendix B. Example of the uCPE resources management (deprecated)
This section provides an overview of the deprecated YANG Model that
MAY give an alternative view on the uCPE management.
Shytyi, et al. Expires March 13, 2022 [Page 21]
Internet-Draft A YANG Module for uCPE management September 2021
module: ietf-example-ucpe
+--rw ucpe* [name]
+--rw name string
+--rw links* [link]
| +--rw link string
+--rw phyInterfaces* [interface]
| +--rw interface string
| +--rw ports* [port]
| +--rw port string
| +--rw link? -> ../../../links/link
+--rw switches* [switch]
| +--rw switch string
| +--rw ports* [port]
| +--rw port string
| +--rw name? string
| +--rw link? -> ../../../links/link
+--rw vms* [vm]
+--rw vm string
+--rw ports* [port]
| +--rw port string
| +--rw name? string
| +--rw link? -> ../../../links/link
+--rw ram? uint64
+--rw cpu? uint64
+--rw storages* [id]
| +--rw id string
| +--rw location? string
+--rw day0-config
+--rw location? string
+--rw day0-var-path? string
+--rw variable* [name]
+--rw name string
+--rw value? string
Appendix C. Deprecated VNF YANG Model
This section provides a deprecated yang model that addresses the
configuration of the uCPE resources presented above.
<CODE BEGINS> file "ietf-example-ucpe@2019-10-28.yang"
module ietf-example-ucpe {
namespace "urn:ietf:params:xml:ns:yang:ietf-example-ucpe";
prefix ietf-example-ucpe;
organization
"SFR";
Shytyi, et al. Expires March 13, 2022 [Page 22]
Internet-Draft A YANG Module for uCPE management September 2021
contact
"Dmytro Shytyi
EMail:ietf.dmytro@shytyi.net";
description
"This is a Network Function Virtualization (NFV) YANG
service model.
Copyright (c) 2019 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
for full legal notices.";
revision 2019-10-28 {
description
"Yang model with vPorts assigned to the interfaces";
reference
"draft-shytyi-opsawg-vysm-05";
}
revision 2019-10-19 {
description
"Yang model was cleaned. Interfaces added";
reference
"draft-shytyi-opsawg-vysm-04";
}
revision 2019-09-16 {
description
"Added 0day config for VNFs.
Yang model modified according
to the received comments.";
reference
"draft-shytyi-opsawg-vysm-00";
}
revision 2018-01-07 {
description
"Initial revision.";
reference
"draft-shytyi-netmod-vysm-01";
}
Shytyi, et al. Expires March 13, 2022 [Page 23]
Internet-Draft A YANG Module for uCPE management September 2021
list ucpe {
key "name";
leaf name {
type string;
description
"ID of uCPE where
a service is instantiated";
}
list links {
key "link";
leaf link {
type string;
description
"Name of the virtual link from the pool
of the links";
}
description
"Pool of the virtual links that connect VMs and
Interfaces";
}
list phyInterfaces {
key "interface";
leaf interface {
type string;
description
"Name of physical interface";
}
list ports {
key "port";
leaf port {
type string;
description
"Name of the connector";
}
leaf link {
type leafref {
path "../../../links/link";
}
description
"Link that is connected to
the port via connector";
}
description
"Set of the connectors the
physical interface has";
}
description
"Set of physical interfaces";
Shytyi, et al. Expires March 13, 2022 [Page 24]
Internet-Draft A YANG Module for uCPE management September 2021
}
list switches {
key "switch";
leaf switch {
type string;
description
"Name of the forwarding domain";
}
list ports {
key "port";
leaf port {
type string;
description
"Name of the connector";
}
leaf name {
type string;
description
"Name of the
subconnector";
}
leaf link {
type leafref {
path "../../../links/link";
}
description
"Link that is connected to the
switch via port";
}
description
"Set of the connectors the
forwarding domain has";
}
description
"Set of the forwarding domains";
}
list vms {
key "vm";
leaf vm {
type string;
description
"ID of the Virtual Machine";
}
list ports {
key "port";
leaf port {
type string;
description
Shytyi, et al. Expires March 13, 2022 [Page 25]
Internet-Draft A YANG Module for uCPE management September 2021
"Name of the connector";
}
leaf name {
type string;
description
"Name of
the subconnector";
}
leaf link {
type leafref {
path "../../../links/link";
}
description
"Link that connects the
VM with a switch or Interface
via connector";
}
description
"Set of Virtual Machine connectors";
}
leaf ram {
type uint64;
description
"Size of RAM to allocate for
the Guest OS";
}
leaf cpu {
type uint64;
description
"Number of vCPUs to
allocate for the Guest OS";
}
list storages {
key "id";
leaf id {
type string;
description
"Number of
vDisk attached to the VM";
}
leaf location {
type string;
description
"External location where
the image (ex.qcow2) is saved.";
}
description
"Virtual storge/vDisk
Shytyi, et al. Expires March 13, 2022 [Page 26]
Internet-Draft A YANG Module for uCPE management September 2021
attached to the Virtual Machine";
}
container day0-config {
leaf location {
type string;
description
"0day configuration location";
}
leaf day0-var-path {
type string;
description
"path of the file
that contains the 0day variables";
}
list variable {
key "name";
leaf name {
type string;
description
"variable name";
}
leaf value {
type string;
description
"variable value";
}
description
"list of variables";
}
description
"0day configuration:init config";
}
description
"Set of the Virtual Machines configured
on the universal Customer-Premises Equipment";
}
description
"This is an uCPE management service";
}
}
<CODE ENDS>
Shytyi, et al. Expires March 13, 2022 [Page 27]
Internet-Draft A YANG Module for uCPE management September 2021
Appendix D. XML example of deprecated YANG model
The XML example below presents the configuration of the next service
in the uCPE, where: vSW(LAN), vSW(WAN), vSW(Service) - virtual
switches; l1,l2,l3,l4 - virtual links; VMs represent PNFs (Physical
Network Fuctions) that could be bootstrapped with 0day config/
license.
+--------+ +-------------+ +------------+
|vSW(LAN)|--l2--|VNF-vFirewall|--l3--| |
+--------+ +-------------+ | |
+--------+ +-------------+ |vSW(Service)|
|vSW(WAN)|--l1--| VNF_vRtr |--l4--| |
+--------+ +-------------+ +------------+
<ucpe xmlns="urn:ietf:params:xml:ns:yang:ietf-ucpe">
<name>ucpe1</name>
<links>
<link>l1</link>
</links>
<links>
<link>l2</link>
</links>
<links>
<link>l3</link>
</links>
<links>
<link>l4</link>
</links>
<switches>
<switch>lan</switch>
<ports>
<port>10</port>
<name>l2p10</name>
<link>l2</link>
</ports>
</switches>
<switches>
<switch>service</switch>
<ports>
<port>10</port>
<name>l3p10</name>
<link>l3</link>
</ports>
<ports>
Shytyi, et al. Expires March 13, 2022 [Page 28]
Internet-Draft A YANG Module for uCPE management September 2021
<port>11</port>
<name>l4p10</name>
<link>l4</link>
</ports>
</switches>
<switches>
<switch>wan</switch>
<ports>
<port>10</port>
<link>l1</link>
</ports>
</switches>
<vms>
<vm>VNF-vRtr</vm>
<ports>
<port>1</port>
<name>l1p1</name>
<link>l1</link>
</ports>
<ports>
<port>2</port>
<name>l4p2</name>
<link>l4</link>
</ports>
<ram>2048</ram>
<cpu>2</cpu>
<storages>
<id>1</id>
<location>http://192.168.2.1/vRtr-x86.qcow2</location>
</storages>
<day0-config>
<location>https://192.168.2.1/vRtr-day0.iso</location>
<day0-var-path>/config.rom</day0-var-path>
<variable>
<name>hostname</name>
<value>IETF-vRtr</value>
</variable>
<variable>
<name>ipaddress</name>
<value>192.168.1.2 255.255.255.0</value>
</variable>
</day0-config>
</vms>
<vms>
<vm>VNF-vFirewall</vm>
<ports>
<port>1</port>
<name>l3p1</name>
Shytyi, et al. Expires March 13, 2022 [Page 29]
Internet-Draft A YANG Module for uCPE management September 2021
<link>l3</link>
</ports>
<ports>
<port>2</port>
<name>l2p2</name>
<link>l2</link>
</ports>
<ram>2048</ram>
<cpu>2</cpu>
<storages>
<id>1</id>
<location>http://192.168.2.1/vFirewall-x86.qcow2</location>
</storages>
<day0-config>
<location>https://192.168.2.1/vFirewall-day0.iso</location>
<day0-var-path>/config.rom</day0-var-path>
<variable>
<name>hostname</name>
<value>vFirewall</value>
</variable>
<variable>
<name>ipaddress</name>
<value>192.168.1.3 255.255.255.0</value>
</variable>
</day0-config>
</vms>
</ucpe>
Authors' Addresses
Dmytro Shytyi
SFR
Paris , Ile-de-France
France
Email: ietf.dmytro@shytyi.net
URI: https://dmytro.shytyi.net
Laurent Beylier
SFR
Paris , Ile-de-France
France
Email: laurent.beylier@sfr.com
Shytyi, et al. Expires March 13, 2022 [Page 30]
Internet-Draft A YANG Module for uCPE management September 2021
Luigi Iannone
Telecom ParisTech
Paris , Ile-de-France
France
Email: luigi.iannone@telecom-paristech.fr
Shytyi, et al. Expires March 13, 2022 [Page 31]