<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ivy-network-inventory-location-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Network Inventory Location">A YANG Data Model for Network Inventory Location</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-location-06"/>
    <author initials="B." surname="Wu" fullname="Bo Wu">
      <organization>Huawei</organization>
      <address>
        <email>lana.wubo@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Belotti" fullname="Sergio Belotti">
      <organization>Nokia</organization>
      <address>
        <email>sergio.belotti@nokia.com</email>
      </address>
    </author>
    <author initials="J.-F." surname="Bouquier" fullname="Jean-Francois Bouquier">
      <organization>Vodafone</organization>
      <address>
        <email>jeff.bouquier@vodafone.com</email>
      </address>
    </author>
    <author initials="F." surname="Peruzzini" fullname="Fabio Peruzzini">
      <organization>FiberCop</organization>
      <address>
        <email>fabio.peruzzini@fibercop.com</email>
      </address>
    </author>
    <author initials="P." surname="Bedard" fullname="Phil Bedard">
      <organization>Cisco</organization>
      <address>
        <email>phbedard@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <area>Operations and Management</area>
    <workgroup>Network Inventory YANG</workgroup>
    <keyword>Automation</keyword>
    <keyword>Network Inventory</keyword>
    <keyword>Network Operation</keyword>
    <keyword>Topology</keyword>
    <abstract>
      <?line 60?>

<t>This document defines a YANG data model for Network Inventory
location (e.g., site, room, rack, geo-location data), which provides
location information with different granularity levels for
inventoried network elements.</t>
      <t>Accurate location information is useful for network planning,
deployment, and maintenance. However, such information cannot be
obtained or verified from the Network Elements themselves. This
document defines a location model for network inventory that extends
the base inventory with comprehensive location data.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Network Inventory YANG Working Group mailing list (inventory-yang@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/inventory-yang/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ietf-ivy-wg/network-inventory-location"/>.</t>
    </note>
  </front>
  <middle>
    <?line 73?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Network Elements (NEs) can be grouped by location to provide more information for
network planning, deployment, and maintenance (e.g., easily locate
problematic NEs, optimize network resources, or help planning
forecasts). The location can reflect outdoor or indoor information.
An indoor location may be represented as a building, room, or other
similar organizational structures. Outdoor locations can be walls,
poles, or other mount places.</t>
      <t>The information about sites, equipment rooms, and other more precise
locations is critical, but it cannot be automatically populated and
retrieved from NEs. Instead, it is usually configured manually.</t>
      <t>The Network Inventory location model is to record physical locations,
such as sites, building, equipment rooms, racks, and so on.
Additionally, it includes provisions for physical addresses or geo-
location data (geographic coordinates). The location model augments the base network inventory <xref target="I-D.ietf-ivy-network-inventory-yang"/> to enrich NEs with location information.</t>
      <t>The Network Inventory location model is classified as a network model (Section 3.5.1 of <xref target="I-D.ietf-netmod-rfc8407bis"/>).</t>
      <t>The YANG data model in this document conforms to the Network
Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
      <section anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
        <t>This document contains placeholder values that need to be replaced with finalized values at the time of publication. This note summarizes all of the substitutions that are needed.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this document</t>
          </li>
          <li>
            <t>AAAA --&gt; the assigned RFC number for <xref target="I-D.ietf-ivy-network-inventory-yang"/></t>
          </li>
        </ul>
      </section>
      <section anchor="terminology-and-notations">
        <name>Terminology and Notations</name>
        <t>The following terms are defined in <xref target="RFC7950"/> and are not
redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>client</t>
          </li>
          <li>
            <t>server</t>
          </li>
          <li>
            <t>augment</t>
          </li>
          <li>
            <t>data model</t>
          </li>
          <li>
            <t>data node
The following terms are defined in <xref target="RFC6241"/> and are not redefined
here:</t>
          </li>
          <li>
            <t>configuration data</t>
          </li>
          <li>
            <t>state data
The tree diagram used in this document follows the notation defined
in <xref target="RFC8340"/>.</t>
          </li>
        </ul>
        <t>Also, this document uses terms defined in <xref target="I-D.ietf-ivy-network-inventory-yang"/>.</t>
      </section>
    </section>
    <section anchor="hierarchical-locations-of-network-inventory">
      <name>Hierarchical Locations of Network Inventory</name>
      <t>The "location" list is generalized to support a variety of geographic
location, such as sites, rooms, buildings.</t>
      <t>A site represents a general geographic location to group a set of NEs
and corresponding inventory components. NEs, racks, equipment rooms,
and buildings can be grouped within a site.</t>
      <t>A room is a facility, a space for network elements and other
equipment (such as servers, storage) with power supply systems, air
conditioning system, etc.</t>
      <t>Locations can be nested to form a hierarchy. For example, buildings
may be within a site, and a room may be within a building.</t>
      <t>The "location-type" is defined as a YANG identity to identify the
type of an inventory location, which may be site, equipment room,
building, etc.</t>
      <figure anchor="fig-ni-location-tree">
        <name>YANG Subtree of Location</name>
        <artwork type="ascii-art"><![CDATA[
+--ro locations
   +--ro location* [id]
   |  +--ro id                   string
   |  +--ro uuid?                yang:uuid
   |  +--ro name?                string
   |  +--ro alias?               string
   |  +--ro description?         string
   |  +--ro type?                string
   |  +--ro parent?              -> ../../location/id
   |  +--ro timestamp?           yang:date-and-time
   |  +--ro valid-until?         yang:date-and-time
   |  +--ro physical-address
   |  |     ...
   |  +--ro geo-location
   |  |     ...
   |  +--ro contained-chassis* [chassis-id]
   |        ...
]]></artwork>
      </figure>
    </section>
    <section anchor="rack">
      <name>Rack</name>
      <t>"racks" represent physical equipment racks in which NEs can be
installed, which facilitate device maintenance. Through "rack-
location", each rack can be assigned to a site or a specific location
within a site, such as an equipment room.</t>
      <t>Each rack is assigned a unique ID and a name in the context of a
facility, e.g. a site. A rack may have some specific attributes,
such as appearance-related attributes and electricity-related
attributes. The height, depth and width are described by Figure 2
(please consider that the door of the rack is facing the user).</t>
      <t>Note: Further discussion is needed to decide whether to separate
"racks" from the list of "location".</t>
      <figure anchor="fig-rack">
        <name>Height, Width and Depth of Rack</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="528" width="256" viewBox="0 0 256 528" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,104 L 8,456" fill="none" stroke="black"/>
              <path d="M 8,472 L 8,496" fill="none" stroke="black"/>
              <path d="M 40,40 L 40,384" fill="none" stroke="black"/>
              <path d="M 136,96 L 136,456" fill="none" stroke="black"/>
              <path d="M 136,472 L 136,496" fill="none" stroke="black"/>
              <path d="M 168,48 L 168,392" fill="none" stroke="black"/>
              <path d="M 224,40 L 224,176" fill="none" stroke="black"/>
              <path d="M 224,208 L 224,392" fill="none" stroke="black"/>
              <path d="M 32,32 L 152,32" fill="none" stroke="black"/>
              <path d="M 208,32 L 224,32" fill="none" stroke="black"/>
              <path d="M 8,96 L 32,96" fill="none" stroke="black"/>
              <path d="M 48,96 L 128,96" fill="none" stroke="black"/>
              <path d="M 48,400 L 128,400" fill="none" stroke="black"/>
              <path d="M 144,400 L 168,400" fill="none" stroke="black"/>
              <path d="M 216,400 L 232,400" fill="none" stroke="black"/>
              <path d="M 8,464 L 136,464" fill="none" stroke="black"/>
              <path d="M 192,464 L 208,464" fill="none" stroke="black"/>
              <path d="M 12,88 L 36,40" fill="none" stroke="black"/>
              <path d="M 136,96 L 160,48" fill="none" stroke="black"/>
              <path d="M 12,456 L 40,400" fill="none" stroke="black"/>
              <path d="M 152,448 L 168,416" fill="none" stroke="black"/>
              <path d="M 8,488 L 60,488" fill="none" stroke="black"/>
              <path d="M 100,488 L 136,488" fill="none" stroke="black"/>
              <g class="text">
                <text x="228" y="196">height</text>
                <text x="68" y="260">Door</text>
                <text x="120" y="260">Q</text>
                <text x="120" y="276">Q</text>
                <text x="224" y="420">/</text>
                <text x="232" y="436">depth</text>
                <text x="208" y="452">/</text>
                <text x="80" y="484">width</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                          ----------------      ---
                          /|              /|      |
                         / |             / |      |
                        /  |            /  |      |
                       ----|-----------|   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |    height
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   | Door    Q |   |      |
                       |   |         Q |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   |           |   |      |
                       |   /-----------|----     ---
                       |  /            |   /      /
                       | /             |  /      depth
                       |/              | /      /
                       -----------------      ---
                       |______width____|
                       |               |
]]></artwork>
        </artset>
      </figure>
      <t>The rack attributes include:</t>
      <figure anchor="tree">
        <name>YANG Subtree of Rack</name>
        <artwork type="ascii-art" align="center"><![CDATA[
 +--ro racks
    +--ro rack* [id]
       +--ro id                     string
       +--ro rack-class?            identityref
       +--ro uuid?                  yang:uuid
       +--ro name?                  string
       +--ro alias?                 string
       +--ro description?           string
       +--ro rack-location
       |     ...
       +--ro height?                uint16
       +--ro width?                 uint16
       +--ro depth?                 uint16
       +--ro max-voltage?           uint16
       +--ro max-allocated-power?   uint16
       +--ro contained-chassis* [relative-position]
       |     ...
       +--ro timestamp?             yang:date-and-time
       +--ro valid-until?           yang:date-and-time
]]></artwork>
      </figure>
      <t>Max-voltage: the maximum voltage supported by the rack.</t>
    </section>
    <section anchor="sec-module">
      <name>Network Inventory Location Tree</name>
      <t><xref target="full-tree"/> provides an overview of the data model for "ietf-ni-location" module.</t>
      <figure anchor="full-tree">
        <name>Network Inventory Location Tree Structure</name>
        <artwork align="center"><![CDATA[
module: ietf-ni-location

  augment /nwi:network-inventory:
    +--ro locations
       +--ro location* [id]
       |  +--ro id                   string
       |  +--ro uuid?                yang:uuid
       |  +--ro name?                string
       |  +--ro alias?               string
       |  +--ro description?         string
       |  +--ro type?                string
       |  +--ro parent?              -> ../../location/id
       |  +--ro timestamp?           yang:date-and-time
       |  +--ro valid-until?         yang:date-and-time
       |  +--ro physical-address
       |  |  +--ro address?        string
       |  |  +--ro postal-code?    string
       |  |  +--ro state?          string
       |  |  +--ro city?           string
       |  |  +--ro country-code?   string
       |  +--ro geo-location
       |  |  +--ro reference-frame
       |  |  |  +--ro alternate-system?    string
       |  |  |  |       {alternate-systems}?
       |  |  |  +--ro astronomical-body?   string
       |  |  |  +--ro geodetic-system
       |  |  |     +--ro geodetic-datum?    string
       |  |  |     +--ro coord-accuracy?    decimal64
       |  |  |     +--ro height-accuracy?   decimal64
       |  |  +--ro (location)?
       |  |  |  +--:(ellipsoid)
       |  |  |  |  +--ro latitude?    decimal64
       |  |  |  |  +--ro longitude?   decimal64
       |  |  |  |  +--ro height?      decimal64
       |  |  |  +--:(cartesian)
       |  |  |     +--ro x?           decimal64
       |  |  |     +--ro y?           decimal64
       |  |  |     +--ro z?           decimal64
       |  |  +--ro velocity
       |  |  |  +--ro v-north?   decimal64
       |  |  |  +--ro v-east?    decimal64
       |  |  |  +--ro v-up?      decimal64
       |  |  +--ro timestamp?         yang:date-and-time
       |  |  +--ro valid-until?       yang:date-and-time
       |  +--ro contained-chassis* [chassis-id]
       |     +--ro chassis-id       uint32
       |     +--ro ne-ref?          leafref
       |     +--ro component-ref?   leafref
       +--ro racks
          +--ro rack* [id]
             +--ro id                     string
             +--ro rack-class?            identityref
             +--ro uuid?                  yang:uuid
             +--ro name?                  string
             +--ro alias?                 string
             +--ro description?           string
             +--ro rack-location
             |  +--ro location-ref?    ni-location-ref
             |  +--ro row-number?      uint32
             |  +--ro column-number?   uint32
             +--ro height?                uint16
             +--ro width?                 uint16
             +--ro depth?                 uint16
             +--ro max-voltage?           uint16
             +--ro max-allocated-power?   uint16
             +--ro contained-chassis* [relative-position]
             |  +--ro relative-position    uint8
             |  +--ro ne-ref?              leafref
             |  +--ro component-ref?       leafref
             +--ro timestamp?             yang:date-and-time
             +--ro valid-until?           yang:date-and-time
]]></artwork>
      </figure>
    </section>
    <section anchor="yang-data-model-for-network-inventory-location">
      <name>YANG Data model for Network Inventory Location</name>
      <t>The "ietf-ni-location" module uses types defined in <xref target="RFC9911"/>, <xref target="RFC9179"/>, and <xref target="I-D.ietf-ivy-network-inventory-yang"/>.</t>
      <sourcecode type="yang" markers="true" name="ietf-ni-location@2026-07-06.yang"><![CDATA[
module ietf-ni-location {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-ni-location";
  prefix nil;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types";
  }
  import ietf-network-inventory {
    prefix nwi;
    reference
      "RFCAAAA: A YANG Data Model for Network Inventory";
  }
  import ietf-geo-location {
    prefix geo;
    reference
      "RFC 9179: A YANG Grouping for Geographic Locations";
  }

  organization
    "IETF Network Inventory YANG (ivy) Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/ivy>
     WG List:  <mailto:inventory-yang@ietf.org>

     Editor: Bo Wu
          <lana.wubo@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>";
  description
    "This YANG module defines a model for Network Inventory
     location.

     Copyright (c) 2026 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.";

  revision 2026-07-06 {
    description
      "Initial version";
    reference
      "RFC XXXX: A YANG Data Model for Network Inventory location.";
    //RFC Editor: Please replace XXXX with actual RFC number,
    //update date information and remove this note
  }

  /* Identities */
  /* Identities for rack classification */

  identity rack-class-type {
    description
      "Base identity for generic rack classification based on
       physical security characteristics.
       This identity is designed to be extended by regional
       or vendor-specific rack classes.";
  }

  identity rack-standard {
    base rack-class-type;
    description
      "Standard general-purpose rack without physical locking
       mechanisms.";
  }

  identity rack-secure-baseline {
    base rack-class-type;
    description
      "Baseline secure lockable rack.";
  }

  identity rack-secure-medium {
    base rack-class-type;
    description
      "Medium security lockable rack.";
  }

  identity rack-secure-high {
    base rack-class-type;
    description
      "High security lockable rack.";
  }

  /* Typedef */

  typedef ni-location-ref {
    type leafref {
      path "/nwi:network-inventory/nil:locations/nil:location"
         + "/nil:id";
    }
    description
      "This type is used by data models that need to reference
       network inventory location.";
  }

  /* Grouping */

  grouping physical-address {
    description
      "Grouping for physical address information.";
    container physical-address {
      description
        "Top-level container for the physical address.";
      leaf address {
        type string;
        description
          "Specifies an address (number and street).";
      }
      leaf postal-code {
        type string;
        description
          "Specifies a postal code.";
      }
      leaf state {
        type string;
        description
          "Specifies a state. This leaf can also be
           used to describe a region for a country that
           does not have states.";
      }
      leaf city {
        type string;
        description
          "Specifies a city.";
      }
      leaf country-code {
        type string {
          pattern '[A-Z]{2}';
        }
        description
          "Specifies a country.
           Expressed as ISO ALPHA-2 code.";
      }
    }
  }

  grouping locations {
    description
      "Grouping for locations.";
    container locations {
      config false;
      description
        "Container for the location information.";
      list location {
        key "id";
        description
          "List of locations within the network.";
        leaf id {
          type string;
          description
            "An identifier of the location.";
        }
        uses nwi:basic-common-entity-attributes;
        leaf type {
          type string;
          description
            "The type of network inventory location, e.g.
             equipment room, building, or site.
             This allows operators to flexibly define custom location
             types (e.g., 'pole', 'roof', 'floor') based on their
             specific network scenarios without requiring model
             extensions. String-based types enable dynamic adaptation
             to heterogeneous organizational naming conventions.";
        }
        leaf parent {
          type leafref {
            path "../../location/id";
          }
          description
            "The identifier of the location that physically contains
             this location.";
        }
        leaf timestamp {
          type yang:date-and-time;
          description
            "Timestamp when the location was recorded.";
        }
        leaf valid-until {
          type yang:date-and-time;
          description
            "The timestamp for which this location is valid until.
             If unspecified, the location has no specific
             expiration time.";
        }
        uses physical-address;
        uses geo:geo-location;
        list contained-chassis {
          key "chassis-id";
          description
            "Chassis directly deployed in this location without rack.
             Also used for distributed chassis components that are
             logically part of a network element but physically
             located.";
          leaf chassis-id {
            type uint32;
            description
              "Unique identifier for this chassis instance in the
               location.";
          }
          leaf ne-ref {
            type leafref {
              path "/nwi:network-inventory/nwi:network-elements"
                 + "/nwi:network-element/nwi:ne-id";
            }
            description
              "Reference to the network element this chassis
               belongs to. Multiple chassis entries may reference
               the same ne-ref for distributed systems.";
          }
          leaf component-ref {
            type leafref {
              path
                "/nwi:network-inventory/nwi:network-elements"
              + "/nwi:network-element[nwi:ne-id=current()/../ne-ref]"
              + "/nwi:components/nwi:component/nwi:component-id";
            }
            description
              "Reference to the specific chassis within the
               network element.";
          }
        }
      }
      uses racks;
    }
  }

  grouping racks {
    description
      "Grouping for rack attributes.";
    container racks {
      config false; // Enforce Read-Only     
      description
        "Top-level container for the list of racks.";
      list rack {
        key "id";
        description
          "List of racks within the inventory (e.g., in an
           equipment room).";
        leaf id {
          type string;
          description
            "An identifier that uniquely identifies the rack.";
        }
        leaf rack-class {
          type identityref {
            base rack-class-type;
          }
          description
            "Classification of the rack.";
        }
        uses nwi:basic-common-entity-attributes;
        container rack-location {
          description
            "The location information of the rack, which comprises
             the location reference, row number, and column number.";
          leaf location-ref {
            type ni-location-ref;
            description
              "Reference to the location where this rack is placed.";
          }
          leaf row-number {
            type uint32;
            description
              "Identifies the row within the location where
               the rack is located.";
          }
          leaf column-number {
            type uint32;
            description
              "Identifies the column within the location where
               the rack is located.";
          }
        }
        leaf height {
          type uint16;
          units "millimeter";
          description
            "Rack height.";
        }
        leaf width {
          type uint16;
          units "millimeter";
          description
            "Rack width.";
        }
        leaf depth {
          type uint16;
          units "millimeter";
          description
            "Rack depth.";
        }
        leaf max-voltage {
          type uint16;
          units "volt";
          description
            "The maximum voltage supported by the rack.";
        }
        leaf max-allocated-power {
          type uint16;
          units "watts";
          description
            "The maximum allocated power for the rack.";
        }
        list contained-chassis {
          key "relative-position";
          description
            "The list of chassis within a rack.";
          leaf relative-position {
            type uint8;
            description
              "Relative position (e.g., U-slot) of chassis within
               the rack.";
          }
          leaf ne-ref {
            type leafref {
              path "/nwi:network-inventory/nwi:network-elements"
                 + "/nwi:network-element/nwi:ne-id";
            }
            description
              "Reference to the network element containing
               the chassis component.";
          }
          leaf component-ref {
            type leafref {
              path "/nwi:network-inventory/nwi:network-elements"
                 + "/nwi:network-element[nwi:ne-id=current()/.."
                 + "/ne-ref]/nwi:components/nwi:component"
                 + "/nwi:component-id";
            }
            description
              "The reference to the chassis component within
               the network element and contained by the rack.";
          }
        }
        leaf timestamp {
          type yang:date-and-time;
          description
            "Timestamp when the rack information was recorded.";
        }
        leaf valid-until {
          type yang:date-and-time;
          description
            "The timestamp for which this rack is valid until.
             If unspecified, the rack has no specific
             expiration time.";
        }
      }
    }
  }

  augment "/nwi:network-inventory" {
    description
      "Provides location information for network inventory.";
    uses locations;
  }
}
]]></sourcecode>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>This model serves as a complement to the base inventory, providing
 a read-only perspective of network inventory location information
 known to the controller. It reports the physical locations of network
 elements and components installed in the network, enabling queries
 for site, rack, and other location-related information associated
 with network elements and components.</t>
      <t>When used in brownfield scenarios, it is worth noting that existing
 deployments are based on proprietary inventory OSS solutions, and
 the migration path is highly dependent on the specific proprietary
 implementation.</t>
      <t>The model is designed based on the controller maintaining authoritative
 location data through automated tooling, while OSS systems consume
 this data as read-only operational state. Sources of controller location
 data may include RFID (Radio Frequency IDentification) tooling, geolocation services, as well as manual
 entry via controller interfaces.</t>
      <t>As this data is read-only, the controller does not support OSS modification
 of controller location records.</t>
      <t>OSS systems and other management applications obtain location information
 via standard YANG retrieval operations (NETCONF, RESTCONF), such as
 querying network elements associated with a specific site or rack.</t>
      <t>In large-scale inventories containing numerous network elements and
 components, querying location associations can impose a load on the
 server. To optimize retrieval and avoid overwhelming the server, mechanisms
 such as RESTCONF or NETCONF pagination should be utilized for queries
 involving large result sets.</t>
      <t>Data quality is indicated through timestamps recording the last update
 time, as well as an optional expiration time for location validity.</t>
      <t>Before using a location for field dispatch or planning, verification
 is required to ensure at least one of physical-address or geo-location
 is present, and that the valid-until leaf is either not present or indicates
 a future time. Once the valid-until time has passed, the location MUST be
 considered stale and MUST NOT be used for operational purposes.</t>
      <t>A parallel "location-planning" container (read-write) may be introduced
 in future revisions to support intent-based configuration, where OSS provides
 planning-level location targets. This is outside the scope of the current document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section is modeled after the template described in <xref section="3.7.1" sectionFormat="of" target="RFC9907"/>.</t>
      <t>The "ietf-ni-location" YANG module defines a data model that is
designed to be accessed via YANG-based management protocols, such as
Network Configuration Protocol (NETCONF) <xref target="RFC6241"/>
and RESTCONF <xref target="RFC8040"/>.  These YANG-based management protocols (1) have to
use a secure transport layer (e.g., SSH <xref target="RFC6242"/>, TLS <xref target="RFC8446"/>, and
QUIC <xref target="RFC9000"/>) and (2) have to use mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content.</t>
      <t>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. Specifically, the following
subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
      <t>'locations': This list reports physical deployment
information including facility structures (sites, buildings, rooms),
rack physical attributes (dimensions, power capacity, security
classification), and optionally geographic coordinates. The list also
references network elements and components by their inventory
identifiers (ne-id, component-id). Uncontrolled disclosure may:</t>
      <ul spacing="normal">
        <li>
          <t>Enable association of inventory identifiers with physical facility
structures and geographic coordinates</t>
        </li>
        <li>
          <t>Reveal facility layouts, equipment density, and rack physical
security characteristics when combined with other network data</t>
        </li>
        <li>
          <t>Expose precise geographic coordinates (when configured), which may
facilitate physical location identification</t>
        </li>
        <li>
          <t>Indicate physical protection levels through rack security
classifications</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URI in the "ns" registry within
the "IETF XML Registry" group <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
URI:  urn:ietf:params:xml:ns:yang:ietf-ni-location
Registrant Contact:  The IESG.
XML:  N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>IANA is requested to register the following YANG module in the "YANG Module
Names" registry <xref target="RFC6020"/> within the "YANG Parameters" registry group.</t>
      <artwork><![CDATA[
Name:  ietf-ni-location
Maintained by IANA?  N
Namespace:  urn:ietf:params:xml:ns:yang:ietf-ni-location
Prefix:  nil
Reference:  RFC XXXX
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-ivy-network-inventory-yang">
          <front>
            <title>A Base YANG Data Model for Network Inventory</title>
            <author fullname="Chaode Yu" initials="C." surname="Yu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Jean-Francois Bouquier" initials="J." surname="Bouquier">
              <organization>Vodafone</organization>
            </author>
            <author fullname="Fabio Peruzzini" initials="F." surname="Peruzzini">
              <organization>FiberCop</organization>
            </author>
            <author fullname="Phil Bedard" initials="P." surname="Bedard">
              <organization>Cisco</organization>
            </author>
            <date day="27" month="May" year="2026"/>
            <abstract>
              <t>   This document defines a base YANG data model for reporting network
   inventory.  The scope of this base model is set to be application-
   and technology-agnostic.  The base data model can be augmented with
   application- and technology-specific details.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ivy-network-inventory-yang-18"/>
        </reference>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC9911">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schönwälder" initials="J." role="editor" surname="Schönwälder"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document defines a collection of common data types to be used with the YANG data modeling language. It includes several new type definitions and obsoletes RFC 6991.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9911"/>
          <seriesInfo name="DOI" value="10.17487/RFC9911"/>
        </reference>
        <reference anchor="RFC9179">
          <front>
            <title>A YANG Grouping for Geographic Locations</title>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines a generic geographical location YANG grouping. The geographical location grouping is intended to be used in YANG data models for specifying a location on or in reference to Earth or any other astronomical object.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9179"/>
          <seriesInfo name="DOI" value="10.17487/RFC9179"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-netmod-rfc8407bis">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="5" month="June" year="2025"/>
            <abstract>
              <t>   This document provides guidelines for authors and reviewers of
   specifications containing YANG data models, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF Protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-28"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC9907">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.</t>
              <t>This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-network-inventory-yang">
          <front>
            <title>A YANG Data Model for Network Hardware Inventory</title>
            <author fullname="Chaode Yu" initials="C." surname="Yu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Jean-Francois Bouquier" initials="J." surname="Bouquier">
              <organization>Vodafone</organization>
            </author>
            <author fullname="Fabio Peruzzini" initials="F." surname="Peruzzini">
              <organization>TIM</organization>
            </author>
            <author fullname="Phil Bedard" initials="P." surname="Bedard">
              <organization>Cisco</organization>
            </author>
            <date day="9" month="July" year="2023"/>
            <abstract>
              <t>   This document defines a YANG data model for network hardware
   inventory data information.

   The YANG data model presented in this document is intended to be used
   as the basis toward a generic YANG data model for network hardware
   inventory data information which can be augmented, when required,
   with technology-specific (e.g., optical) inventory data, to be
   defined either in a future version of this document or in another
   document.

   The YANG data model defined in this document conforms to the Network
   Management Datastore Architecture (NMDA).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-network-inventory-yang-02"/>
        </reference>
      </references>
    </references>
    <?line 815?>

<section anchor="examples">
      <name>Examples</name>
      <t>This section provides example usages of the Network Inventory Location
 model for two common deployment scenarios: a non-rack-mounted Access Point
 and a distributed multi-chassis network element.</t>
      <section anchor="non-rack-deployment-access-point">
        <name>Non-Rack Deployment: Access Point</name>
        <t>This example illustrates a typical edge deployment scenario where a Wi-Fi
 Access Point (AP) is mounted directly to a ceiling without a rack enclosure.</t>
        <t>The location hierarchy is as follows:</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="432" viewBox="0 0 432 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <g class="text">
                <text x="24" y="36">Site:</text>
                <text x="136" y="36">Foo-Enterprise-Campus</text>
                <text x="16" y="52">└──</text>
                <text x="72" y="52">Building:</text>
                <text x="156" y="52">Building-A</text>
                <text x="48" y="68">└──</text>
                <text x="92" y="68">Floor:</text>
                <text x="152" y="68">Floor-2</text>
                <text x="80" y="84">└──</text>
                <text x="120" y="84">Room:</text>
                <text x="200" y="84">Corridor-East</text>
                <text x="296" y="84">(corridor</text>
                <text x="360" y="84">area)</text>
                <text x="112" y="100">└──</text>
                <text x="140" y="100">AP</text>
                <text x="188" y="100">directly</text>
                <text x="288" y="100">ceiling-mounted</text>
                <text x="368" y="100">(no</text>
                <text x="408" y="100">rack)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
Site: Foo-Enterprise-Campus
└── Building: Building-A
    └── Floor: Floor-2
        └── Room: Corridor-East (corridor area)
            └── AP directly ceiling-mounted (no rack)
]]></artwork>
        </artset>
        <t>The following shows the location data instance:</t>
        <sourcecode type="json"><![CDATA[
{
  "ietf-ni-location:locations": {
    "location": [
      {
        "id": "Foo-Enterprise-Campus",
        "uuid": "550e8400-e29b-41d4-a716-446655440000",
        "name": "Foo Enterprise Campus",
        "type": "site",
        "timestamp": "2026-01-15T08:30:00Z"
      },
      {
        "id": "Building-A",
        "uuid": "550e8400-e29b-41d4-a716-446655440001",
        "name": "Building A",
        "type": "building",
        "parent": "Foo-Enterprise-Campus",
        "timestamp": "2026-01-15T08:30:00Z"
      },
      {
        "id": "Floor-2",
        "uuid": "550e8400-e29b-41d4-a716-446655440002",
        "name": "Floor 2",
        "type": "floor",
        "parent": "Building-A",
        "timestamp": "2026-01-15T08:30:00Z"
      },
      {
        "id": "Corridor-East",
        "uuid": "550e8400-e29b-41d4-a716-446655440003",
        "name": "East Corridor",
        "alias": "Corridor-2F-East",
        "description": "East corridor on Floor 2, AP deployment area",
        "type": "corridor",
        "parent": "Floor-2",
        "timestamp": "2026-01-15T08:30:00Z",
        "valid-until": "2030-12-31T23:59:59Z",
        "physical-address": {
          "address": "123 Foo Street, Floor 2 East Corridor",
          "postal-code": "12345",
          "state": "Foo-State",
          "city": "Foo-City",
          "country-code": "ZZ"
        },
        "geo-location": {
          "reference-frame": {
            "astronomical-body": "earth",
            "geodetic-system": {
              "geodetic-datum": "WGS-84",
              "coord-accuracy": 5.0,
              "height-accuracy": 10.0
            }
          },
          "ellipsoid": {
            "latitude": 40.7128,
            "longitude": -74.0060,
            "height": 15.0
          },
          "velocity": {
            "v-north": 0.0,
            "v-east": 0.0,
            "v-up": 0.0
          },
          "timestamp": "2026-01-15T08:30:00Z",
          "valid-until": "2030-12-31T23:59:59Z"
        },
        "contained-chassis": [
          {
            "chassis-id": 1,
            "ne-ref": "AP-Corridor-East-01",
            "component-ref": "chassis-1"
          }
        ]
      }
    ],
    "racks": []
  }
}
]]></sourcecode>
      </section>
      <section anchor="distributed-multi-chassis-network-element">
        <name>Distributed Multi-Chassis Network Element</name>
        <t>This example illustrates a distributed deployment where a single
 logical network element (NE-1, a stack switch) spans multiple
 physical locations. The three chassis of the stack switch
 are located in separate telecommunications rooms on different
 floors, interconnected via stacking cables.
The location hierarchy is as follows:</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="408" viewBox="0 0 408 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <g class="text">
                <text x="24" y="36">Site:</text>
                <text x="76" y="36">Foo-DC</text>
                <text x="16" y="52">├──</text>
                <text x="72" y="52">Location:</text>
                <text x="148" y="52">Room-101</text>
                <text x="212" y="52">(First</text>
                <text x="264" y="52">Floor</text>
                <text x="320" y="52">Telecom</text>
                <text x="376" y="52">Room)</text>
                <text x="8" y="68">│</text>
                <text x="48" y="68">└──</text>
                <text x="88" y="68">Rack:</text>
                <text x="156" y="68">Rack-101-A</text>
                <text x="8" y="84">│</text>
                <text x="80" y="84">└──</text>
                <text x="116" y="84">U10:</text>
                <text x="156" y="84">NE-1</text>
                <text x="216" y="84">chassis-1</text>
                <text x="288" y="84">(Master</text>
                <text x="352" y="84">switch)</text>
                <text x="8" y="100">│</text>
                <text x="16" y="116">├──</text>
                <text x="72" y="116">Location:</text>
                <text x="148" y="116">Room-201</text>
                <text x="216" y="116">(Second</text>
                <text x="272" y="116">Floor</text>
                <text x="328" y="116">Telecom</text>
                <text x="384" y="116">Room)</text>
                <text x="8" y="132">│</text>
                <text x="48" y="132">└──</text>
                <text x="88" y="132">Rack:</text>
                <text x="156" y="132">Rack-201-B</text>
                <text x="8" y="148">│</text>
                <text x="80" y="148">└──</text>
                <text x="116" y="148">U15:</text>
                <text x="156" y="148">NE-1</text>
                <text x="216" y="148">chassis-2</text>
                <text x="284" y="148">(Stack</text>
                <text x="344" y="148">member)</text>
                <text x="8" y="164">│</text>
                <text x="16" y="180">└──</text>
                <text x="72" y="180">Location:</text>
                <text x="148" y="180">Room-301</text>
                <text x="212" y="180">(Third</text>
                <text x="264" y="180">Floor</text>
                <text x="320" y="180">Telecom</text>
                <text x="376" y="180">Room)</text>
                <text x="48" y="196">└──</text>
                <text x="88" y="196">Rack:</text>
                <text x="156" y="196">Rack-301-C</text>
                <text x="80" y="212">└──</text>
                <text x="116" y="212">U20:</text>
                <text x="156" y="212">NE-1</text>
                <text x="216" y="212">chassis-3</text>
                <text x="284" y="212">(Stack</text>
                <text x="344" y="212">member)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
Site: Foo-DC
├── Location: Room-101 (First Floor Telecom Room)
│   └── Rack: Rack-101-A
│       └── U10: NE-1 chassis-1 (Master switch)
│
├── Location: Room-201 (Second Floor Telecom Room)
│   └── Rack: Rack-201-B
│       └── U15: NE-1 chassis-2 (Stack member)
│
└── Location: Room-301 (Third Floor Telecom Room)
    └── Rack: Rack-301-C
        └── U20: NE-1 chassis-3 (Stack member)
]]></artwork>
        </artset>
        <t>The following shows the location data instance:</t>
        <sourcecode type="json"><![CDATA[
{
  "ietf-ni-location:locations": {
    "location": [
      {
        "id": "Foo-DC",
        "name": "Foo Data Center",
        "type": "site",
        "timestamp": "2026-01-15T08:00:00Z"
      },
      {
        "id": "Room-101",
        "name": "First Floor Telecom Room",
        "type": "room",
        "parent": "Foo-DC",
        "timestamp": "2026-01-15T08:00:00Z",
        "contained-chassis": []
      },
      {
        "id": "Room-201",
        "name": "Second Floor Telecom Room",
        "type": "room",
        "parent": "Foo-DC",
        "timestamp": "2026-01-15T08:00:00Z",
        "contained-chassis": []
      },
      {
        "id": "Room-301",
        "name": "Third Floor Telecom Room",
        "type": "room",
        "parent": "Foo-DC",
        "timestamp": "2026-01-15T08:00:00Z",
        "contained-chassis": []
      }
    ],
    "racks": {
      "rack": [
        {
          "id": "Rack-101-A",
          "uuid": "660e8400-e29b-41d4-a716-446655440010",
          "name": "Rack A Room 101",
          "rack-location": {
            "location-ref": "Room-101",
            "row-number": 1,
            "column-number": 1
          },
          "height": 2200,
          "width": 600,
          "depth": 1200,
          "max-voltage": 240,
          "max-allocated-power": 8000,
          "contained-chassis": [
            {
              "relative-position": 10,
              "ne-ref": "NE-1",
              "component-ref": "chassis-1"
            }
          ],
          "timestamp": "2026-01-15T10:00:00Z",
          "valid-until": "2028-01-15T10:00:00Z"
        },
        {
          "id": "Rack-201-B",
          "uuid": "660e8400-e29b-41d4-a716-446655440011",
          "name": "Rack B Room 201",
          "rack-location": {
            "location-ref": "Room-201",
            "row-number": 2,
            "column-number": 1
          },
          "height": 2200,
          "width": 600,
          "depth": 1200,
          "max-voltage": 240,
          "max-allocated-power": 8000,
          "contained-chassis": [
            {
              "relative-position": 15,
              "ne-ref": "NE-1",
              "component-ref": "chassis-2"
            }
          ],
          "timestamp": "2026-01-15T10:00:00Z",
          "valid-until": "2028-01-15T10:00:00Z"
        },
        {
          "id": "Rack-301-C",
          "uuid": "660e8400-e29b-41d4-a716-446655440012",
          "name": "Rack C Room 301",
          "rack-location": {
            "location-ref": "Room-301",
            "row-number": 3,
            "column-number": 1
          },
          "height": 2200,
          "width": 600,
          "depth": 1200,
          "max-voltage": 240,
          "max-allocated-power": 8000,
          "contained-chassis": [
            {
              "relative-position": 20,
              "ne-ref": "NE-1",
              "component-ref": "chassis-3"
            }
          ],
          "timestamp": "2026-01-15T10:00:00Z",
          "valid-until": "2028-01-15T10:00:00Z"
        }
      ]
    }
  }
}

]]></sourcecode>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the authors and contributors of
<xref target="I-D.ietf-ccamp-network-inventory-yang"/> to trigger this work.
During the discussion of base Network Inventory (NI) model, it is agreed
that the definition of the equipment room and rack can be a separate
location model and support manual configuration, while the NI model
aggregates the inventory data of the Network Elements (NEs) on the
network. Usually the information about sites or equipment rooms is
not detectable by network controller and configured manually.</t>
      <t>The authors wish to thank Mohamed Boucadair and many others for their helpful comments and suggestions.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="I." surname="Busi" fullname="Italo Busi">
        <organization>Huawei Technologies</organization>
        <address>
          <email>italo.busi@huawei.com</email>
        </address>
      </contact>
      <contact fullname="Chaode Yu">
        <organization>Huawei</organization>
        <address>
          <email>yuchaode@huawei.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
XIL/Bedzdt2kigAA

-->

</rfc>
