Skip to main content

An Inventory Management Model for Enterprise Networks
draft-wzwb-opsawg-network-inventory-management-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Expired".
Authors Bo Wu , Cheng Zhou , Qin Wu , Mohamed Boucadair
Last updated 2022-10-24
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-wzwb-opsawg-network-inventory-management-00
OPSAWG                                                             B. Wu
Internet-Draft                                                    Huawei
Intended status: Standards Track                                 C. Zhou
Expires: 27 April 2023                                      China Mobile
                                                                   Q. Wu
                                                                  Huawei
                                                            M. Boucadair
                                                                  Orange
                                                         24 October 2022

         An Inventory Management Model for Enterprise Networks
           draft-wzwb-opsawg-network-inventory-management-00

Abstract

   This document defines a YANG model for network inventory management,
   which provides consistent representation and reporting of network
   nodes (including endpoints) inventory and enable a network
   orchestrator in the enterprise network to maintain a centralized view
   of all the endpoint types across multiple domains of the underlying
   network to implement a coherent control strategy.

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 27 April 2023.

Copyright Notice

   Copyright (c) 2022 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.

Wu, et al.                Expires 27 April 2023                 [Page 1]
Internet-Draft        Network Inventory Management          October 2022

   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  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   3
   3.  Sample Use Cases  . . . . . . . . . . . . . . . . . . . . . .   4
     3.1.  Inventory Classification and Characteristics  . . . . . .   6
     3.2.  Inventory Management Process  . . . . . . . . . . . . . .   7
     3.3.  Network Wide Policy Management  . . . . . . . . . . . . .   7
     3.4.  The example Digital Twin Network  . . . . . . . . . . . .   8
   4.  Model Overview  . . . . . . . . . . . . . . . . . . . . . . .   9
   5.  YANG Data model for Network Inventory Management  . . . . . .  10
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  21
   7.  Privacy Considerations  . . . . . . . . . . . . . . . . . . .  21
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  22
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  22
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  22
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  22
     10.2.  Informative References . . . . . . . . . . . . . . . . .  23
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  24

1.  Introduction

   Enterprise networks are becoming heterogenous and supporting a
   variety of device types, such as BYOD vs. enterprise-supplied
   devices, Internet of things (IoT) devices, IP phones, printers, IP
   cameras), OT (Operation Technology) devices (e.g., sensors), etc.
   Also, these networks are designed to support both localized
   applications and cloud-based applications (e.g., public cloud
   computing, storage, etc.), or hybrid applications.  Also, means to
   access network resources are not anymore from within specific sites,
   but access can be granted from anywhere.  Dedicated gateways and
   authorization procedures are being generalized.

   This trend is observed for the medical, power, manufacturing, or
   other infrastructure industries.  These networks host a large number
   of multi-vendor IoT or OT devices, with frequent additions and
   changes.  These complex environments often expose unknown safety and
   reliability blind spots.

   The endpoints connected to an Enterprise network lack unified
   modelling and lifecycle management, and different services are
   modelled, collected, processed, and stored separately.  The same

Wu, et al.                Expires 27 April 2023                 [Page 2]
Internet-Draft        Network Inventory Management          October 2022

   category of network device and network endpoints may be (repeatedly)
   discovered, processed, and stored.  Therefore, the inventory is
   difficult to manage when they are tracked in different places.
   Maintaining a centralized and up-to-date inventory is a technical
   enabler in order to implement a coherent control strategy for all
   endpoint types connected to an Enterprise network.

   [RFC8345] defines a network topology model that can be used for
   network inventory extensions.  The SAP network model
   [I-D.ietf-opsawg-sap] provides inventory data associated with Service
   Attachment Points (SAPs), which maintains an inventory of nodes
   contained in a network relying upon [RFC8345].  For the enterprise
   networks, the network endpoint and the network context with the
   endpoints need to be further defined.

   This document defines a YANG network model for inventory management,
   which provide consistent representation and reporting of network
   inventory types.

   Note: The following needs to be clarified:

   X.  Why This Model Is Needed?

   <<Include a summary of why existing models do not fit the need>>

   [RFC8345] defines a network topology model that can be used for
   network inventory extensions.  The SAP network model
   [I-D.ietf-opsawg-sap] provides inventory data associated with Service
   Attachment Points (SAPs), which maintains an inventory of nodes
   contained in a network relying upon [RFC8345].

   X.  Why This Model is Specific to Enterprises?

   <<include a discussion on the specificity of endpoints>>

2.  Requirements Language

   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.

   This document defines the following term:

   Network Inventory:  Provides a representation of entities either as a

Wu, et al.                Expires 27 April 2023                 [Page 3]
Internet-Draft        Network Inventory Management          October 2022

      network device, security device or network endpoint device, which
      include physical or virtual.  It provides information related to
      devices, which could include hardware components, software/
      firmware information and management information relevant for the
      device.  Network endpoints, physical or virtual, include physical
      computing equipment, e.g. physical servers in data centers,
      desktop computers, mobile devices, laptops, printers, sensors, and
      cloud-based endpoints, such as Software-as-a-Service (SaaS)
      applications, IaaS computing, storage, etc.

3.  Sample Use Cases

   The YANG model of network inventory is used to provide abstract
   interfaces to obtain network inventory under each network management
   systems or network controllers of different domains of an enterprise.

   The Enterprise network inventory model is used to provide abstract
   interfaces to obtain network inventory under each network management
   systems or network controllers of different domains of an enterprise.

   Figure 1 shows an example of an enterprise network consisting of two
   campus network domains.  The inventory data in the network can
   include network infrastructure devices (such as routers, switchs,
   security devices) and network endpoints (such as IoT/OT devices,
   servers, laptop, mobile devices).  The management systems or network
   controllers in different domains can automatically collect or
   discover the inventory by multiple approaches.

Wu, et al.                Expires 27 April 2023                 [Page 4]
Internet-Draft        Network Inventory Management          October 2022

              +-------------------------------------+
              | Service/network   Orchestration     |
              +-------------------------------------+
                  |                               |
                  |     network inventory model   |
                  |                               |
                  |                               |
          +----------------+              +----------------+
          | Campus manager |              | SD-WAN manager |
          +----------------+              +-------+--------+
                  |                               |
                  |                               |
                  |                               |
    +-------------------------+            +------+--------------------+
    |     Campus Domain #1    |            |     Cloud network         |
    |                         |            |                           |
    |-------+  +-----------+  |            | +-----------+   +-------+ |
    |+IT/OTs+- +  Router   +--+---------   +-+vRouter    +---+Service| |
    |-------+  +-----------+  |            | ------------+   +-------+ |
    |                         |            |                           |
    |Site A                   |            |             Cloud Site B  |
    +-------------------------+            +---------------------------+

          Figure 1: An Example of Enterprise Network Management

   With the inventory data collected from the underlying network, the
   network orchestration system can centrally manage security and
   network policies related to network endpoints.  Figure 2 shows an
   enterprise network function abstraction, in which centralized network
   policy management is on top of the network inventory and other
   network and security functions to achieve a specific set of network
   outcomes.  For example, the use cases can continuously ensure the
   security of enterprise networks or optimized traffic engineering in
   order to meet the performance requirements of business critical
   applications.

Wu, et al.                Expires 27 April 2023                 [Page 5]
Internet-Draft        Network Inventory Management          October 2022

       +---------------+  +-------------+
       |               |  |             |
       |Access Policies|  |Service SLA  |
       |               |  |Policies     |
       |               |  |             |
       +---------------+  +-------------+
       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
       Security
      +--------------+      +-------------+
      |              |      |             |
      |              |      |             |
      |Authentication|      | Security    |
      |              |      | Functions   |
      +--------------+      +-------------+
       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
       Network
      +------------+  +-------------+  +-------------+  +-------------+
      |            |  |             |  |             |                |
      |            |  |             |  |Traffic      |  |Cloud connect |
      | Topologies |  |Segmentation |  |engineering  |  |             |
      |            |  |             |  |             |  |SaaS IaaS    |
      +------------+  +-------------+  +-------------+  +-------------+
       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
       Network Inventory model
       +---------+ +----------+ +-----------------------------------+
       |         | |          | | Endpoint                          |
       | Network | | Security | | servers,desktop computers,        |
       | devices | | devices  | | mobile devices,cloud endpoints ...|
       +---------+ +----------+ +-----------------------------------+

                  Figure 2: Enterprise Network Abstraction

3.1.  Inventory Classification and Characteristics

   The network inventory defined in this document can be further
   classified into network nodes and network endpoints.  The network
   nodes include network devices (e.g., routers, security devices).  The
   network endpoints include IT devices, IoT devices, OT devices,
   personal owned devices, or cloud applications.  The inventory can be
   managed with better control by categorizing and organizing them into
   custom groups based on a set of criteria local to each Enterprise.

Wu, et al.                Expires 27 April 2023                 [Page 6]
Internet-Draft        Network Inventory Management          October 2022

   The network inventory provides a set of common device attributes,
   configuration information, and network context.  Device attributes
   include both hardware and software data.  The hardware data is from
   IETF hardware YANG which includes hardware specifications, firmware
   and software versions installed on them, asset-ids, and status.
   Software data could be license expiry, OS, etc.

   Examples of configuration information include, but not limited to, IP
   address, or geo-location information.  Network context provides the
   interconnection relationship between network devices and the location
   or underlaying devices of the network endpoint to access the network.

3.2.  Inventory Management Process

   Systems that provide network inventory usually involves the following
   steps:

      Identification: The first step is to create a detailed inventory
      of all network devices and network endpoints.  The systems should
      automatically discover each device or endpoint when connected.

      Tracking: This involves continuously monitoring, including
      gathering status, identifying new devices in the network,and
      traffic patterns.  By establishing the process, the system gets
      real-time data on the state of all the inventory.

3.3.  Network Wide Policy Management

   Policy Management provides policy-based access control on requested
   resources, such as user, device access, east west communication
   between network endpoints.

   Knowing the list of software or hardware/firmware installed on
   network devices and network endpoints, is useful to understand and
   maintain the security state and healthy state of a network
   infrastructure.  For example, if an enterprise policy requires the
   presence of certain software and prohibits the presence of other
   software, reported software installation information can be used to
   indicate compliance and non-compliance with these requirements.
   Software/hardware/firmware installation inventory lists can further
   be used to determine a network equipment's exposure to attack based
   on comparison of vulnerability or threat alerts against identified
   security profile data.

Wu, et al.                Expires 27 April 2023                 [Page 7]
Internet-Draft        Network Inventory Management          October 2022

3.4.  The example Digital Twin Network

   [I-D.irtf-nmrg-network-digital-twin-arch] defines "digital twin
   network" as a virtual representation of the physical network.  Such
   virtual representation of the network is meant to be used to analyze,
   diagnose, emulate, and then manage the physical network based on
   data, models, and interfaces.  A digital twin network architecture is
   proposed as follows.

           +---------------------------------------------------------+
           |   +-------+   +-------+          +-------+              |
           |   | App 1 |   | App 2 |   ...    | App n |   Application|
           |   +-------+   +-------+          +-------+              |
           +-------------^-------------------+-----------------------+
                         |Capability Exposure| Intent Input
                         |                   |
           +-------------+-------------------v-----------------------+
           |                        Instance of Digital Twin Network |
           |  +--------+   +------------------------+   +--------+   |
           |  |        |   | Service Mapping Models |   |        |   |
           |  |        |   |  +------------------+  |   |        |   |
           |  | Data   +--->  |Functional Models |  +---> Digital|   |
           |  | Repo-  |   |  +-----+-----^------+  |   | Twin   |   |
           |  | sitory |   |        |     |         |   | Network|   |
           |  |        |   |  +-----v-----+------+  |   |  Mgmt  |   |
           |  |        <---+  |  Basic Models    |  <---+        |   |
           |  |        |   |  +------------------+  |   |        |   |
           |  +--------+   +------------------------+   +--------+   |
           +--------^----------------------------+-------------------+
                    |                            |
                    | data collection            | control
           +--------+----------------------------v-------------------+
           |                   Physical Network                      |
           |                                                         |
           +---------------------------------------------------------+

   The service orchestration system can use digital twin platform to
   build visual relationship maps for users, networks and endpoints with
   relationship types and dependencies, and identify potential impacts
   on configuration management information from incidents, problems, and
   changes.

   The inventory model can, for example, be used to emulate several
   what-if scenario such as the impact of EOL or depletion of a hardware
   component on the network resilience and service availability.

Wu, et al.                Expires 27 April 2023                 [Page 8]
Internet-Draft        Network Inventory Management          October 2022

4.  Model Overview

   The following tree diagram [RFC8340] provides an overview of the data
   model for "ietf-network-inventory" module.

   module: ietf-network-inventory
     augment /nw:networks/nw:network/nw:node:
       +--rw node-type?            identityref
       +--rw device-configs
       |  +--rw system-config
       |     +--rw root?   <anydata>
       +--rw software-component
       |  +--rw software-instance* [software-type version]
       |     +--ro software-type    identityref
       |     +--ro version          string
       |     +--ro last-changed?    yang:date-and-time
       |     +--rw licenses
       |        +--rw license* [name]
       |           +--rw name                string
       |           +--ro description?        string
       |           +--ro license-filename?   string
       |           +--ro active-state?       string
       |           +--ro esn?                string
       |           +--ro status?             string
       |           +--ro issue-date?         yang:date-and-time
       |           +--ro expired-date?       string
       |           +--ro type?               string
       +--rw geo-location
       |  +--rw reference-frame
       |  |  +--rw alternate-system?    string {alternate-systems}?
       |  |  +--rw astronomical-body?   string
       |  |  +--rw geodetic-system
       |  |     +--rw geodetic-datum?    string
       |  |     +--rw coord-accuracy?    decimal64
       |  |     +--rw height-accuracy?   decimal64
       |  +--rw (location)?
       |  |  +--:(ellipsoid)
       |  |  |  +--rw latitude?    decimal64
       |  |  |  +--rw longitude?   decimal64
       |  |  |  +--rw height?      decimal64
       |  |  +--:(cartesian)
       |  |     +--rw x?           decimal64
       |  |     +--rw y?           decimal64
       |  |     +--rw z?           decimal64
       |  +--rw velocity
       |  |  +--rw v-north?   decimal64
       |  |  +--rw v-east?    decimal64
       |  |  +--rw v-up?      decimal64

Wu, et al.                Expires 27 April 2023                 [Page 9]
Internet-Draft        Network Inventory Management          October 2022

       |  +--rw timestamp?         yang:date-and-time
       |  +--rw valid-until?       yang:date-and-time
       +--rw endpoints
          +--rw endpoint* [endpoint-id]
             +--rw endpoint-id             string
             +--rw endpoint-type?          identityref
             +--rw endpoint-ip-address?    inet:host
             +--rw endpoint-mac-address?   yang:mac-address
             +--rw hardware-components
             |  +--rw hardware-component* [name]
             |     +--rw name          string
             |     +--rw class         component-class
             |     +--rw parent?
             |     |       -> ../../hardware-component/name
             |     +--ro serial-num?   string
             |     +--ro mfg-name?     string
             |     +--ro model-name?   string
             +--rw software-component
             |  +--rw software-instance* [software-type version]
             |     +--ro software-type    identityref
             |     +--ro version          string
             |     +--ro last-changed?    yang:date-and-time
             |     +--rw licenses
             |        +--rw license* [name]
             |           +--rw name                string
             |           +--ro description?        string
             |           +--ro license-filename?   string
             |           +--ro active-state?       string
             |           +--ro esn?                string
             |           +--ro status?             string
             |           +--ro issue-date?
             |           |       yang:date-and-time
             |           +--ro expired-date?       string
             |           +--ro type?               string
             +--rw user* [user-id]
             |  +--rw user-id    string
             +--rw application* [application-id]
                +--rw application-id    string

5.  YANG Data model for Network Inventory Management

   <CODE BEGINS>
    file="ietf-network-inventory@2022-10-24.yang"
   module ietf-network-inventory {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-digital-asset-map";
     prefix nw-inv;

Wu, et al.                Expires 27 April 2023                [Page 10]
Internet-Draft        Network Inventory Management          October 2022

     import ietf-yang-schema-mount {
       prefix yangmnt;
       reference
         "RFC 8528: YANG Schema Mount";
     }
     import ietf-network {
       prefix nw;
       reference
         "RFC 8345: A YANG Data Model for Network Topologies";
     }
     import ietf-inet-types {
       prefix inet;
       reference
         "RFC 6991: Common YANG Data Types";
     }
     import ietf-yang-types {
       prefix yang;
       reference
         "RFC 6991: Common YANG Data Types";
     }
     import iana-hardware {
       prefix ianahw;
       reference
         "RFC 8348: A YANG Data Model for Hardware Management";
     }
     import ietf-geo-location {
       prefix geo;
       reference
         "RFC 9179: A YANG Grouping for Geographic Locations";
     }

     organization
       "IETF OPSAWG (Operations and Management Area Working Group)";
     contact
       "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
        WG List:  <mailto:opsawg@ietf.org>

        Editor: Bo Wu
             <lana.wubo@huawei.com>
        Editor: Cheng Zhou
             <zhouchengyjy@chinamobile.com>
        Editor: Qin Wu
             <bill.wu@huawei.com>
        Editor: Mohamed Boucadair
             <mohamed.boucadair@orange.com>";
     description
       "This YANG module defines XXX.

Wu, et al.                Expires 27 April 2023                [Page 11]
Internet-Draft        Network Inventory Management          October 2022

        Copyright (c) 2022 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
        (https://www.rfc-editor.org/info/rfcXXXX); see the RFC
        itself for full legal notices.";

     revision 2022-10-24 {
       description
         "Initial revision.";
       reference
         "RFC XXXX: A Network Inventory Management Model for
          Enterprise Networks ";
     }

     identity inventory-software-type {
       description
         "Base identity of the software type.";
     }

     identity os-software {
       base inventory-software-type;
       description
         "OS software type.";
     }

     identity firmware {
       base inventory-software-type;
       description
         "Firmware type.";
     }

     identity endpoint-type {
       description
         "Base identity for endpoint type.";
     }

     identity server {
       base endpoint-type;
       description
         "Identity for computing server device.";

Wu, et al.                Expires 27 April 2023                [Page 12]
Internet-Draft        Network Inventory Management          October 2022

     }

     identity vm {
       base endpoint-type;
       description
         "Identity for VM node.";
     }

     identity iot_device {
       base endpoint-type;
       description
         "Identity for IoT device.";
     }

     identity cell-phone {
       base endpoint-type;
       description
         "Identity for mobile phone.";
     }

     identity node-type {
       description
         "Base identity for node device type.";
     }

     identity hub {
       base node-type;
       description
         "Identity for hub device.";
     }

     identity switch {
       base node-type;
       description
         "Identity for switch device.";
     }

     identity router {
       base node-type;
       description
         "Identity for router device.";
     }

     identity gateway {
       base node-type;
       description
         "Identity for gateway device.";
     }

Wu, et al.                Expires 27 April 2023                [Page 13]
Internet-Draft        Network Inventory Management          October 2022

     identity security {
       base node-type;
       description
         "Identity for access-point device.";
     }

     identity virtual-gateway {
       base node-type;
       description
         "Identity for virtual gateway device.";
     }

     identity virtual-router {
       base node-type;
       description
         "Identity for virtual router device.";
     }

     identity virtual-switch {
       base node-type;
       description
         "Identity for virtual switch device.";
     }

     identity virtual-security {
       base node-type;
       description
         "Identity for virtual security device.";
     }

     identity access-point {
       base node-type;
       description
         "Identity for access-point device.";
     }

     typedef software-class {
       type string;
       description
         "Software name for the software component.";
     }

     typedef component-class {
       type union {
         type identityref {
           base ianahw:hardware-class;
         }
         type software-class;

Wu, et al.                Expires 27 April 2023                [Page 14]
Internet-Draft        Network Inventory Management          October 2022

       }
       description
         "Definition for the type of hardware or software
          component class.";
     }

     /* Groupings */

     grouping system-config {
       description
         "Grouping for node system configuration.";

       container system-config {
       description
         "Container for system configuration mount-point,
             e.g. ietf-hardware, ietf-interface, etc.";
         anydata root {
           yangmnt:mount-point "root";
           description
             "Mount-point to system configuration, which is applied to
              a network device or a security device.";
         }
       }

     }

     grouping software-component {
       description
         "Grouping for software components.";
       container software-component {
         description
           "The software components within the device.";
         list software-instance {
           key "software-type version";
           description
             "The list of software instances contained within the
              device.";
           leaf software-type {
             type identityref {
               base inventory-software-type;
             }
             config false;
             description
               "The type of software.";
           }
           leaf version {
             type string;
             config false;

Wu, et al.                Expires 27 April 2023                [Page 15]
Internet-Draft        Network Inventory Management          October 2022

             description
               "The current version of the software in the device.";
           }
           leaf last-changed {
             type yang:date-and-time;
             config false;
             description
               "The date and time the current version last changed.";
           }
           uses license-info;
         }
       }
     }

     grouping license-info {
       description
         "Grouping for license information.";
       container licenses {
         description
           "All license items.";
         list license {
           key "name";
           description
             "License item.";
           leaf name {
             type string {
               length "1..31";
             }
             description
               "License item name.";
           }
           leaf license-description {
             type string {
               length "1..255";
             }
             config false;
             description
               "The description of a license item.";
           }
           leaf license-filename {
             type string {
               length "5..127";
             }
             config false;
             description
               "The name of a license file.";
           }
           leaf active-state {

Wu, et al.                Expires 27 April 2023                [Page 16]
Internet-Draft        Network Inventory Management          October 2022

             type string {
               length "1..49";
             }
             config false;
             description
               "To indicate the license activating state of the system,
                the value can be 'normal' or 'default'.";
           }
           leaf esn {
             type string {
               length "1..2047";
             }
             config false;
             description
               "The License ESN.";
           }
           leaf license-status {
             type string {
               length "1..49";
             }
             config false;
             description
               "The status of a license item.";
           }
           leaf issue-date {
             type yang:date-and-time;
             config false;
             description
               "The issued date of a license item.";
           }
           leaf expired-date {
             type string {
               length "1..71";
             }
             config false;
             description
               "The expired date of a license item.";
           }
           leaf type {
             type string {
               length "1..49";
             }
             config false;
             description
               "The type of a license item.";
           }
         }
       }

Wu, et al.                Expires 27 April 2023                [Page 17]
Internet-Draft        Network Inventory Management          October 2022

     }

     // grouping license-info
     // Device Management Information
     /* Main blocks */

     augment "/nw:networks/nw:network/nw:node" {
       description
         "Augment used to define attach the node configuration";
       leaf node-type {
         type identityref {
           base node-type;
           description
             "Node type.";
         }
       }
       container device-configs {
         description
           "Device hardware and interface configuration.";
         uses system-config;
       }
       uses software-component;
       uses geo:geo-location;
       container endpoints {
         description
           "This container provides a list of network endpoints
            for management purposes.";
         list endpoint {
           key "endpoint-id";
           description
             "The key of the endpoint list.";
           leaf endpoint-id {
             type string;
             description
               "Endpoint identifier.";
           }
           leaf endpoint-type {
             type identityref {
               base endpoint-type;
               description
                 "Endpoint type.";
             }
           }
           leaf endpoint-ip-address {
             type inet:host;
             description
               "The IP address or DNS domain name of the device.";
           }

Wu, et al.                Expires 27 April 2023                [Page 18]
Internet-Draft        Network Inventory Management          October 2022

           leaf endpoint-mac-address {
             type yang:mac-address;
             description
               "The MAC address of the device.";
           }
           container hardware-components {
             description
               "Endpoint hardware information.";
             list hardware-component {
               key "name";
               description
                 "An entry in this list represents a component.";
               leaf name {
                 type string;
                 description
                   "The component name.";
               }
               leaf class {
                 type component-class;
                 mandatory true;
                 description
                   "An indication of the general hardware type of the
                    component.";
               }
               leaf parent {
                 type leafref {
                   path "../../hardware-component/name";
                   require-instance false;
                 }
                 description
                   "The name of the component that physically contains
                    this component.
                    If this leaf is not instantiated, it indicates that
                    this component is not contained in any other
                    component.
                    In the event that a physical component is contained
                    by more than one physical component, this node
                    contains the name of one of these components.
                    An implementation should use the same name
                    every time this node is instantiated.";
               }
               leaf serial-num {
                 type string;
                 config false;
                 description
                   "The vendor-specific serial number string for the
                    component.
                    The preferred value is the serial number string

Wu, et al.                Expires 27 April 2023                [Page 19]
Internet-Draft        Network Inventory Management          October 2022

                    acctually printed on the component itself
                    (if present).";
               }
               leaf mfg-name {
                 type string;
                 config false;
                 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).";
               }
               leaf model-name {
                 type string;
                 config false;
                 description
                   "The vendor-specific model name identifier string
                    associated with this physical component.
                    The preferred value is the customer-visible part
                    number, which may be printed on the component itself.
                    If the model name string associated with the
                    physical component is unknown to the server,
                    then this node is not instantiated.";
               }
             }
           }
           uses software-component;
           list user {
             key "user-id";
             description
               "The user information.";
             leaf user-id {
               type string;
               description
                 "The identifier of the user";
             }
           }
           list application {
             key "application-id";
             description
               "The application information.";
             leaf application-id {
               type string;
               description
                 "The identifier of the application";
             }
           }

Wu, et al.                Expires 27 April 2023                [Page 20]
Internet-Draft        Network Inventory Management          October 2022

         }
       }
     }
   }
   <CODE ENDS>

6.  Security Considerations

   The YANG module specified in this document defines a data schema
   designed to be accessed through network management protocols such as
   NETCONF [RFC6241] or RESTCONF [RFC8040].  The lowest NETCONF layer is
   the secure transport layer, and the required secure transport is
   Secure Shell (SSH) [RFC6242].  The lowest RESTCONF layer is HTTPS,
   and the required secure transport is TLS [RFC8446].

   The Network Configuration Access Control Model (NACM) [RFC8341]
   provides a means of restricting access to specific NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and contents.  Thus, NACM SHOULD be used
   to restrict the NSF registration from unauthorized users.

   There are a number of data nodes defined in this YANG module that are
   writable, creatable, and deletable (i.e., config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations to these data nodes
   could have a negative effect on network and security operations.

   Some of the readable data nodes in this YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes.  These are the subtrees and data
   nodes and their sensitivity/vulnerability:

   <<<to be completed>>>

7.  Privacy Considerations

   The model includes sensitive PII data.  More to be discussed:

   *  Data related to BYOD devices

   *  How to prevent the model is used to track users' activity

   *  ...

Wu, et al.                Expires 27 April 2023                [Page 21]
Internet-Draft        Network Inventory Management          October 2022

8.  IANA Considerations

   This document registers a URI in the "IETF XML Registry" [RFC3688].
   Following the format in [RFC3688], the following registration has
   been made.

        URI: urn:ietf:params:xml:ns:yang:ietf-network-inventory

        Registrant Contact: The IESG.

        XML: N/A, the requested URI is an XML namespace.

   This document registers a YANG module in the "YANG Module Names"
   registry[RFC7950] .

        name:         ietf-network-inventory
        namespace:    urn:ietf:params:xml:ns:yang:ietf-network-inventory
        prefix:       nw-inv
        maintained by IANA: N
        reference:    RFC xxxx

9.  Acknowledgements

   TBD

10.  References

10.1.  Normative References

   [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>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [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/info/rfc6241>.

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
              <https://www.rfc-editor.org/info/rfc6242>.

Wu, et al.                Expires 27 April 2023                [Page 22]
Internet-Draft        Network Inventory Management          October 2022

   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
              RFC 7950, DOI 10.17487/RFC7950, August 2016,
              <https://www.rfc-editor.org/info/rfc7950>.

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/info/rfc8040>.

   [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/info/rfc8174>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

   [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>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/info/rfc8446>.

10.2.  Informative References

   [I-D.ietf-opsawg-sap]
              Boucadair, M., de Dios, O. G., Barguil, S., Wu, Q., and V.
              Lopez, "A YANG Network Model for Service Attachment Points
              (SAPs)", Work in Progress, Internet-Draft, draft-ietf-
              opsawg-sap-10, 4 October 2022,
              <https://www.ietf.org/archive/id/draft-ietf-opsawg-sap-
              10.txt>.

   [I-D.irtf-nmrg-network-digital-twin-arch]
              Zhou, C., Yang, H., Duan, X., Lopez, D., Pastor, A., Wu,
              Q., Boucadair, M., and C. Jacquenet, "Digital Twin
              Network: Concepts and Reference Architecture", Work in
              Progress, Internet-Draft, draft-irtf-nmrg-network-digital-
              twin-arch-01, 11 July 2022,
              <https://www.ietf.org/archive/id/draft-irtf-nmrg-network-
              digital-twin-arch-01.txt>.

   [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/info/rfc8340>.

Wu, et al.                Expires 27 April 2023                [Page 23]
Internet-Draft        Network Inventory Management          October 2022

Authors' Addresses

   Bo Wu
   Huawei
   101 Software Avenue, Yuhua District
   Nanjing
   Jiangsu, 210012
   China
   Email: lana.wubo@huawei.com

   Cheng Zhou
   China Mobile
   Beijing
   100053
   China
   Email: zhouchengyjy@chinamobile.com

   Qin Wu
   Huawei
   101 Software Avenue, Yuhua District
   Nanjing
   Jiangsu, 210012
   China
   Email: bill.wu@huawei.com

   Mohamed Boucadair
   Orange
   Rennes 35000
   France
   Email: mohamed.boucadair@orange.com

Wu, et al.                Expires 27 April 2023                [Page 24]