Internet DRAFT - draft-ietf-ivy-network-inventory-yang
draft-ietf-ivy-network-inventory-yang
Network Working Group C. Yu
Internet-Draft Huawei Technologies
Intended status: Standards Track S. Belotti
Expires: 5 September 2024 Nokia
J.-F. Bouquier
Vodafone
F. Peruzzini
TIM
P. Bedard
Cisco
4 March 2024
A YANG Data Model for Network Inventory
draft-ietf-ivy-network-inventory-yang-01
Abstract
This document defines a base YANG data model for network inventory
that is application- and technology-agnostic. This data model can be
augmented with application-specific and technology-specific details
in other, more specific network inventory data models.
About This Document
This note is to be removed before publishing as an RFC.
The latest revision of this draft can be found at https://ietf-ivy-
wg.github.io/network-inventory-yang/draft-ietf-ivy-network-inventory-
yang.html. Status information for this document may be found at
https://datatracker.ietf.org/doc/draft-ietf-ivy-network-inventory-
yang/.
Source for this draft and an issue tracker can be found at
https://github.com/ietf-ivy-wg/network-inventory-yang.
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/.
Yu, et al. Expires 5 September 2024 [Page 1]
Internet-Draft Network Inventory YANG March 2024
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 5 September 2024.
Copyright Notice
Copyright (c) 2024 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 Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology and Notations . . . . . . . . . . . . . . . . 4
1.2. Requirements Notation . . . . . . . . . . . . . . . . . . 6
1.3. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 6
1.4. Prefix in Data Node Names . . . . . . . . . . . . . . . . 6
2. YANG Data Model for Network Inventory Overview . . . . . . . 7
2.1. Common Design for All Inventory Objects . . . . . . . . . 8
2.2. Network Element . . . . . . . . . . . . . . . . . . . . . 9
2.3. Components . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1. Hardware Components . . . . . . . . . . . . . . . . . 10
2.3.2. Software Components . . . . . . . . . . . . . . . . . 11
2.4. Changes with respect to RFC8348 . . . . . . . . . . . . . 12
2.4.1. New Parent Identifiers' Reference . . . . . . . . . . 12
2.4.2. Component-Specific Info Design . . . . . . . . . . . 12
2.4.3. Part Number . . . . . . . . . . . . . . . . . . . . . 13
3. Extending Network Inventory . . . . . . . . . . . . . . . . . 13
4. Network Inventory Tree Diagram . . . . . . . . . . . . . . . 14
5. YANG Data Model for Network Inventory . . . . . . . . . . . . 15
6. Manageability Considerations . . . . . . . . . . . . . . . . 25
7. Security Considerations . . . . . . . . . . . . . . . . . . . 25
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 25
9.1. Normative References . . . . . . . . . . . . . . . . . . 25
9.2. Informative References . . . . . . . . . . . . . . . . . 26
Appendix A. Comparison With Openconfig-platform Data Model . . . 27
Yu, et al. Expires 5 September 2024 [Page 2]
Internet-Draft Network Inventory YANG March 2024
Appendix B. Efficiency Issue . . . . . . . . . . . . . . . . . . 30
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 31
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32
1. Introduction
The purpose of this document is to define a base network inventory
YANG data model that is application- and technology-agnostic. The
base data model can be augmented to describe application-specific or
technology-specific information.
Network Inventory management is a key component in operators' OSS
architectures.
Network Inventory is a fundamental functionality in network
management and was specified many years ago. Given the emergence of
data models and their deployment in operator's management and control
systems, the traditional function of inventory management is also
requested to be defined as a data model.
Network Inventory management and monitoring is a critical part for
ensuring the network stays healthy, well-planned, and functioning in
the operator's network. Network Inventory management allows the
operator to keep track of which physical devices are deployed in the
network including relevant software and hardware versions.
The Network Inventory management also helps the operator to know when
to acquire new assets and what is needed, or to decommission old or
faulty ones, which can help to improve network performance and
capacity planning.
In [I-D.ietf-teas-actn-poi-applicability] a gap was identified
regarding the lack of a YANG data model that could be used at ACTN
MPI interface level to report whole/partial network hardware
inventory information available at domain controller level towards
north-bound systems (e.g., MDSC or OSS layer).
[RFC8345] initial goal was to make possible the augmentation of the
YANG data model with Network Inventory data model but this was never
developed and the scope was kept limited to network topology data
only.
It is key for operators to drive the industry towards the use of a
standard YANG data model for Network Inventory data instead of using
vendors proprietary APIs (e.g., REST API).
Yu, et al. Expires 5 September 2024 [Page 3]
Internet-Draft Network Inventory YANG March 2024
In the ACTN architecture, this would bring also clear benefits at
MDSC level for packet over optical integration scenarios since this
would enable the correlation of the HW network inventory information
with the links information reported in the network topology model.
This represent a priority for operators to implement this with a
standard YANG data model that could be used as soon as possible in
multi-vendor integrations of PNCs with MDSCs.
The intention is to define a generic YANG base data model that would
be as much as possible technology agnostic (valid for IP, optical and
microwave networks) and that could be augmented, when required, to
include some technology-specific inventory details together with
specific HW or SW component’s attributes.
[RFC8348] defines a YANG data model for the management of the
hardware on a single server and therefore it is more applicable to
the domain controller South Bound Interface (SBI) towards the network
elements rather than at the domain controller's northbound. However,
the YANG data model defined in [RFC8348] has been used as a reference
for defining the YANG network inventory data model presented in this
draft.
The proposed YANG data model has been analyzed at the present stage
to cover the common requirements for both HW and SW use cases for
Network Inventory.
Network Inventory is a collection of data for network devices and
their components managed by a specific management system. Per the
definition of [RFC8969],the network inventory model is a network
model.
This document defines one YANG module "ietf-network-inventory" in
Section 5.
Section 3 provides a set of augmentation considerations for
extensions of hardware, software, entitlement, and inventory topology
mapping.
The YANG data model defined in this document conforms to the Network
Management Datastore Architecture [RFC8342].
1.1. Terminology and Notations
The following terms are defined in [RFC7950] and are not redefined
here:
* client
Yu, et al. Expires 5 September 2024 [Page 4]
Internet-Draft Network Inventory YANG March 2024
* server
* augment
* data model
* data node
The following terms are defined in [RFC6241] and are not redefined
here:
* configuration data
* state data
The terminology for describing YANG data models is found in
[RFC7950].
TBD: Recap the concept of chassis/slot/component/board/... in
[TMF_SD2-20].
Following terms are used for the representation of the hierarchies in
the network inventory.
Network Inventory:
a collection of data for network devices and their components
managed by a specific management system.
Network Element:
a manageable network entity that contains hardware and software
units, e.g. a network device installed on one or several chassis
Chassis:
a holder of the device installation.
Slot:
a holder of the board.
Component:
a unit of the network element, e.g. hardware components like
chassis, card, port, software components like software-patch,
bios, and boot-loader
Yu, et al. Expires 5 September 2024 [Page 5]
Internet-Draft Network Inventory YANG March 2024
Board/Card:
a pluggable equipment can be inserted into one or several slots/
sub-slots and can afford a specific transmission function
independently.
Port:
an interface on board
Container: > Within this document , with the term "container" we
consider an hardware component class capable of containing one or
more removable physical entities, e.g. a slot in a chassis is
containing a board.
1.2. Requirements Notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
1.3. Tree Diagram
A simplified graphical representation of the data model is used in
Section 4 of this document. The meaning of the symbols in this
diagram is defined in [RFC8340].
1.4. Prefix in Data Node Names
In this document, names of data nodes and other data model objects
are prefixed using the standard prefix associated with the
corresponding YANG imported modules, as shown in the following table.
+========+========================+=============+
| Prefix | Yang Module | Reference |
+========+========================+=============+
| inet | ietf-inet-types | [RFC6991] |
+--------+------------------------+-------------+
| yang | ietf-yang-types | [RFC6991] |
+--------+------------------------+-------------+
| ianahw | iana-hardware | [IANA_YANG] |
+--------+------------------------+-------------+
| ni | ietf-network-inventory | RFC XXXX |
+--------+------------------------+-------------+
Table 1: Prefixes and corresponding YANG modules
Yu, et al. Expires 5 September 2024 [Page 6]
Internet-Draft Network Inventory YANG March 2024
RFC Editor Note: Please replace XXXX with the RFC number assigned to
this document. Please remove this note.
2. YANG Data Model for Network Inventory Overview
The network element definition is generalized to support physical
devices and other types of inventory objects (e.g., virtual network
elements) that can be managed as physical network elements from an
inventory perspective. The data model for Network Element presented
in this document uses a flat list of network element.
The "ne-type" is defined as a YANG identity to describe the type of
the network element. This document defines only the "physical-
network-element" identity.
The component definition is also generalized to support any types of
component, such as hardware, software, or firmware.
Different types of components can be distinguished by the class of
component. The component "class" is defined as a union between the
hardware class identity, defined in "iana-hardware", and the "non-
hardware" identity, defined in this document. Attributes related to
specific class of component can be found in the component-specific-
info structure.
The identity definition of additional types of "ne-type" and "non-
hardware" identity of component are outside the scope of this
document and could be defined in application-specific or technology-
specific companion augmentation data models, such as
[I-D.wzwb-ivy-network-inventory-software].
In [RFC8348], rack, chassis, slot, sub-slot, board and port are
defined as components of network elements with generic attributes.
While [RFC8348] is used to manage the hardware of a single server
(e.g., a network element), the Network Inventory YANG data model is
used to retrieve the base network inventory information that a
controller discovers from all the network elements under its control.
However, the YANG data model defined in [RFC8348] has been used as a
reference for defining the YANG network inventory data model. This
approach can simplify the implementation of this network inventory
model when the controller uses the YANG data model defined in
[RFC8348] to retrieve the hardware from the network elements under
its control.
Yu, et al. Expires 5 September 2024 [Page 7]
Internet-Draft Network Inventory YANG March 2024
+--rw network-elements
+--rw network-element* [ne-id]
+--rw ne-id string
............................................
+--rw components
+--rw component* [component-id]
+--rw component-id string
......................................
2.1. Common Design for All Inventory Objects
For all the inventory objects, there are some common attributes
existing. Such as:
Identifier: here we suggest to use uuid format which is widely
implemented with systems. It is guaranteed to be globally unique.
Name: name is a human-readable label information which could be used
to present on GUI. This name is suggested to be provided by server.
Alias: alias is also a human-readable label information which could
be modified by user. It could also be present on GUI instead of
name.
Description: description is a human-readable information which could
be also input by user. Description provides more detailed
information to prompt users when performing maintenance operations.
+--rw network-elements
+--rw network-element* [ne-id]
+--rw ne-id string
+--rw ne-type? identityref
+--rw uuid? yang:uuid
+--rw name? string
+--rw description? string
+--rw alias? string
...................................
+--rw components
+--rw component* [component-id]
+--rw component-id string
+--rw uuid? yang:uuid
+--rw name? string
+--rw description? string
+--rw alias? string
+--rw class union
...................................
Yu, et al. Expires 5 September 2024 [Page 8]
Internet-Draft Network Inventory YANG March 2024
2.2. Network Element
To be consistent with the component definition, some of the
attributes defined in [RFC8348] for components are reused for network
elements. These attributes include:
+--rw network-elements
+--rw network-element* [ne-id]
...................................
+--rw hardware-rev? string
+--rw software-rev? string
+--rw mfg-name? string
+--rw mfg-date? yang:date-and-time
+--rw part-number? string
+--rw serial-number? string
+--rw product-name? string
...................................
Note: Not all the attributes defined in [RFC8348] are applicable for
network element. And there could also be some missing attributes
which are not recognized by [RFC8348]. More extensions could be
introduced in later revisions after the missing attributes are fully
discussed.
2.3. Components
The YANG data model for network inventory mainly follows the same
approach of [RFC8348] and reports the network hardware inventory as a
list of components with different types (e.g., chassis, module,
port).
The component definition is generalized to both hardware components
and non-hardware components (e.g., software components).
Yu, et al. Expires 5 September 2024 [Page 9]
Internet-Draft Network Inventory YANG March 2024
+--rw components
+--rw component* [component-id]
+--rw component-id string
+--rw uuid? yang:uuid
+--rw name? string
+--rw description? string
+--rw alias? string
+--rw class union
+--rw child-component-ref
+--rw parent-rel-pos? int32
+--rw parent-component-ref
+--rw hardware-rev? string
+--rw firmware-rev? string
+--rw software-rev? string
+--rw serial-num? string
+--rw mfg-name? string
+--rw part-number? string
+--rw asset-id? string
+--rw is-fru? boolean
+--rw mfg-date? yang:date-and-time
+--rw uri* inet:uri
For state data like admin-state, oper-state and so on, we consider
they are related to device hardware management and not network
inventory. Therefore, they are outside of scope of this document.
Same for the sensor-data, they should be defined in some other
performance monitoring data models instead of inventory data model.
2.3.1. Hardware Components
Based on TMF classification in [TMF_SD2-20], hardware components can
be divided into two groups, holder group and equipment group. The
holder group contains rack, chassis, slot, sub-slot while the
equipment group contains network-element, board and port.
The relationship between typical inventory objects in a physical
network element can be described by Figure 1 below:
Yu, et al. Expires 5 September 2024 [Page 10]
Internet-Draft Network Inventory YANG March 2024
+-----------------+
| network element |
+-----------------+
||
||
||
||1:M
||
||
||
\/
+-------------+
| chassis/ |---+
| sub-chassis |<--|
+-------------+
||
______1:N______||_____1:M_______
||------------------ ---------||
\/ \/
+--------------+ +-----------+
+---| slot | | board |
|-->| /sub-slot | | |
+--------------+ +-----------+
||
||1:N
\/
+-----------+
| port |
+-----------+
Figure 1: Relationship between typical inventory objects in
physical network elements
The "iana-hardware" module [IANA_YANG] defines YANG identities for
the hardware component types in the IANA-maintained "IANA-ENTITY-MIB"
registry.
Some of the definitions taken from [RFC8348] are actually based on
the ENTITY-MIB [RFC6933].
For the additional attributes of specific hardware, such as CPU,
storage, port, power supply is defined in the hardware extension.
2.3.2. Software Components
This document defines "software-rev" of NEs and components, which are
basic software attributes of a Network Element.
Yu, et al. Expires 5 September 2024 [Page 11]
Internet-Draft Network Inventory YANG March 2024
The software and hardware components share the same attributes of the
component and have similar replaceable requirements. Generally, the
device also has other software data, for example, one or more
software patch information.
The software components of other classes, such as platform software,
BIOS, bootloader, and software patch information, are outside the
scope of this document and defined other documents such as
[I-D.wzwb-ivy-network-inventory-software].
2.4. Changes with respect to RFC8348
We re-defined some attributes listed in [RFC8348], based on some
integration experience for network wide inventory data.
2.4.1. New Parent Identifiers' Reference
[RFC8348] provided a "parent-ref" attribute, which was an identifier
reference to its parent component. When the MDSC or OSS systems want
to find this component's grandparent or higher level component in the
hierarchy, they need to retrieve this parent-ref step by step. To
reduce this iterative work, we decided to provide a list of
hierarchical parent components' identifier references.
+--ro components
+--ro component* [component-id]
...................................
+--ro parent-component-references
| +--ro component-reference* [index]
| +--ro index uint8
| +--ro class? -> ../../../class
| +--ro uuid? -> ../../../uuid
...................................
The hierarchical components' identifier could be found by the
"component-reference" list. The "index" attribute is used to order
the list by the hierarchical relationship from topmost component
(with the "index" set to 0) to bottom component.
2.4.2. Component-Specific Info Design
According to the management requirements from operators, some
important attributes are not defined in [RFC8348]. These attributes
could be component-specific and are not suitable to define under the
component list node. So, the model can be augmented with HW/SW
specific-info-grouping containing attributes applicable to HW e.g.
boards/slot or SW e.g. software-module/boot-loader component only.
Yu, et al. Expires 5 September 2024 [Page 12]
Internet-Draft Network Inventory YANG March 2024
+--rw components
+--rw component* [component-id]
| +--rw component-id string
| .......................................
| +--ro chassis-specific-info
| +--ro slot-specific-info
| +--ro board-specific-info
| +--ro port-specific-info
| +--ro software-specific-info
2.4.3. Part Number
According to the description in [RFC8348], the attribute named
"model-name" under the component, is preferred to have a customer-
visible part number value. "Model-name" is not straightforward to
understand and we suggest to rename it as "part-number" directly.
+--ro components
+--ro component* [uuid]
...................................
+--ro part-number? string
...................................
3. Extending Network Inventory
This document defines the basic network inventory attributes
applicable to typical network scenarios. For finer-grained and
specific management scenarios, the relationship between this model
and other models is illustrated in Figure 4.
+-------------------------+
| |
| Base Network Inventory |
| |
+------------+------------+
|
+------------------+-------------------+
| | |
+------V------+ +------V------ +------V------ +-------------+
| | | | | | | |
| Hardware | | Software | | | | Inventory |
| Extensions | | Extensions | | Entitlement | | Topology |
| e.g. Power | | e.g. | | | | Mapping |
| supply unit | | SW patch | | | | |
+-------------+ +-------------+ +-------------+ +-------------+
Yu, et al. Expires 5 September 2024 [Page 13]
Internet-Draft Network Inventory YANG March 2024
4. Network Inventory Tree Diagram
Figure 2 below shows the tree diagram of the YANG data model defined
in module "ietf-network-inventory" (Section 5).
module: ietf-network-inventory
+--rw network-inventory
+--rw network-elements
+--rw network-element* [ne-id]
+--rw ne-id string
+--ro ne-type? identityref
+--ro uuid? yang:uuid
+--rw name? string
+--rw description? string
+--rw alias? string
+--ro hardware-rev? string
+--ro software-rev? string
+--ro mfg-name? string
+--ro mfg-date? yang:date-and-time
+--ro serial-number? string
+--ro product-name? string
+--rw components
+--rw component* [component-id]
+--rw component-id string
+--ro class union
+--ro uuid? yang:uuid
+--rw name? string
+--rw description? string
+--rw alias? string
+--ro child-component-ref
+--ro parent-rel-pos? int32
+--ro parent-component-ref
+--ro hardware-rev? string
+--ro firmware-rev? string
+--ro software-rev? string
+--ro serial-num? string
+--ro mfg-name? string
+--ro part-number? string
+--ro product-name? string
+--ro asset-id? string
+--ro is-fru? boolean
+--ro mfg-date? yang:date-and-time
+--ro uri* inet:uri
+--ro chassis-specific-info
+--ro slot-specific-info
+--ro board-specific-info
+--ro port-specific-info
+--ro software-specific-info
Yu, et al. Expires 5 September 2024 [Page 14]
Internet-Draft Network Inventory YANG March 2024
Figure 2: Network inventory tree diagram
5. YANG Data Model for Network Inventory
<CODE BEGINS> file "ietf-network-inventory@2024-03-04.yang"
module ietf-network-inventory {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-network-inventory";
prefix ni;
import iana-hardware {
prefix ianahw;
reference
"https://www.iana.org/assignments/yang-parameters";
}
import ietf-yang-types {
prefix yang;
reference
"RFC6991: Common YANG Data Types.";
}
import ietf-inet-types {
prefix inet;
reference
"RFC6991: Common YANG Data Types.";
}
organization
"IETF IVY Working Group";
contact
"WG Web: <https://datatracker.ietf.org/wg/ivy/>
WG List: <mailto:inventory-yang@ietf.org>
Editor: Chaode Yu
<yuchaode@huawei.com>
Editor: Sergio Belotti
<sergio.belotti@nokia.com>
Editor: Jean-Francois Bouquier
<jeff.bouquier@vodafone.com>
Editor: Fabio Peruzzini
<fabio.peruzzini@telecomitalia.it>
Editor: Phil Bedard
<phbedard@cisco.com>";
Yu, et al. Expires 5 September 2024 [Page 15]
Internet-Draft Network Inventory YANG March 2024
description
"This module defines a base model for retrieving network
inventory.
The model fully conforms to the Network Management
Datastore Architecture (NMDA).
Copyright (c) 2023 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 Revised 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; see
the RFC itself for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here.";
// RFC Ed.: replace XXXX with actual RFC number and remove this
// note.
// RFC Ed.: update the date below with the date of RFC publication
// and remove this note.
revision 2024-03-04 {
description
"Initial version";
reference
"RFC XXXX: A YANG Data Model for Network Inventory.";
//RFC Editor: replace XXXX with actual RFC number, update date
//information and remove this note
}
identity non-hardware-component-class {
description
"Base identity for non hardware components (e.g., software
components) in a managed device.";
}
identity ne-type {
description
Yu, et al. Expires 5 September 2024 [Page 16]
Internet-Draft Network Inventory YANG March 2024
"Base identity for network element (NE) types.";
}
identity ne-physical {
base ni:ne-type;
description
"A physical network element (NE). ";
}
grouping common-entity-attributes {
description
"A set of attributes which are common to all the entities
(e.g., component, equipment room) defined in this module.";
leaf uuid {
config false;
type yang:uuid;
description
"Uniquely identifies an entity (e.g., component).";
}
leaf name {
type string;
description
"A name for an entity (e.g., component), as specified by
a network manager, that provides a non-volatile 'handle'
for the entity and that can be modified anytime during the
entity lifetime.
If no configured value exists, the server MAY set the value
of this node to a locally unique value in the operational
state.";
}
leaf description {
type string;
description "a textual description of inventory object";
}
leaf alias {
type string;
description
"a alias name of inventory objects. This alias name can be
specified by network manager.";
}
}
grouping ne-specific-info-grouping {
description
"Attributes applicable to network elements.";
leaf hardware-rev {
config false;
Yu, et al. Expires 5 September 2024 [Page 17]
Internet-Draft Network Inventory YANG March 2024
type string;
description
"The vendor-specific hardware revision string for the NE.";
}
leaf software-rev {
config false;
type string;
description
"The vendor-specific software revision string for the NE.";
}
leaf mfg-name {
config false;
type string;
description "The name of the manufacturer of this NE";
}
leaf mfg-date {
config false;
type yang:date-and-time;
description "The date of manufacturing of the NE.";
}
leaf serial-number {
config false;
type string;
description
"The vendor-specific serial number of NE. It is expected that
vendors assign unique serial numbers to different NEs within
the scope of the part number.";
}
leaf product-name {
config false;
type string;
description
"The vendor-specific serial number of the network element
instance. It is expected that vendors assign unique serial
numbers to different network element instances within the
scope of the product name.";
}
}
grouping component-specific-info-grouping {
description
"Provide component-specific attributes for different
components.";
container chassis-specific-info {
when "../class = 'ianahw:chassis'";
description
"This container contains some attributes belong to
Yu, et al. Expires 5 September 2024 [Page 18]
Internet-Draft Network Inventory YANG March 2024
chassis only.";
uses chassis-specific-info-grouping;
config false;
}
container slot-specific-info {
when "../class = 'ianahw:container'";
description
"This container contains some attributes belong to
slot only.";
uses slot-specific-info-grouping;
config false;
}
container board-specific-info {
when "../class = 'ianahw:module'";
description
"This container contains some attributes belong to
board only.";
uses board-specific-info-grouping;
config false;
}
container port-specific-info {
when "../class = 'ianahw:port'";
description
"This container contains some attributes belong to
port only.";
uses port-specific-info-grouping;
config false;
}
container software-specific-info {
when "../class = 'ianahw:software'";
description
"This container contains some attributes belong to
software only.";
uses software-specific-info-grouping;
config false;
}
}
grouping chassis-specific-info-grouping {
//To be enriched in the future.
description
"Specific attributes applicable to chassis only.";
}
Yu, et al. Expires 5 September 2024 [Page 19]
Internet-Draft Network Inventory YANG March 2024
grouping slot-specific-info-grouping {
//To be enriched in the future.
description
"Specific attributes applicable to slots only.";
}
grouping board-specific-info-grouping {
//To be enriched in the future.
description
"Specific attributes applicable to boards only.";
}
grouping port-specific-info-grouping {
//To be enriched in the future.
description
"Specific attributes applicable to ports only.";
}
grouping software-specific-info-grouping {
//To be enriched in the future.
description
"Specific attributes applicable to software only.";
}
grouping ne-info-grouping {
container network-elements {
description
"The top-level container for the list of network elements
within the network.";
list network-element {
key ne-id;
description
"The list of network elements within the network.";
leaf ne-id {
type string;
description
"Network Element (NE) identifier.";
}
leaf ne-type {
config false;
type identityref {
base ne-type;
}
default "ne-physical";
description
"The type of network element (NE).";
}
uses common-entity-attributes;
Yu, et al. Expires 5 September 2024 [Page 20]
Internet-Draft Network Inventory YANG March 2024
uses ne-specific-info-grouping;
container components {
description
"The top-level container for the list of components
within a network element.";
list component {
key component-id;
description
"The list of components within a network element.";
leaf component-id {
type string;
description
"Component identifier";
}
leaf class {
config false;
type union {
type identityref {
base ianahw:hardware-class;
}
type identityref {
base non-hardware-component-class;
}
}
mandatory true;
description
"The type of the component.";
}
uses common-entity-attributes;
container child-component-ref {
config false;
description
"A placeholder for adding the reference to child
component(s): to further discuss whether to define
a child leaf-list as RFC8348 or a list of
sub-components as openconfig-platform.";
}
leaf parent-rel-pos {
config false;
type int32 {
range "0 .. 2147483647";
}
description
"The relative position with respect to the parent
component among all the sibling components.";
reference
"RFC 6933: Entity MIB (Version 4) -
Yu, et al. Expires 5 September 2024 [Page 21]
Internet-Draft Network Inventory YANG March 2024
entPhysicalParentRelPos";
}
container parent-component-ref {
config false;
description
"A placeholder for adding the reference to parent
component(s): to further discuss whether to define
a parent attribute as RFC8348 or a
parent-component-references container as in
draft-ietf-ccamp-network-inventory-yang-02.";
}
leaf hardware-rev {
config false;
type string;
description
"The vendor-specific hardware revision string for the
component. The preferred value is the hardware
revision identifier actually printed on the component
itself (if present).";
reference
"RFC 6933: Entity MIB (Version 4) -
entPhysicalHardwareRev";
}
leaf firmware-rev {
config false;
type string;
description
"The vendor-specific firmware revision string for the
component.";
reference
"RFC 6933: Entity MIB (Version 4) -
entPhysicalFirmwareRev";
}
leaf software-rev {
config false;
type string;
description
"The vendor-specific software revision string for the
component.";
reference
"RFC 6933: Entity MIB (Version 4) -
entPhysicalSoftwareRev";
}
leaf serial-num {
config false;
type string;
description
"The vendor-specific serial number of the component
Yu, et al. Expires 5 September 2024 [Page 22]
Internet-Draft Network Inventory YANG March 2024
instance. It is expected that vendors assign unique
serial numbers to different component instances within
the scope of the part number.";
}
leaf mfg-name {
config false;
type string;
description
"The name of the manufacturer of this physical
component.
The preferred value is the manufacturer name string
actually printed on the component itself (if present).
Note that comparisons between instances of the
'model-name', 'firmware-rev', 'software-rev', and
'serial-num' nodes are only meaningful amongst
components with the same value of 'mfg-name'.
If the manufacturer name string associated with the
physical component is unknown to the server, then this
node is not instantiated.";
reference
"RFC 6933: Entity MIB (Version 4) -
entPhysicalMfgName";
}
leaf part-number {
config false;
type string;
description
"The vendor-specific part number of the component
type. It is expected that vendors assign unique part
numbers to different component types within the scope
of the vendor.";
}
leaf product-name {
config false;
type string;
description
"The vendor-specific and human-interpretable string
describing the component type. It is expected that
vendors assign unique product names to different
component types within the scope of the vendor.";
}
leaf asset-id {
config false;
type string;
description
"This node is a user-assigned asset tracking
Yu, et al. Expires 5 September 2024 [Page 23]
Internet-Draft Network Inventory YANG March 2024
identifier for the component.
A server implementation MAY map this leaf to the
entPhysicalAssetID MIB object. Such an implementation
needs to use some mechanism to handle the differences
in size and characters allowed between this leaf and
entPhysicalAssetID. The definition of such a
mechanism is outside the scope of this document.";
reference
"RFC 6933: Entity MIB (Version 4) -
entPhysicalAssetID";
}
leaf is-fru {
config false;
type boolean;
description
"This node indicates whether or not this component is
considered a 'field-replaceable unit' by the vendor.
If this node contains the value 'true', then this
component identifies a field-replaceable unit.
For all components that are permanently contained
within a field-replaceable unit, the value 'false'
should be returned for this node.";
reference
"RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU";
}
leaf mfg-date {
config false;
type yang:date-and-time;
description
"The date of manufacturing of the managed component.";
reference
"RFC 6933: Entity MIB (Version 4) -
entPhysicalMfgDate";
}
leaf-list uri {
config false;
type inet:uri;
description
"This node contains identification information about
the component.";
reference
"RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
}
uses component-specific-info-grouping;
}
}
Yu, et al. Expires 5 September 2024 [Page 24]
Internet-Draft Network Inventory YANG March 2024
}
}
}
container network-inventory {
uses ne-info-grouping;
}
}
<CODE ENDS>
Figure 3: Network inventory YANG module
6. Manageability Considerations
<Add any manageability considerations>
7. Security Considerations
<Add any security considerations>
8. IANA Considerations
<Add any IANA considerations>
9. References
9.1. Normative References
[IANA_YANG]
IANA, "YANG Parameters", n.d.,
<https://www.iana.org/assignments/yang-parameters>.
[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/rfc/rfc2119>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/rfc/rfc6241>.
[RFC6933] Bierman, A., Romascanu, D., Quittek, J., and M.
Chandramouli, "Entity MIB (Version 4)", RFC 6933,
DOI 10.17487/RFC6933, May 2013,
<https://www.rfc-editor.org/rfc/rfc6933>.
Yu, et al. Expires 5 September 2024 [Page 25]
Internet-Draft Network Inventory YANG March 2024
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/rfc/rfc6991>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/rfc/rfc7950>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/rfc/rfc8340>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/rfc/rfc8342>.
[RFC8348] Bierman, A., Bjorklund, M., Dong, J., and D. Romascanu, "A
YANG Data Model for Hardware Management", RFC 8348,
DOI 10.17487/RFC8348, March 2018,
<https://www.rfc-editor.org/rfc/rfc8348>.
[TMF_SD2-20]
TM Forum, "SD2-20_Equipment Model", TMF MTOSI 4.0, Network
Resource Fulfilment (NRF), SD2-20 , May 2008,
<https://www.tmforum.org/resources/suite/mtosi-4-0/>.
9.2. Informative References
[I-D.ietf-teas-actn-poi-applicability]
Peruzzini, F., Bouquier, J., Busi, I., King, D., and D.
Ceccarelli, "Applicability of Abstraction and Control of
Traffic Engineered Networks (ACTN) to Packet Optical
Integration (POI)", Work in Progress, Internet-Draft,
draft-ietf-teas-actn-poi-applicability-11, 22 February
2024, <https://datatracker.ietf.org/doc/html/draft-ietf-
teas-actn-poi-applicability-11>.
Yu, et al. Expires 5 September 2024 [Page 26]
Internet-Draft Network Inventory YANG March 2024
[I-D.wzwb-ivy-network-inventory-software]
Wu, B., Zhou, C., Wu, Q., and M. Boucadair, "A YANG
Network Data Model of Network Inventory Software
Extensions", Work in Progress, Internet-Draft, draft-wzwb-
ivy-network-inventory-software-00, 18 October 2023,
<https://datatracker.ietf.org/doc/html/draft-wzwb-ivy-
network-inventory-software-00>.
[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/rfc/rfc8345>.
[RFC8969] Wu, Q., Ed., Boucadair, M., Ed., Lopez, D., Xie, C., and
L. Geng, "A Framework for Automating Service and Network
Management with YANG", RFC 8969, DOI 10.17487/RFC8969,
January 2021, <https://www.rfc-editor.org/rfc/rfc8969>.
Appendix A. Comparison With Openconfig-platform Data Model
Since more and more devices can be managed by domain controller
through OpenConfig, to ensure that our inventory data model can cover
these devices' inventory data, we have compared our inventory data
model with the "openconfig-platform" model which is the data model
used to manage inventory information in OpenConfig.
Openconfig-platform data model is NE-level and uses a generic
component concept to describe its inner devices and containers, which
is similar to "ietf-hardware" model in [RFC8348]. Since we have also
reused the component concept of [RFC8348] in our inventory data
model, we can compare the component's attributes between "openconfig-
platform" and our model directly , which is stated below:
+========================+=======================+=================+
| Attributes in oc- | Attributes in our | remark |
| platform | model | |
+========================+=======================+=================+
| name | name | |
+------------------------+-----------------------+-----------------+
| type | class | |
+------------------------+-----------------------+-----------------+
| id | uuid | |
+------------------------+-----------------------+-----------------+
| location | location | |
+------------------------+-----------------------+-----------------+
| description | description | |
+------------------------+-----------------------+-----------------+
| mfg-name | mfg-name | |
Yu, et al. Expires 5 September 2024 [Page 27]
Internet-Draft Network Inventory YANG March 2024
+------------------------+-----------------------+-----------------+
| mfg-date | mfg-date | |
+------------------------+-----------------------+-----------------+
| hardware-version | hardware-rev | |
+------------------------+-----------------------+-----------------+
| firmware-version | firmware-rev | |
+------------------------+-----------------------+-----------------+
| software-version | software-rev | |
+------------------------+-----------------------+-----------------+
| serial-no | serial-num | |
+------------------------+-----------------------+-----------------+
| part-no | part-number | |
+------------------------+-----------------------+-----------------+
| clei-code | | TBD |
+------------------------+-----------------------+-----------------+
| removable | is-fru | |
+------------------------+-----------------------+-----------------+
| oper-status | | state data |
+------------------------+-----------------------+-----------------+
| empty | contained-child? | If there is no |
| | | contained |
| | | child, it is |
| | | empty. |
+------------------------+-----------------------+-----------------+
| parent | parent-references | |
+------------------------+-----------------------+-----------------+
| redundant-role | | TBD |
+------------------------+-----------------------+-----------------+
| last-switchover-reason | | state data |
+------------------------+-----------------------+-----------------+
| last-switchover-time | | state data |
+------------------------+-----------------------+-----------------+
| last-reboot-reason | | state data |
+------------------------+-----------------------+-----------------+
| last-reboot-time | | state data |
+------------------------+-----------------------+-----------------+
| switchover-ready | | state data |
+------------------------+-----------------------+-----------------+
| temperature | | performance |
| | | data |
+------------------------+-----------------------+-----------------+
| memory | | performance |
| | | data |
+------------------------+-----------------------+-----------------+
| allocated-power | | TBD |
+------------------------+-----------------------+-----------------+
| used-power | | TBD |
+------------------------+-----------------------+-----------------+
Yu, et al. Expires 5 September 2024 [Page 28]
Internet-Draft Network Inventory YANG March 2024
| pcie | | alarm data |
+------------------------+-----------------------+-----------------+
| properties | | TBD |
+------------------------+-----------------------+-----------------+
| subcomponents | contained-child | |
+------------------------+-----------------------+-----------------+
| chassis | chassis-specific-info | |
+------------------------+-----------------------+-----------------+
| port | port-specific-info | |
+------------------------+-----------------------+-----------------+
| power-supply | | TBD |
+------------------------+-----------------------+-----------------+
| fan | | Fan is |
| | | considered as a |
| | | specific board. |
| | | And no need to |
| | | define as a |
| | | single |
| | | component |
+------------------------+-----------------------+-----------------+
| fabric | | TBD |
+------------------------+-----------------------+-----------------+
| storage | | For Optical and |
| | | IP technology, |
| | | no need to |
| | | manage storage |
| | | on network |
| | | element |
+------------------------+-----------------------+-----------------+
| cpu | | For Optical and |
| | | IP technology, |
| | | no need to |
| | | manage CPU on |
| | | network element |
+------------------------+-----------------------+-----------------+
| integrated-circuit | board-specific-info | |
+------------------------+-----------------------+-----------------+
| backplane | | Backplane is |
| | | considered as a |
| | | part of board. |
| | | And no need to |
| | | define as a |
| | | single |
| | | component |
+------------------------+-----------------------+-----------------+
| software-module | | TBD |
+------------------------+-----------------------+-----------------+
| controller-card | | Controller card |
Yu, et al. Expires 5 September 2024 [Page 29]
Internet-Draft Network Inventory YANG March 2024
| | | is considered |
| | | as a specific |
| | | functional |
| | | board. And no |
| | | need to define |
| | | as a single |
| | | component |
+------------------------+-----------------------+-----------------+
Table 2: Comparison between openconfig platform and inventory
data models
As it mentioned in Section 2.3 that state data and performance data
are out of scope of our data model, it is same for alarm data and it
should be defined in some other alarm data models separately. And
for some component specific structures in "openconfig-platform", we
consider some of them can be contained by our existing structure,
such as fan, backplane, and controller-card, while some others do not
need to be included in this network inventory model like storage and
cpu.
Mostly, our inventory data model can cover the attributes from
OpenConfig.
Appendix B. Efficiency Issue
During the integration with OSS in some operators, some efficiency/
scalability concerns have been discovered when synchronizing network
inventory data for big networks. More discussions are needed to
address these concerns.
Considering that relational databases are widely used by traditional
OSS systems and also by some network controllers, the inventory
objects are most likely to be saved in different tables. With the
model defined in current draft, when doing a full synchronization,
network controller needs to convert all inventory objects of each NE
into component objects and combine them together into a single list,
and then construct a response and send to OSS or MDSC. The OSS or
MDSC needs to classify the component list and divide them into
different groups, in order to save them in different tables. The
combining-regrouping steps are impacting the network controller &
OSS/MDSC processing, which may result in efficiency/scalability
limitations in large scale networks.
An alternative YANG model structure, which defines the inventory
objects directly, instead of defining generic components, has also
been analyzed. However, also with this model, there still could be
some scalability limitations when synchronizing full inventory
Yu, et al. Expires 5 September 2024 [Page 30]
Internet-Draft Network Inventory YANG March 2024
resources in large scale of networks. This scalability limitation is
caused by the limited transmission capabilities of HTTP protocol. We
think that this scalability limitation should be solved at protocol
level rather than data model level.
The model proposed by this draft is designed to be as generic as
possible so to cover future special types of inventory objects that
could be used in other technologies, that have not been identified
yet. If the inventory objects were to be defined directly with fixed
hierarchical relationships in YANG model, this new type of inventory
objects needs to be manually defined, which is not a backward
compatible change and therefore is not an acceptable approach for
implementation. With a generic model, it is only needed to augment a
new component class and extend some specific attributes for this new
inventory component class, which is more flexible. We consider that
this generic data model, enabling a flexible and backward compatible
approach for other technologies, represents the main scope of this
draft. Solution description to efficiency/scalability limitations
mentioned above is considered as out-of-scope.
Acknowledgments
The authors of this document would like to thank the authors of
[I-D.ietf-teas-actn-poi-applicability] for having identified the gap
and requirements to trigger this work.
This document was prepared using kramdown.
Contributors
Italo Busi
Huawei Technologies
Email: italo.busi@huawei.com
Aihua Guo
Futurewei Technologies
Email: aihuaguo.ietf@gmail.com、
Victor Lopez
Nokia
Email: victor.lopez@nokia.com
Bo Wu
Huawei Technologies
Email: lana.wubo@huawei.com
Yu, et al. Expires 5 September 2024 [Page 31]
Internet-Draft Network Inventory YANG March 2024
Chenfang Zhang
China Unicom
Email: zhangcf80@chinaunicom.cn
Oscar Gonzalez de Dios
Telefonica
Email: oscar.gonzalezdedios@telefonica.com
Nigel Davis
Ciena
Email: ndavis@ciena.com
Authors' Addresses
Chaode Yu
Huawei Technologies
Email: yuchaode@huawei.com
Sergio Belotti
Nokia
Email: sergio.belotti@nokia.com
Jean-Francois Bouquier
Vodafone
Email: jeff.bouquier@vodafone.com
Fabio Peruzzini
TIM
Email: fabio.peruzzini@telecomitalia.it
Phil Bedard
Cisco
Email: phbedard@cisco.com
Yu, et al. Expires 5 September 2024 [Page 32]