YANG Logical Network ElementsLabN Consulting, L.L.C.lberger@labn.netDeutsche Telekomchopps@chopps.orgCisco Systems301 Midenhall WayCaryNCUSA27513acee@cisco.comivandean@gmail.com
This document defines a logical network element module. This module
along with the network instance module can be used to manage the
logical and virtual resource representations that may be present on a
network device. Examples of common industry terms for logical
resource representations are Logical Systems or Logical Routers.
Examples of of common industry terms for virtual resource
representations are Virtual Routing and Forwarding (VRF) instances
and Virtual Switch Instances (VSIs).
This document defines a YANG module to
support the creation of logical network elements on a network
device. A logical network element (LNE) is an independently managed
virtual device made up of resources allocated to it from the host, or
parent, network device. (An LNE running on a host network device
conceptually parallels a virtual machine running on a host system.)
Using host-virtualization terminology one could refer to an LNE as
a "Guest", and the containing network-device as the "Host". While
LNEs may be implemented via host-virtualization technologies this
is not a requirement.
This document also defines the necessary augmentations for allocating
host resources to a given LNE. As the interface management model
is the only a module that currently defines
host resources, this document currently defines only a single
augmentation to cover the assignment of interfaces to an LNE.
As each LNE is an independently managed device, each will have its own
set of YANG modeled data that is independent of the host device and
other LNEs. For example, multiple LNEs may all have their own "Tunnel0"
interface defined which will not conflict with each other and will not
exist in the host's interface model. An LNE will have it's own
management interfaces possibly including independent instances of
netconf/restconf/etc servers
to support configuration of their YANG models. As an example of
this independence, an implementation may choose to completely rename
assigned interfaces, so on the host the assigned interface might be
called "Ethernet0/1" while within the LNE it might be called "eth1".
In addition to standard management interfaces, a host device
implementation may support accessing LNE configuration and operational
YANG models directly from the host system. When supported, such access
is accomplished through a yang-schema-mount mount point
under which the root
level LNE YANG models may be accessed.
Examples of vendor terminology for an LNE include logical system or
logical router, and virtual switch, chassis, or fabric.
This document was motivated by, and derived from,
.
The top open issues are:
This document will need to match the evolution and
standardization of or
by the Netmod WG.
It will also make use of emerging YANG functionality supported
by YANG Schema Mount.
In this document, we consider network devices that support protocols
and functions defined within the IETF Routing Area, e.g, routers,
firewalls and hosts. Such devices may be physical or virtual, e.g., a
classic router with custom hardware or one residing within a
server-based virtual machine implementing a virtual network function
(VNF). Each device may sub-divide their resources into logical
network elements (LNEs) each of which provides a managed logical
device. Examples of vendor terminology for an LNE include logical
system or logical router, and virtual switch, chassis, or fabric. Each LNE
may also support virtual routing and forwarding (VRF) and virtual
switching instance (VSI) functions, which are referred to below as a
network instances (NIs). This breakdown is represented in
Figure 1.
Figure 1: Module Element Relationships
A model for LNEs is described in and
the model for network instances is covered in . For more information on how these models
may be used within an overall device model structure, see .
The interface management model is and
existing model that is impacted by the definition of LNEs and
network instances. This document and
define augmentations to the interface module to support LNEs
and NIs. Similar elements, although perhaps only for LNEs, may
also need to be included as part of the definition of the
future hardware and QoS modules.
Interfaces are a crucial part of any network device's
configuration and operational state. They generally include a
combination of raw physical interfaces, link-layer interfaces,
addressing configuration, and logical interfaces that may not
be tied to any physical interface. Several system services,
and layer 2 and layer 3 protocols may also associate
configuration or operational state data with different types of
interfaces (these relationships are not shown for simplicity).
The interface management model is defined by .
The logical-network-element and network-instance modules
augment the existing interface management model in two ways:
The first, by the logical-network-element module, adds an
identifier which is used on physical interface types to
identify an associated LNE. The second, by the
network-instance module, adds a name which is used on
interface or sub-interface types to identify an associated
network instance.
Similarly, this name is also added for IPv4 and IPv6 types, as
defined in .
The interface related augmentations are as follows:
The following is an example of envisioned combined usage. The
interfaces container includes a number of commonly used
components as examples:
The defined interface model is
structured to include all interfaces in a flat list, without
regard to logical or virtual instances (e.g., VRFs) supported
on the device. The bind-lne-name and
bind-network-instance-name leaves provide the association
between an interface and its associated LNE and NI (e.g., VRF
or VSI).
Logical network elements represent the capability of some
devices to partition resources into independent logical routers
and/or switches. Device support for multiple logical network
elements is implementation specific. Systems without such
capabilities need not include support for the
logical-network-element module. In physical devices, some
hardware features are shared across partitions, but control
plane (e.g., routing) protocol instances, tables, and
configuration are managed separately. For example, in virtual
routers or VNFs, this may correspond to establishing multiple
logical instances using a single software installation. The
model supports configuration of multiple instances on a single
device by creating a list of logical network elements, each
with their own configuration and operational state related to
routing and switching protocols, as shown below:
`name` identifies the logical network element.
`managed` indicates if the host network device is able
to manage the LNE via the `root` structure.
There are multiple implementation approaches possible to enable
a network device to support the logical-network-element
module and multiple LNEs. Some approaches will allow the
management functions operating at network device level to
access LNE configuration and operation information, while
others will not. Similarly, even when LNE management from the
network device is supported by the implementation, it may be
prohibited by user policy.
The `managed` boolean mentioned above is used to
indicate when LNE management from the network device context is
possible. When the `managed` boolean is
`false`, the LNE cannot be managed by the host
system and can only be managed from within the context of the LNE
as described in the next section, .
When the `managed` boolean is `true`, the LNE can be managed
from both the context of the LNE and the host network device. In
this case, the same information that is available from within the LNE
context is made available via the `root` element, with paths
modified as described in .
As an example, consider the case where an LNE with a
`name` of "one" is defined on a network device.
In this case the following structure might be made available:
As an LNE is a network device itself, all modules that may be present at
the top level network device may also be present for the LNE, be made
available under `root`, and be accessible via paths
modified per . The list of available
modules is expected to be implementation dependent. As is the method used
by an implementation to support LNEs.
Resources assigned to the LNE will be represented in that LNE's resource
modules. e.g., an LNE's interfaces module will contain the interfaces
assigned to that LNE from the containing network-device.
Management functions operating with the context of an LNE are
accessed through standard LNE's management interfaces, e.g.,
NETCONF and SNMP. When accessing an LNE via an LNE's management
interface, a network-device representation will be presented,
but its scope will be limited to the specific LNE.
Normal YANG/NETCONF mechanisms, together with
yang library ,
can be used to identify the available
modules. Each supported module will be presented as a top level
module. Only LNE associated resources will be reflected in
resource related modules, e.g., interfaces, hardware and
perhaps QoS. From the management perspective, there will be no
difference between the available LNE view (information) and an
a physical network device.
Multiple implementation approaches are possible to provide LNE
views, and these are outside the scope of this document.
Logical network elements may be controlled by clients using existing
list operations. When list entries are created, a new LNE is
instantiated. The models mounted under an LNE root is expected to be
dependent on the server implementation. When a list entry is
deleted, an existing LNE is destroyed. For more information see
Section 7.8.6.
TBD
This document registers a URI in the IETF XML registry . Following the format in RFC 3688, the following
registration is requested to be made.
This document registers a YANG module in the YANG Module Names
registry .
The structure of the model defined in this document is described
by the YANG module below.
The Routing Area Yang Architecture design team members included Acee
Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Lou Berger,
Qin Wu, Rob Shakir, Stephane Litkowski, and Yan Gang.The RFC text was produced using Marshall Rose's xml2rfc tool.