Internet-Draft BGP LS, LS-VPN, LS-SPF YANG Model June 2026
Jethanandani, et al. Expires 31 December 2026 [Page]
Workgroup:
LSVR
Internet-Draft:
draft-ietf-lsvr-bgp-ls-yang-04
Published:
Intended Status:
Standards Track
Expires:
Authors:
M. Jethanandani, Ed.
Arrcus, Inc
K. Patel
Arrcus, Inc
A. MahendraBabu
Cisco, Inc

A YANG Model for BGP-LS, BGP-LS-VPN, and BGP-LS-SPF

Abstract

This document defines a YANG data model for configuration and management of BGP-LS, BGP-LS-VPN, and BGP-LS-SPF.

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 31 December 2026.

Table of Contents

1. Introduction

[RFC9552] describes a mechanism by which Link-State (LS) and Traffic Engineering (TE) topology information can be collected from Interior Gateway Protocols (IGPs) and distributed to external components using the Border Gateway Protocol (BGP). When combined with the Shortest Path First (SPF) algorithm, this mechanism allows BGP to compute routes directly from the distributed topology. [RFC9815] describes BGP Link-State Shortest Path First (BGP-LS-SPF) routing, a mode that enables BGP to serve as both the underlay and overlay protocol in Massively Scaled Data Centers (MSDCs). This document defines a YANG 1.1 [RFC7950] data model for configuring BGP-LS, BGP-LS-VPN, and BGP-LS-SPF on a router. It also defines a read-only model for the Link-State Database (LSDB), which stores the Node, Link, Prefix, and SRv6 Segment Identifier (SID) Network Layer Reachability Information (NLRI) received via BGP-LS.

The data model is organized across five YANG modules. The ietf-bgp-ls module augments the BGP configuration model to add the three new address families: BGP-LS, BGP-LS-VPN, and BGP-LS-SPF. The ietf-bgp-lsdb module provides the read-only Link-State Database, together with submodules that define the Node, Link, Prefix, and SRv6 SID NLRI types and their associated attributes. The attribute definitions in those submodules cover the IGP topology attributes from [RFC9552], the Segment Routing extensions from [RFC9085], the BGP Peering Segment extensions from [RFC9086], the Flexible Algorithm extensions from [RFC9351], and the SRv6 extensions from [RFC9514].

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

2. Terminology

This section defines terms and acronyms used throughout this document. Terms imported from other specifications are listed with their source.

BGP SPF Routing Domain:
A BGP routing domain operating in BGP-LS-SPF mode, as defined in Section 2 of [RFC9815]. All routers in the domain exchange BGP-LS-SPF NLRIs and independently run SPF to compute their routing tables.
BGP-LS-SPF NLRI:
A BGP-LS NLRI type used to carry Node, Link, and Prefix reachability information in a BGP-LS-SPF routing domain, as defined in [RFC9815].

2.1. Acronyms

This document uses the following acronyms.

Table 1: Acronyms
Acronym Definition
AFI Address Family Indicator
BGP Border Gateway Protocol
BGP-LS BGP Link-State
BGP-LS-SPF BGP Link-State Shortest Path First
EPE Egress Peer Engineering
FAD Flexible Algorithm Definition
IS-IS Intermediate System to Intermediate System
LS Link-State
LSA Link-State Advertisement
LSDB Link-State Database
MSD Maximum SID Depth
MSDC Massively Scaled Data Center
NLRI Network Layer Reachability Information
OSPF Open Shortest Path First
SAFI Subsequent Address Family Indicator
SID Segment Identifier
SPF Shortest Path First
SR Segment Routing
SRGB Segment Routing Global Block
SRLB Segment Routing Local Block
SRLG Shared Risk Link Group
SRv6 Segment Routing over IPv6
TE Traffic Engineering
TLV Type-Length-Value
VRF Virtual Routing and Forwarding

3. Tree Diagram

The tree diagram below shows an abridged view of the ietf-bgp-ls module and the top-level containers of the ietf-bgp-lsdb module. The bgp-ls-topology container holds one or more instances, each identified by a VRF name, protocol (IS-IS Level 1 or Level 2, OSPFv2, OSPFv3, or BGP), and a 64-bit domain identifier. Within each instance, separate containers hold the Node, Link, Prefix, and SRv6 SID NLRIs indexed by their protocol-specific key fields. A complete tree diagram is provided in Appendix A. Annotations used in the diagram are defined in [RFC8340].

module: ietf-bgp-ls

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:global
            /bgp:afi-safis/bgp:afi-safi:
    +--rw link-state!
    |  +--rw prefix-limit
    |  |  +--rw max-prefixes?            uint32
    |  |  +--rw warning-threshold-pct?   rt-types:percentage
    |  |  +--rw teardown?                boolean
    |  |  +--rw idle-time?               union
    |  |  +--ro prefix-limit-exceeded?   boolean
    |  +--rw max-rate?          uint32
    |  +--rw max-number?        uint32
    |  +--ro bgp-ls-topology
    |     +--ro instances
    |           ...
    +--rw link-state-spf
       +--rw prefix-limit
       |  +--rw max-prefixes?            uint32
       |  +--rw warning-threshold-pct?   rt-types:percentage
       |  +--rw teardown?                boolean
       |  +--rw idle-time?               union
       |  +--ro prefix-limit-exceeded?   boolean
       +--rw instance-identifier?   uint64
       +--rw algorithm-type?        spf-algorithm-type
       +--rw node-status?           enumeration
       +--ro log
       |  +--ro event* (id)
       |        ...
       +--ro bgp-ls-topology
          +--ro instances
                ...
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:neighbors
            /bgp:neighbor/bgp:afi-safis/bgp:afi-safi:
    +--rw link-state!
    |  +--rw prefix-limit
    |  |  +--rw max-prefixes?            uint32
    |  |  +--rw warning-threshold-pct?   rt-types:percentage
    |  |  +--rw teardown?                boolean
    |  |  +--rw idle-time?               union
    |  |  +--ro prefix-limit-exceeded?   boolean
    |  +--rw max-rate?       uint32
    |  +--rw max-number?     uint32
    +--rw link-state-spf
       +--rw prefix-limit
       |  +--rw max-prefixes?            uint32
       |  +--rw warning-threshold-pct?   rt-types:percentage
       |  +--rw teardown?                boolean
       |  +--rw idle-time?               union
       |  +--ro prefix-limit-exceeded?   boolean
       +--rw metric?         uint32
       +--rw status?         enumeration
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:neighbors
            /bgp:neighbor/bgp:statistics:
    +--ro updates-sent?             yang:zero-based-counter32
    +--ro updates-received?         yang:zero-based-counter32
    +--ro error-updates-received?   yang:zero-based-counter32
    +--ro computations?             yang:zero-based-counter32
    +--ro triggering-events?        yang:zero-based-counter32
    +---x clear {bt:clear-statistics}?
       +---w input
       |  +---w clear-at?   yang:date-and-time
       +--ro output
          +--ro clear-finished-at?   yang:date-and-time
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:peer-groups
            /bgp:peer-group/bgp:afi-safis/bgp:afi-safi:
    +--rw link-state!
    |  +--rw prefix-limit
    |  |  +--rw max-prefixes?            uint32
    |  |  +--rw warning-threshold-pct?   rt-types:percentage
    |  |  +--rw teardown?                boolean
    |  |  +--rw idle-time?               union
    |  |  +--ro prefix-limit-exceeded?   boolean
    |  +--rw max-rate?       uint32
    |  +--rw max-number?     uint32
    +--rw link-state-spf
       +--rw prefix-limit
       |  +--rw max-prefixes?            uint32
       |  +--rw warning-threshold-pct?   rt-types:percentage
       |  +--rw teardown?                boolean
       |  +--rw idle-time?               union
       |  +--ro prefix-limit-exceeded?   boolean
       +--rw metric?         uint32
       +--rw status?         enumeration

Figure 1: Tree Diagram for BGP-LS, BGP-LS-SPF YANG Model

4. YANG Models

The ietf-bgp-ls module augments the BGP model [I-D.ietf-idr-bgp-model] to add support for three new Address Family Indicator (AFI) / Subsequent Address Family Indicator (SAFI) combinations: BGP-LS, BGP-LS-VPN, and BGP-LS-SPF.

The BGP model is augmented both at a global level and at a neighbor level to add support for the three new AFI/SAFI combinations. In addition, there is support for per-address-family statistics both at a global and at a neighbor level. The clear-statistics feature defined in [I-D.ietf-idr-bgp-model] is used in this model to determine whether the ability to clear statistics is supported.

The module imports ietf-yang-types and ietf-inet-types [RFC9911], ietf-routing [RFC8349], and the BGP module from [I-D.ietf-idr-bgp-model].

<CODE BEGINS> file "ietf-bgp-ls@2026-06-29.yang"
module ietf-bgp-ls {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-ls";
  prefix bgp-ls;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types.";
  }
  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349, A YANG Data Model for Routing Management
       (NMDA Version).";
  }
  import ietf-bgp {
    prefix bgp;
    reference
      "I-D.ietf-idr-bgp-model: BGP YANG Model for Service Provider
                               Networks.";
  }
  import iana-bgp-types {
    prefix bt;
    reference
      "I-D.ietf-idr-bgp-model: BGP YANG Model for Service Provider
                               Networks.";
  }
  import ietf-bgp-lsdb {
    prefix bgp-lsdb;
    reference
      "RFC XXXX: A YANG model for BGP-LS, BGP-LS-VPN,
                 and BGP-LS-SPF.";
  }

  organization
    "IETF LSVR Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/lsvr>
     WG List:  <lsvr@ietf.org>

     Authors: Mahesh Jethanandani (mjethanandani at gmail.com),
              Keyur Patel (keyur at arrcus.com),
              Aravind Babu MahendraBabu (aramahen at cisco.com)";

  description
    "This module contains contains management
     information for BGP-LS database.

     Copyright (c) 2023 IETF Trust and the persons identified as
     authors of the code. All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2026-06-29 {
    description
      "Initial Version";
    reference
      "RFC XXXX, BGP Model for Link State Distribution.";
  }

  // Identities.
  identity bgp-ls {
    base bt:afi-safi-type;
    description
      "BGP Link-State.";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP.";
  }

  identity bgp-ls-vpn {
    base bt:afi-safi-type;
    description
      "BGP Link-State VPN.";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP.";
  }

  identity bgp-ls-spf {
    base bt:afi-safi-type;
    description
      "BGP Link-State Shortest Path First (BGP-LS-SPF).";
    reference
      "RFC 9815: BGP Link-State SPF Routing.";
  }

  identity attribute-type {
    description
      "Base identity for BGP-LS Attribute type.";
  }

  identity multi-topology-identifier {
    base attribute-type;
    description
      "Multi Topology Identifier TLV.";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP.";
  }

  identity node-flag-bits {
    base attribute-type;
    description
      "The Node Flag Bits TLV.";
    reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP.";
  }

  identity opaque-node-attribute {
    base attribute-type;
    description
      "The Opaque Node Attribute TLV.";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP.";
  }

  identity node-name {
    base attribute-type;
    description
      "The Node Name TLV.";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP.";
  }

  identity isis-area-identifier {
    base attribute-type;
    description
      "IS-IS Area Identifier.";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP.";
  }

  identity ipv4-route-id-of-local-node {
    base attribute-type;
    description
      "IPv4 Router-ID of Local Node.";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP.";
  }

  identity ipv6-router-id-of-local-node {
    base attribute-type;
    description
      "IPv6 Router-ID of Local Node.";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP.";
  }

  // Typedefs
  typedef spf-algorithm-type {
    type enumeration {
      enum normal {
        description
          "Normal Shortest Path First (SPF) algorithm based on link
           metric. This is the standard shortest path algorithm as
           computed by the IGP protocol. Consistent with the
           deployed practice for link-state protocols, Algorithm 0
           permits any node to overwrite the SPF path with a
           different path based on its local policy.";
      }
      enum strict {
        description
          "Strict Shortest Path First (SPF) algorithm based on link
           metric. The algorithm is identical to Algorithm 0 but
           Algorithm 1 requires that all nodes along the path will
           honor the SPF routing decision. Local policy at the node
           claiming support for Algorithm 1 MUST NOT alter the SPF
           paths computed by Algorithm 1";
      }
      enum unknown {
        description
          "Unknown Algorithm";
      }
    }
    description
      "SPF algorithm type.";
  }

  // Groupings
  grouping bgp-neighbor-ls-common {
    description
      "Grouping for neighbor configuration for Link-State.";

      leaf metric {
        type uint32;
        default 10;
        description
          "Metric associated with the corresponding link to
           be used in the SPF graph computation.";
      }

      leaf status {
        type enumeration {
          enum reachable {
            description
              "The link is reachable in the current SPF topology.";
          }
          enum uncreachable {
            description
              "The link is unreachable in the current SPF
               topology.";
          }
        }
        default reachable;
        description
          "Sets SPF-Status of the corresponding LS Link NLRI.";

      }
  }

  grouping bgp-mp-ls {
    description
      "Grouping for BGP-LS paramters.";

    container link-state {
      when "derived-from-or-self(../../bgp:afi-safi/bgp:name, " +
           "'bgp-ls')" {
              description
                "Include this container for BGP Linkstate specific
           configuration";
      }
      presence
              "This container is for BGP Linkstate specific
              congfiguration.";

      description
        "Information related to Link-State configuration and
         management.";

      uses bgp:mp-all-afi-safi-common;

      leaf max-rate {
        type uint32;
        units per-second;
        default 200;
        description
          "Maximum rate at which Link-State NLRIs will be
           advertised or withdrawn from neighbors.";
        reference
          "RFC 9552: Distribution of Link-State and Traffic
           Engineering Information Using BGP.";
      }

      leaf max-number {
        type uint32;
        description
          "Maximim number of Link-State NLRIs stored in a router's
           RIB.";
        reference
          "RFC 9552: Distribution of Link-State and Traffic
           Engineering Information Using BGP.";
      }
    }
  }

  grouping bgp-mp-ls-spf {
    description
      "Grouping for BGP-LS-SPF parameters.";

    container link-state-spf {
      when "derived-from-or-self (../../bgp:afi-safi/bgp:name, " +
                                 "'bgp-ls-spf')" {
        description
          "Include this container for BGP Link-State SPF specific
           configuration";
      }
      description "BGP Linkstate-SPF configuration options";

      uses bgp:mp-all-afi-safi-common;
    }
  }

  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:global" +
          "/bgp:afi-safis/bgp:afi-safi" {
    description
      "Augmentation of the BGP model to add BGL-LS.";
    uses bgp-mp-ls;
    uses bgp-mp-ls-spf;
  }

  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:global" +
          "/bgp:afi-safis/bgp:afi-safi/link-state" {
    description
      "Augmentation of BGL-LS to add dB.";
    uses bgp-lsdb:lsdb-top;
  }

  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:global" +
          "/bgp:afi-safis/bgp:afi-safi/link-state-spf" {
    description
      "Augmentation of BGL-LS-SPF.";

    leaf instance-identifier {
      type uint64;
      default 0;
      description
        "Instance Identifier to be used for all Link-State NLRI
         advertisements originated locally";
    }

    leaf algorithm-type {
      type spf-algorithm-type;
      default normal;
      description
        "SPF Algorithm type associated with Link-State AFI SAFI";
    }

    leaf node-status {
      type enumeration {
        enum reachable {
          description
            "The local node is reachable in the current SPF
             topology.";
        }
        enum unreacable {
          description
            "The local node is unreachable in the current SPF
             topology.";
        }
        enum no-transit-support {
          description
            "The local node is reachable but does not support
             forwarding of transit traffic.";
        }
      }
      default reachable;
      description
        "Sets SPF-Status of the local node.";
    }

    container log {
      config false;
      description
        "This container lists the SPF computation events.";

      list event {
        key id;
        description
          "List of computation events - implemented as a
           wrapping buffer.";

        leaf id {
          type uint32;
          description
            "Event identifier.";
        }

        leaf type {
          type enumeration {
            enum full {
              description "Full SPF computation.";
            }
            enum route-only {
              description
                "Route reachability only SPF computation";
            }
          }
          description "Type of SPF computation performed.";
        }

        leaf schedule-time {
          type yang:date-and-time;
          description
            "Time when the SPF computation was
             scheduled.";
        }

        leaf delay {
          type uint64;
          description
            "Delay in micro-seconds applied for this SPF event.";
        }

        leaf start-time {
          type yang:date-and-time;
          description
            "Time when the SPF computation started.";
        }

        leaf end-time {
          type yang:date-and-time;
          description
            "Time when the SPF computation ended.";
        }

        leaf duration {
          type uint64;
          description
            "Time taken in micro-seconds to execute the SPF
             computations.";
        }

        leaf node-count {
          type uint64;
          description
            "Number of nodes involved in the SPF computations.";
        }

        leaf prefix-count {
          type uint64;
          description
            "Number of prefixes involved in the SPF computations.";
        }

        leaf route-download-count {
          type uint64;
          description
            "Number of routes updated in the SPF computations.";
        }

        list lsp-trigger {
          key "id";
          description
            "This list includes the LSPs that triggered the
             SPF computation.";

          leaf id {
            type uint32;
            description
              "Trigger identifier.";
          }

          leaf nlri-prefix {
            type string;
            description
              "Prefix of the NLRI triggering SPF computation.";
          }

          leaf nlri-sequence {
            type uint32;
            description
              "Sequence number of the NLRI triggering SPF
               computation.";
          }

          leaf trigger-time {
            type yang:date-and-time;
            description
              "Time when the trigger event was recorded.";
          }
        }
      }
    }
    uses bgp-lsdb:lsdb-top;
  }

  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:neighbors" +
          "/bgp:neighbor/bgp:afi-safis/bgp:afi-safi" {
    description
      "Augmentation of the BGP model to add BGL-LS.";
    uses bgp-mp-ls;
    uses bgp-mp-ls-spf;
  }

  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:neighbors" +
          "/bgp:neighbor/bgp:afi-safis/bgp:afi-safi/link-state-spf" {
    description
      "Augmentation of the BGP neighbor to add BGL-LS.";
    uses bgp-neighbor-ls-common;
  }

  /*
  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:global" +
          "/bgp:afi-safis/bgp:afi-safi/bgp:statistics" {
    when "derived-from-or-self (../bgp:name, 'bgp-ls')" {
      description
        "Include these for BGP Link-State specific statistics.";
    }
    description
      "Augmentation of the global statistics counter to add
       BGP-LS statistics.";

    leaf updates-sent {
      type yang:zero-based-counter32;
      description
        "Total number of Link-State NLRI updates sent.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP.";
    }

    leaf updates-received {
      type yang:zero-based-counter32;
      description
        "Total number of Link-State NLRI updates received.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP.";
    }

    leaf local-ls-originated {
      type yang:zero-based-counter32;
      description
        "Total number of locally originated Link-State NLRIs.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP.";
    }

    action clear {
      if-feature "bt:clear-statistics";
      description
        "Clear statistics action command.

        Execution of this command should result in all the
        counters to be cleared and set to 0.";

      input {
        leaf clear-at {
          type yang:date-and-time;
          description
            "Time when the clear action needs to be executed.";
        }
      }

      output {
        leaf clear-finished-at {
          type yang:date-and-time;
            description
              "Time when the clear action command completed.";
        }
      }
    }
  }
  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:global" +
          "/bgp:afi-safis/bgp:afi-safi/bgp:statistics" {
    when "derived-from-or-self (../bgp:name, 'bgp-ls-spf')" {
      description
        "Include these for BGP Link-State SPF specific statistics.";
    }
    description
      "Augmentation of the global statistics counter to add
       BGP-LS-SPF statistics.";

    leaf scheduled {
      type yang:zero-based-counter64;
      description
        "Number of times SPF has been re/scheduled";
    }

    leaf computed {
      type yang:zero-based-counter64;
      description
        "Number of times SPF has been computed";
    }

    leaf maximum-duration {
      type uint64;
      units "microseconds";
      description
        "Maximum duration taken for SPF compuation in
         microseconds.";
    }

    leaf minimum-duration {
      type uint64;
      units "microseconds";
      description
        "Minimum duration taken for SPF compuation in
         microseconds.";
    }

    leaf average-duration {
      type uint64;
      units "microseconds";
      description
        "Average duration taken for SPF compuation in
         microseconds.";
    }

    leaf last-computation-time {
      type yang:date-and-time;
      description
        "Timestamp for last SPF computation for this
         address-family";
    }
  }
  */
  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:neighbors" +
          "/bgp:neighbor/bgp:statistics" {
    when "derived-from-or-self (../bgp:afi-safis/bgp:afi-safi" +
                               "/bgp:name, 'bgp-ls')" {
      description
        "Include these for BGP Link-State specific statistics.";
    }
    description
      "Augmentation of the BGP per-neighbor statistics to add
       BGP-LS specific counters.";

    leaf updates-sent {
      type yang:zero-based-counter32;
      description
        "Total number of Link-State NLRIs updates sent per
         neighbor.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP.";
    }

    leaf updates-received {
      type yang:zero-based-counter32;
      description
        "Total number of Link-State NLRIs updates received per
         neighbor.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP.";
    }

    leaf error-updates-received {
      type yang:zero-based-counter32;
      description
        "Total number of Link-State NLRIs updates received that
         were errored, per neighbor.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP.";
    }

    leaf computations {
      type yang:zero-based-counter32;
      description
        "Count of number of SPF computations made.";
        reference
          "RFC 9815: BGP Link-State SPF Routing.";
    }

    leaf triggering-events {
      type yang:zero-based-counter32;
      description
        "SPF triggering events.";
        reference
          "RFC 9815: BGP Link-State SPF Routing.";
    }

    action clear {
      if-feature "bt:clear-statistics";
      description
        "Clear statistics action command.

        Execution of this command should result in all the
        counters to be cleared and set to 0.";

      input {
        leaf clear-at {
          type yang:date-and-time;
          description
            "Time when the clear action needs to be executed.";
        }
      }

      output {
        leaf clear-finished-at {
          type yang:date-and-time;
            description
              "Time when the clear action command completed.";
        }
      }
    }
  }

  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:peer-groups" +
          "/bgp:peer-group/bgp:afi-safis/bgp:afi-safi" {
    description
      "Augmentation of the BGP peer-group to add BGP-LS and
       BGP-LS-SPF.";

    uses bgp-mp-ls;
    uses bgp-mp-ls-spf;
  }

  augment "/rt:routing/rt:control-plane-protocols" +
          "/rt:control-plane-protocol/bgp:bgp/bgp:peer-groups" +
          "/bgp:peer-group/bgp:afi-safis/bgp:afi-safi/" +
          "link-state-spf" {
    description
      "Augmentation of the BGP peer-groups to add BGL-LS.";
    uses bgp-neighbor-ls-common;
  }
}
<CODE ENDS>

Figure 2: YANG Model for BGP-LS, BGP-LS-VPN, BGP-LS-SPF

The ietf-bgp-lsdb module defines the read-only Link-State Database (LSDB). The top-level grouping lsdb-top organizes entries into instances identified by a VRF name, an originating protocol, and a 64-bit domain identifier. Within each instance, five containers group the NLRI types:

nodes contains protocol-specific lists for IS-IS nodes (keyed by system-id, pseudo-node identifier, and AS number) and OSPFv2/OSPFv3 nodes (keyed by the AS-scoped flag, area-id, router-id, designated-router identifier, and AS number). Each node entry carries the node attributes defined in ietf-bgp-ls-topo-attr. BGP Egress Peer Engineering (EPE) defines a BGP Node NLRI type for advertising BGP peer node descriptors [RFC9086]; a corresponding list will be added in a future revision of this model.

links contains protocol-specific lists for IS-IS links, OSPFv2 links, OSPFv3 links, and BGP Egress Peer Engineering (EPE) links [RFC9086]. IS-IS and OSPF links are keyed by the local and remote node identifiers together with the local and remote IPv4 and IPv6 interface addresses; a sentinel value of 0.0.0.0 (for IPv4) or :: (for IPv6) MUST be used when an address is absent, for example on unnumbered or single-stack links. BGP links carry additional key fields for the local and remote AS numbers and BGP Router IDs. Each link entry carries the IGP link attributes defined in ietf-bgp-ls-topo-attr.

prefixes contains protocol-specific lists for IS-IS, OSPFv2, and OSPFv3 prefixes. IS-IS prefix entries are keyed by system-id, pseudo-node identifier, AS number, multi-topology-id, and prefix value. OSPFv2 and OSPFv3 prefix entries are keyed by the AS-scoped flag, area-id, router-id, designated-router identifier, AS number, multi-topology-id, route-type, and prefix value. Each prefix entry carries the prefix attributes defined in ietf-bgp-ls-topo-attr.

srv6-sids contains protocol-specific lists for OSPFv3, IS-IS, and BGP SRv6 SIDs. OSPFv3 SRv6 SID entries are keyed by the AS-scoped flag, area-id, router-id, designated-router identifier, AS number, SID value, and multi-topology-id. IS-IS SRv6 SID entries are keyed by system-id, pseudo-node identifier, AS number, SID value, and multi-topology-id. BGP SRv6 SID entries are keyed by router-id, AS number, SID value, and multi-topology-id. Each SRv6 SID entry carries the SRv6 SID attributes defined in ietf-bgp-ls-topo-attr.

unknowns provides a fallback container for NLRI types not recognized by the model, stored as opaque hex-encoded NLRI and attribute values.

The module includes the ietf-bgp-ls-topo-attr, ietf-bgp-ls-topo-ospf, and ietf-bgp-ls-topo-types submodules, and imports ietf-yang-types and ietf-inet-types [RFC9911], ietf-routing-types [RFC8294], ietf-isis [RFC9130], and ietf-ospf [RFC9129].

<CODE BEGINS> file "ietf-bgp-lsdb@2026-06-29.yang"
module ietf-bgp-lsdb {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-lsdb";
  prefix bgp-lsdb;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 9911: Common YANG Data Types.";
  }

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types.";
  }

  import ietf-bgp-ls-topo-types {
    prefix bgp-ls-topo-t;
    reference
      "RFC XXXX: BGP Model for Link State Distribution.";
  }

  import ietf-routing-types {
    prefix ietf-rt-t;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area.";
  }

  import ietf-isis {
    prefix ietf-isis-t;
    reference
      "RFC 9130: YANG Data Model for IS-IS Protocol.";
  }

  import ietf-ospf {
    prefix ietf-ospf-t;
    reference
      "RFC 9129: YANG Data Model for the OSPF Protocol.";
  }

  include ietf-bgp-ls-topo-attr;
  include ietf-bgp-ls-topo-ospf;

  organization
    "IETF LSVR Working Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/lsvr>
     WG List:  <lsvr@ietf.org>

     Authors: Mahesh Jethanandani (mjethanandani at gmail.com),
              Keyur Patel (keyur at arrcus.com),
              Aravind Babu MahendraBabu (aramahen at cisco.com)";

  description
    "This module contains contains configuration and management
     information for BGP-LS, BGP-LS-SPF.

     Copyright (c) 2023 IETF Trust and the persons identified as
     authors of the code. All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2026-06-29 {
    description
      "Initial Version";
    reference
      "RFC XXXX, BGP Model for Link State Distribution.";
  }

  // Groupings

  grouping lsdb-top {
    description
      "Details for all databases under an application instance.";

    container bgp-ls-topology {
      config false;
      description
        "Top level container for BGP-LS topology entries";

      container instances {
        description
          "Enclosing container for instance list";

        list instance {
          key "vrf-name protocol identifier";
          description
            "List of instances";

          leaf vrf-name {
            type string;
            description
              "Name of the VRF this database belongs to.";
          }

          leaf protocol {
            type bgp-ls-topo-t:protocol;
            description
              "Protocol originating the NLRI.";
            reference
              "RFC 9552: Distribution of Link-State and Traffic
               Engineering Information Using BGP, Section 5.2.";
          }

          leaf identifier {
            type uint64;
            description
              "Instance identifier identifying the IGP routing
               domain where the NLRI belongs.";
            reference
              "RFC 9552: Distribution of Link-State and Traffic
               Engineering Information Using BGP, Section 5.2.";
          }

          container nodes {
            description
              "BGP-LS topology entries for nodes";

            list ospf-node {
              when "../../protocol = 'ospfv2'";
              key "is-as-scoped area-id router-id dr-identifier as";
              description
                "List of OSPFv2 nodes";

              uses bgp-ls-ospf-node-common;

              uses bgp-ls-topo-node-attr;
            }

            list ospfv3-node {
              when "../../protocol = 'ospfv3'";
              key "is-as-scoped area-id router-id dr-identifier as";
              description
                "List of OSPFv3 nodes";

              uses bgp-ls-ospf-node-common;

              uses bgp-ls-topo-node-attr;
            }

            list isis-node {
              when "../../protocol = 'isis-l1' or " +
                   "../../protocol = 'isis-l2'";
              key "system-id psn-id as";
              description
                "List of IS-IS nodes";

              leaf system-id {
                type ietf-isis-t:system-id;
                description
                  "System ID.";
                reference
                  "RFC 9552: Distribution of Link-State and
                   Traffic Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf psn-id {
                type uint8;
                description
                  "Pseudo Node Identifier (PSN ID).";
                reference
                  "RFC 9552: Distribution of Link-State and
                   Traffic Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf as {
                type inet:as-number;
                description
                  "Autonomous System (AS) number associated with the
                   BGP process originating the NLRI.";
                reference
                  "RFC 9552: Distribution of Link-State and
                   Traffic Engineering Information Using BGP,
                   Section 5.2.1. TLV 512.";
              }

              uses bgp-ls-topo-node-attr;
            }
          }

          container links {
            description
              "BGP-LS topology entries for links";

            list ospf-link {
              when "../../protocol = 'ospfv2'";
              key "area-id as local-router-id " +
                  "local-dr-identifier " +
                  "remote-router-id remote-dr-identifier " +
                  "local-id remote-id " +
                  "local-ipv4-address remote-ipv4-address " +
                  "multi-topology-id";
              description
                "List of OSPFv2 link types";

              uses bgp-ls-ospf-link-common;

              leaf local-dr-identifier {
                type inet:ipv4-address;
                description
                  "Local Designated Router (DR) Identifier.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf remote-dr-identifier {
                type inet:ipv4-address;
                description
                  "Remote Designated Router (DR) Identifier.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              uses bgp-ls-topo-igp-link-attr;
            }

            list ospfv3-link {
              when "../../protocol = 'ospfv3'";
              key "area-id as local-router-id " +
                  "local-dr-identifier " +
                  "remote-router-id remote-dr-identifier " +
                  "local-id remote-id " +
                  "local-ipv4-address remote-ipv4-address " +
                  "local-ipv6-address remote-ipv6-address " +
                  "multi-topology-id";
              description
                "List of OSPFv3 link types";

              uses bgp-ls-ospf-link-common;

              leaf local-dr-identifier {
                type uint32;
                description
                  "Local Designated Router (DR) Identifier.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf remote-dr-identifier {
                type uint32;
                description
                  "Remote Designated Router (DR) Identifier.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf local-ipv6-address {
                type inet:ipv6-address;
                description
                  "Local IPv6 address of a link. Use :: as a sentinel
                   value when this address is not present (e.g., for
                   unnumbered or IPv4-only links).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2. TLV 261.";
              }

              leaf remote-ipv6-address {
                type inet:ipv6-address;
                description
                  "Remote IPv6 address of a link. Use :: as a sentinel
                   value when this address is not present (e.g., for
                   unnumbered or IPv4-only links).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2. TLV 262.";
              }

              uses bgp-ls-topo-igp-link-attr;
            }

            list isis-link {
              when "../../protocol = 'isis-l1' or " +
                   "../../protocol = 'isis-l2'";
              key "local-system-id local-psn-id local-as " +
                  "remote-system-id remote-psn-id remote-as " +
                  "local-id remote-id local-ipv4-address " +
                  "remote-ipv4-address local-ipv6-address " +
                  "remote-ipv6-address multi-topology-id";
              description
                "List of ISIS link types";

              leaf local-system-id {
                type ietf-isis-t:system-id;
                description
                  "Local System ID.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf local-psn-id {
                type uint8;
                description
                  "Local Pseudo Node Identifier (PSN ID).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf local-as {
                type inet:as-number;
                description
                  "Autonomous System (AS) number associated with the
                   BGP process originating the NLRI.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 512.";
              }

              leaf remote-system-id {
                type ietf-isis-t:system-id;
                description
                  "Remote System ID.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf remote-psn-id {
                type uint8;
                description
                  "Remote Pseudo Node Identifier (PSN ID).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf remote-as {
                type inet:as-number;
                description
                  "Autonomous System (AS) number associated with the
                   BGP process originating the NLRI.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 512.";
              }

              leaf local-id {
                type uint32;
                description
                  "Local Identifier of a link.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2. TLV 258.";
              }

              leaf remote-id {
                type uint32;
                description
                  "Remote Identifier of a link.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2. TLV 258.";
              }

              leaf local-ipv4-address {
                type inet:ipv4-address;
                description
                  "Local IPv4 address of a link. Use 0.0.0.0 as a
                   sentinel value when this address is not present
                   (e.g., for unnumbered or IPv6-only links).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2. TLV 259.";
              }

              leaf remote-ipv4-address {
                type inet:ipv4-address;
                description
                  "Remote IPv4 address of a link. Use 0.0.0.0 as a
                   sentinel value when this address is not present
                   (e.g., for unnumbered or IPv6-only links).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2. TLV 260.";
              }

              leaf local-ipv6-address {
                type inet:ipv6-address;
                description
                  "Local IPv6 address of a link. Use :: as a sentinel
                   value when this address is not present (e.g., for
                   unnumbered or IPv4-only links).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2. TLV 261.";
              }

              leaf remote-ipv6-address {
                type inet:ipv6-address;
                description
                  "Remote IPv6 address of a link. Use :: as a sentinel
                   value when this address is not present (e.g., for
                   unnumbered or IPv4-only links).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2. TLV 262.";
              }

              leaf multi-topology-id {
                type uint16;
                description
                  "Multi Topology Identifier (MTID) of a link.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2.1. TLV 263.";
              }

              uses bgp-ls-topo-igp-link-attr;
            }

            list bgp-link {
              when "../../protocol = 'bgp'";
              key "local-as local-router-id remote-as " +
                  "remote-router-id local-id remote-id " +
                  "local-ipv4-address remote-ipv4-address " +
                  "local-ipv6-address remote-ipv6-address " +
                  "multi-topology-id";
              description
                "List of BGP link types";

              leaf local-as {
                type inet:as-number;
                description
                  "Autonomous System (AS) number or AS
                   Confederation Identifier.";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 4.2. TLV 512.";
              }

              leaf local-router-id {
                type ietf-rt-t:router-id;
                description
                  "Local BGP Router ID.";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 4.2. TLV 516.";
              }

              leaf remote-as {
                type inet:as-number;
                description
                  "Autonomous System (AS) number or AS
                   Confederation Identifier.";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 4.2. TLV 512.";
              }

              leaf remote-router-id {
                type ietf-rt-t:router-id;
                description
                  "Remote BGP Router ID.";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 4.2. TLV 516.";
              }

              leaf local-id {
                type uint32;
                description
                  "Local Identifier of a link.";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 5.3. TLV 258.";
              }

              leaf remote-id {
                type uint32;
                description
                  "Remote Identifier of a link.";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 5.3. TLV 258.";
              }

              leaf local-ipv4-address {
                type inet:ipv4-address;
                description
                  "Local IPv4 address of a link. Use 0.0.0.0 as a
                   sentinel value when this address is not present
                   (e.g., for unnumbered or IPv6-only links).";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 5.2. TLV 259.";
              }

              leaf remote-ipv4-address {
                type inet:ipv4-address;
                description
                  "Remote IPv4 address of a link. Use 0.0.0.0 as a
                   sentinel value when this address is not present
                   (e.g., for unnumbered or IPv6-only links).";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 5.2. TLV 260.";
              }

              leaf local-ipv6-address {
                type inet:ipv6-address;
                description
                  "Local IPv6 address of a link. Use :: as a sentinel
                   value when this address is not present (e.g., for
                   unnumbered or IPv4-only links).";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 5.2. TLV 261.";
              }

              leaf remote-ipv6-address {
                type inet:ipv6-address;
                description
                  "Remote IPv6 address of a link. Use :: as a sentinel
                   value when this address is not present (e.g., for
                   unnumbered or IPv4-only links).";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 5.2. TLV 262.";
              }

              leaf multi-topology-id {
                type uint16;
                description
                  "Multi Topology Identifier (MTID) of a link.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2.1. TLV 263.";
              }

              container link-attributes {
                description
                  "Enclosing container for link attributes list";

                list link-attribute {
                  key "type";

                  description
                    "List of link attribute types.";

                  leaf type {
                    type identityref {
                      base bgp-ls-topo-t:bgp-ls-topo-attr-type;
                    }
                    description
                      "The type of link attribute";
                  }

                  container bgp-peer-sids {
                    when "derived-from-or-self(../type, " +
                         "'bgp-ls-topo-t:" +
                         "bgp-ls-topo-attr-bgp-peer-node-sid')" +
                         " or derived-from-or-self(../type, " +
                         "'bgp-ls-topo-t:" +
                         "bgp-ls-topo-attr-bgp-peer-adj-sid')" +
                         " or derived-from-or-self(../type, " +
                         "'bgp-ls-topo-t:" +
                         "bgp-ls-topo-attr-bgp-peer-set-sid')" {
                      description
                        "Only include the bgp-peer-sids container
                         when the type is
                         bgp-ls-topo-attr-bgp-peer-node-sid,
                         bgp-ls-topo-attr-bgp-peer-adj-sid, or
                         bgp-ls-topo-attr-bgp-peer-set-sid";
                    }
                    description
                      "This container contains the BGP peer Segment
                       Identifiers (SIDs) of a link";
                    reference
                      "RFC 9086: Border Gateway Protocol - Link State
                       (BGP-LS) Extensions for Segment Routing.
                       TLV 1101, TLV 1102 and TLV 1103";

                    list bgp-peer-sid {
                      key "label-index format";

                      description
                        "List of BGP peer SID";

                      leaf label-index {
                        type uint32;
                        description
                          "Label or index";
                      }

                      leaf format {
                        type bgp-ls-topo-t:sid-format;
                        description
                          "Format of the SID";
                      }

                      leaf flags {
                        type binary {
                          length "1";
                        }
                        description
                          "Flags associated with the BGP peer SID";
                      }

                      leaf weight {
                        type uint8;
                        description
                          "Weight used for load balancing purposes";
                      }
                    }
                  }
                }
              }
            }
          }

          container prefixes {
            description
              "BGP-LS topology entries for prefixes";

            list ospf-prefix {
              when "../../protocol = 'ospfv2'";
              key "is-as-scoped area-id as " +
                  "router-id dr-identifier " +
                  "multi-topology-id route-type prefix";
              description
                "List of OSPFv2 prefix types";

              uses bgp-ls-ospf-prefix-common;

              leaf dr-identifier {
                type inet:ipv4-address;
                description
                  "Designated Router (DR) Identifier.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf prefix {
                type inet:ipv4-prefix;
                description
                  "IPv4 address prefix advertised in the
                   OSPFv2 topology.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.3.2. TLV 265.";
              }

              uses bgp-ls-topo-prefix-attr;
            }

            list ospfv3-prefix {
              when "../../protocol = 'ospfv3'";
              key "is-as-scoped area-id as " +
                  "router-id dr-identifier " +
                  "multi-topology-id route-type prefix";
              description
                "List of OSPFv3 prefix types";

              uses bgp-ls-ospf-prefix-common;

              leaf dr-identifier {
                type uint32;
                description
                  "Designated Router (DR) Identifier.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf prefix {
                type inet:ip-prefix;
                description
                  "IP address prefix (IPv4 or IPv6) advertised in
                   the OSPFv3 topology.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.3.2. TLV 265.";
              }

              uses bgp-ls-topo-prefix-attr;
            }

            list isis-prefix {
              when "../../protocol = 'isis-l1' or " +
                   "../../protocol = 'isis-l2'";
              key "system-id psn-id as multi-topology-id prefix";
              description
                "List of ISIS prefix types";

              leaf system-id {
                type ietf-isis-t:system-id;
                description
                  "System ID.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf psn-id {
                type uint8;
                description
                  "Pseudo Node Identifier (PSN ID).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf as {
                type inet:as-number;
                description
                  "Autonomous System (AS) number associated with the
                   BGP process originating the NLRI.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2. TLV 512.";
              }

              leaf multi-topology-id {
                type uint16;
                description
                  "Multi Topology Identifier (MTID) of a prefix.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2.1. TLV 263.";
              }

              leaf prefix {
                type inet:ip-prefix;
                description
                  "IP address prefix (IPv4 or IPv6) advertised in
                   the IGP topology.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.3.2. TLV 265.";
              }

              uses bgp-ls-topo-prefix-attr;
            }
          }

          container srv6-sids {
            description
              "BGP-LS topology entries for SRv6 SIDs";

            list ospfv3-srv6-sid {
              when "../../protocol = 'ospfv3'";
              key "is-as-scoped area-id router-id " +
                  "dr-identifier as sid multi-topology-id";
              description
                "List of OSPF SRv6 SID types";

              leaf is-as-scoped {
                type boolean;
                description
                  "When true, the NLRI is AS-scoped and the area-id
                   is not applicable.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1.";
              }

              leaf area-id {
                type ietf-ospf-t:area-id-type;
                description
                  "OSPF area identifier.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 514.";
              }

              leaf router-id {
                type ietf-rt-t:router-id;
                description
                  "Router ID.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf dr-identifier {
                type uint32;
                description
                  "Designated Router (DR) Identifier.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf as {
                type inet:as-number;
                description
                  "Autonomous System (AS) number associated with the
                   BGP process originating the NLRI.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2. TLV 512.";
              }

              leaf sid {
                type inet:ipv6-prefix;
                description
                  "SRv6 SID.";
                reference
                  "RFC 9514: BGP-LS SRv6 Extensions, Section 6.1.
                   TLV 518.";
              }

              leaf multi-topology-id {
                type uint16;
                description
                  "Multi Topology Identifier (MTID) of a SRv6 SID.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2.1. TLV 263.";
              }

              uses bgp-ls-topo-srv6-sid-attr;
            }

            list isis-srv6-sid {
              when "../../protocol = 'isis-l1' or " +
                   "../../protocol = 'isis-l2'";
              key "system-id psn-id as sid multi-topology-id";
              description
                "List of ISIS SRv6 SID types";

              leaf system-id {
                type ietf-isis-t:system-id;
                description
                  "System ID.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf psn-id {
                type uint8;
                description
                  "Pseudo Node Identifier (PSN ID).";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.1. TLV 515.";
              }

              leaf as {
                type inet:as-number;
                description
                  "Autonomous System (AS) number associated with the
                   BGP process originating the NLRI.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2. TLV 512.";
              }

              leaf sid {
                type inet:ipv6-prefix;
                description
                  "SRv6 SID.";
                reference
                  "RFC 9514: BGP-LS SRv6 Extensions, Section 6.1.
                   TLV 518.";
              }

              leaf multi-topology-id {
                type uint16;
                description
                  "Multi Topology Identifier (MTID) of a SRv6 SID.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2.1. TLV 263.";
              }

              uses bgp-ls-topo-srv6-sid-attr;
            }

            list bgp-srv6-sid {
              when "../../protocol = 'bgp'";
              key "router-id as sid multi-topology-id";
              description
                "List of BGP SRv6 SID types";

              leaf router-id {
                type ietf-rt-t:router-id;
                description
                  "BGP Router ID.";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 4.2. TLV 516.";
              }

              leaf as {
                type inet:as-number;
                description
                  "Autonomous System (AS) number or AS
                   Confederation Identifier.";
                reference
                  "RFC 9086: BGP-LS Extensions for BGP Peering
                   Segments, Section 4.2. TLV 517.";
              }

              leaf sid {
                type inet:ipv6-prefix;
                description
                  "SRv6 SID.";
                reference
                  "RFC 9514: BGP-LS SRv6 Extensions, Section 6.1.
                   TLV 518.";
              }

              leaf multi-topology-id {
                type uint16;
                description
                  "Multi Topology Identifier (MTID) of a SRv6 SID.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.2.1. TLV 263.";
              }

              container srv6-sid-attributes {
                description
                  "Enclosing container for SRv6 SID attributes list";

                list srv6-sid-attribute {
                  key "type";

                  description
                    "List of SRv6 SID attribute types.";

                  leaf type {
                    type identityref {
                      base bgp-ls-topo-t:bgp-ls-topo-attr-type;
                    }
                    description
                      "The type of SRv6 SID attribute";
                  }

                  container srv6-endpoint-behavior {
                    when "derived-from-or-self(../type, " +
                         "'bgp-ls-topo-t:" +
                         "bgp-ls-topo-attr-srv6-endpoint-behavior')" {
                      description
                        "Only include the srv6-endpoint-behavior
                         container when the type is
                         bgp-ls-topo-attr-srv6-endpoint-behavior";
                    }
                    description
                      "This container contains the SRv6 endpoint
                       behavior.";
                    reference
                      "RFC 9514: Border Gateway Protocol - Link State
                       (BGP-LS) Extensions for Segment Routing over
                       IPv6 (SRv6). SRv6 endpoint behavior. TLV 1250.";

                    uses bgp-ls-topo-srv6-endpoint-behavior-attr;
                  }

                  container srv6-sid-structure {
                    when "derived-from-or-self(../type, " +
                         "'bgp-ls-topo-t:" +
                         "bgp-ls-topo-attr-srv6-sid-structure')" {
                      description
                        "Only include the srv6-sid-structure container
                         when the type is
                         bgp-ls-topo-attr-srv6-sid-structure";
                    }
                    description
                      "This container defines the SRv6 SID structure.";
                    reference
                      "RFC 9514: Border Gateway Protocol - Link State
                       (BGP-LS) Extensions for Segment Routing over
                       IPv6 (SRv6). SRv6 SID structure. TLV 1252.";

                    uses bgp-ls-topo-srv6-sid-struct-attr;
                  }

                  container unknowns {
                    when "derived-from-or-self(../type, " +
                        "'bgp-ls-topo-t:bgp-ls-topo-attr-unknowns')" {
                    description
                        "Only include the unknowns container when the
                         type is bgp-ls-topo-attr-unknowns";
                    }
                    description
                      "This container describes the unknown
                       attributes.";
                    reference
                      "RFC 9552: Distribution of Link-State and
                       Traffic Engineering Information Using BGP.";

                    uses bgp-ls-topo-unknown-attr;
                  }

                  container srv6-bgp-peer-node-sid {
                    when "derived-from-or-self(../type, " +
                         "'bgp-ls-topo-t:" +
                         "bgp-ls-topo-attr-srv6-bgp-peer-node-sid')" {
                      description
                        "Only include the srv6-bgp-peer-node-sid
                         container when the type is
                         bgp-ls-topo-attr-srv6-bgp-peer-node-sid";
                    }
                    description
                      "This container contains the SRv6 BGP peer
                       node SID.";
                    reference
                      "RFC 9514: Border Gateway Protocol - Link State
                       (BGP-LS) Extensions for Segment Routing over
                       IPv6 (SRv6). SRv6 BGP peer node SID. TLV 1251.";

                    leaf flags {
                      type binary {
                        length "1";
                      }
                      description
                        "Flags associated with the SRv6 BGP peer
                         node SID";
                    }

                    leaf weight {
                      type uint8;
                      description
                        "Weight used for load balancing purposes";
                    }

                    leaf peer-as {
                      type inet:as-number;
                      description
                        "Autonomous system of peer";
                    }

                    leaf peer-bgp-id {
                      type ietf-rt-t:router-id;
                      description
                        "BGP Router ID of peer";
                    }
                  }
                }
              }
            }
          }

          container unknowns {
            description
              "BGP-LS topology entries for unknown NLRIs -- active
               when the nlri-type is unknown";
            list unknown {
              key "nlri";
              description
                "List of unknown types";

              leaf nlri {
                type yang:hex-string;
                description
                  "NLRI.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.2.";
              }

              leaf attributes {
                type yang:hex-string;
                description
                  "Attributes.";
                reference
                  "RFC 9552: Distribution of Link-State and Traffic
                   Engineering Information Using BGP,
                   Section 5.3.";
              }
            }
          }
        }
      }
    }
  }
}
<CODE ENDS>

Figure 3: YANG Model for Link-State Database

The ietf-bgp-ls-topo-types submodule defines the identity hierarchy and typedefs shared across the other topology attribute submodules.

The base identity bgp-ls-topo-attr-type is the root for approximately fifty derived identities, one per BGP-LS TLV type. Examples include bgp-ls-topo-attr-node-name (TLV 1026), bgp-ls-topo-attr-sr-capabilities (TLV 1034), bgp-ls-topo-attr-fad (TLV 1039), bgp-ls-topo-attr-extended-admin-group (TLV 1173), and bgp-ls-topo-attr-adjacency-sid (TLV 1099). These identities serve as the key type in the type-dispatched attribute lists defined in ietf-bgp-ls-topo-attr, enabling new TLV types to be added as derived identities without modifying the existing schema structure.

The base identity bgp-ls-topo-attr-fad-type enumerates the sub-TLV types that appear within a Flexible Algorithm Definition (FAD) [RFC9351], such as include/exclude affinity constraints, SRLG exclusions, minimum bandwidth, and maximum delay.

The sid-format typedef is an enumeration distinguishing whether a SID value is an MPLS label (20-bit) or an index into the SRGB (32-bit). It is referenced by the adjacency-SID, prefix-SID, and BGP peer SID attribute containers.

The protocol typedef enumerates the IGP protocols from which BGP-LS NLRIs can originate: IS-IS Level 1, IS-IS Level 2, OSPFv2, OSPFv3, BGP, and Direct.

<CODE BEGINS> file "ietf-bgp-ls-topo-types@2026-06-29.yang"
 module ietf-bgp-ls-topo-types {
  yang-version "1.1";

  namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-ls-topo-types";

  prefix "ietf-bgp-ls-topo-types";

  organization
    "IETF LSVR Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/lsvr>
     WG List:  <lsvr@ietf.org>

     Authors: Mahesh Jethanandani (mjethanandani at gmail.com),
              Keyur Patel (keyur at arrcus.com),
              Aravind Babu MahendraBabu (aramahen at cisco.com)";

  description
    "Defines identity and type definitions associated with BGP-LS
     topology modules.

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

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2026-06-29 {
    description
      "Initial Version";
    reference
      "RFC XXXX, BGP Model for Link State Distribution.";
  }

  typedef protocol {
    type enumeration {
      enum isis-l1  {
        value 1;
        description
          "Value of BGP-LS protocol ISIS L1";
      }
      enum isis-l2  {
        value 2;
        description
          "Value of BGP-LS protocol ISIS L2";
      }
      enum ospfv2 {
        value 3;
        description
          "Value of BGP-LS protocol OSPFv2";
      }
      enum direct {
        value 4;
        description
          "Value of BGP-LS protocol Direct";
      }
      enum static {
        value 5;
        description
          "Value of BGP-LS protocol Static";
      }
      enum ospfv3 {
        value 6;
        description
          "Value of BGP-LS protocol OSPFv3";
      }
      enum bgp {
        value 7;
        description
          "Value of BGP-LS protocol BGP";
      }
      enum rsvp-te {
        value 8;
        description
          "Value of BGP-LS protocol RSVP-TE";
      }
      enum sr {
        value 9;
        description
          "Value of BGP-LS protocol SR";
      }
    }
    description
      "BGP-LS Protocol";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP, Section 5.2.";
  }

  typedef nlri-type {
    type enumeration {
      enum node  {
        value 1;
        description
          "Value of BGP-LS Node NLRI";
      }
      enum link  {
        value 2;
        description
          "Value of BGP-LS Link NLRI";
      }
      enum ipv4-prefix {
        value 3;
        description
          "Value of BGP-LS IPv4 Prefix NLRI";
      }
      enum ipv6-prefix {
        value 4;
        description
          "Value of BGP-LS IPv6 Prefix NLRI";
      }
      enum sr-policy-candidate-path {
        value 5;
        description
          "Value of BGP-LS SR Policy Candidate Path NLRI";
      }
      enum srv6-sid {
        value 6;
        description
          "Value of BGP-LS SRv6 SID NLRI";
      }
    }
    description
      "BGP-LS NLRI Types";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP, Section 5.1.";
 }

  typedef ospf-route-type {
    type enumeration {
      enum intra-area  {
        value 1;
        description
          "Value of OSPF Route Type Intra Area";
      }
      enum inter-area  {
        value 2;
        description
          "Value of OSPF Route Type Inter Area";
      }
      enum external-1 {
        value 3;
        description
          "Value of OSPF Route Type External 1";
      }
      enum external-2 {
        value 4;
        description
          "Value of OSPF Route Type External 2";
      }
      enum nssa-1 {
        value 5;
        description
          "Value of OSPF Route Type NSSA 1";
      }
      enum nssa-2 {
        value 6;
        description
          "Value of OSPF Route Type NSSA 2";
      }
    }
    description
      "OSPF Route Type";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP, Section 3.2.3.";
 }

  typedef node-flag-bits {
     type bits {
      bit overload {
        position 0;
        description
          "Value of Overload bit";
      }
      bit attached {
        position 1;
        description
          "Value of Attached bit";
      }
      bit external {
        position 2;
        description
          "Value of External bit";
      }
      bit abr {
        position 3;
        description
          "Value of ABR bit";
      }
      bit router {
        position 4;
        description
          "Value of Router bit";
      }
      bit v6 {
        position 5;
        description
          "Value of IPv6 bit";
      }
    }
    description
      "BGP-LS Node flag bits";

    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP. Section 3.3.1.1";
  }

  typedef igp-flags-bits {
     type binary {
      length "1";
    }
    description
      "BGP-LS IGP flag bits";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
       Information Using BGP, Section 3.3.3.";
  }

  typedef sid-format {
    type enumeration {
      enum label {
        value 1;
        description
          "SID represented as an MPLS label value.";
      }
      enum index {
        value 2;
        description
          "SID represented as an index value.";
      }
    }
    description
      "Format of a SID value (adjacency, prefix, or BGP peer).";
  }

  identity bgp-ls-topo-attr-type {
    description
      "Base identity for BGP-LS topology attribute type.";
  }

  identity bgp-ls-topo-attr-fad-type {
    description
      "Base identity for BGP-LS topology Flexible Algorithm
       Definition (FAD) attribute type.";
  }

  identity bgp-ls-topo-attr-link-local-remote-identifiers {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 258. Link local and remote identifiers";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
      Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-multi-topology-id {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 263. Multi-Topology IDs";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }

  identity bgp-ls-topo-attr-node-msd {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 266. Node Maximum SID Depth";
    reference
      "RFC 8814: Signaling Maximum SID Depth (MSD) Using the
      Border Gateway Protocol - Link State";
  }

  identity bgp-ls-topo-attr-link-msd {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 267. Link Maximum SID Depth";
    reference
      "RFC 8814: Signaling Maximum SID Depth (MSD) Using the
      Border Gateway Protocol - Link State";
  }

  identity bgp-ls-topo-attr-node-flag-bits {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1024. Bit mask describing node attributes";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }

  identity bgp-ls-topo-attr-opaque-node {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1025. Envelope that transparently carries optional
      Node Attribute TLVs advertised by a router";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }

  identity bgp-ls-topo-attr-node-name {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1026. Symbolic name of the router node";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }

  identity bgp-ls-topo-attr-isis-area-identifier {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1027. Area address of an ISIS area";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }

  identity bgp-ls-topo-attr-local-ipv4-routerid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1028. Auxiliary Router-ID used by the IGP";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }

  identity bgp-ls-topo-attr-local-ipv6-routerid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1029. Auxiliary Router-ID used by the IGP";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }

  identity bgp-ls-topo-attr-remote-ipv4-routerid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1030. Remote Router-ID used by the IGP";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }

  identity bgp-ls-topo-attr-remote-ipv6-routerid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1031. Remote Router-ID used by the IGP";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }

  identity bgp-ls-topo-attr-sr-capabilities {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1034. Node's Segment Routing (SR) capabilities";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-sr-algorithm {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1035. Segment Routing (SR) algorithms supported by
       the node";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-srlb {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1036. Range(s) of labels reserved by the node for
       local SIDs (Segment Identifiers)";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-srv6-cap-flags {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1038. SRv6 Capabilities Flags.";
    reference
      "RFC 9514: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing over IPv6 (SRv6).";
  }

  identity bgp-ls-topo-attr-fad {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1039. Definition of Flexible Algorithms
       (FA) supported by the node";
    reference
      "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Flexible Algorithm Advertisement";
  }

  identity bgp-ls-topo-attr-fad-excl-any-aff {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV 1040. Exclude links carrying any of the specified
       affinities";
    reference
      "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Flexible Algorithm Advertisement";
  }

  identity bgp-ls-topo-attr-fad-incl-any-aff {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV 1041. Include links carrying any of the specified
       affinities";
    reference
      "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Flexible Algorithm Advertisement";
  }

  identity bgp-ls-topo-attr-fad-incl-all-aff {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV 1042. Include links carrying all of the specified
       affinities";
    reference
      "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Flexible Algorithm Advertisement";
  }

  identity bgp-ls-topo-attr-fad-flags {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV 1043. Flags associated with the FAD";
    reference
      "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Flexible Algorithm Advertisement";
  }

  identity bgp-ls-topo-attr-fad-excl-srlg {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV 1045. Exclude links associated with any of the
       specified (Shared Risk Link Group) SRLG";
    reference
      "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Flexible Algorithm Advertisement";
  }

  identity bgp-ls-topo-attr-fa-unsupported {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV 1046. Indicates the presence of unsupported
      Flexible Algorithm Definition (FAD) sub-TLVs";
    reference
      "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Flexible Algorithm Advertisement";
  }

  identity bgp-ls-topo-attr-fad-excl-minimum-bw {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV TBD (1049). Exclude links not having a minimum
       specified bandwidth";
    reference
      "RFC TBD: BGP-LS extensions for IP Flexible Algorithms and
       Bandwidth, Delay, Metrics and Constraints";
  }

  identity bgp-ls-topo-attr-fad-excl-maximum-delay {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV TBD (1050). Exclude links having delay
       above a maximum specified delay";
    reference
      "RFC TBD: BGP-LS extensions for IP Flexible Algorithms and
       Bandwidth, Delay, Metrics and Constraints";
  }

  identity bgp-ls-topo-attr-fad-excl-any-rev-aff {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV TBD (1053). Exclude links carrying any of the
       specified affinities in the reverse direction";
    reference
      "RFC TBD: BGP-LS extensions for Flexible Algorithms Reverse
       Affinity Constraint";
  }

  identity bgp-ls-topo-attr-fad-incl-any-rev-aff {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV TBD (1054). Include links carrying any of the
       specified affinities in the reverse direction";
    reference
      "RFC TBD: BGP-LS extensions for Flexible Algorithms Reverse
       Affinity Constraint";
  }

  identity bgp-ls-topo-attr-fad-incl-all-rev-aff {
    base "bgp-ls-topo-attr-fad-type";
    description
      "BGP-LS TLV TBD (1055). Include links carrying all of the
       specified affinities in the reverse direction";
    reference
      "RFC TBD: BGP-LS extensions for Flexible Algorithms Reverse
       Affinity Constraint";
  }

  identity bgp-ls-topo-attr-extended-admin-group {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1173. Extended Administrative Group";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-maximum-link-bw {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1089. Maximum link bandwidth";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-maximum-reservable-link-bw {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1090. Maximum reservable link bandwidth";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-unreserved-bw {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1091. Unreserved bandwidth";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-te-default-metric {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1092. Traffic Engineering default metric";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-link-protection-type {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1093. Link protection type";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-mpls-protocol-mask {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1094. MPLS protocol mask";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-igp-metric {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1095. IGP metric";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-srlg {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1096. Shared Risk Link Group (SRLG)";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-opaque-link {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1097. Envelope that transparently carries optional
       Link Attribute TLVs advertised by a router";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-link-name {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1098. Symbolic name of a link";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-adjacency-sid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1099. Adjacency Segment Identifier (SID)";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-lan-adjacency-sid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1100. LAN adjacency Segment Identifier (SID)";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-bgp-peer-node-sid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1101. BGP peer node Segment Identifier (SID)";
    reference
      "RFC 9086: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-bgp-peer-adj-sid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1102. BGP peer adjacency Segment Identifier
       (SID)";
    reference
      "RFC 9086: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-bgp-peer-set-sid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1103. BGP peer set Segment Identifier (SID)";
    reference
      "RFC 9086: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-srv6-end-x-sid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1106. SRv6 End.X SID";
    reference
      "RFC 9514: SRv6 BGP-LS extensions.";
  }

  identity bgp-ls-topo-attr-srv6-isis-lan-end-x-sid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1107. SRv6 ISIS LAN End.X SID";
    reference
      "RFC 9514: SRv6 BGP-LS extensions.";
  }

  identity bgp-ls-topo-attr-srv6-ospf-lan-end-x-sid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1108. SRv6 OSPF LAN End.X SID";
    reference
      "RFC 9514: SRv6 BGP-LS extensions.";
  }

  identity bgp-ls-topo-attr-unidir-link-delay {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1114. Unidirectional link delay";
    reference
      "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
       Engineering Performance Metric Extensions.";
  }

  identity bgp-ls-topo-attr-min-max-unidir-link-delay {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1115. Min/max unidirectional link delay";
    reference
      "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
       Engineering Performance Metric Extensions.";
  }

  identity bgp-ls-topo-attr-unidir-delay-variation {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1116. Unidirectional delay variation";
    reference
      "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
       Engineering Performance Metric Extensions.";
  }

  identity bgp-ls-topo-attr-unidir-link-loss {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1117. Unidirectional link loss";
    reference
      "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
       Engineering Performance Metric Extensions.";
  }

  identity bgp-ls-topo-attr-unidir-residual-bw {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1118. Unidirectional residual bandwidth";
    reference
      "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
       Engineering Performance Metric Extensions.";
  }

  identity bgp-ls-topo-attr-unidir-available-bw {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1119. Unidirectional available bandwidth";
    reference
      "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
       Engineering Performance Metric Extensions.";
  }

  identity bgp-ls-topo-attr-unidir-utilized-bw {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1120. Unidirectional utilized bandwidth";
    reference
      "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
       Engineering Performance Metric Extensions.";
  }

  identity bgp-ls-topo-attr-asla {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1122. Application-Specific Link Attributes";
    reference
      "RFC 9294: Application-Specific Link Attributes Advertisement
       Using the Border Gateway Protocol - Link State (BGP-LS).";
  }

  identity bgp-ls-topo-attr-igp-flags {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1152. Flags and bits assigned to a prefix";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-igp-route-tag {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1153. Tags of a prefix";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-ext-igp-route-tag {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1154. Extended route tags of a prefix";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-prefix-metric {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1155. Metric of a prefix";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-ospf-forwarding-address {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1156. Forwarding address of a prefix";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-opaque-prefix {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1157. Envelope that transparently carries optional
       Prefix Attribute TLVs advertised by a router";
    reference
      "RFC 9552: Distribution of Link-State and Traffic
       Engineering Information Using BGP.";
  }

  identity bgp-ls-topo-attr-prefix-sid {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1158. Prefix Segment Identifiers (SIDs)";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-prefix-range {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1159. Range of prefix-to-SID mapping";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-srv6-locator {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1162. SRv6 locator information associated with a
       prefix";
    reference
      "RFC 9514: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing over IPv6 (SRv6)";
  }

  identity bgp-ls-topo-attr-prefix-attribute-flags {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1170. Prefix attribute flags";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-prefix-src-router-id {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1171. Source route identifier of a prefix";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-l2-bundle-member {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1172. L2 bundle member";
    reference
      "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Segment Routing";
  }

  identity bgp-ls-topo-attr-fa-prefix-metric {
    base "bgp-ls-topo-attr-type";
    description
      "BGP-LS TLV 1044. Flexible Algorithm prefix metric";
    reference
      "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
       Extensions for Flexible Algorithm Advertisement";
  }

  identity bgp-ls-topo-attr-srv6-endpoint-behavior {
    base "bgp-ls-topo-attr-type";
    description
      "SRv6 endpoint behavior";
    reference
      "RFC 9514: SRv6 BGP-LS extensions.";
  }

  identity bgp-ls-topo-attr-srv6-bgp-peer-node-sid {
    base "bgp-ls-topo-attr-type";
    description
      "SRv6 BGP peer node SID";
    reference
      "RFC 9514: SRv6 BGP-LS extensions.";
  }

  identity bgp-ls-topo-attr-srv6-sid-structure {
    base "bgp-ls-topo-attr-type";
    description
      "SRv6 SID structure";
    reference
      "RFC 9514: SRv6 BGP-LS extensions.";
  }

  identity bgp-ls-topo-attr-unknowns {
    base "bgp-ls-topo-attr-type";
    description
      "Unknown BGP-LS attribute TLVs.";
    reference
      "RFC 9552: Distribution of Link-State and Traffic Engineering
      Information Using BGP.";
  }
}
<CODE ENDS>

Figure 4: YANG Model for BGP-LS Topology Types

The ietf-bgp-ls-topo-attr submodule defines groupings for the attributes associated with Node, Link, Prefix, and SRv6 SID NLRIs. Each grouping uses a type-dispatched list pattern: a list keyed by an identityref of base type bgp-ls-topo-attr-type, where each list entry carries a set of containers guarded by derived-from-or-self() when expressions. Only the container whose identity matches the entry's key leaf is active in any given entry. This approach provides an extensible schema that accommodates new TLV types by adding derived identities without modifying the list structure.

Node attributes (bgp-ls-topo-node-attr): The node attribute list covers the TLVs defined in [RFC9552] for router identification (local IPv4/IPv6 Router-IDs, node name), node properties (Multi-Topology IDs, node flag bits, IS-IS area identifiers, opaque node attributes), Segment Routing capabilities (SRGB ranges, SRLB ranges, SR algorithms, node Maximum SID Depth (MSD) [RFC8814]), and Flexible Algorithm Definitions (FADs). Each FAD entry is identified by an algorithm number in the range 128-255 and carries its metric type, calculation type, priority, and a nested type-dispatched list of affinity and SRLG constraint attributes as defined in [RFC9351].

Link attributes (bgp-ls-topo-igp-link-attr): The link attribute list covers the TE and SR TLVs defined in [RFC9552] and [RFC9085]. Traffic engineering attributes include maximum bandwidth, maximum reservable bandwidth, unreserved bandwidth (eight priority levels), administrative group, extended administrative group (TLV 1173), TE metric, link protection type, and Shared Risk Link Group (SRLG) values. Performance attributes include unidirectional link delay (average, minimum, and maximum), delay variation, link loss, residual bandwidth, available bandwidth, and utilized bandwidth. SR attributes include adjacency-SIDs (TLV 1099) and LAN adjacency-SIDs (TLV 1100) [RFC9085], each carrying label or index values, flags, and weights; link MSD; SRv6 End.X SIDs; and SRv6 LAN End.X SIDs [RFC9514]. Application-Specific Link Attributes (ASLA) and L2 Bundle Member attributes are also modeled. For BGP EPE links [RFC9086], the list includes BGP peer SIDs (TLVs 1101-1103).

Prefix attributes (bgp-ls-topo-prefix-attr): The prefix attribute list covers IGP flags, route tags, extended route tags, prefix metric, OSPF forwarding address, opaque prefix attributes, prefix-SIDs (TLV 1158) [RFC9085] with label or index values and algorithm, and SRv6 Locator attributes [RFC9514].

SRv6 SID attributes (bgp-ls-topo-srv6-sid-attr): SRv6 SID entries carry the SRv6 endpoint behavior (TLV 1250) and the SRv6 SID structure sub-TLV (TLV 1252), which encodes the locator block length, locator node length, function length, and argument length fields [RFC9514].

<CODE BEGINS> file "ietf-bgp-ls-topo-attr@2026-06-29.yang"
submodule ietf-bgp-ls-topo-attr {
  yang-version 1.1;

  belongs-to ietf-bgp-lsdb {
    prefix "bgp-lsdb";
  }

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 9911: Common YANG Data Types.";
  }

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types.";
  }

  import ietf-bgp-ls-topo-types {
    prefix bgp-ls-topo-t;
    reference
      "RFC XXXX: BGP Model for Link State Distribution.";
  }

  import ietf-routing-types {
    prefix ietf-rt-t;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area.";
  }

  import ietf-isis {
    prefix ietf-isis-t;
    reference
      "RFC 9130: YANG Data Model for IS-IS Protocol.";
  }

  organization
    "IETF LSVR Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/lsvr>
     WG List:  <lsvr@ietf.org>

     Authors: Mahesh Jethanandani (mjethanandani at gmail.com),
              Keyur Patel (keyur at arrcus.com),
              Aravind Babu MahendraBabu (aramahen at cisco.com)";

  description
    "This submodule contains structural data definitions associated
     BGP-LS topology attributes.

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

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2026-06-29 {
    description
      "Initial Version";
    reference
      "RFC XXXX, BGP Model for Link State Distribution.";
  }

  grouping bgp-ls-topo-ipv4-router-id-attr {
    description
      "Grouping for the BGP-LS topology IPv4 router-id attribute";

    leaf-list router-id {
      type ietf-rt-t:router-id;
      description
        "List of IPv4 Router ID";
    }
  }

  grouping bgp-ls-topo-ipv6-router-id-attr {
    description
      "Grouping for the BGP-LS topology IPv6 router-id attribute";

    leaf-list router-id {
      type inet:ipv6-address;
      description
        "List of IPv6 Router ID";
    }
  }

  grouping bgp-ls-topo-msd-attr {
    description
      "Grouping for the BGP-LS topology Maximum SID Depth (MSD)
       attribute";

    list msd {
      key "msd-type";

      description
        "List of MSDs";

      leaf msd-type {
        type uint8;
        description
          "MSD type. One of the values defined in the
           'IGP MSD-Types' registry.";
        reference
          "RFC 8491: Signaling Maximum SID Depth (MSD) Using
           IS-IS.";
      }

      leaf msd-value {
        type uint8;
        description
          "MSD value. A number in the range of 0-255";
      }
    }
  }

  grouping bgp-ls-topo-opaque-attribute {
    description
      "Grouping for the BGP-LS topology opaque attribute";

    leaf opaque-attrs {
      type yang:hex-string;
      description
        "Opaque attribute";
    }
  }

  grouping bgp-ls-topo-eag-attr {
    description
      "Grouping for the BGP-LS topology EAG attribute";

    leaf-list eag {
      type uint32;
      description
        "Extended Administrative Group (EAG) value for link affinity
         constraints to be used in traffic engineering";
    }
  }

  grouping bgp-ls-topo-srlg-attr {
    description
      "Grouping for the BGP-LS topology SRLG attribute";

    leaf-list srlg {
      type uint32;
      description
        "Shared Risk Link Group (SRLG) value representing links that
         share a common resource and may fail together";
    }
  }

  grouping bgp-ls-topo-delay-attr {
    description
      "Grouping for the BGP-LS topology delay attribute";

    leaf delay {
      type uint32;
      units microseconds;
      description
        "Average link delay over a configurable interval";
    }
  }

  grouping bgp-ls-topo-bw-attr {
    description
      "Grouping for the BGP-LS topology bandwidth attribute";

    leaf bw {
      type ietf-rt-t:bandwidth-ieee-float32;
      description
        "Bandwidth in IEEE 754 floating point format. BGP-LS defines
         various bandwidth types.";
      reference
        "IEEE 754: IEEE Standard for Floating-Point Arithmetic.";
    }
  }

  grouping bgp-ls-topo-adj-sid-attr {
    description
      "Grouping for the BGP-LS topology adjacency SID attribute";

    leaf label-index {
      type uint32;
      description
        "Label or index";
    }

    leaf format {
      type bgp-ls-topo-t:sid-format;
      description
        "Format of the SID";
    }

    leaf flags {
      type binary {
        length "1";
      }
      description
        "Flags associated with the SID. IS-IS flags are
         defined in RFC 8667. OSPFv2 flags are defined in
         RFC 8665. OSPFv3 flags are defined in RFC 8666.";
    }

    leaf weight {
      type uint8;
      description
        "Weight used for load balancing purposes";
    }
  }

  grouping bgp-ls-topo-common-link-asla-l2-bundle-member-attr {
    description
      "Grouping for the BGP-LS topology attributes common for link,
       ASLA and L2 bundle member";

    container te-default-metric {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:bgp-ls-topo-attr-te-default-metric')" {
        description
          "Only include the te-default-metric container when the
           type is bgp-ls-topo-attr-te-default-metric";
      }
      description
        "This container specifies the Traffic Engineering (TE)
         metric of a link";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP. TLV 1092";

      leaf metric {
        type uint32;
        description
          "Traffic Engineering metric";
      }
    }

    container unidirectional-link-delay {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-unidir-link-delay')" {
        description
          "Only include the unidirectional-link-delay container
           when the type is bgp-ls-topo-attr-unidir-link-delay";
      }
      description
        "This container specifies the average link delay between
         two directly connected IGP link-state neighbors";
      reference
        "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
         Engineering Performance Metric Extensions. TLV 1114";

      uses bgp-ls-topo-delay-attr;

      leaf anomaly {
        type boolean;
        description
          "Anomalous?";
      }
    }

    container min-max-unidirectional-link-delay {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-min-max-unidir-link-delay')" {
        description
          "Only include the min-max-unidirectional-link-delay
           container when the type is
           bgp-ls-topo-attr-min-max-unidir-link-delay";
      }
      description
        "This container specifies the minimum and maximum link delay
         between two directly connected IGP link-state neighbors";
      reference
        "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
         Engineering Performance Metric Extensions. TLV 1115";

      container min {
        description
          "Enclosing container for minimum delay";
        uses bgp-ls-topo-delay-attr;
      }

      container max {
        description
          "Enclosing container for maximum delay";
        uses bgp-ls-topo-delay-attr;
      }

      leaf anomaly {
        type boolean;
        description
          "Anomalous?";
      }
    }

    container unidirectional-delay-variation {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-unidir-delay-variation')" {
        description
          "Only include the unidirectional-delay-variation container
           when the type is
           bgp-ls-topo-attr-unidir-delay-variation";
      }
      description
        "This container specifies the average link delay variation
         between two directly connected IGP link-state neighbors";
      reference
        "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
         Engineering Performance Metric Extensions. TLV 1116";

      uses bgp-ls-topo-delay-attr;
    }

    container unidirectional-link-loss {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-unidir-link-loss')" {
        description
          "Only include the unidirectional-link-loss container when
           the type is bgp-ls-topo-attr-unidir-link-loss";
      }
      description
        "This container specifies the loss (as a packet percentage)
         between two directly connected IGP link-state neighbors";
      reference
        "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
         Engineering Performance Metric Extensions. TLV 1117";

      leaf link-loss {
        type uint32;
        description
          "Link packet loss as a percentage of the total traffic
           sent over a configurable interval. The basic unit is
           0.000003%, where (2^24 - 2) is 50.331642%.";
      }

      leaf anomaly {
        type boolean;
        description
          "Anomalous?";
      }
    }

    container unidirectional-residual-bw {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-unidir-residual-bw')" {
        description
          "Only include the unidirectional-residual-bw container
           when the type is bgp-ls-topo-attr-unidir-residual-bw";
      }
      description
        "This container specifies the residual bandwidth between
         two directly connected IGP link-state neighbors";
      reference
        "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
         Engineering Performance Metric Extensions. TLV 1118";

      uses bgp-ls-topo-bw-attr;
    }

    container unidirectional-available-bw {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-unidir-available-bw')" {
        description
          "Only include the unidirectional-available-bw container
           when the type is bgp-ls-topo-attr-unidir-available-bw";
      }
      description
        "This container specifies the available bandwidth between
         two directly connected IGP link-state neighbors";
      reference
        "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
         Engineering Performance Metric Extensions. TLV 1119";

      uses bgp-ls-topo-bw-attr;
    }

    container unidirectional-utilized-bw {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-unidir-utilized-bw')" {
        description
          "Only include the unidirectional-utilized-bw container
           when the type is bgp-ls-topo-attr-unidir-utilized-bw";
      }
      description
        "This container specifies the utilized bandwidth between
         two directly connected IGP link-state neighbors";
      reference
        "RFC 8571: Link State (BGP-LS) Advertisement of IGP Traffic
         Engineering Performance Metric Extensions. TLV 1120";

      uses bgp-ls-topo-bw-attr;
    }

    container extended-admin-group {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-extended-admin-group')" {
        description
          "Only include the extended-admin-group container when the
           type is bgp-ls-topo-attr-extended-admin-group";
      }
      description
        "This container contains the bit mask of administrative
         groups assigned by the network administrator";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP. TLV 1173";

      uses bgp-ls-topo-eag-attr;
    }

    container unknowns {
      when "derived-from-or-self(../type, " +
          "'bgp-ls-topo-t:bgp-ls-topo-attr-unknowns')" {
      description
          "Only include the unknowns container when the type is
          bgp-ls-topo-attr-unknowns";
      }
      description
        "This container describes the unknown attributes.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP.";

      uses bgp-ls-topo-unknown-attr;
    }
  }

  grouping bgp-ls-topo-common-link-l2-bundle-member-attr {
    description
      "Grouping for the BGP-LS topology attributes common for link
       and L2 bundle member";

    container maximum-link-bw {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:bgp-ls-topo-attr-maximum-link-bw')" {
        description
          "Only include the maximum-link-bw container when the
           type is bgp-ls-topo-attr-maximum-link-bw";
      }
      description
        "This container specifies the maximum bandwidth that can be
         used on a link";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP. TLV 1089";

      uses bgp-ls-topo-bw-attr;
    }

    container maximum-reservable-link-bw {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-maximum-reservable-link-bw')" {
        description
          "Only include the maximum-reservable-link-bw container
           when the type is
           bgp-ls-topo-attr-maximum-reservable-link-bw";
      }
      description
        "This container specifies the maximum bandwidth that can be
         reserved on a link";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP. TLV 1090";

      uses bgp-ls-topo-bw-attr;
    }

    container unreserved-bws {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:bgp-ls-topo-attr-unreserved-bw')" {
        description
          "Only include the unreserved-bws container when the type
           is bgp-ls-topo-attr-unreserved-bw";
      }
      description
        "This container specifies the bandwidth reservable on a
         link on a per priority basis";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP. TLV 1091";

      list unreserved-bw {
        key "priority";

        description
          "List of unreserved bandwidths";

        leaf priority {
          type uint8 {
            range "0..7";
          }
          description
            "Priority level";
        }

        leaf bandwidth {
          type ietf-rt-t:bandwidth-ieee-float32;
          description
            "Bandwidth reservable on the link for a particular
             priority";
        }
      }
    }

    container link-protection-type {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:" +
           "bgp-ls-topo-attr-link-protection-type')" {
        description
          "Only include the link-protection-type container when the
           type is bgp-ls-topo-attr-link-protection-type";
      }
      description
        "This container describes the protection capabilities of a
         link";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP. TLV 1093";

      leaf type {
        type uint16;
        description
          "Bit mask of protection capabilities";
      }
    }

    container adjacency-sids {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:bgp-ls-topo-attr-adjacency-sid')" {
        description
          "Only include the adjacency-sids container when the type
           is bgp-ls-topo-attr-adjacency-sid";
      }
      description
        "This container contains the Adjacency Segment Identifiers
         (SIDs) of an adjacency";
      reference
        "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
         Extensions for Segment Routing. TLV 1099";

      list adjacency-sid {
        key "label-index format";

        description
          "List of adjacency SID";

        uses bgp-ls-topo-adj-sid-attr;
      }
    }

    container lan-adjacency-sids {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:bgp-ls-topo-attr-lan-adjacency-sid')" {
        description
          "Only include the lan-adjacency-sids container when the
           type is bgp-ls-topo-attr-lan-adjacency-sid";
      }
      description
        "This container contains the Adjacency Segment Identifiers
         (SIDs) of an adjacency to any node in a LAN other than the
         pseudonode";
      reference
        "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
         Extensions for Segment Routing. TLV 1100";

      list adjacency-sid {
        key "label-index format";

        description
          "List of LAN adjacency SID";

        uses bgp-ls-topo-adj-sid-attr;

        leaf neighbor-id {
          type union {
            type inet:ipv4-address;
            type ietf-isis-t:system-id;
          }
          description
            "Neighbor ID";
        }
      }
    }

    container aslas {
      when "derived-from-or-self(../type, " +
           "'bgp-ls-topo-t:bgp-ls-topo-attr-asla')" {
        description
          "Only include the aslas container when the type is
           bgp-ls-topo-attr-asla";
      }
      description
        "This container acts as a container for link attributes
         that require application-specific definition";
      reference
        "RFC 9294: Application-Specific Link Attributes
         Advertisement Using the Border Gateway Protocol - Link
         State (BGP-LS). TLV 1122";

      list asla {
        key "sabm udabm";

        description
          "List of Application Specific Link Attributes (ASLA)";

        leaf sabm {
          type binary {
            length "0|4|8";
          }
          description
            "Standard Application Identifier Bit Mask (SABM).
             Optional bit mask of length 0, 4, or 8 octets where
             each bit represents a single standard application.";
          reference
            "RFC 9294: Application-Specific Link Attributes
             Advertisement Using the Border Gateway Protocol - Link
             State (BGP-LS), Section 2";
        }

        leaf udabm {
          type binary {
            length "0|4|8";
          }
          description
            "User-Defined Application Identifier Bit Mask (UDABM).
             Optional bit mask of length 0, 4, or 8 octets where
             each bit represents a single user-defined
             application.";
          reference
            "RFC 9294: Application-Specific Link Attributes
             Advertisement Using the Border Gateway Protocol - Link
             State (BGP-LS), Section 2;";
        }

        list asla-attribute {
          key "type";

          description
            "List of ASLA attribute types.";

          leaf type {
            type identityref {
              base bgp-ls-topo-t:bgp-ls-topo-attr-type;
            }
            description
              "The type of ASLA attribute";
          }

          container srlgs {
            when "derived-from-or-self(../type, " +
                 "'bgp-ls-topo-t:bgp-ls-topo-attr-srlg')" {
              description
                "Only include the srlgs container when the type is
                 bgp-ls-topo-attr-srlg";
            }
            description
              "This container specifies the Shared Risk Link Groups
               (SRLGs) of a link";
            reference
              "RFC 9552: Distribution of Link-State and Traffic
               Engineering Information Using BGP. TLV 1096";

            uses bgp-ls-topo-srlg-attr;
          }

          uses bgp-ls-topo-common-link-asla-l2-bundle-member-attr;
        }
      }
    }
  }

  grouping bgp-ls-topo-srv6-sid-struct-attr {
    description
      "Grouping for the BGP-LS topology SRv6 SID
       structure attribute";

    leaf locator-block-len {
      type uint8;
      units "bits";
      description
        "Locator block length";
    }

    leaf locator-node-len {
      type uint8;
      units "bits";
      description
        "Locator node length";
    }

    leaf function-len {
      type uint8;
      units "bits";
      description
        "Function length";
    }

    leaf arg-len {
      type uint8;
      units "bits";
      description
        "Argument length";
    }
  }

  grouping bgp-ls-topo-srv6-endpoint-behavior-attr {
    description
      "Grouping for the BGP-LS topology SRv6 endpoint
       behavior attribute";

    leaf endpoint-behavior {
      type uint8;
      description
        "Endpoint behavior of the SID";
    }

    leaf flags {
      type binary {
        length "1";
      }
      description
        "Flags associated with the SRv6 endpoint behavior";
    }

    leaf algorithm {
      type uint8;
      description
        "Algorithm associated with the SID";
    }
  }

  grouping bgp-ls-topo-srv6-end-x-sid-attr {
    description
      "Grouping for the BGP-LS topology SRv6 End.X SID
       attribute";

    leaf sid {
      type inet:ipv6-address;
      description
        "SRv6 SID as a 128-bit value";
    }

    leaf weight {
      type uint8;
      description
        "Weight associated with the SID for load balancing purpose";
    }

    uses bgp-ls-topo-srv6-endpoint-behavior-attr;
    uses bgp-ls-topo-srv6-sid-struct-attr;
  }

  grouping bgp-ls-topo-unknown-attr {
    description
      "Grouping for the BGP-LS topology unknown attributes";

    list unknown {
      key "type";

      description
        "List of node FAD attribute types.";

      leaf type {
        type uint16;
        description
          "Attribute type.";
        reference
          "RFC 9552: Distribution of Link-State and Traffic
           Engineering Information Using BGP, Section 5.3.";
      }

      leaf value {
        type yang:hex-string;
        description
          "Attribute value.";
        reference
          "RFC 9552: Distribution of Link-State and Traffic
           Engineering Information Using BGP, Section 5.3.";
      }
    }
  }

  grouping bgp-ls-topo-node-attr {
    description
      "Grouping for the BGP-LS topology node attributes";

    container node-attributes {
      description
        "Enclosing container for node attributes list";

      list node-attribute {
        key "type";

        description
          "List of node attribute types.";

        leaf type {
          type identityref {
            base bgp-ls-topo-t:bgp-ls-topo-attr-type;
          }
          description
            "The type of node attribute";
        }

        container local-ipv4-router-ids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-local-ipv4-routerid')" {
            description
              "Only include the local-ipv4-router-ids container
               when the type is
               bgp-ls-topo-attr-local-ipv4-routerid";
          }
          description
            "This container describes the auxiliary Router-IDs used
             by the IGP.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1028";

          uses bgp-ls-topo-ipv4-router-id-attr;
        }

        container local-ipv6-router-ids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-local-ipv6-routerid')" {
            description
              "Only include the local-ipv6-router-ids container
               when the type is
               bgp-ls-topo-attr-local-ipv6-routerid";
          }
          description
            "This container describes the auxiliary Router-IDs used
             by the IGP.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1029";

          uses bgp-ls-topo-ipv6-router-id-attr;
        }

        container unknowns {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-unknowns')" {
          description
              "Only include the unknowns container when the type is
              bgp-ls-topo-attr-unknowns";
          }
          description
            "This container describes the unknown attributes.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP.";

          uses bgp-ls-topo-unknown-attr;
        }

        container multi-topology-ids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-multi-topology-id')" {
            description
              "Only include the multi-topology-ids container
               when the type is
               bgp-ls-topo-attr-multi-topology-id";
          }
          description
            "This container defines topologies.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 263";

          leaf-list multi-topology-id {
            type uint16;
            description
              "List of Multi-Topology ID";
          }
        }

        container node-flag-bits {
          when "derived-from-or-self(../type, " +
                "'bgp-ls-topo-t:bgp-ls-topo-attr-node-flag-bits')" {
            description
              "Only include the node-flag-bits container when
               the type is bgp-ls-topo-attr-node-flag-bits";
          }
          description
            "This container defines node attributes as a bit mask.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1024";

          leaf flags {
            type bgp-ls-topo-t:node-flag-bits;
            description
              "Node flags";
          }
        }

        container opaque-node-attribute {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-opaque-node')" {
          description
              "Only include the opaque-node-attribute container when
               the type is bgp-ls-topo-attr-opaque-node";
          }
          description
            "This container defines an envelope that transparently
             carries optional Node Attribute TLVs advertised by a
             router";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1025";

          uses bgp-ls-topo-opaque-attribute;
        }

        container node-name {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-node-name')" {
          description
              "Only include the node-name container when the
               type is bgp-ls-topo-attr-node-name";
          }
          description
            "This container identifies the symbolic name of
             the router node";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1026";

          leaf name {
            type string {
              length "1..255";
            }
            description
              "Node name";
          }
        }

        container sr-capabilities {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-sr-capabilities')" {
          description
              "Only include the sr-capabilities container when
               the type is bgp-ls-topo-attr-sr-capabilities";
          }
          description
            "This container defines node's Segment Routing (SR)
             capabilities including its Segment Routing Global Base
             (SRGB) range(s)";
          reference
            "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing. TLV 1034";

          list srgb {
            key "start-label";

            description
              "List of SRGB";

            leaf start-label {
              type ietf-rt-t:mpls-label;
              description
                "First label in the range";
            }
            leaf range-size {
              type uint32;
              description
                "Number of labels in the range";
            }
          }

          leaf isis-flags {
            type binary {
              length "1";
            }
            description
              "ISIS flags for IS-IS.";
            reference
              "RFC 8667: IS-IS Extensions for Segment Routing,
               Section 3.1.";
          }
        }

        container sr-local-block {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-srlb')" {
          description
              "Only include the sr-local-block container when
               the type is bgp-ls-topo-attr-srlb";
          }
          description
            "This container contains the range(s) of labels
             reserved by the node for local SIDs (Segment
             Identifiers)";
          reference
            "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing. TLV 1036";

          list srlb {
            key "start-label";

            description
              "List of SRLB";

            leaf start-label {
              type ietf-rt-t:mpls-label;
              description
                "First label in the range";
            }
            leaf range-size {
              type uint32;
              description
                "Number of labels in the range";
            }
          }
        }

        container sr-algorithm {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-sr-algorithm')" {
          description
              "Only include the sr-algorithm container when the
               type is bgp-ls-topo-attr-sr-algorithm";
          }
          description
            "This container defines Segment Routing (SR) algorithms
             supported by the node";
          reference
            "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing. TLV 1035";

          leaf-list algorithm {
            type uint8;
            description
              "List of SR algorithms";
          }
        }

        container node-msd {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-node-msd')" {
          description
              "Only include the node-msd container when the type is
              bgp-ls-topo-attr-node-msd";
          }
          description
            "This container defines node Maximum SID Depth (MSD).";
          reference
            "RFC 8814: Signaling Maximum SID Depth (MSD) Using the
            Border Gateway Protocol - Link State. TLV 266";

          uses bgp-ls-topo-msd-attr;
        }

        container fads {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-fad')" {
          description
              "Only include the fads container when the type is
              bgp-ls-topo-attr-fad";
          }
          description
            "This container defines the Flexible Algorithms
             supported by the node";
          reference
            "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Flexible Algorithm Advertisement.
             TLV 1039";

          list fad {
            key "algorithm";

            description
              "List of FADs";

            leaf algorithm {
              type uint8 {
                range "128..255";
              }
              description
                "Flexible algorithm";
            }

            leaf metric-type {
              type uint8;
              description
                "Metric type";
            }

            leaf calc-type {
              type uint8;
              description
                "Calculation type";
            }

            leaf priority {
              type uint8;
              description
                "Priority of the FAD advertisement";
            }

            container node-fad-attributes {
              description
                "Enclosing container for node FAD attributes list";

              list node-fad-attribute {
                key "type";

                description
                  "List of node FAD attribute types.";

                leaf type {
                  type identityref {
                    base bgp-ls-topo-t:bgp-ls-topo-attr-fad-type;
                  }
                  description
                    "The type of node FAD attribute";
                }

                container exclude-any-affinity {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fad-excl-any-aff')" {
                    description
                      "Only include the exclude-any-affinity
                       container when the type is
                       bgp-ls-topo-attr-fad-excl-any-aff";
                  }
                  description
                    "This container contains the affinity constraints
                     associated with the FAD and enables the exclusion
                     of links carrying any of the specified affinities
                     from the computation of the specific algorithm";
                  reference
                    "RFC 9351: Border Gateway Protocol - Link State
                     (BGP-LS) Extensions for Flexible Algorithm
                     Advertisement. TLV 1040";

                  uses bgp-ls-topo-eag-attr;
                }

                container include-any-affinity {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fad-incl-any-aff')" {
                    description
                      "Only include the include-any-affinity container
                       when the type is
                       bgp-ls-topo-attr-fad-incl-any-aff";
                  }
                  description
                    "This container contains the affinity constraints
                     associated with the FAD and enables the
                     inclusion of links carrying any of the specified
                     affinities from the computation of the specific
                     algorithm";
                  reference
                    "RFC 9351: Border Gateway Protocol - Link State
                     (BGP-LS) Extensions for Flexible Algorithm
                     Advertisement. TLV 1041";

                  uses bgp-ls-topo-eag-attr;
                }

                container include-all-affinity {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fad-incl-all-aff')" {
                    description
                      "Only include the include-all-affinity
                       container when the type is
                       bgp-ls-topo-attr-fad-incl-all-aff";
                  }
                  description
                    "This container contains the affinity constraints
                     associated with the FAD and enables the inclusion
                     of links carrying all of the specified affinities
                     from the computation of the specific algorithm";
                  reference
                    "RFC 9351: Border Gateway Protocol - Link State
                     (BGP-LS) Extensions for Flexible Algorithm
                     Advertisement. TLV 1042";

                  uses bgp-ls-topo-eag-attr;
                }

                container flags {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:bgp-ls-topo-attr-fad-flags')" {
                    description
                      "Only include the flags container when the type is
                      bgp-ls-topo-attr-fad-flags";
                  }
                  description
                    "This container contains the flags associated with
                     the FAD";
                  reference
                    "RFC 9351: Border Gateway Protocol - Link State
                     (BGP-LS) Extensions for Flexible Algorithm
                     Advertisement. TLV 1043";

                  leaf flags {
                    type binary {
                      length "1..65535";
                    }
                    description
                      "Bit mask representing the FAD flags. The
                       flags are derived from the IS-IS and OSPF
                       protocol-specific Flexible Algorithm
                       Definition Flags sub-TLV.";
                    reference
                      "RFC 9350: IGP Flexible Algorithm.";
                  }
                }

                container exclude-srlg {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fad-excl-srlg')" {
                    description
                      "Only include the exclude-srlg container when the
                       type is bgp-ls-topo-attr-fad-excl-srlg";
                  }
                  description
                    "This container contains the affinity constraints
                     associated with the FAD and enables the
                     exclusion of links associated with any of the
                     specified SRLG from the computation of the
                     specific algorithm";
                  reference
                    "RFC 9351: Border Gateway Protocol - Link State
                     (BGP-LS) Extensions for Flexible Algorithm
                     Advertisement. TLV 1045";

                  uses bgp-ls-topo-srlg-attr;
                }

                container exclude-minimum-bw {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fad-excl-minimum-bw')" {
                    description
                      "Only include the exclude-minimum-bw container
                       when the type is
                       bgp-ls-topo-attr-fad-excl-minimum-bw";
                  }
                  description
                    "This container enables the exclusion of links not
                     having a minimum specified bandwidth from the
                     computation of the specific algorithm";
                  reference
                    "RFC TBD: BGP-LS extensions for IP Flexible
                     Algorithms and Bandwidth, Delay, Metrics and
                     Constraints. TLV TBD (1049)";

                  uses bgp-ls-topo-bw-attr;
                }

                container exclude-maximum-delay {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fad-excl-maximum-delay')" {
                    description
                      "Only include the exclude-maximum-delay
                       container when the type is
                       bgp-ls-topo-attr-fad-excl-maximum-delay";
                  }
                  description
                    "This container enables the exclusion of links
                     having delay above a maximum specified delay
                     from the computation of the specific algorithm";
                  reference
                    "RFC TBD: BGP-LS extensions for IP Flexible
                     Algorithms and Bandwidth, Delay, Metrics and
                     Constraints. TLV TBD (1050)";

                  uses bgp-ls-topo-delay-attr;
                }

                container exclude-any-reverse-affinity {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fad-excl-any-rev-aff')" {
                    description
                      "Only include the exclude-any-reverse-affinity
                       container when the type is
                       bgp-ls-topo-attr-fad-excl-any-rev-aff";
                  }
                  description
                    "This container contains the affinity constraints
                     associated with the FAD and enables the exclusion
                     of links carrying any of the specified affinities
                     in the reverse direction from the computation of
                     the specific algorithm";
                  reference
                    "RFC TBD: BGP-LS extensions for Flexible
                     Algorithms Reverse Affinity Constraint.
                     TLV TBD (1053)";

                  uses bgp-ls-topo-eag-attr;
                }

                container include-any-reverse-affinity {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fad-incl-any-rev-aff')" {
                    description
                      "Only include the include-any-reverse-affinity
                       container when the type is
                       bgp-ls-topo-attr-fad-incl-any-rev-aff";
                  }
                  description
                    "This container contains the affinity constraints
                     associated with the FAD and enables the
                     inclusion of links carrying any of the specified
                     affinities in the reverse direction from the
                     computation of the specific algorithm";
                  reference
                    "RFC TBD: BGP-LS extensions for Flexible
                     Algorithms Reverse Affinity Constraint.
                     TLV TBD (1054)";

                  uses bgp-ls-topo-eag-attr;
                }

                container include-all-reverse-affinity {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fad-incl-all-rev-aff')" {
                    description
                      "Only include the include-all-reverse-affinity
                       container when the type is
                       bgp-ls-topo-attr-fad-incl-all-rev-aff";
                  }
                  description
                    "This container contains the affinity constraints
                     associated with the FAD and enables the
                     inclusion of links carrying all of the specified
                     affinities in the reverse direction from the
                     computation of the specific algorithm";
                  reference
                    "RFC TBD: BGP-LS extensions for Flexible
                     Algorithms Reverse Affinity Constraint.
                     TLV TBD (1055)";

                  uses bgp-ls-topo-eag-attr;
                }

                container fa-unsupported-tlvs {
                  when "derived-from-or-self(../type, " +
                       "'bgp-ls-topo-t:" +
                       "bgp-ls-topo-attr-fa-unsupported')" {
                    description
                      "Only include the fa-unsupported-tlvs container
                       when the type is
                       bgp-ls-topo-attr-fa-unsupported";
                  }
                  description
                    "Indicates the presence of unsupported Flexible
                     Algorithm Definition (FAD) TLVs";
                  reference
                    "RFC 9351: Border Gateway Protocol - Link State
                     (BGP-LS) Extensions for Flexible Algorithm
                     Advertisement. TLV 1046";

                  leaf protocol-id {
                    type bgp-ls-topo-t:protocol;
                    description
                      "BGP-LS protocol advertising the FAD";
                  }

                  leaf-list type {
                    type uint16;
                    description
                      "List of unsupported TLV types.";
                  }
                }
              }
            }
          }
        }

        container isis-area-identifiers {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-isis-area-identifier')" {
          description
              "Only include the isis-area-identifiers
               container when the type is
               bgp-ls-topo-attr-isis-area-identifier";
          }
          description
            "This container contains the ISIS area addresses";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1027";

          leaf-list area-address {
            type ietf-isis-t:area-address;
            description
            "List of ISIS area addresses";
          }
        }

        container srv6-capabilities-flags {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-srv6-cap-flags')" {
            description
              "Only include the srv6-cap-flags container when the
               type is bgp-ls-topo-attr-srv6-cap-flags";
          }
          description
            "This container defines SRv6 capability flags.";
          reference
            "RFC 9514: SRv6 BGP-LS extensions.";

          leaf flags {
            type binary {
              length "1";
            }
            description
              "SRv6 capability flags.";
          }
        }
      }
    }
  }

  grouping bgp-ls-topo-igp-link-attr {
    description
      "Grouping for the BGP-LS topology link attributes";

    container link-attributes {
      description
        "Enclosing container for link attributes list";

      list link-attribute {
        key "type";

        description
          "List of link attribute types.";

        leaf type {
          type identityref {
            base bgp-ls-topo-t:bgp-ls-topo-attr-type;
          }
          description
            "The type of link attribute";
        }

        uses bgp-ls-topo-common-link-asla-l2-bundle-member-attr;

        container link-local-remote-identifiers {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-link-local-remote-identifiers')" {
            description
              "Only include the link-local-remote-identifiers
               container when the type is
               bgp-ls-topo-attr-link-local-remote-identifiers";
          }
          description
            "This container defines link local and remote
             identifiers.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 258";

          leaf local-identifier {
            type uint32;
            description
              "Link local identifier";
          }

          leaf remote-identifier {
            type uint32;
            description
              "Link remote identifier";
          }
        }

        container link-msd {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-link-msd')" {
            description
              "Only include the link-msd container when the type is
               bgp-ls-topo-attr-link-msd";
          }
          description
            "This container defines link Maximum SID Depth (MSD).";
          reference
            "RFC 8814: Signaling Maximum SID Depth (MSD) Using the
             Border Gateway Protocol - Link State. TLV 267";

          uses bgp-ls-topo-msd-attr;
        }

        container local-ipv4-router-ids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-local-ipv4-routerid')" {
            description
              "Only include the local-ipv4-router-ids container
               when the type is
               bgp-ls-topo-attr-local-ipv4-routerid";
          }
          description
            "This container describes the auxiliary Router-IDs used
             by the IGP.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1028";

          uses bgp-ls-topo-ipv4-router-id-attr;
        }

        container local-ipv6-router-ids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-local-ipv6-routerid')" {
            description
              "Only include the local-ipv6-router-ids container
               when the type is
               bgp-ls-topo-attr-local-ipv6-routerid";
          }
          description
            "This container describes the auxiliary Router-IDs used
             by the IGP.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1029";

          uses bgp-ls-topo-ipv6-router-id-attr;
        }

        container remote-ipv4-router-ids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-remote-ipv4-routerid')" {
            description
              "Only include the remote-ipv4-router-ids container
               when the type is
               bgp-ls-topo-attr-remote-ipv4-routerid";
          }
          description
            "This container describes the auxiliary Router-IDs
             used by the IGP.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1030";

          uses bgp-ls-topo-ipv4-router-id-attr;
        }

        container remote-ipv6-router-ids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-remote-ipv6-routerid')" {
            description
              "Only include the remote-ipv6-router-ids container
               when the type is
               bgp-ls-topo-attr-remote-ipv6-routerid";
          }
          description
            "This container describes the auxiliary Router-IDs
             used by the IGP.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1031";

          uses bgp-ls-topo-ipv6-router-id-attr;
        }

        container mpls-protocol-mask {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-mpls-protocol-mask')" {
            description
              "Only include the mpls-protocol-mask container when
               the type is bgp-ls-topo-attr-mpls-protocol-mask";
          }
          description
            "This container contains the bit mask describing MPLS
             signaling protocols enabled";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1094";

          leaf mask {
            type uint8;
            description
              "Bit mask of MPLS signaling protocols enabled";
          }
        }

        container igp-metric {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-igp-metric')" {
            description
              "Only include the igp-metric container when the type
               is bgp-ls-topo-attr-igp-metric";
          }
          description
            "This container specifies the metric of a link";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1095";

          leaf metric {
            type uint32;
            description
              "IGP metric";
          }
        }

        container srlgs {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-srlg')" {
            description
              "Only include the srlgs container when the type is
               bgp-ls-topo-attr-srlg";
          }
          description
            "This container specifies the Shared Risk Link Groups
             (SRLGs) of a link";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1096";

          uses bgp-ls-topo-srlg-attr;
        }

        container opaque-link-attribute {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-opaque-link')" {
            description
              "Only include the opaque-link-attribute container
               when the type is bgp-ls-topo-attr-opaque-link";
          }
          description
            "This container defines an envelope that transparently
             carries optional Link Attribute TLVs advertised by a
             router";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1097";

          uses bgp-ls-topo-opaque-attribute;
        }

        container link-name {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-link-name')" {
            description
              "Only include the link-name container when the
               type is bgp-ls-topo-attr-link-name";
          }
          description
            "This container identifies the symbolic name of
             the link";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1098";

          leaf name {
            type string {
              length "1..255";
            }
            description
              "Link name";
          }
        }

        container srv6-end-x-sids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-srv6-end-x-sid')" {
            description
              "Only include the srv6-end-x-sids container when the
               type is bgp-ls-topo-attr-srv6-end-x-sid";
          }
          description
            "This container contains the Segment Routing over IPv6
             (SRv6) Segment Identifiers (SIDs) associated with an
             adjacency.";
          reference
            "RFC 9514: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing over IPv6 (SRv6).
             TLV 1106";

          list srv6-end-x-sid {
            key "sid";

            description
              "List of SRv6 End.X SID";

            uses bgp-ls-topo-srv6-end-x-sid-attr;
          }
        }

        container srv6-lan-end-x-sids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-srv6-isis-lan-end-x-sid')" +
               " or derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-srv6-ospf-lan-end-x-sid')" {
            description
              "Only include the srv6-lan-end-x-sids container when
               the type is bgp-ls-topo-attr-srv6-isis-lan-end-x-sid
               or bgp-ls-topo-attr-srv6-ospf-lan-end-x-sid";
          }
          description
            "This container contains the Segment Routing over IPv6
             (SRv6) Segment Identifiers (SIDs) of an adjacency to
             any node in a LAN other than the pseudonode";
          reference
            "RFC 9514: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing over IPv6 (SRv6).
             TLV 1107 / 1108";

          list srv6-end-x-sid {
            key "sid";

            description
              "List of SRv6 LAN End.X SID";

            uses bgp-ls-topo-srv6-end-x-sid-attr;

            leaf neighbor-id {
              type union {
                type inet:ipv4-address;
                type ietf-isis-t:system-id;
              }
              description
                "Neighbor ID";
            }
          }
        }

        uses bgp-ls-topo-common-link-l2-bundle-member-attr;

        container l2-bundle-members {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-l2-bundle-member')" {
            description
              "Only include the l2-bundle-members container when
               the type is bgp-ls-topo-attr-l2-bundle-member";
          }
          description
            "This container identifies an L2 bundle member link
             that is associated with a parent L3 link";
          reference
            "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing. TLV 1172";

          list l2-bundle-member {
            key "member-descriptor";

            description
              "List of L2 bundle members";

            leaf member-descriptor {
              type uint32;
              description
                "Link local identifier";
            }

            list bundle-member-attribute {
              key "type";

              description
                "List of bundle member attribute types.";

              leaf type {
                type identityref {
                  base bgp-ls-topo-t:bgp-ls-topo-attr-type;
                }
                description
                  "The type of bundle member attribute";
              }

              uses
                bgp-ls-topo-common-link-asla-l2-bundle-member-attr;
              uses bgp-ls-topo-common-link-l2-bundle-member-attr;
            }
          }
        }
      }
    }
  }

  grouping bgp-ls-topo-prefix-attr {
    description
      "Grouping for the BGP-LS topology prefix attributes";

    container prefix-attributes {
      description
        "Enclosing container for prefix attributes list";

      list prefix-attribute {
        key "type";

        description
          "List of prefix attribute types.";

        leaf type {
          type identityref {
            base bgp-ls-topo-t:bgp-ls-topo-attr-type;
          }
          description
            "The type of prefix attribute";
        }

        container flexible-algorithm-prefix-metric {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-fa-prefix-metric')" {
            description
              "Only include the flexible-algorithm-prefix-metric
               container when the type is
               bgp-ls-topo-attr-fa-prefix-metric";
          }
          description
            "This container defines the metric associated with the
             prefix for a particular Flexible Algorithm (FA)";
          reference
            "RFC 9351: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Flexible Algorithm Advertisement.
             TLV 1044";

          list fa-prefix-metric {
            key "algorithm";

            description
              "List of Flexible Algorithm prefix metrics";

            leaf metric {
              type uint32;
              description
                "Flexible Algorithm prefix metric";
            }

            leaf algorithm {
              type uint8 {
                range "128..255";
              }
              description
                "Flexible Algorithm";
            }

            leaf flags {
              type binary {
                length "1";
              }
              description
                "Flags associated with the Flexible Algorithm prefix
                 metric as defined in RFC 9350 for OSPFv2";
            }
          }
        }

        container igp-flags {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-igp-flags')" {
            description
              "Only include the igp-flags container when the type is
               bgp-ls-topo-attr-igp-flags";
          }
          description
            "This container specifies the flags and bits assigned
             to a prefix";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1152";

          leaf flags {
            type bgp-ls-topo-t:igp-flags-bits;
            description
              "IGP flags";
          }
        }

        container igp-route-tags {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-igp-route-tag')" {
            description
              "Only include the igp-route-tags container when the
               type is bgp-ls-topo-attr-igp-route-tag";
          }
          description
            "This container specifies the tags of a prefix";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1153";

          leaf-list tag {
            type uint32;
            description
              "List of IGP route tags";
          }
        }

        container extended-igp-route-tags {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-ext-igp-route-tag')" {
            description
              "Only include the extended-igp-route-tags container
               when the type is bgp-ls-topo-attr-ext-igp-route-tag";
          }
          description
            "This container specifies the extended route tags of a
             prefix";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1154";

          leaf-list tag {
            type uint64;
            description
              "List of IGP extended route tags";
          }
        }

        container prefix-metric {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-prefix-metric')" {
            description
              "Only include the prefix-metric container when the
               type is bgp-ls-topo-attr-prefix-metric";
          }
          description
            "This container specifies the metric of a prefix";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1155";

          leaf metric {
            type uint32;
            description
              "Prefix metric";
          }
        }

        container ospf-forwarding-address {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-ospf-forwarding-address')" {
            description
              "Only include the ospf-forwarding-address container
               when the type is
               bgp-ls-topo-attr-ospf-forwarding-address";
          }
          description
            "This container specifies the forwarding address of a
             prefix as known in original OSPF advertisement";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1156";

          leaf forw-address {
            type inet:ip-address;
            description
              "Forwarding address";
          }
        }

        container opaque-prefix-attribute {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-opaque-prefix')" {
            description
              "Only include the opaque-prefix-attribute container
               when the type is bgp-ls-topo-attr-opaque-prefix";
          }
          description
            "This container defines an envelope that transparently
             carries optional Prefix Attribute TLVs advertised by a
             router";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP. TLV 1157";

          uses bgp-ls-topo-opaque-attribute;
        }

        container prefix-sids {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-prefix-sid')" {
            description
              "Only include the prefix-sids container when the type
               is bgp-ls-topo-attr-prefix-sid";
          }
          description
            "This container contains the prefix Segment Identifiers
             (SIDs) of a prefix";
          reference
            "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing. TLV 1158";

          list prefix-sid {
            key "label-index format";

            description
              "List of prefix SID";

            leaf label-index {
              type uint32;
              description
                "Label or index";
            }

            leaf format {
              type bgp-ls-topo-t:sid-format;
              description
                "Format of the SID";
            }

            leaf flags {
              type binary {
                length "1";
              }
              description
                "Flags as defined in Section 2.1.1 of RFC 8667 for
                 ISIS, Section 5 of RFC 8665 for OSPFv2 and
                 Section 6 of RFC 8665 for OSPFv3";
            }

            leaf algorithm {
              type uint8;
              description
                "Algorithm";
            }
          }
        }

        container prefix-range {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-prefix-range')" {
            description
              "Only include the prefix-range container when the
               type is bgp-ls-topo-attr-prefix-range";
          }
          description
            "This container defines a range of
             prefix-to-SID mapping.";
          reference
            "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing. TLV 1159";

          leaf index {
            type uint32;
            description
              "Starting index of the range";
          }

          leaf range-size {
            type uint16;
            description
              "Number of prefixes covered by the advertisement";
          }

          leaf flags {
            type binary {
              length "1";
            }
            description
              "Flags associated with the range taken from IS-IS
               SID/Label Binding TLV flags as defined in
               Section 2.4.1 of RFC 8667 for ISIS, OSPFv2 OSPF
               Extended Prefix Range TLV flags as defined in
               Section 4 of RFC 8665 for OSPFv2 and OSPFv3
               Extended Prefix Range TLV flags as defined in
               Section 5 of RFC 8666 for OSPFv3";
          }

          leaf algorithm {
            type uint8;
            description
              "Algorithm";
          }

          leaf sid-flags {
            type binary {
              length "1";
            }
            description
              "Flags associated with the SID as defined in Section
               2.1.1 of RFC 8667 for ISIS, Section 5 of RFC 8665 for
               OSPFv2 and Section 6 of RFC 8665 for OSPFv3";
          }
        }

        container srv6-locator {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:bgp-ls-topo-attr-srv6-locator')" {
            description
              "Only include the srv6-locator container when the type
               is bgp-ls-topo-attr-srv6-locator";
          }
          description
            "This container contains the Segment Routing over IPv6
             (SRv6) locator information associated with a prefix.";
          reference
            "RFC 9514: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing over IPv6 (SRv6).
             TLV 1162";

          leaf metric {
            type uint32;
            description
              "Flex algo prefix metric";
          }

          leaf flags {
            type binary {
              length "1";
            }
            description
              "Flags associated with the locator, copied from the
               IS-IS SRv6 Locator TLV (Section 7.1 of RFC 9352) for
               ISIS or the OSPFv3 SRv6 Locator TLV (Section 7.1 of
               RFC 9513) for OSPFv3";
          }

          leaf algorithm {
            type uint8;
            description
              "Algorithm associated with the locator";
          }
        }

        container prefix-attribute-flags {
          when "derived-from-or-self(../type, " +
            "'bgp-ls-topo-t:" +
            "bgp-ls-topo-attr-prefix-attribute-flags')" {
            description
              "Only include the prefix-attribute-flags container
            when the type is
            bgp-ls-topo-attr-prefix-attribute-flags";
          }
          description
            "This container defines the prefix attribute flags of a
             prefix";
          reference
            "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing. TLV 1170";

          leaf flags {
            type binary {
              length "1";
            }
            description
              "Prefix attribute flags as defined in Section 2.1 of
               RFC 7684 for OSPFv2, Appendix A.4.1.1 of RFC 5340 for
               OSPFv3, and Section 2.1 of RFC 7794 for IS-IS";
          }
        }

        container prefix-source-router-id {
          when "derived-from-or-self(../type, " +
            "'bgp-ls-topo-t:" +
            "bgp-ls-topo-attr-prefix-src-router-id')" {
            description
              "Only include the prefix-source-router-id container
               when the type is
               bgp-ls-topo-attr-prefix-src-router-id";
          }
          description
            "This container defines the source router identifier of
             a prefix";
          reference
            "RFC 9085: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing. TLV 1171";

          leaf source-router-id {
            type inet:ip-address;
            description
              "Source router ID";
          }
        }

        container unknowns {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-unknowns')" {
          description
              "Only include the unknowns container when the type is
              bgp-ls-topo-attr-unknowns";
          }
          description
            "This container describes the unknown attributes.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP.";

          uses bgp-ls-topo-unknown-attr;
        }
      }
    }
  }

  grouping bgp-ls-topo-srv6-sid-attr {
    description
      "Grouping for the BGP-LS topology SRv6 SID attributes";

    container srv6-sid-attributes {
      description
        "Enclosing container for SRv6 SID attributes list";

      list srv6-sid-attribute {
        key "type";

        description
          "List of SRv6 SID attribute types.";

        leaf type {
          type identityref {
            base bgp-ls-topo-t:bgp-ls-topo-attr-type;
          }
          description
            "The type of SRv6 SID attribute";
        }

        container srv6-endpoint-behavior {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-srv6-endpoint-behavior')" {
            description
              "Only include the srv6-endpoint-behavior container
               when the type is
               bgp-ls-topo-attr-srv6-endpoint-behavior";
          }
          description
            "This container contains the SRv6 endpoint behavior.";
          reference
            "RFC 9514: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing over IPv6 (SRv6).
             SRv6 endpoint behavior. TLV 1250.";

          uses bgp-ls-topo-srv6-endpoint-behavior-attr;
        }

        container srv6-sid-structure {
          when "derived-from-or-self(../type, " +
               "'bgp-ls-topo-t:" +
               "bgp-ls-topo-attr-srv6-sid-structure')" {
            description
              "Only include the srv6-sid-structure container
               when the type is
               bgp-ls-topo-attr-srv6-sid-structure";
          }
          description
            "This container defines the SRv6 SID structure.";
          reference
            "RFC 9514: Border Gateway Protocol - Link State (BGP-LS)
             Extensions for Segment Routing over IPv6 (SRv6).
             SRv6 SID structure. TLV 1252.";

          uses bgp-ls-topo-srv6-sid-struct-attr;
        }

        container unknowns {
          when "derived-from-or-self(../type, " +
              "'bgp-ls-topo-t:bgp-ls-topo-attr-unknowns')" {
          description
              "Only include the unknowns container when the type is
              bgp-ls-topo-attr-unknowns";
          }
          description
            "This container describes the unknown attributes.";
          reference
            "RFC 9552: Distribution of Link-State and Traffic
             Engineering Information Using BGP.";

          uses bgp-ls-topo-unknown-attr;
        }
      }
    }
  }
}
<CODE ENDS>

Figure 5: YANG Model for BGP-LS Topology Attributes

The ietf-bgp-ls-topo-ospf submodule defines three groupings that capture the OSPF-specific NLRI descriptor fields shared between OSPFv2 and OSPFv3: bgp-ls-ospf-node-common (for node NLRIs), bgp-ls-ospf-link-common (for link NLRIs), and bgp-ls-ospf-prefix-common (for prefix NLRIs). Each grouping includes the is-as-scoped leaf and the area-id leaf. When is-as-scoped is true, the NLRI is scoped to the entire AS and the area-id is not applicable; when false, the area-id identifies the OSPF area to which the NLRI belongs. The route-type leaf in bgp-ls-ospf-prefix-common distinguishes intra-area, inter-area, external Type 1, external Type 2, NSSA Type 1, and NSSA Type 2 routes, as defined in Section 5.2.3.2 of [RFC9552].

These groupings are used by the ietf-bgp-lsdb module for all four OSPFv2/OSPFv3 list types (node, link, prefix, and SRv6 SID), eliminating duplication and ensuring that the OSPF descriptor fields are consistently defined across all NLRI types.

<CODE BEGINS> file "ietf-bgp-ls-topo-ospf@2026-06-29.yang"
submodule ietf-bgp-ls-topo-ospf {
  yang-version 1.1;

  belongs-to ietf-bgp-lsdb {
    prefix "bgp-lsdb";
  }

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 9911: Common YANG Data Types.";
  }

  import ietf-bgp-ls-topo-types {
    prefix bgp-ls-topo-t;
    reference
      "RFC XXXX: BGP Model for Link State Distribution.";
  }

  import ietf-routing-types {
    prefix ietf-rt-t;
    reference
      "RFC 8294: Common YANG Data Types for the Routing Area.";
  }

  import ietf-ospf {
    prefix ietf-ospf-t;
    reference
      "RFC 9129: YANG Data Model for the OSPF Protocol.";
  }

  organization
    "IETF LSVR Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/lsvr>
     WG List:  <lsvr@ietf.org>

     Authors: Mahesh Jethanandani (mjethanandani at gmail.com),
              Keyur Patel (keyur at arrcus.com)";

  description
    "This submodule contains groupings for OSPFv2/OSPFv3
     node and link NLRIs.

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

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

  revision 2026-06-29 {
    description
      "Initial Version";
    reference
      "RFC XXXX, BGP Model for Link State Distribution.";
  }

  grouping bgp-ls-ospf-node-common {
    description
      "Common fields for OSPFv2 and OSPFv3 node NLRIs.";

    leaf is-as-scoped {
      type boolean;
      description
        "When true, the NLRI is AS-scoped and the area-id
         is not applicable.";
    }

    leaf area-id {
      type ietf-ospf-t:area-id-type;
      description
        "Area ID.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 514.";
    }

    leaf router-id {
      type ietf-rt-t:router-id;
      description
        "Router ID.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 515.";
    }

    leaf dr-identifier {
      type union {
        type inet:ipv4-address;
        type uint32;
      }
      description
        "Designated Router (DR) Identifier.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 515.";
    }

    leaf as {
      type inet:as-number;
      description
        "Autonomous System (AS) number associated with the
         BGP process originating the NLRI.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 512.";
    }
  }

  grouping bgp-ls-ospf-link-common {
    description
      "Common fields for OSPFv2 and OSPFv3 link NLRIs.";

    leaf area-id {
      type ietf-ospf-t:area-id-type;
      description
        "Area ID.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 514.";
    }

    leaf as {
      type inet:as-number;
      description
        "Autonomous System (AS) number associated with the
         BGP process originating the NLRI.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 512.";
    }

    leaf local-router-id {
      type ietf-rt-t:router-id;
      description
        "Local Router ID.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 515.";
    }

    leaf remote-router-id {
      type ietf-rt-t:router-id;
      description
        "Remote Router ID.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 515.";
    }

    leaf local-id {
      type uint32;
      description
        "Local Identifier of a link.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.2. TLV 258.";
    }

    leaf remote-id {
      type uint32;
      description
        "Remote Identifier of a link.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.2. TLV 258.";
    }

    leaf local-ipv4-address {
      type inet:ipv4-address;
      description
        "Local IPv4 address of a link. Use 0.0.0.0 as a sentinel
         value when this address is not present (e.g., for
         unnumbered or IPv6-only links).";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.2. TLV 259.";
    }

    leaf remote-ipv4-address {
      type inet:ipv4-address;
      description
        "Remote IPv4 address of a link. Use 0.0.0.0 as a sentinel
         value when this address is not present (e.g., for
         unnumbered or IPv6-only links).";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.2. TLV 260.";
    }

    leaf multi-topology-id {
      type uint16;
      description
        "Multi Topology Identifier (MTID) of a link.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.2.1. TLV 263.";
    }
  }

  grouping bgp-ls-ospf-prefix-common {
    description
      "Common fields for OSPFv2 and OSPFv3 prefix NLRIs.";

    leaf is-as-scoped {
      type boolean;
      description
        "When true, the NLRI is AS-scoped and the area-id
         is not applicable.";
    }

    leaf area-id {
      type ietf-ospf-t:area-id-type;
      description
        "Area ID.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 514.";
    }

    leaf as {
      type inet:as-number;
      description
        "Autonomous System (AS) number associated with the
         BGP process originating the NLRI.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2. TLV 512.";
    }

    leaf router-id {
      type ietf-rt-t:router-id;
      description
        "Router ID.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.1. TLV 515.";
    }

    leaf route-type {
      type bgp-ls-topo-t:ospf-route-type;
      description
        "OSPF Route type of a prefix.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.3.1. TLV 264.";
    }

    leaf multi-topology-id {
      type uint16;
      description
        "Multi Topology Identifier (MTID) of a prefix.";
      reference
        "RFC 9552: Distribution of Link-State and Traffic
         Engineering Information Using BGP,
         Section 5.2.2.1. TLV 263.";
    }

  }
}
<CODE ENDS>

Figure 6: YANG Model for BGP-LS Topology OSPF

5. IANA Considerations

This memo registers the following namespace URIs in the IETF XML Registry [RFC3688]:

URI:
urn:ietf:params:xml:ns:yang:ietf-bgp-ls
Registrant Contact:
The IESG.
XML:
N/A; the requested URI is an XML namespace.
URI:
urn:ietf:params:xml:ns:yang:ietf-bgp-lsdb
Registrant Contact:
The IESG.
XML:
N/A; the requested URI is an XML namespace.
URI:
urn:ietf:params:xml:ns:yang:ietf-bgp-ls-topo-types
Registrant Contact:
The IESG.
XML:
N/A; the requested URI is an XML namespace.

This document registers the following YANG modules in the "YANG Module Names" registry [RFC6020]:

Name:
ietf-bgp-ls
Namespace:
urn:ietf:params:xml:ns:yang:ietf-bgp-ls
Prefix:
bgp-ls
Reference:
RFC XXXX
Name:
ietf-bgp-lsdb
Namespace:
urn:ietf:params:xml:ns:yang:ietf-bgp-lsdb
Prefix:
bgp-lsdb
Reference:
RFC XXXX
Name:
ietf-bgp-ls-topo-types
Namespace:
urn:ietf:params:xml:ns:yang:ietf-bgp-ls-topo-types
Prefix:
bgp-ls-topo-t
Reference:
RFC XXXX

6. Security Considerations

The YANG modules specified in this document define schemas for data that are designed to be accessed via network management protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS [RFC8446].

The Network Configuration Access Control Model (NACM) [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.

The ietf-bgp-ls module augments the BGP configuration model to add BGP-LS, BGP-LS-VPN, and BGP-LS-SPF address family configuration. These configuration nodes are writable and could be used to redirect topology information to unauthorized collectors if modified without proper authorization. In particular, unauthorized write access to the neighbor-level BGP-LS configuration could cause the router to distribute its LSDB contents to unintended recipients. These data nodes MUST be protected by NACM access control policies limiting write access to authorized administrators.

The ietf-bgp-lsdb module and its submodules contain only config false (operational state) data nodes representing the contents of the Link-State Database received from the network. These nodes are readable but not writable. The sensitive read-only data includes full network topology information: node identifiers, link endpoints, prefix advertisements, and SR/SRv6 label and SID assignments. An unauthorized party with read access to this data could reconstruct the network topology and identify traffic engineering paths, which could facilitate traffic interception or denial-of-service attacks. Access to these nodes SHOULD be restricted using NACM [RFC8341] rules to authorized management stations.

No RPC or action operations are defined in this document.

7. References

7.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC3688]
Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, , <https://www.rfc-editor.org/info/rfc3688>.
[RFC6020]
Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, , <https://www.rfc-editor.org/info/rfc6020>.
[RFC6241]
Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, , <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242]
Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, , <https://www.rfc-editor.org/info/rfc6242>.
[RFC7950]
Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, , <https://www.rfc-editor.org/info/rfc7950>.
[RFC8040]
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, , <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, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8294]
Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, "Common YANG Data Types for the Routing Area", RFC 8294, DOI 10.17487/RFC8294, , <https://www.rfc-editor.org/info/rfc8294>.
[RFC8340]
Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, , <https://www.rfc-editor.org/info/rfc8340>.
[RFC8341]
Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10.17487/RFC8341, , <https://www.rfc-editor.org/info/rfc8341>.
[RFC8349]
Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for Routing Management (NMDA Version)", RFC 8349, DOI 10.17487/RFC8349, , <https://www.rfc-editor.org/info/rfc8349>.
[RFC8446]
Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, , <https://www.rfc-editor.org/info/rfc8446>.
[RFC8814]
Tantsura, J., Chunduri, U., Talaulikar, K., Mirsky, G., and N. Triantafillis, "Signaling Maximum SID Depth (MSD) Using the Border Gateway Protocol - Link State", RFC 8814, DOI 10.17487/RFC8814, , <https://www.rfc-editor.org/info/rfc8814>.
[RFC9085]
Previdi, S., Talaulikar, K., Ed., Filsfils, C., Gredler, H., and M. Chen, "Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing", RFC 9085, DOI 10.17487/RFC9085, , <https://www.rfc-editor.org/info/rfc9085>.
[RFC9086]
Previdi, S., Talaulikar, K., Ed., Filsfils, C., Patel, K., Ray, S., and J. Dong, "Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing BGP Egress Peer Engineering", RFC 9086, DOI 10.17487/RFC9086, , <https://www.rfc-editor.org/info/rfc9086>.
[RFC9129]
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, "YANG Data Model for the OSPF Protocol", RFC 9129, DOI 10.17487/RFC9129, , <https://www.rfc-editor.org/info/rfc9129>.
[RFC9130]
Litkowski, S., Ed., Yeung, D., Lindem, A., Zhang, J., and L. Lhotka, "YANG Data Model for the IS-IS Protocol", RFC 9130, DOI 10.17487/RFC9130, , <https://www.rfc-editor.org/info/rfc9130>.
[RFC9351]
Talaulikar, K., Ed., Psenak, P., Zandi, S., and G. Dawra, "Border Gateway Protocol - Link State (BGP-LS) Extensions for Flexible Algorithm Advertisement", RFC 9351, DOI 10.17487/RFC9351, , <https://www.rfc-editor.org/info/rfc9351>.
[RFC9514]
Dawra, G., Filsfils, C., Talaulikar, K., Ed., Chen, M., Bernier, D., and B. Decraene, "Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing over IPv6 (SRv6)", RFC 9514, DOI 10.17487/RFC9514, , <https://www.rfc-editor.org/info/rfc9514>.
[RFC9552]
Talaulikar, K., Ed., "Distribution of Link-State and Traffic Engineering Information Using BGP", RFC 9552, DOI 10.17487/RFC9552, , <https://www.rfc-editor.org/info/rfc9552>.
[RFC9815]
Patel, K., Lindem, A., Zandi, S., and W. Henderickx, "BGP Link State (BGP-LS) Shortest Path First (SPF) Routing", RFC 9815, DOI 10.17487/RFC9815, , <https://www.rfc-editor.org/info/rfc9815>.
[RFC9911]
Schönwälder, J., Ed., "Common YANG Data Types", RFC 9911, DOI 10.17487/RFC9911, , <https://www.rfc-editor.org/info/rfc9911>.
[I-D.ietf-idr-bgp-model]
Jethanandani, M., Patel, K., Hares, S., and J. Haas, "YANG Model for Border Gateway Protocol (BGP-4)", Work in Progress, Internet-Draft, draft-ietf-idr-bgp-model-20, , <https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp-model-20>.

7.2. Informative References

Appendix A. Complete Tree Diagram

Here is a complete tree diagram for the configuration and operational part of the model.

module: ietf-bgp-ls

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:global
            /bgp:afi-safis/bgp:afi-safi:
    +--rw link-state!
    |  +--rw prefix-limit
    |  |  +--rw max-prefixes?            uint32
    |  |  +--rw warning-threshold-pct?   rt-types:percentage
    |  |  +--rw teardown?                boolean
    |  |  +--rw idle-time?               union
    |  |  +--ro prefix-limit-exceeded?   boolean
    |  +--rw max-rate?          uint32
    |  +--rw max-number?        uint32
    |  +--ro bgp-ls-topology
    |     +--ro instances
    |        +--ro instance* (vrf-name protocol identifier)
    |           +--ro vrf-name      string
    |           +--ro protocol      bgp-ls-topo-t:protocol
    |           +--ro identifier    uint64
    |           +--ro nodes
    |           |  +--ro ospf-node*
    |           |  |       (is-as-scoped area-id router-id dr-identifie
r as)
    |           |  |  +--ro is-as-scoped       boolean
    |           |  |  +--ro area-id
    |           |  |  |       ietf-ospf-t:area-id-type
    |           |  |  +--ro router-id          ietf-rt-t:router-id
    |           |  |  +--ro dr-identifier      union
    |           |  |  +--ro as                 inet:as-number
    |           |  |  +--ro node-attributes
    |           |  |     +--ro node-attribute* (type)
    |           |  |        +--ro type
    |           |  |        |       identityref
    |           |  |        +--ro local-ipv4-router-ids
    |           |  |        |  +--ro router-id*   ietf-rt-t:router-id
    |           |  |        +--ro local-ipv6-router-ids
    |           |  |        |  +--ro router-id*   inet:ipv6-address
    |           |  |        +--ro unknowns
    |           |  |        |  +--ro unknown* (type)
    |           |  |        |     +--ro type     uint16
    |           |  |        |     +--ro value?   yang:hex-string
    |           |  |        +--ro multi-topology-ids
    |           |  |        |  +--ro multi-topology-id*   uint16
    |           |  |        +--ro node-flag-bits
    |           |  |        |  +--ro flags?
    |           |  |        |          bgp-ls-topo-t:node-flag-bits
    |           |  |        +--ro opaque-node-attribute
    |           |  |        |  +--ro opaque-attrs?   yang:hex-string
    |           |  |        +--ro node-name
    |           |  |        |  +--ro name?   string
    |           |  |        +--ro sr-capabilities
    |           |  |        |  +--ro srgb* (start-label)
    |           |  |        |  |  +--ro start-label
    |           |  |        |  |  |       ietf-rt-t:mpls-label
    |           |  |        |  |  +--ro range-size?    uint32
    |           |  |        |  +--ro isis-flags?   binary
    |           |  |        +--ro sr-local-block
    |           |  |        |  +--ro srlb* (start-label)
    |           |  |        |     +--ro start-label
    |           |  |        |     |       ietf-rt-t:mpls-label
    |           |  |        |     +--ro range-size?    uint32
    |           |  |        +--ro sr-algorithm
    |           |  |        |  +--ro algorithm*   uint8
    |           |  |        +--ro node-msd
    |           |  |        |  +--ro msd* (msd-type)
    |           |  |        |     +--ro msd-type     uint8
    |           |  |        |     +--ro msd-value?   uint8
    |           |  |        +--ro fads
    |           |  |        |  +--ro fad* (algorithm)
    |           |  |        |     +--ro algorithm              uint8
    |           |  |        |     +--ro metric-type?           uint8
    |           |  |        |     +--ro calc-type?             uint8
    |           |  |        |     +--ro priority?              uint8
    |           |  |        |     +--ro node-fad-attributes
    |           |  |        |        +--ro node-fad-attribute* (type)
    |           |  |        |           +--ro type
    |           |  |        |           |       identityref
    |           |  |        |           +--ro exclude-any-affinity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro include-any-affinity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro include-all-affinity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro flags
    |           |  |        |           |  +--ro flags?   binary
    |           |  |        |           +--ro exclude-srlg
    |           |  |        |           |  +--ro srlg*   uint32
    |           |  |        |           +--ro exclude-minimum-bw
    |           |  |        |           |  +--ro bw?
    |           |  |        |           |          ietf-rt-t:bandwidth-
ieee-float32
    |           |  |        |           +--ro exclude-maximum-delay
    |           |  |        |           |  +--ro delay?   uint32
    |           |  |        |           +--ro exclude-any-reverse-affin
ity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro include-any-reverse-affin
ity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro include-all-reverse-affin
ity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro fa-unsupported-tlvs
    |           |  |        |              +--ro protocol-id?
    |           |  |        |              |       bgp-ls-topo-t:protoc
ol
    |           |  |        |              +--ro type*
    |           |  |        |                      uint16
    |           |  |        +--ro isis-area-identifiers
    |           |  |        |  +--ro area-address*
    |           |  |        |          ietf-isis-t:area-address
    |           |  |        +--ro srv6-capabilities-flags
    |           |  |           +--ro flags?   binary
    |           |  +--ro ospfv3-node*
    |           |  |       (is-as-scoped area-id router-id dr-identifie
r as)
    |           |  |  +--ro is-as-scoped       boolean
    |           |  |  +--ro area-id
    |           |  |  |       ietf-ospf-t:area-id-type
    |           |  |  +--ro router-id          ietf-rt-t:router-id
    |           |  |  +--ro dr-identifier      union
    |           |  |  +--ro as                 inet:as-number
    |           |  |  +--ro node-attributes
    |           |  |     +--ro node-attribute* (type)
    |           |  |        +--ro type
    |           |  |        |       identityref
    |           |  |        +--ro local-ipv4-router-ids
    |           |  |        |  +--ro router-id*   ietf-rt-t:router-id
    |           |  |        +--ro local-ipv6-router-ids
    |           |  |        |  +--ro router-id*   inet:ipv6-address
    |           |  |        +--ro unknowns
    |           |  |        |  +--ro unknown* (type)
    |           |  |        |     +--ro type     uint16
    |           |  |        |     +--ro value?   yang:hex-string
    |           |  |        +--ro multi-topology-ids
    |           |  |        |  +--ro multi-topology-id*   uint16
    |           |  |        +--ro node-flag-bits
    |           |  |        |  +--ro flags?
    |           |  |        |          bgp-ls-topo-t:node-flag-bits
    |           |  |        +--ro opaque-node-attribute
    |           |  |        |  +--ro opaque-attrs?   yang:hex-string
    |           |  |        +--ro node-name
    |           |  |        |  +--ro name?   string
    |           |  |        +--ro sr-capabilities
    |           |  |        |  +--ro srgb* (start-label)
    |           |  |        |  |  +--ro start-label
    |           |  |        |  |  |       ietf-rt-t:mpls-label
    |           |  |        |  |  +--ro range-size?    uint32
    |           |  |        |  +--ro isis-flags?   binary
    |           |  |        +--ro sr-local-block
    |           |  |        |  +--ro srlb* (start-label)
    |           |  |        |     +--ro start-label
    |           |  |        |     |       ietf-rt-t:mpls-label
    |           |  |        |     +--ro range-size?    uint32
    |           |  |        +--ro sr-algorithm
    |           |  |        |  +--ro algorithm*   uint8
    |           |  |        +--ro node-msd
    |           |  |        |  +--ro msd* (msd-type)
    |           |  |        |     +--ro msd-type     uint8
    |           |  |        |     +--ro msd-value?   uint8
    |           |  |        +--ro fads
    |           |  |        |  +--ro fad* (algorithm)
    |           |  |        |     +--ro algorithm              uint8
    |           |  |        |     +--ro metric-type?           uint8
    |           |  |        |     +--ro calc-type?             uint8
    |           |  |        |     +--ro priority?              uint8
    |           |  |        |     +--ro node-fad-attributes
    |           |  |        |        +--ro node-fad-attribute* (type)
    |           |  |        |           +--ro type
    |           |  |        |           |       identityref
    |           |  |        |           +--ro exclude-any-affinity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro include-any-affinity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro include-all-affinity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro flags
    |           |  |        |           |  +--ro flags?   binary
    |           |  |        |           +--ro exclude-srlg
    |           |  |        |           |  +--ro srlg*   uint32
    |           |  |        |           +--ro exclude-minimum-bw
    |           |  |        |           |  +--ro bw?
    |           |  |        |           |          ietf-rt-t:bandwidth-
ieee-float32
    |           |  |        |           +--ro exclude-maximum-delay
    |           |  |        |           |  +--ro delay?   uint32
    |           |  |        |           +--ro exclude-any-reverse-affin
ity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro include-any-reverse-affin
ity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro include-all-reverse-affin
ity
    |           |  |        |           |  +--ro eag*   uint32
    |           |  |        |           +--ro fa-unsupported-tlvs
    |           |  |        |              +--ro protocol-id?
    |           |  |        |              |       bgp-ls-topo-t:protoc
ol
    |           |  |        |              +--ro type*
    |           |  |        |                      uint16
    |           |  |        +--ro isis-area-identifiers
    |           |  |        |  +--ro area-address*
    |           |  |        |          ietf-isis-t:area-address
    |           |  |        +--ro srv6-capabilities-flags
    |           |  |           +--ro flags?   binary
    |           |  +--ro isis-node* (system-id psn-id as)
    |           |     +--ro system-id          ietf-isis-t:system-id
    |           |     +--ro psn-id             uint8
    |           |     +--ro as                 inet:as-number
    |           |     +--ro node-attributes
    |           |        +--ro node-attribute* (type)
    |           |           +--ro type
    |           |           |       identityref
    |           |           +--ro local-ipv4-router-ids
    |           |           |  +--ro router-id*   ietf-rt-t:router-id
    |           |           +--ro local-ipv6-router-ids
    |           |           |  +--ro router-id*   inet:ipv6-address
    |           |           +--ro unknowns
    |           |           |  +--ro unknown* (type)
    |           |           |     +--ro type     uint16
    |           |           |     +--ro value?   yang:hex-string
    |           |           +--ro multi-topology-ids
    |           |           |  +--ro multi-topology-id*   uint16
    |           |           +--ro node-flag-bits
    |           |           |  +--ro flags?
    |           |           |          bgp-ls-topo-t:node-flag-bits
    |           |           +--ro opaque-node-attribute
    |           |           |  +--ro opaque-attrs?   yang:hex-string
    |           |           +--ro node-name
    |           |           |  +--ro name?   string
    |           |           +--ro sr-capabilities
    |           |           |  +--ro srgb* (start-label)
    |           |           |  |  +--ro start-label
    |           |           |  |  |       ietf-rt-t:mpls-label
    |           |           |  |  +--ro range-size?    uint32
    |           |           |  +--ro isis-flags?   binary
    |           |           +--ro sr-local-block
    |           |           |  +--ro srlb* (start-label)
    |           |           |     +--ro start-label
    |           |           |     |       ietf-rt-t:mpls-label
    |           |           |     +--ro range-size?    uint32
    |           |           +--ro sr-algorithm
    |           |           |  +--ro algorithm*   uint8
    |           |           +--ro node-msd
    |           |           |  +--ro msd* (msd-type)
    |           |           |     +--ro msd-type     uint8
    |           |           |     +--ro msd-value?   uint8
    |           |           +--ro fads
    |           |           |  +--ro fad* (algorithm)
    |           |           |     +--ro algorithm              uint8
    |           |           |     +--ro metric-type?           uint8
    |           |           |     +--ro calc-type?             uint8
    |           |           |     +--ro priority?              uint8
    |           |           |     +--ro node-fad-attributes
    |           |           |        +--ro node-fad-attribute* (type)
    |           |           |           +--ro type
    |           |           |           |       identityref
    |           |           |           +--ro exclude-any-affinity
    |           |           |           |  +--ro eag*   uint32
    |           |           |           +--ro include-any-affinity
    |           |           |           |  +--ro eag*   uint32
    |           |           |           +--ro include-all-affinity
    |           |           |           |  +--ro eag*   uint32
    |           |           |           +--ro flags
    |           |           |           |  +--ro flags?   binary
    |           |           |           +--ro exclude-srlg
    |           |           |           |  +--ro srlg*   uint32
    |           |           |           +--ro exclude-minimum-bw
    |           |           |           |  +--ro bw?
    |           |           |           |          ietf-rt-t:bandwidth-
ieee-float32
    |           |           |           +--ro exclude-maximum-delay
    |           |           |           |  +--ro delay?   uint32
    |           |           |           +--ro exclude-any-reverse-affin
ity
    |           |           |           |  +--ro eag*   uint32
    |           |           |           +--ro include-any-reverse-affin
ity
    |           |           |           |  +--ro eag*   uint32
    |           |           |           +--ro include-all-reverse-affin
ity
    |           |           |           |  +--ro eag*   uint32
    |           |           |           +--ro fa-unsupported-tlvs
    |           |           |              +--ro protocol-id?
    |           |           |              |       bgp-ls-topo-t:protoc
ol
    |           |           |              +--ro type*
    |           |           |                      uint16
    |           |           +--ro isis-area-identifiers
    |           |           |  +--ro area-address*
    |           |           |          ietf-isis-t:area-address
    |           |           +--ro srv6-capabilities-flags
    |           |              +--ro flags?   binary
    |           +--ro links
    |           |  +--ro ospf-link*
    |           |  |       (area-id as local-router-id local-dr-identif
ier remote-router-id remote-dr-identifier local-id remote-id local-ipv4
-address remote-ipv4-address multi-topology-id)
    |           |  |  +--ro area-id
    |           |  |  |       ietf-ospf-t:area-id-type
    |           |  |  +--ro as                      inet:as-number
    |           |  |  +--ro local-router-id
    |           |  |  |       ietf-rt-t:router-id
    |           |  |  +--ro remote-router-id
    |           |  |  |       ietf-rt-t:router-id
    |           |  |  +--ro local-id                uint32
    |           |  |  +--ro remote-id               uint32
    |           |  |  +--ro local-ipv4-address      inet:ipv4-address
    |           |  |  +--ro remote-ipv4-address     inet:ipv4-address
    |           |  |  +--ro multi-topology-id       uint16
    |           |  |  +--ro local-dr-identifier     inet:ipv4-address
    |           |  |  +--ro remote-dr-identifier    inet:ipv4-address
    |           |  |  +--ro link-attributes
    |           |  |     +--ro link-attribute* (type)
    |           |  |        +--ro type
    |           |  |        |       identityref
    |           |  |        +--ro te-default-metric
    |           |  |        |  +--ro metric?   uint32
    |           |  |        +--ro unidirectional-link-delay
    |           |  |        |  +--ro delay?     uint32
    |           |  |        |  +--ro anomaly?   boolean
    |           |  |        +--ro min-max-unidirectional-link-delay
    |           |  |        |  +--ro min
    |           |  |        |  |  +--ro delay?   uint32
    |           |  |        |  +--ro max
    |           |  |        |  |  +--ro delay?   uint32
    |           |  |        |  +--ro anomaly?   boolean
    |           |  |        +--ro unidirectional-delay-variation
    |           |  |        |  +--ro delay?   uint32
    |           |  |        +--ro unidirectional-link-loss
    |           |  |        |  +--ro link-loss?   uint32
    |           |  |        |  +--ro anomaly?     boolean
    |           |  |        +--ro unidirectional-residual-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro unidirectional-available-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro unidirectional-utilized-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro extended-admin-group
    |           |  |        |  +--ro eag*   uint32
    |           |  |        +--ro unknowns
    |           |  |        |  +--ro unknown* (type)
    |           |  |        |     +--ro type     uint16
    |           |  |        |     +--ro value?   yang:hex-string
    |           |  |        +--ro link-local-remote-identifiers
    |           |  |        |  +--ro local-identifier?    uint32
    |           |  |        |  +--ro remote-identifier?   uint32
    |           |  |        +--ro link-msd
    |           |  |        |  +--ro msd* (msd-type)
    |           |  |        |     +--ro msd-type     uint8
    |           |  |        |     +--ro msd-value?   uint8
    |           |  |        +--ro local-ipv4-router-ids
    |           |  |        |  +--ro router-id*   ietf-rt-t:router-id
    |           |  |        +--ro local-ipv6-router-ids
    |           |  |        |  +--ro router-id*   inet:ipv6-address
    |           |  |        +--ro remote-ipv4-router-ids
    |           |  |        |  +--ro router-id*   ietf-rt-t:router-id
    |           |  |        +--ro remote-ipv6-router-ids
    |           |  |        |  +--ro router-id*   inet:ipv6-address
    |           |  |        +--ro mpls-protocol-mask
    |           |  |        |  +--ro mask?   uint8
    |           |  |        +--ro igp-metric
    |           |  |        |  +--ro metric?   uint32
    |           |  |        +--ro srlgs
    |           |  |        |  +--ro srlg*   uint32
    |           |  |        +--ro opaque-link-attribute
    |           |  |        |  +--ro opaque-attrs?   yang:hex-string
    |           |  |        +--ro link-name
    |           |  |        |  +--ro name?   string
    |           |  |        +--ro srv6-end-x-sids
    |           |  |        |  +--ro srv6-end-x-sid* (sid)
    |           |  |        |     +--ro sid
    |           |  |        |     |       inet:ipv6-address
    |           |  |        |     +--ro weight?              uint8
    |           |  |        |     +--ro endpoint-behavior?   uint8
    |           |  |        |     +--ro flags?               binary
    |           |  |        |     +--ro algorithm?           uint8
    |           |  |        |     +--ro locator-block-len?   uint8
    |           |  |        |     +--ro locator-node-len?    uint8
    |           |  |        |     +--ro function-len?        uint8
    |           |  |        |     +--ro arg-len?             uint8
    |           |  |        +--ro srv6-lan-end-x-sids
    |           |  |        |  +--ro srv6-end-x-sid* (sid)
    |           |  |        |     +--ro sid
    |           |  |        |     |       inet:ipv6-address
    |           |  |        |     +--ro weight?              uint8
    |           |  |        |     +--ro endpoint-behavior?   uint8
    |           |  |        |     +--ro flags?               binary
    |           |  |        |     +--ro algorithm?           uint8
    |           |  |        |     +--ro locator-block-len?   uint8
    |           |  |        |     +--ro locator-node-len?    uint8
    |           |  |        |     +--ro function-len?        uint8
    |           |  |        |     +--ro arg-len?             uint8
    |           |  |        |     +--ro neighbor-id?         union
    |           |  |        +--ro maximum-link-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro maximum-reservable-link-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro unreserved-bws
    |           |  |        |  +--ro unreserved-bw* (priority)
    |           |  |        |     +--ro priority     uint8
    |           |  |        |     +--ro bandwidth?
    |           |  |        |             ietf-rt-t:bandwidth-ieee-floa
t32
    |           |  |        +--ro link-protection-type
    |           |  |        |  +--ro type?   uint16
    |           |  |        +--ro adjacency-sids
    |           |  |        |  +--ro adjacency-sid*
    |           |  |        |          (label-index format)
    |           |  |        |     +--ro label-index    uint32
    |           |  |        |     +--ro format
    |           |  |        |     |       bgp-ls-topo-t:sid-format
    |           |  |        |     +--ro flags?         binary
    |           |  |        |     +--ro weight?        uint8
    |           |  |        +--ro lan-adjacency-sids
    |           |  |        |  +--ro adjacency-sid*
    |           |  |        |          (label-index format)
    |           |  |        |     +--ro label-index    uint32
    |           |  |        |     +--ro format
    |           |  |        |     |       bgp-ls-topo-t:sid-format
    |           |  |        |     +--ro flags?         binary
    |           |  |        |     +--ro weight?        uint8
    |           |  |        |     +--ro neighbor-id?   union
    |           |  |        +--ro aslas
    |           |  |        |  +--ro asla* (sabm udabm)
    |           |  |        |     +--ro sabm              binary
    |           |  |        |     +--ro udabm             binary
    |           |  |        |     +--ro asla-attribute* (type)
    |           |  |        |        +--ro type
    |           |  |        |        |       identityref
    |           |  |        |        +--ro srlgs
    |           |  |        |        |  +--ro srlg*   uint32
    |           |  |        |        +--ro te-default-metric
    |           |  |        |        |  +--ro metric?   uint32
    |           |  |        |        +--ro unidirectional-link-delay
    |           |  |        |        |  +--ro delay?     uint32
    |           |  |        |        |  +--ro anomaly?   boolean
    |           |  |        |        +--ro min-max-unidirectional-link-
delay
    |           |  |        |        |  +--ro min
    |           |  |        |        |  |  +--ro delay?   uint32
    |           |  |        |        |  +--ro max
    |           |  |        |        |  |  +--ro delay?   uint32
    |           |  |        |        |  +--ro anomaly?   boolean
    |           |  |        |        +--ro unidirectional-delay-variati
on
    |           |  |        |        |  +--ro delay?   uint32
    |           |  |        |        +--ro unidirectional-link-loss
    |           |  |        |        |  +--ro link-loss?   uint32
    |           |  |        |        |  +--ro anomaly?     boolean
    |           |  |        |        +--ro unidirectional-residual-bw
    |           |  |        |        |  +--ro bw?
    |           |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |        |        +--ro unidirectional-available-bw
    |           |  |        |        |  +--ro bw?
    |           |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |        |        +--ro unidirectional-utilized-bw
    |           |  |        |        |  +--ro bw?
    |           |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |        |        +--ro extended-admin-group
    |           |  |        |        |  +--ro eag*   uint32
    |           |  |        |        +--ro unknowns
    |           |  |        |           +--ro unknown* (type)
    |           |  |        |              +--ro type     uint16
    |           |  |        |              +--ro value?
    |           |  |        |                      yang:hex-string
    |           |  |        +--ro l2-bundle-members
    |           |  |           +--ro l2-bundle-member*
    |           |  |                   (member-descriptor)
    |           |  |              +--ro member-descriptor
    |           |  |              |       uint32
    |           |  |              +--ro bundle-member-attribute*
    |           |  |                      (type)
    |           |  |                 +--ro type
    |           |  |                 |       identityref
    |           |  |                 +--ro te-default-metric
    |           |  |                 |  +--ro metric?   uint32
    |           |  |                 +--ro unidirectional-link-delay
    |           |  |                 |  +--ro delay?     uint32
    |           |  |                 |  +--ro anomaly?   boolean
    |           |  |                 +--ro min-max-unidirectional-link-
delay
    |           |  |                 |  +--ro min
    |           |  |                 |  |  +--ro delay?   uint32
    |           |  |                 |  +--ro max
    |           |  |                 |  |  +--ro delay?   uint32
    |           |  |                 |  +--ro anomaly?   boolean
    |           |  |                 +--ro unidirectional-delay-variati
on
    |           |  |                 |  +--ro delay?   uint32
    |           |  |                 +--ro unidirectional-link-loss
    |           |  |                 |  +--ro link-loss?   uint32
    |           |  |                 |  +--ro anomaly?     boolean
    |           |  |                 +--ro unidirectional-residual-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro unidirectional-available-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro unidirectional-utilized-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro extended-admin-group
    |           |  |                 |  +--ro eag*   uint32
    |           |  |                 +--ro unknowns
    |           |  |                 |  +--ro unknown* (type)
    |           |  |                 |     +--ro type     uint16
    |           |  |                 |     +--ro value?
    |           |  |                 |             yang:hex-string
    |           |  |                 +--ro maximum-link-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro maximum-reservable-link-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro unreserved-bws
    |           |  |                 |  +--ro unreserved-bw*
    |           |  |                 |          (priority)
    |           |  |                 |     +--ro priority     uint8
    |           |  |                 |     +--ro bandwidth?
    |           |  |                 |             ietf-rt-t:bandwidth-
ieee-float32
    |           |  |                 +--ro link-protection-type
    |           |  |                 |  +--ro type?   uint16
    |           |  |                 +--ro adjacency-sids
    |           |  |                 |  +--ro adjacency-sid*
    |           |  |                 |          (label-index format)
    |           |  |                 |     +--ro label-index
    |           |  |                 |     |       uint32
    |           |  |                 |     +--ro format
    |           |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
    |           |  |                 |     +--ro flags?
    |           |  |                 |     |       binary
    |           |  |                 |     +--ro weight?        uint8
    |           |  |                 +--ro lan-adjacency-sids
    |           |  |                 |  +--ro adjacency-sid*
    |           |  |                 |          (label-index format)
    |           |  |                 |     +--ro label-index
    |           |  |                 |     |       uint32
    |           |  |                 |     +--ro format
    |           |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
    |           |  |                 |     +--ro flags?
    |           |  |                 |     |       binary
    |           |  |                 |     +--ro weight?        uint8
    |           |  |                 |     +--ro neighbor-id?   union
    |           |  |                 +--ro aslas
    |           |  |                    +--ro asla* (sabm udabm)
    |           |  |                       +--ro sabm
    |           |  |                       |       binary
    |           |  |                       +--ro udabm
    |           |  |                       |       binary
    |           |  |                       +--ro asla-attribute*
    |           |  |                               (type)
    |           |  |                          +--ro type
    |           |  |                          |       identityref
    |           |  |                          +--ro srlgs
    |           |  |                          |  +--ro srlg*   uint32
    |           |  |                          +--ro te-default-metric
    |           |  |                          |  +--ro metric?
    |           |  |                          |          uint32
    |           |  |                          +--ro unidirectional-link
-delay
    |           |  |                          |  +--ro delay?
    |           |  |                          |  |       uint32
    |           |  |                          |  +--ro anomaly?
    |           |  |                          |          boolean
    |           |  |                          +--ro min-max-unidirectio
nal-link-delay
    |           |  |                          |  +--ro min
    |           |  |                          |  |  +--ro delay?
    |           |  |                          |  |          uint32
    |           |  |                          |  +--ro max
    |           |  |                          |  |  +--ro delay?
    |           |  |                          |  |          uint32
    |           |  |                          |  +--ro anomaly?
    |           |  |                          |          boolean
    |           |  |                          +--ro unidirectional-dela
y-variation
    |           |  |                          |  +--ro delay?
    |           |  |                          |          uint32
    |           |  |                          +--ro unidirectional-link
-loss
    |           |  |                          |  +--ro link-loss?
    |           |  |                          |  |       uint32
    |           |  |                          |  +--ro anomaly?
    |           |  |                          |          boolean
    |           |  |                          +--ro unidirectional-resi
dual-bw
    |           |  |                          |  +--ro bw?
    |           |  |                          |          ietf-rt-t:band
width-ieee-float32
    |           |  |                          +--ro unidirectional-avai
lable-bw
    |           |  |                          |  +--ro bw?
    |           |  |                          |          ietf-rt-t:band
width-ieee-float32
    |           |  |                          +--ro unidirectional-util
ized-bw
    |           |  |                          |  +--ro bw?
    |           |  |                          |          ietf-rt-t:band
width-ieee-float32
    |           |  |                          +--ro extended-admin-grou
p
    |           |  |                          |  +--ro eag*   uint32
    |           |  |                          +--ro unknowns
    |           |  |                             +--ro unknown*
    |           |  |                                     (type)
    |           |  |                                +--ro type
    |           |  |                                |       uint16
    |           |  |                                +--ro value?
    |           |  |                                        yang:hex-st
ring
    |           |  +--ro ospfv3-link*
    |           |  |       (area-id as local-router-id local-dr-identif
ier remote-router-id remote-dr-identifier local-id remote-id local-ipv4
-address remote-ipv4-address local-ipv6-address remote-ipv6-address mul
ti-topology-id)
    |           |  |  +--ro area-id
    |           |  |  |       ietf-ospf-t:area-id-type
    |           |  |  +--ro as                      inet:as-number
    |           |  |  +--ro local-router-id
    |           |  |  |       ietf-rt-t:router-id
    |           |  |  +--ro remote-router-id
    |           |  |  |       ietf-rt-t:router-id
    |           |  |  +--ro local-id                uint32
    |           |  |  +--ro remote-id               uint32
    |           |  |  +--ro local-ipv4-address      inet:ipv4-address
    |           |  |  +--ro remote-ipv4-address     inet:ipv4-address
    |           |  |  +--ro multi-topology-id       uint16
    |           |  |  +--ro local-dr-identifier     uint32
    |           |  |  +--ro remote-dr-identifier    uint32
    |           |  |  +--ro local-ipv6-address      inet:ipv6-address
    |           |  |  +--ro remote-ipv6-address     inet:ipv6-address
    |           |  |  +--ro link-attributes
    |           |  |     +--ro link-attribute* (type)
    |           |  |        +--ro type
    |           |  |        |       identityref
    |           |  |        +--ro te-default-metric
    |           |  |        |  +--ro metric?   uint32
    |           |  |        +--ro unidirectional-link-delay
    |           |  |        |  +--ro delay?     uint32
    |           |  |        |  +--ro anomaly?   boolean
    |           |  |        +--ro min-max-unidirectional-link-delay
    |           |  |        |  +--ro min
    |           |  |        |  |  +--ro delay?   uint32
    |           |  |        |  +--ro max
    |           |  |        |  |  +--ro delay?   uint32
    |           |  |        |  +--ro anomaly?   boolean
    |           |  |        +--ro unidirectional-delay-variation
    |           |  |        |  +--ro delay?   uint32
    |           |  |        +--ro unidirectional-link-loss
    |           |  |        |  +--ro link-loss?   uint32
    |           |  |        |  +--ro anomaly?     boolean
    |           |  |        +--ro unidirectional-residual-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro unidirectional-available-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro unidirectional-utilized-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro extended-admin-group
    |           |  |        |  +--ro eag*   uint32
    |           |  |        +--ro unknowns
    |           |  |        |  +--ro unknown* (type)
    |           |  |        |     +--ro type     uint16
    |           |  |        |     +--ro value?   yang:hex-string
    |           |  |        +--ro link-local-remote-identifiers
    |           |  |        |  +--ro local-identifier?    uint32
    |           |  |        |  +--ro remote-identifier?   uint32
    |           |  |        +--ro link-msd
    |           |  |        |  +--ro msd* (msd-type)
    |           |  |        |     +--ro msd-type     uint8
    |           |  |        |     +--ro msd-value?   uint8
    |           |  |        +--ro local-ipv4-router-ids
    |           |  |        |  +--ro router-id*   ietf-rt-t:router-id
    |           |  |        +--ro local-ipv6-router-ids
    |           |  |        |  +--ro router-id*   inet:ipv6-address
    |           |  |        +--ro remote-ipv4-router-ids
    |           |  |        |  +--ro router-id*   ietf-rt-t:router-id
    |           |  |        +--ro remote-ipv6-router-ids
    |           |  |        |  +--ro router-id*   inet:ipv6-address
    |           |  |        +--ro mpls-protocol-mask
    |           |  |        |  +--ro mask?   uint8
    |           |  |        +--ro igp-metric
    |           |  |        |  +--ro metric?   uint32
    |           |  |        +--ro srlgs
    |           |  |        |  +--ro srlg*   uint32
    |           |  |        +--ro opaque-link-attribute
    |           |  |        |  +--ro opaque-attrs?   yang:hex-string
    |           |  |        +--ro link-name
    |           |  |        |  +--ro name?   string
    |           |  |        +--ro srv6-end-x-sids
    |           |  |        |  +--ro srv6-end-x-sid* (sid)
    |           |  |        |     +--ro sid
    |           |  |        |     |       inet:ipv6-address
    |           |  |        |     +--ro weight?              uint8
    |           |  |        |     +--ro endpoint-behavior?   uint8
    |           |  |        |     +--ro flags?               binary
    |           |  |        |     +--ro algorithm?           uint8
    |           |  |        |     +--ro locator-block-len?   uint8
    |           |  |        |     +--ro locator-node-len?    uint8
    |           |  |        |     +--ro function-len?        uint8
    |           |  |        |     +--ro arg-len?             uint8
    |           |  |        +--ro srv6-lan-end-x-sids
    |           |  |        |  +--ro srv6-end-x-sid* (sid)
    |           |  |        |     +--ro sid
    |           |  |        |     |       inet:ipv6-address
    |           |  |        |     +--ro weight?              uint8
    |           |  |        |     +--ro endpoint-behavior?   uint8
    |           |  |        |     +--ro flags?               binary
    |           |  |        |     +--ro algorithm?           uint8
    |           |  |        |     +--ro locator-block-len?   uint8
    |           |  |        |     +--ro locator-node-len?    uint8
    |           |  |        |     +--ro function-len?        uint8
    |           |  |        |     +--ro arg-len?             uint8
    |           |  |        |     +--ro neighbor-id?         union
    |           |  |        +--ro maximum-link-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro maximum-reservable-link-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro unreserved-bws
    |           |  |        |  +--ro unreserved-bw* (priority)
    |           |  |        |     +--ro priority     uint8
    |           |  |        |     +--ro bandwidth?
    |           |  |        |             ietf-rt-t:bandwidth-ieee-floa
t32
    |           |  |        +--ro link-protection-type
    |           |  |        |  +--ro type?   uint16
    |           |  |        +--ro adjacency-sids
    |           |  |        |  +--ro adjacency-sid*
    |           |  |        |          (label-index format)
    |           |  |        |     +--ro label-index    uint32
    |           |  |        |     +--ro format
    |           |  |        |     |       bgp-ls-topo-t:sid-format
    |           |  |        |     +--ro flags?         binary
    |           |  |        |     +--ro weight?        uint8
    |           |  |        +--ro lan-adjacency-sids
    |           |  |        |  +--ro adjacency-sid*
    |           |  |        |          (label-index format)
    |           |  |        |     +--ro label-index    uint32
    |           |  |        |     +--ro format
    |           |  |        |     |       bgp-ls-topo-t:sid-format
    |           |  |        |     +--ro flags?         binary
    |           |  |        |     +--ro weight?        uint8
    |           |  |        |     +--ro neighbor-id?   union
    |           |  |        +--ro aslas
    |           |  |        |  +--ro asla* (sabm udabm)
    |           |  |        |     +--ro sabm              binary
    |           |  |        |     +--ro udabm             binary
    |           |  |        |     +--ro asla-attribute* (type)
    |           |  |        |        +--ro type
    |           |  |        |        |       identityref
    |           |  |        |        +--ro srlgs
    |           |  |        |        |  +--ro srlg*   uint32
    |           |  |        |        +--ro te-default-metric
    |           |  |        |        |  +--ro metric?   uint32
    |           |  |        |        +--ro unidirectional-link-delay
    |           |  |        |        |  +--ro delay?     uint32
    |           |  |        |        |  +--ro anomaly?   boolean
    |           |  |        |        +--ro min-max-unidirectional-link-
delay
    |           |  |        |        |  +--ro min
    |           |  |        |        |  |  +--ro delay?   uint32
    |           |  |        |        |  +--ro max
    |           |  |        |        |  |  +--ro delay?   uint32
    |           |  |        |        |  +--ro anomaly?   boolean
    |           |  |        |        +--ro unidirectional-delay-variati
on
    |           |  |        |        |  +--ro delay?   uint32
    |           |  |        |        +--ro unidirectional-link-loss
    |           |  |        |        |  +--ro link-loss?   uint32
    |           |  |        |        |  +--ro anomaly?     boolean
    |           |  |        |        +--ro unidirectional-residual-bw
    |           |  |        |        |  +--ro bw?
    |           |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |        |        +--ro unidirectional-available-bw
    |           |  |        |        |  +--ro bw?
    |           |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |        |        +--ro unidirectional-utilized-bw
    |           |  |        |        |  +--ro bw?
    |           |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |        |        +--ro extended-admin-group
    |           |  |        |        |  +--ro eag*   uint32
    |           |  |        |        +--ro unknowns
    |           |  |        |           +--ro unknown* (type)
    |           |  |        |              +--ro type     uint16
    |           |  |        |              +--ro value?
    |           |  |        |                      yang:hex-string
    |           |  |        +--ro l2-bundle-members
    |           |  |           +--ro l2-bundle-member*
    |           |  |                   (member-descriptor)
    |           |  |              +--ro member-descriptor
    |           |  |              |       uint32
    |           |  |              +--ro bundle-member-attribute*
    |           |  |                      (type)
    |           |  |                 +--ro type
    |           |  |                 |       identityref
    |           |  |                 +--ro te-default-metric
    |           |  |                 |  +--ro metric?   uint32
    |           |  |                 +--ro unidirectional-link-delay
    |           |  |                 |  +--ro delay?     uint32
    |           |  |                 |  +--ro anomaly?   boolean
    |           |  |                 +--ro min-max-unidirectional-link-
delay
    |           |  |                 |  +--ro min
    |           |  |                 |  |  +--ro delay?   uint32
    |           |  |                 |  +--ro max
    |           |  |                 |  |  +--ro delay?   uint32
    |           |  |                 |  +--ro anomaly?   boolean
    |           |  |                 +--ro unidirectional-delay-variati
on
    |           |  |                 |  +--ro delay?   uint32
    |           |  |                 +--ro unidirectional-link-loss
    |           |  |                 |  +--ro link-loss?   uint32
    |           |  |                 |  +--ro anomaly?     boolean
    |           |  |                 +--ro unidirectional-residual-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro unidirectional-available-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro unidirectional-utilized-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro extended-admin-group
    |           |  |                 |  +--ro eag*   uint32
    |           |  |                 +--ro unknowns
    |           |  |                 |  +--ro unknown* (type)
    |           |  |                 |     +--ro type     uint16
    |           |  |                 |     +--ro value?
    |           |  |                 |             yang:hex-string
    |           |  |                 +--ro maximum-link-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro maximum-reservable-link-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro unreserved-bws
    |           |  |                 |  +--ro unreserved-bw*
    |           |  |                 |          (priority)
    |           |  |                 |     +--ro priority     uint8
    |           |  |                 |     +--ro bandwidth?
    |           |  |                 |             ietf-rt-t:bandwidth-
ieee-float32
    |           |  |                 +--ro link-protection-type
    |           |  |                 |  +--ro type?   uint16
    |           |  |                 +--ro adjacency-sids
    |           |  |                 |  +--ro adjacency-sid*
    |           |  |                 |          (label-index format)
    |           |  |                 |     +--ro label-index
    |           |  |                 |     |       uint32
    |           |  |                 |     +--ro format
    |           |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
    |           |  |                 |     +--ro flags?
    |           |  |                 |     |       binary
    |           |  |                 |     +--ro weight?        uint8
    |           |  |                 +--ro lan-adjacency-sids
    |           |  |                 |  +--ro adjacency-sid*
    |           |  |                 |          (label-index format)
    |           |  |                 |     +--ro label-index
    |           |  |                 |     |       uint32
    |           |  |                 |     +--ro format
    |           |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
    |           |  |                 |     +--ro flags?
    |           |  |                 |     |       binary
    |           |  |                 |     +--ro weight?        uint8
    |           |  |                 |     +--ro neighbor-id?   union
    |           |  |                 +--ro aslas
    |           |  |                    +--ro asla* (sabm udabm)
    |           |  |                       +--ro sabm
    |           |  |                       |       binary
    |           |  |                       +--ro udabm
    |           |  |                       |       binary
    |           |  |                       +--ro asla-attribute*
    |           |  |                               (type)
    |           |  |                          +--ro type
    |           |  |                          |       identityref
    |           |  |                          +--ro srlgs
    |           |  |                          |  +--ro srlg*   uint32
    |           |  |                          +--ro te-default-metric
    |           |  |                          |  +--ro metric?
    |           |  |                          |          uint32
    |           |  |                          +--ro unidirectional-link
-delay
    |           |  |                          |  +--ro delay?
    |           |  |                          |  |       uint32
    |           |  |                          |  +--ro anomaly?
    |           |  |                          |          boolean
    |           |  |                          +--ro min-max-unidirectio
nal-link-delay
    |           |  |                          |  +--ro min
    |           |  |                          |  |  +--ro delay?
    |           |  |                          |  |          uint32
    |           |  |                          |  +--ro max
    |           |  |                          |  |  +--ro delay?
    |           |  |                          |  |          uint32
    |           |  |                          |  +--ro anomaly?
    |           |  |                          |          boolean
    |           |  |                          +--ro unidirectional-dela
y-variation
    |           |  |                          |  +--ro delay?
    |           |  |                          |          uint32
    |           |  |                          +--ro unidirectional-link
-loss
    |           |  |                          |  +--ro link-loss?
    |           |  |                          |  |       uint32
    |           |  |                          |  +--ro anomaly?
    |           |  |                          |          boolean
    |           |  |                          +--ro unidirectional-resi
dual-bw
    |           |  |                          |  +--ro bw?
    |           |  |                          |          ietf-rt-t:band
width-ieee-float32
    |           |  |                          +--ro unidirectional-avai
lable-bw
    |           |  |                          |  +--ro bw?
    |           |  |                          |          ietf-rt-t:band
width-ieee-float32
    |           |  |                          +--ro unidirectional-util
ized-bw
    |           |  |                          |  +--ro bw?
    |           |  |                          |          ietf-rt-t:band
width-ieee-float32
    |           |  |                          +--ro extended-admin-grou
p
    |           |  |                          |  +--ro eag*   uint32
    |           |  |                          +--ro unknowns
    |           |  |                             +--ro unknown*
    |           |  |                                     (type)
    |           |  |                                +--ro type
    |           |  |                                |       uint16
    |           |  |                                +--ro value?
    |           |  |                                        yang:hex-st
ring
    |           |  +--ro isis-link*
    |           |  |       (local-system-id local-psn-id local-as remot
e-system-id remote-psn-id remote-as local-id remote-id local-ipv4-addre
ss remote-ipv4-address local-ipv6-address remote-ipv6-address multi-top
ology-id)
    |           |  |  +--ro local-system-id
    |           |  |  |       ietf-isis-t:system-id
    |           |  |  +--ro local-psn-id           uint8
    |           |  |  +--ro local-as               inet:as-number
    |           |  |  +--ro remote-system-id
    |           |  |  |       ietf-isis-t:system-id
    |           |  |  +--ro remote-psn-id          uint8
    |           |  |  +--ro remote-as              inet:as-number
    |           |  |  +--ro local-id               uint32
    |           |  |  +--ro remote-id              uint32
    |           |  |  +--ro local-ipv4-address     inet:ipv4-address
    |           |  |  +--ro remote-ipv4-address    inet:ipv4-address
    |           |  |  +--ro local-ipv6-address     inet:ipv6-address
    |           |  |  +--ro remote-ipv6-address    inet:ipv6-address
    |           |  |  +--ro multi-topology-id      uint16
    |           |  |  +--ro link-attributes
    |           |  |     +--ro link-attribute* (type)
    |           |  |        +--ro type
    |           |  |        |       identityref
    |           |  |        +--ro te-default-metric
    |           |  |        |  +--ro metric?   uint32
    |           |  |        +--ro unidirectional-link-delay
    |           |  |        |  +--ro delay?     uint32
    |           |  |        |  +--ro anomaly?   boolean
    |           |  |        +--ro min-max-unidirectional-link-delay
    |           |  |        |  +--ro min
    |           |  |        |  |  +--ro delay?   uint32
    |           |  |        |  +--ro max
    |           |  |        |  |  +--ro delay?   uint32
    |           |  |        |  +--ro anomaly?   boolean
    |           |  |        +--ro unidirectional-delay-variation
    |           |  |        |  +--ro delay?   uint32
    |           |  |        +--ro unidirectional-link-loss
    |           |  |        |  +--ro link-loss?   uint32
    |           |  |        |  +--ro anomaly?     boolean
    |           |  |        +--ro unidirectional-residual-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro unidirectional-available-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro unidirectional-utilized-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro extended-admin-group
    |           |  |        |  +--ro eag*   uint32
    |           |  |        +--ro unknowns
    |           |  |        |  +--ro unknown* (type)
    |           |  |        |     +--ro type     uint16
    |           |  |        |     +--ro value?   yang:hex-string
    |           |  |        +--ro link-local-remote-identifiers
    |           |  |        |  +--ro local-identifier?    uint32
    |           |  |        |  +--ro remote-identifier?   uint32
    |           |  |        +--ro link-msd
    |           |  |        |  +--ro msd* (msd-type)
    |           |  |        |     +--ro msd-type     uint8
    |           |  |        |     +--ro msd-value?   uint8
    |           |  |        +--ro local-ipv4-router-ids
    |           |  |        |  +--ro router-id*   ietf-rt-t:router-id
    |           |  |        +--ro local-ipv6-router-ids
    |           |  |        |  +--ro router-id*   inet:ipv6-address
    |           |  |        +--ro remote-ipv4-router-ids
    |           |  |        |  +--ro router-id*   ietf-rt-t:router-id
    |           |  |        +--ro remote-ipv6-router-ids
    |           |  |        |  +--ro router-id*   inet:ipv6-address
    |           |  |        +--ro mpls-protocol-mask
    |           |  |        |  +--ro mask?   uint8
    |           |  |        +--ro igp-metric
    |           |  |        |  +--ro metric?   uint32
    |           |  |        +--ro srlgs
    |           |  |        |  +--ro srlg*   uint32
    |           |  |        +--ro opaque-link-attribute
    |           |  |        |  +--ro opaque-attrs?   yang:hex-string
    |           |  |        +--ro link-name
    |           |  |        |  +--ro name?   string
    |           |  |        +--ro srv6-end-x-sids
    |           |  |        |  +--ro srv6-end-x-sid* (sid)
    |           |  |        |     +--ro sid
    |           |  |        |     |       inet:ipv6-address
    |           |  |        |     +--ro weight?              uint8
    |           |  |        |     +--ro endpoint-behavior?   uint8
    |           |  |        |     +--ro flags?               binary
    |           |  |        |     +--ro algorithm?           uint8
    |           |  |        |     +--ro locator-block-len?   uint8
    |           |  |        |     +--ro locator-node-len?    uint8
    |           |  |        |     +--ro function-len?        uint8
    |           |  |        |     +--ro arg-len?             uint8
    |           |  |        +--ro srv6-lan-end-x-sids
    |           |  |        |  +--ro srv6-end-x-sid* (sid)
    |           |  |        |     +--ro sid
    |           |  |        |     |       inet:ipv6-address
    |           |  |        |     +--ro weight?              uint8
    |           |  |        |     +--ro endpoint-behavior?   uint8
    |           |  |        |     +--ro flags?               binary
    |           |  |        |     +--ro algorithm?           uint8
    |           |  |        |     +--ro locator-block-len?   uint8
    |           |  |        |     +--ro locator-node-len?    uint8
    |           |  |        |     +--ro function-len?        uint8
    |           |  |        |     +--ro arg-len?             uint8
    |           |  |        |     +--ro neighbor-id?         union
    |           |  |        +--ro maximum-link-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro maximum-reservable-link-bw
    |           |  |        |  +--ro bw?
    |           |  |        |          ietf-rt-t:bandwidth-ieee-float32
    |           |  |        +--ro unreserved-bws
    |           |  |        |  +--ro unreserved-bw* (priority)
    |           |  |        |     +--ro priority     uint8
    |           |  |        |     +--ro bandwidth?
    |           |  |        |             ietf-rt-t:bandwidth-ieee-floa
t32
    |           |  |        +--ro link-protection-type
    |           |  |        |  +--ro type?   uint16
    |           |  |        +--ro adjacency-sids
    |           |  |        |  +--ro adjacency-sid*
    |           |  |        |          (label-index format)
    |           |  |        |     +--ro label-index    uint32
    |           |  |        |     +--ro format
    |           |  |        |     |       bgp-ls-topo-t:sid-format
    |           |  |        |     +--ro flags?         binary
    |           |  |        |     +--ro weight?        uint8
    |           |  |        +--ro lan-adjacency-sids
    |           |  |        |  +--ro adjacency-sid*
    |           |  |        |          (label-index format)
    |           |  |        |     +--ro label-index    uint32
    |           |  |        |     +--ro format
    |           |  |        |     |       bgp-ls-topo-t:sid-format
    |           |  |        |     +--ro flags?         binary
    |           |  |        |     +--ro weight?        uint8
    |           |  |        |     +--ro neighbor-id?   union
    |           |  |        +--ro aslas
    |           |  |        |  +--ro asla* (sabm udabm)
    |           |  |        |     +--ro sabm              binary
    |           |  |        |     +--ro udabm             binary
    |           |  |        |     +--ro asla-attribute* (type)
    |           |  |        |        +--ro type
    |           |  |        |        |       identityref
    |           |  |        |        +--ro srlgs
    |           |  |        |        |  +--ro srlg*   uint32
    |           |  |        |        +--ro te-default-metric
    |           |  |        |        |  +--ro metric?   uint32
    |           |  |        |        +--ro unidirectional-link-delay
    |           |  |        |        |  +--ro delay?     uint32
    |           |  |        |        |  +--ro anomaly?   boolean
    |           |  |        |        +--ro min-max-unidirectional-link-
delay
    |           |  |        |        |  +--ro min
    |           |  |        |        |  |  +--ro delay?   uint32
    |           |  |        |        |  +--ro max
    |           |  |        |        |  |  +--ro delay?   uint32
    |           |  |        |        |  +--ro anomaly?   boolean
    |           |  |        |        +--ro unidirectional-delay-variati
on
    |           |  |        |        |  +--ro delay?   uint32
    |           |  |        |        +--ro unidirectional-link-loss
    |           |  |        |        |  +--ro link-loss?   uint32
    |           |  |        |        |  +--ro anomaly?     boolean
    |           |  |        |        +--ro unidirectional-residual-bw
    |           |  |        |        |  +--ro bw?
    |           |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |        |        +--ro unidirectional-available-bw
    |           |  |        |        |  +--ro bw?
    |           |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |        |        +--ro unidirectional-utilized-bw
    |           |  |        |        |  +--ro bw?
    |           |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |        |        +--ro extended-admin-group
    |           |  |        |        |  +--ro eag*   uint32
    |           |  |        |        +--ro unknowns
    |           |  |        |           +--ro unknown* (type)
    |           |  |        |              +--ro type     uint16
    |           |  |        |              +--ro value?
    |           |  |        |                      yang:hex-string
    |           |  |        +--ro l2-bundle-members
    |           |  |           +--ro l2-bundle-member*
    |           |  |                   (member-descriptor)
    |           |  |              +--ro member-descriptor
    |           |  |              |       uint32
    |           |  |              +--ro bundle-member-attribute*
    |           |  |                      (type)
    |           |  |                 +--ro type
    |           |  |                 |       identityref
    |           |  |                 +--ro te-default-metric
    |           |  |                 |  +--ro metric?   uint32
    |           |  |                 +--ro unidirectional-link-delay
    |           |  |                 |  +--ro delay?     uint32
    |           |  |                 |  +--ro anomaly?   boolean
    |           |  |                 +--ro min-max-unidirectional-link-
delay
    |           |  |                 |  +--ro min
    |           |  |                 |  |  +--ro delay?   uint32
    |           |  |                 |  +--ro max
    |           |  |                 |  |  +--ro delay?   uint32
    |           |  |                 |  +--ro anomaly?   boolean
    |           |  |                 +--ro unidirectional-delay-variati
on
    |           |  |                 |  +--ro delay?   uint32
    |           |  |                 +--ro unidirectional-link-loss
    |           |  |                 |  +--ro link-loss?   uint32
    |           |  |                 |  +--ro anomaly?     boolean
    |           |  |                 +--ro unidirectional-residual-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro unidirectional-available-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro unidirectional-utilized-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro extended-admin-group
    |           |  |                 |  +--ro eag*   uint32
    |           |  |                 +--ro unknowns
    |           |  |                 |  +--ro unknown* (type)
    |           |  |                 |     +--ro type     uint16
    |           |  |                 |     +--ro value?
    |           |  |                 |             yang:hex-string
    |           |  |                 +--ro maximum-link-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro maximum-reservable-link-bw
    |           |  |                 |  +--ro bw?
    |           |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
    |           |  |                 +--ro unreserved-bws
    |           |  |                 |  +--ro unreserved-bw*
    |           |  |                 |          (priority)
    |           |  |                 |     +--ro priority     uint8
    |           |  |                 |     +--ro bandwidth?
    |           |  |                 |             ietf-rt-t:bandwidth-
ieee-float32
    |           |  |                 +--ro link-protection-type
    |           |  |                 |  +--ro type?   uint16
    |           |  |                 +--ro adjacency-sids
    |           |  |                 |  +--ro adjacency-sid*
    |           |  |                 |          (label-index format)
    |           |  |                 |     +--ro label-index
    |           |  |                 |     |       uint32
    |           |  |                 |     +--ro format
    |           |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
    |           |  |                 |     +--ro flags?
    |           |  |                 |     |       binary
    |           |  |                 |     +--ro weight?        uint8
    |           |  |                 +--ro lan-adjacency-sids
    |           |  |                 |  +--ro adjacency-sid*
    |           |  |                 |          (label-index format)
    |           |  |                 |     +--ro label-index
    |           |  |                 |     |       uint32
    |           |  |                 |     +--ro format
    |           |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
    |           |  |                 |     +--ro flags?
    |           |  |                 |     |       binary
    |           |  |                 |     +--ro weight?        uint8
    |           |  |                 |     +--ro neighbor-id?   union
    |           |  |                 +--ro aslas
    |           |  |                    +--ro asla* (sabm udabm)
    |           |  |                       +--ro sabm
    |           |  |                       |       binary
    |           |  |                       +--ro udabm
    |           |  |                       |       binary
    |           |  |                       +--ro asla-attribute*
    |           |  |                               (type)
    |           |  |                          +--ro type
    |           |  |                          |       identityref
    |           |  |                          +--ro srlgs
    |           |  |                          |  +--ro srlg*   uint32
    |           |  |                          +--ro te-default-metric
    |           |  |                          |  +--ro metric?
    |           |  |                          |          uint32
    |           |  |                          +--ro unidirectional-link
-delay
    |           |  |                          |  +--ro delay?
    |           |  |                          |  |       uint32
    |           |  |                          |  +--ro anomaly?
    |           |  |                          |          boolean
    |           |  |                          +--ro min-max-unidirectio
nal-link-delay
    |           |  |                          |  +--ro min
    |           |  |                          |  |  +--ro delay?
    |           |  |                          |  |          uint32
    |           |  |                          |  +--ro max
    |           |  |                          |  |  +--ro delay?
    |           |  |                          |  |          uint32
    |           |  |                          |  +--ro anomaly?
    |           |  |                          |          boolean
    |           |  |                          +--ro unidirectional-dela
y-variation
    |           |  |                          |  +--ro delay?
    |           |  |                          |          uint32
    |           |  |                          +--ro unidirectional-link
-loss
    |           |  |                          |  +--ro link-loss?
    |           |  |                          |  |       uint32
    |           |  |                          |  +--ro anomaly?
    |           |  |                          |          boolean
    |           |  |                          +--ro unidirectional-resi
dual-bw
    |           |  |                          |  +--ro bw?
    |           |  |                          |          ietf-rt-t:band
width-ieee-float32
    |           |  |                          +--ro unidirectional-avai
lable-bw
    |           |  |                          |  +--ro bw?
    |           |  |                          |          ietf-rt-t:band
width-ieee-float32
    |           |  |                          +--ro unidirectional-util
ized-bw
    |           |  |                          |  +--ro bw?
    |           |  |                          |          ietf-rt-t:band
width-ieee-float32
    |           |  |                          +--ro extended-admin-grou
p
    |           |  |                          |  +--ro eag*   uint32
    |           |  |                          +--ro unknowns
    |           |  |                             +--ro unknown*
    |           |  |                                     (type)
    |           |  |                                +--ro type
    |           |  |                                |       uint16
    |           |  |                                +--ro value?
    |           |  |                                        yang:hex-st
ring
    |           |  +--ro bgp-link*
    |           |          (local-as local-router-id remote-as remote-r
outer-id local-id remote-id local-ipv4-address remote-ipv4-address loca
l-ipv6-address remote-ipv6-address multi-topology-id)
    |           |     +--ro local-as               inet:as-number
    |           |     +--ro local-router-id
    |           |     |       ietf-rt-t:router-id
    |           |     +--ro remote-as              inet:as-number
    |           |     +--ro remote-router-id
    |           |     |       ietf-rt-t:router-id
    |           |     +--ro local-id               uint32
    |           |     +--ro remote-id              uint32
    |           |     +--ro local-ipv4-address     inet:ipv4-address
    |           |     +--ro remote-ipv4-address    inet:ipv4-address
    |           |     +--ro local-ipv6-address     inet:ipv6-address
    |           |     +--ro remote-ipv6-address    inet:ipv6-address
    |           |     +--ro multi-topology-id      uint16
    |           |     +--ro link-attributes
    |           |        +--ro link-attribute* (type)
    |           |           +--ro type             identityref
    |           |           +--ro bgp-peer-sids
    |           |              +--ro bgp-peer-sid*
    |           |                      (label-index format)
    |           |                 +--ro label-index    uint32
    |           |                 +--ro format
    |           |                 |       bgp-ls-topo-t:sid-format
    |           |                 +--ro flags?         binary
    |           |                 +--ro weight?        uint8
    |           +--ro prefixes
    |           |  +--ro ospf-prefix*
    |           |  |       (is-as-scoped area-id as router-id dr-identi
fier multi-topology-id route-type prefix)
    |           |  |  +--ro is-as-scoped         boolean
    |           |  |  +--ro area-id
    |           |  |  |       ietf-ospf-t:area-id-type
    |           |  |  +--ro as                   inet:as-number
    |           |  |  +--ro router-id            ietf-rt-t:router-id
    |           |  |  +--ro route-type
    |           |  |  |       bgp-ls-topo-t:ospf-route-type
    |           |  |  +--ro multi-topology-id    uint16
    |           |  |  +--ro dr-identifier        inet:ipv4-address
    |           |  |  +--ro prefix               inet:ipv4-prefix
    |           |  |  +--ro prefix-attributes
    |           |  |     +--ro prefix-attribute* (type)
    |           |  |        +--ro type
    |           |  |        |       identityref
    |           |  |        +--ro flexible-algorithm-prefix-metric
    |           |  |        |  +--ro fa-prefix-metric* (algorithm)
    |           |  |        |     +--ro metric?      uint32
    |           |  |        |     +--ro algorithm    uint8
    |           |  |        |     +--ro flags?       binary
    |           |  |        +--ro igp-flags
    |           |  |        |  +--ro flags?
    |           |  |        |          bgp-ls-topo-t:igp-flags-bits
    |           |  |        +--ro igp-route-tags
    |           |  |        |  +--ro tag*   uint32
    |           |  |        +--ro extended-igp-route-tags
    |           |  |        |  +--ro tag*   uint64
    |           |  |        +--ro prefix-metric
    |           |  |        |  +--ro metric?   uint32
    |           |  |        +--ro ospf-forwarding-address
    |           |  |        |  +--ro forw-address?   inet:ip-address
    |           |  |        +--ro opaque-prefix-attribute
    |           |  |        |  +--ro opaque-attrs?   yang:hex-string
    |           |  |        +--ro prefix-sids
    |           |  |        |  +--ro prefix-sid* (label-index format)
    |           |  |        |     +--ro label-index    uint32
    |           |  |        |     +--ro format
    |           |  |        |     |       bgp-ls-topo-t:sid-format
    |           |  |        |     +--ro flags?         binary
    |           |  |        |     +--ro algorithm?     uint8
    |           |  |        +--ro prefix-range
    |           |  |        |  +--ro index?        uint32
    |           |  |        |  +--ro range-size?   uint16
    |           |  |        |  +--ro flags?        binary
    |           |  |        |  +--ro algorithm?    uint8
    |           |  |        |  +--ro sid-flags?    binary
    |           |  |        +--ro srv6-locator
    |           |  |        |  +--ro metric?      uint32
    |           |  |        |  +--ro flags?       binary
    |           |  |        |  +--ro algorithm?   uint8
    |           |  |        +--ro prefix-attribute-flags
    |           |  |        |  +--ro flags?   binary
    |           |  |        +--ro prefix-source-router-id
    |           |  |        |  +--ro source-router-id?
    |           |  |        |          inet:ip-address
    |           |  |        +--ro unknowns
    |           |  |           +--ro unknown* (type)
    |           |  |              +--ro type     uint16
    |           |  |              +--ro value?   yang:hex-string
    |           |  +--ro ospfv3-prefix*
    |           |  |       (is-as-scoped area-id as router-id dr-identi
fier multi-topology-id route-type prefix)
    |           |  |  +--ro is-as-scoped         boolean
    |           |  |  +--ro area-id
    |           |  |  |       ietf-ospf-t:area-id-type
    |           |  |  +--ro as                   inet:as-number
    |           |  |  +--ro router-id            ietf-rt-t:router-id
    |           |  |  +--ro route-type
    |           |  |  |       bgp-ls-topo-t:ospf-route-type
    |           |  |  +--ro multi-topology-id    uint16
    |           |  |  +--ro dr-identifier        uint32
    |           |  |  +--ro prefix               inet:ip-prefix
    |           |  |  +--ro prefix-attributes
    |           |  |     +--ro prefix-attribute* (type)
    |           |  |        +--ro type
    |           |  |        |       identityref
    |           |  |        +--ro flexible-algorithm-prefix-metric
    |           |  |        |  +--ro fa-prefix-metric* (algorithm)
    |           |  |        |     +--ro metric?      uint32
    |           |  |        |     +--ro algorithm    uint8
    |           |  |        |     +--ro flags?       binary
    |           |  |        +--ro igp-flags
    |           |  |        |  +--ro flags?
    |           |  |        |          bgp-ls-topo-t:igp-flags-bits
    |           |  |        +--ro igp-route-tags
    |           |  |        |  +--ro tag*   uint32
    |           |  |        +--ro extended-igp-route-tags
    |           |  |        |  +--ro tag*   uint64
    |           |  |        +--ro prefix-metric
    |           |  |        |  +--ro metric?   uint32
    |           |  |        +--ro ospf-forwarding-address
    |           |  |        |  +--ro forw-address?   inet:ip-address
    |           |  |        +--ro opaque-prefix-attribute
    |           |  |        |  +--ro opaque-attrs?   yang:hex-string
    |           |  |        +--ro prefix-sids
    |           |  |        |  +--ro prefix-sid* (label-index format)
    |           |  |        |     +--ro label-index    uint32
    |           |  |        |     +--ro format
    |           |  |        |     |       bgp-ls-topo-t:sid-format
    |           |  |        |     +--ro flags?         binary
    |           |  |        |     +--ro algorithm?     uint8
    |           |  |        +--ro prefix-range
    |           |  |        |  +--ro index?        uint32
    |           |  |        |  +--ro range-size?   uint16
    |           |  |        |  +--ro flags?        binary
    |           |  |        |  +--ro algorithm?    uint8
    |           |  |        |  +--ro sid-flags?    binary
    |           |  |        +--ro srv6-locator
    |           |  |        |  +--ro metric?      uint32
    |           |  |        |  +--ro flags?       binary
    |           |  |        |  +--ro algorithm?   uint8
    |           |  |        +--ro prefix-attribute-flags
    |           |  |        |  +--ro flags?   binary
    |           |  |        +--ro prefix-source-router-id
    |           |  |        |  +--ro source-router-id?
    |           |  |        |          inet:ip-address
    |           |  |        +--ro unknowns
    |           |  |           +--ro unknown* (type)
    |           |  |              +--ro type     uint16
    |           |  |              +--ro value?   yang:hex-string
    |           |  +--ro isis-prefix*
    |           |          (system-id psn-id as multi-topology-id prefi
x)
    |           |     +--ro system-id
    |           |     |       ietf-isis-t:system-id
    |           |     +--ro psn-id               uint8
    |           |     +--ro as                   inet:as-number
    |           |     +--ro multi-topology-id    uint16
    |           |     +--ro prefix               inet:ip-prefix
    |           |     +--ro prefix-attributes
    |           |        +--ro prefix-attribute* (type)
    |           |           +--ro type
    |           |           |       identityref
    |           |           +--ro flexible-algorithm-prefix-metric
    |           |           |  +--ro fa-prefix-metric* (algorithm)
    |           |           |     +--ro metric?      uint32
    |           |           |     +--ro algorithm    uint8
    |           |           |     +--ro flags?       binary
    |           |           +--ro igp-flags
    |           |           |  +--ro flags?
    |           |           |          bgp-ls-topo-t:igp-flags-bits
    |           |           +--ro igp-route-tags
    |           |           |  +--ro tag*   uint32
    |           |           +--ro extended-igp-route-tags
    |           |           |  +--ro tag*   uint64
    |           |           +--ro prefix-metric
    |           |           |  +--ro metric?   uint32
    |           |           +--ro ospf-forwarding-address
    |           |           |  +--ro forw-address?   inet:ip-address
    |           |           +--ro opaque-prefix-attribute
    |           |           |  +--ro opaque-attrs?   yang:hex-string
    |           |           +--ro prefix-sids
    |           |           |  +--ro prefix-sid* (label-index format)
    |           |           |     +--ro label-index    uint32
    |           |           |     +--ro format
    |           |           |     |       bgp-ls-topo-t:sid-format
    |           |           |     +--ro flags?         binary
    |           |           |     +--ro algorithm?     uint8
    |           |           +--ro prefix-range
    |           |           |  +--ro index?        uint32
    |           |           |  +--ro range-size?   uint16
    |           |           |  +--ro flags?        binary
    |           |           |  +--ro algorithm?    uint8
    |           |           |  +--ro sid-flags?    binary
    |           |           +--ro srv6-locator
    |           |           |  +--ro metric?      uint32
    |           |           |  +--ro flags?       binary
    |           |           |  +--ro algorithm?   uint8
    |           |           +--ro prefix-attribute-flags
    |           |           |  +--ro flags?   binary
    |           |           +--ro prefix-source-router-id
    |           |           |  +--ro source-router-id?
    |           |           |          inet:ip-address
    |           |           +--ro unknowns
    |           |              +--ro unknown* (type)
    |           |                 +--ro type     uint16
    |           |                 +--ro value?   yang:hex-string
    |           +--ro srv6-sids
    |           |  +--ro ospfv3-srv6-sid*
    |           |  |       (is-as-scoped area-id router-id dr-identifie
r as sid multi-topology-id)
    |           |  |  +--ro is-as-scoped           boolean
    |           |  |  +--ro area-id
    |           |  |  |       ietf-ospf-t:area-id-type
    |           |  |  +--ro router-id
    |           |  |  |       ietf-rt-t:router-id
    |           |  |  +--ro dr-identifier          uint32
    |           |  |  +--ro as                     inet:as-number
    |           |  |  +--ro sid                    inet:ipv6-prefix
    |           |  |  +--ro multi-topology-id      uint16
    |           |  |  +--ro srv6-sid-attributes
    |           |  |     +--ro srv6-sid-attribute* (type)
    |           |  |        +--ro type
    |           |  |        |       identityref
    |           |  |        +--ro srv6-endpoint-behavior
    |           |  |        |  +--ro endpoint-behavior?   uint8
    |           |  |        |  +--ro flags?               binary
    |           |  |        |  +--ro algorithm?           uint8
    |           |  |        +--ro srv6-sid-structure
    |           |  |        |  +--ro locator-block-len?   uint8
    |           |  |        |  +--ro locator-node-len?    uint8
    |           |  |        |  +--ro function-len?        uint8
    |           |  |        |  +--ro arg-len?             uint8
    |           |  |        +--ro unknowns
    |           |  |           +--ro unknown* (type)
    |           |  |              +--ro type     uint16
    |           |  |              +--ro value?   yang:hex-string
    |           |  +--ro isis-srv6-sid*
    |           |  |       (system-id psn-id as sid multi-topology-id)
    |           |  |  +--ro system-id
    |           |  |  |       ietf-isis-t:system-id
    |           |  |  +--ro psn-id                 uint8
    |           |  |  +--ro as                     inet:as-number
    |           |  |  +--ro sid                    inet:ipv6-prefix
    |           |  |  +--ro multi-topology-id      uint16
    |           |  |  +--ro srv6-sid-attributes
    |           |  |     +--ro srv6-sid-attribute* (type)
    |           |  |        +--ro type
    |           |  |        |       identityref
    |           |  |        +--ro srv6-endpoint-behavior
    |           |  |        |  +--ro endpoint-behavior?   uint8
    |           |  |        |  +--ro flags?               binary
    |           |  |        |  +--ro algorithm?           uint8
    |           |  |        +--ro srv6-sid-structure
    |           |  |        |  +--ro locator-block-len?   uint8
    |           |  |        |  +--ro locator-node-len?    uint8
    |           |  |        |  +--ro function-len?        uint8
    |           |  |        |  +--ro arg-len?             uint8
    |           |  |        +--ro unknowns
    |           |  |           +--ro unknown* (type)
    |           |  |              +--ro type     uint16
    |           |  |              +--ro value?   yang:hex-string
    |           |  +--ro bgp-srv6-sid*
    |           |          (router-id as sid multi-topology-id)
    |           |     +--ro router-id
    |           |     |       ietf-rt-t:router-id
    |           |     +--ro as                     inet:as-number
    |           |     +--ro sid                    inet:ipv6-prefix
    |           |     +--ro multi-topology-id      uint16
    |           |     +--ro srv6-sid-attributes
    |           |        +--ro srv6-sid-attribute* (type)
    |           |           +--ro type
    |           |           |       identityref
    |           |           +--ro srv6-endpoint-behavior
    |           |           |  +--ro endpoint-behavior?   uint8
    |           |           |  +--ro flags?               binary
    |           |           |  +--ro algorithm?           uint8
    |           |           +--ro srv6-sid-structure
    |           |           |  +--ro locator-block-len?   uint8
    |           |           |  +--ro locator-node-len?    uint8
    |           |           |  +--ro function-len?        uint8
    |           |           |  +--ro arg-len?             uint8
    |           |           +--ro unknowns
    |           |           |  +--ro unknown* (type)
    |           |           |     +--ro type     uint16
    |           |           |     +--ro value?   yang:hex-string
    |           |           +--ro srv6-bgp-peer-node-sid
    |           |              +--ro flags?         binary
    |           |              +--ro weight?        uint8
    |           |              +--ro peer-as?       inet:as-number
    |           |              +--ro peer-bgp-id?
    |           |                      ietf-rt-t:router-id
    |           +--ro unknowns
    |              +--ro unknown* (nlri)
    |                 +--ro nlri          yang:hex-string
    |                 +--ro attributes?   yang:hex-string
    +--rw link-state-spf
       +--rw prefix-limit
       |  +--rw max-prefixes?            uint32
       |  +--rw warning-threshold-pct?   rt-types:percentage
       |  +--rw teardown?                boolean
       |  +--rw idle-time?               union
       |  +--ro prefix-limit-exceeded?   boolean
       +--rw instance-identifier?   uint64
       +--rw algorithm-type?        spf-algorithm-type
       +--rw node-status?           enumeration
       +--ro log
       |  +--ro event* (id)
       |     +--ro id                      uint32
       |     +--ro type?                   enumeration
       |     +--ro schedule-time?          yang:date-and-time
       |     +--ro delay?                  uint64
       |     +--ro start-time?             yang:date-and-time
       |     +--ro end-time?               yang:date-and-time
       |     +--ro duration?               uint64
       |     +--ro node-count?             uint64
       |     +--ro prefix-count?           uint64
       |     +--ro route-download-count?   uint64
       |     +--ro lsp-trigger* (id)
       |        +--ro id               uint32
       |        +--ro nlri-prefix?     string
       |        +--ro nlri-sequence?   uint32
       |        +--ro trigger-time?    yang:date-and-time
       +--ro bgp-ls-topology
          +--ro instances
             +--ro instance* (vrf-name protocol identifier)
                +--ro vrf-name      string
                +--ro protocol      bgp-ls-topo-t:protocol
                +--ro identifier    uint64
                +--ro nodes
                |  +--ro ospf-node*
                |  |       (is-as-scoped area-id router-id dr-identifie
r as)
                |  |  +--ro is-as-scoped       boolean
                |  |  +--ro area-id
                |  |  |       ietf-ospf-t:area-id-type
                |  |  +--ro router-id          ietf-rt-t:router-id
                |  |  +--ro dr-identifier      union
                |  |  +--ro as                 inet:as-number
                |  |  +--ro node-attributes
                |  |     +--ro node-attribute* (type)
                |  |        +--ro type
                |  |        |       identityref
                |  |        +--ro local-ipv4-router-ids
                |  |        |  +--ro router-id*   ietf-rt-t:router-id
                |  |        +--ro local-ipv6-router-ids
                |  |        |  +--ro router-id*   inet:ipv6-address
                |  |        +--ro unknowns
                |  |        |  +--ro unknown* (type)
                |  |        |     +--ro type     uint16
                |  |        |     +--ro value?   yang:hex-string
                |  |        +--ro multi-topology-ids
                |  |        |  +--ro multi-topology-id*   uint16
                |  |        +--ro node-flag-bits
                |  |        |  +--ro flags?
                |  |        |          bgp-ls-topo-t:node-flag-bits
                |  |        +--ro opaque-node-attribute
                |  |        |  +--ro opaque-attrs?   yang:hex-string
                |  |        +--ro node-name
                |  |        |  +--ro name?   string
                |  |        +--ro sr-capabilities
                |  |        |  +--ro srgb* (start-label)
                |  |        |  |  +--ro start-label
                |  |        |  |  |       ietf-rt-t:mpls-label
                |  |        |  |  +--ro range-size?    uint32
                |  |        |  +--ro isis-flags?   binary
                |  |        +--ro sr-local-block
                |  |        |  +--ro srlb* (start-label)
                |  |        |     +--ro start-label
                |  |        |     |       ietf-rt-t:mpls-label
                |  |        |     +--ro range-size?    uint32
                |  |        +--ro sr-algorithm
                |  |        |  +--ro algorithm*   uint8
                |  |        +--ro node-msd
                |  |        |  +--ro msd* (msd-type)
                |  |        |     +--ro msd-type     uint8
                |  |        |     +--ro msd-value?   uint8
                |  |        +--ro fads
                |  |        |  +--ro fad* (algorithm)
                |  |        |     +--ro algorithm              uint8
                |  |        |     +--ro metric-type?           uint8
                |  |        |     +--ro calc-type?             uint8
                |  |        |     +--ro priority?              uint8
                |  |        |     +--ro node-fad-attributes
                |  |        |        +--ro node-fad-attribute* (type)
                |  |        |           +--ro type
                |  |        |           |       identityref
                |  |        |           +--ro exclude-any-affinity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro include-any-affinity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro include-all-affinity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro flags
                |  |        |           |  +--ro flags?   binary
                |  |        |           +--ro exclude-srlg
                |  |        |           |  +--ro srlg*   uint32
                |  |        |           +--ro exclude-minimum-bw
                |  |        |           |  +--ro bw?
                |  |        |           |          ietf-rt-t:bandwidth-
ieee-float32
                |  |        |           +--ro exclude-maximum-delay
                |  |        |           |  +--ro delay?   uint32
                |  |        |           +--ro exclude-any-reverse-affin
ity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro include-any-reverse-affin
ity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro include-all-reverse-affin
ity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro fa-unsupported-tlvs
                |  |        |              +--ro protocol-id?
                |  |        |              |       bgp-ls-topo-t:protoc
ol
                |  |        |              +--ro type*
                |  |        |                      uint16
                |  |        +--ro isis-area-identifiers
                |  |        |  +--ro area-address*
                |  |        |          ietf-isis-t:area-address
                |  |        +--ro srv6-capabilities-flags
                |  |           +--ro flags?   binary
                |  +--ro ospfv3-node*
                |  |       (is-as-scoped area-id router-id dr-identifie
r as)
                |  |  +--ro is-as-scoped       boolean
                |  |  +--ro area-id
                |  |  |       ietf-ospf-t:area-id-type
                |  |  +--ro router-id          ietf-rt-t:router-id
                |  |  +--ro dr-identifier      union
                |  |  +--ro as                 inet:as-number
                |  |  +--ro node-attributes
                |  |     +--ro node-attribute* (type)
                |  |        +--ro type
                |  |        |       identityref
                |  |        +--ro local-ipv4-router-ids
                |  |        |  +--ro router-id*   ietf-rt-t:router-id
                |  |        +--ro local-ipv6-router-ids
                |  |        |  +--ro router-id*   inet:ipv6-address
                |  |        +--ro unknowns
                |  |        |  +--ro unknown* (type)
                |  |        |     +--ro type     uint16
                |  |        |     +--ro value?   yang:hex-string
                |  |        +--ro multi-topology-ids
                |  |        |  +--ro multi-topology-id*   uint16
                |  |        +--ro node-flag-bits
                |  |        |  +--ro flags?
                |  |        |          bgp-ls-topo-t:node-flag-bits
                |  |        +--ro opaque-node-attribute
                |  |        |  +--ro opaque-attrs?   yang:hex-string
                |  |        +--ro node-name
                |  |        |  +--ro name?   string
                |  |        +--ro sr-capabilities
                |  |        |  +--ro srgb* (start-label)
                |  |        |  |  +--ro start-label
                |  |        |  |  |       ietf-rt-t:mpls-label
                |  |        |  |  +--ro range-size?    uint32
                |  |        |  +--ro isis-flags?   binary
                |  |        +--ro sr-local-block
                |  |        |  +--ro srlb* (start-label)
                |  |        |     +--ro start-label
                |  |        |     |       ietf-rt-t:mpls-label
                |  |        |     +--ro range-size?    uint32
                |  |        +--ro sr-algorithm
                |  |        |  +--ro algorithm*   uint8
                |  |        +--ro node-msd
                |  |        |  +--ro msd* (msd-type)
                |  |        |     +--ro msd-type     uint8
                |  |        |     +--ro msd-value?   uint8
                |  |        +--ro fads
                |  |        |  +--ro fad* (algorithm)
                |  |        |     +--ro algorithm              uint8
                |  |        |     +--ro metric-type?           uint8
                |  |        |     +--ro calc-type?             uint8
                |  |        |     +--ro priority?              uint8
                |  |        |     +--ro node-fad-attributes
                |  |        |        +--ro node-fad-attribute* (type)
                |  |        |           +--ro type
                |  |        |           |       identityref
                |  |        |           +--ro exclude-any-affinity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro include-any-affinity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro include-all-affinity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro flags
                |  |        |           |  +--ro flags?   binary
                |  |        |           +--ro exclude-srlg
                |  |        |           |  +--ro srlg*   uint32
                |  |        |           +--ro exclude-minimum-bw
                |  |        |           |  +--ro bw?
                |  |        |           |          ietf-rt-t:bandwidth-
ieee-float32
                |  |        |           +--ro exclude-maximum-delay
                |  |        |           |  +--ro delay?   uint32
                |  |        |           +--ro exclude-any-reverse-affin
ity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro include-any-reverse-affin
ity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro include-all-reverse-affin
ity
                |  |        |           |  +--ro eag*   uint32
                |  |        |           +--ro fa-unsupported-tlvs
                |  |        |              +--ro protocol-id?
                |  |        |              |       bgp-ls-topo-t:protoc
ol
                |  |        |              +--ro type*
                |  |        |                      uint16
                |  |        +--ro isis-area-identifiers
                |  |        |  +--ro area-address*
                |  |        |          ietf-isis-t:area-address
                |  |        +--ro srv6-capabilities-flags
                |  |           +--ro flags?   binary
                |  +--ro isis-node* (system-id psn-id as)
                |     +--ro system-id          ietf-isis-t:system-id
                |     +--ro psn-id             uint8
                |     +--ro as                 inet:as-number
                |     +--ro node-attributes
                |        +--ro node-attribute* (type)
                |           +--ro type
                |           |       identityref
                |           +--ro local-ipv4-router-ids
                |           |  +--ro router-id*   ietf-rt-t:router-id
                |           +--ro local-ipv6-router-ids
                |           |  +--ro router-id*   inet:ipv6-address
                |           +--ro unknowns
                |           |  +--ro unknown* (type)
                |           |     +--ro type     uint16
                |           |     +--ro value?   yang:hex-string
                |           +--ro multi-topology-ids
                |           |  +--ro multi-topology-id*   uint16
                |           +--ro node-flag-bits
                |           |  +--ro flags?
                |           |          bgp-ls-topo-t:node-flag-bits
                |           +--ro opaque-node-attribute
                |           |  +--ro opaque-attrs?   yang:hex-string
                |           +--ro node-name
                |           |  +--ro name?   string
                |           +--ro sr-capabilities
                |           |  +--ro srgb* (start-label)
                |           |  |  +--ro start-label
                |           |  |  |       ietf-rt-t:mpls-label
                |           |  |  +--ro range-size?    uint32
                |           |  +--ro isis-flags?   binary
                |           +--ro sr-local-block
                |           |  +--ro srlb* (start-label)
                |           |     +--ro start-label
                |           |     |       ietf-rt-t:mpls-label
                |           |     +--ro range-size?    uint32
                |           +--ro sr-algorithm
                |           |  +--ro algorithm*   uint8
                |           +--ro node-msd
                |           |  +--ro msd* (msd-type)
                |           |     +--ro msd-type     uint8
                |           |     +--ro msd-value?   uint8
                |           +--ro fads
                |           |  +--ro fad* (algorithm)
                |           |     +--ro algorithm              uint8
                |           |     +--ro metric-type?           uint8
                |           |     +--ro calc-type?             uint8
                |           |     +--ro priority?              uint8
                |           |     +--ro node-fad-attributes
                |           |        +--ro node-fad-attribute* (type)
                |           |           +--ro type
                |           |           |       identityref
                |           |           +--ro exclude-any-affinity
                |           |           |  +--ro eag*   uint32
                |           |           +--ro include-any-affinity
                |           |           |  +--ro eag*   uint32
                |           |           +--ro include-all-affinity
                |           |           |  +--ro eag*   uint32
                |           |           +--ro flags
                |           |           |  +--ro flags?   binary
                |           |           +--ro exclude-srlg
                |           |           |  +--ro srlg*   uint32
                |           |           +--ro exclude-minimum-bw
                |           |           |  +--ro bw?
                |           |           |          ietf-rt-t:bandwidth-
ieee-float32
                |           |           +--ro exclude-maximum-delay
                |           |           |  +--ro delay?   uint32
                |           |           +--ro exclude-any-reverse-affin
ity
                |           |           |  +--ro eag*   uint32
                |           |           +--ro include-any-reverse-affin
ity
                |           |           |  +--ro eag*   uint32
                |           |           +--ro include-all-reverse-affin
ity
                |           |           |  +--ro eag*   uint32
                |           |           +--ro fa-unsupported-tlvs
                |           |              +--ro protocol-id?
                |           |              |       bgp-ls-topo-t:protoc
ol
                |           |              +--ro type*
                |           |                      uint16
                |           +--ro isis-area-identifiers
                |           |  +--ro area-address*
                |           |          ietf-isis-t:area-address
                |           +--ro srv6-capabilities-flags
                |              +--ro flags?   binary
                +--ro links
                |  +--ro ospf-link*
                |  |       (area-id as local-router-id local-dr-identif
ier remote-router-id remote-dr-identifier local-id remote-id local-ipv4
-address remote-ipv4-address multi-topology-id)
                |  |  +--ro area-id
                |  |  |       ietf-ospf-t:area-id-type
                |  |  +--ro as                      inet:as-number
                |  |  +--ro local-router-id
                |  |  |       ietf-rt-t:router-id
                |  |  +--ro remote-router-id
                |  |  |       ietf-rt-t:router-id
                |  |  +--ro local-id                uint32
                |  |  +--ro remote-id               uint32
                |  |  +--ro local-ipv4-address      inet:ipv4-address
                |  |  +--ro remote-ipv4-address     inet:ipv4-address
                |  |  +--ro multi-topology-id       uint16
                |  |  +--ro local-dr-identifier     inet:ipv4-address
                |  |  +--ro remote-dr-identifier    inet:ipv4-address
                |  |  +--ro link-attributes
                |  |     +--ro link-attribute* (type)
                |  |        +--ro type
                |  |        |       identityref
                |  |        +--ro te-default-metric
                |  |        |  +--ro metric?   uint32
                |  |        +--ro unidirectional-link-delay
                |  |        |  +--ro delay?     uint32
                |  |        |  +--ro anomaly?   boolean
                |  |        +--ro min-max-unidirectional-link-delay
                |  |        |  +--ro min
                |  |        |  |  +--ro delay?   uint32
                |  |        |  +--ro max
                |  |        |  |  +--ro delay?   uint32
                |  |        |  +--ro anomaly?   boolean
                |  |        +--ro unidirectional-delay-variation
                |  |        |  +--ro delay?   uint32
                |  |        +--ro unidirectional-link-loss
                |  |        |  +--ro link-loss?   uint32
                |  |        |  +--ro anomaly?     boolean
                |  |        +--ro unidirectional-residual-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro unidirectional-available-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro unidirectional-utilized-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro extended-admin-group
                |  |        |  +--ro eag*   uint32
                |  |        +--ro unknowns
                |  |        |  +--ro unknown* (type)
                |  |        |     +--ro type     uint16
                |  |        |     +--ro value?   yang:hex-string
                |  |        +--ro link-local-remote-identifiers
                |  |        |  +--ro local-identifier?    uint32
                |  |        |  +--ro remote-identifier?   uint32
                |  |        +--ro link-msd
                |  |        |  +--ro msd* (msd-type)
                |  |        |     +--ro msd-type     uint8
                |  |        |     +--ro msd-value?   uint8
                |  |        +--ro local-ipv4-router-ids
                |  |        |  +--ro router-id*   ietf-rt-t:router-id
                |  |        +--ro local-ipv6-router-ids
                |  |        |  +--ro router-id*   inet:ipv6-address
                |  |        +--ro remote-ipv4-router-ids
                |  |        |  +--ro router-id*   ietf-rt-t:router-id
                |  |        +--ro remote-ipv6-router-ids
                |  |        |  +--ro router-id*   inet:ipv6-address
                |  |        +--ro mpls-protocol-mask
                |  |        |  +--ro mask?   uint8
                |  |        +--ro igp-metric
                |  |        |  +--ro metric?   uint32
                |  |        +--ro srlgs
                |  |        |  +--ro srlg*   uint32
                |  |        +--ro opaque-link-attribute
                |  |        |  +--ro opaque-attrs?   yang:hex-string
                |  |        +--ro link-name
                |  |        |  +--ro name?   string
                |  |        +--ro srv6-end-x-sids
                |  |        |  +--ro srv6-end-x-sid* (sid)
                |  |        |     +--ro sid
                |  |        |     |       inet:ipv6-address
                |  |        |     +--ro weight?              uint8
                |  |        |     +--ro endpoint-behavior?   uint8
                |  |        |     +--ro flags?               binary
                |  |        |     +--ro algorithm?           uint8
                |  |        |     +--ro locator-block-len?   uint8
                |  |        |     +--ro locator-node-len?    uint8
                |  |        |     +--ro function-len?        uint8
                |  |        |     +--ro arg-len?             uint8
                |  |        +--ro srv6-lan-end-x-sids
                |  |        |  +--ro srv6-end-x-sid* (sid)
                |  |        |     +--ro sid
                |  |        |     |       inet:ipv6-address
                |  |        |     +--ro weight?              uint8
                |  |        |     +--ro endpoint-behavior?   uint8
                |  |        |     +--ro flags?               binary
                |  |        |     +--ro algorithm?           uint8
                |  |        |     +--ro locator-block-len?   uint8
                |  |        |     +--ro locator-node-len?    uint8
                |  |        |     +--ro function-len?        uint8
                |  |        |     +--ro arg-len?             uint8
                |  |        |     +--ro neighbor-id?         union
                |  |        +--ro maximum-link-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro maximum-reservable-link-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro unreserved-bws
                |  |        |  +--ro unreserved-bw* (priority)
                |  |        |     +--ro priority     uint8
                |  |        |     +--ro bandwidth?
                |  |        |             ietf-rt-t:bandwidth-ieee-floa
t32
                |  |        +--ro link-protection-type
                |  |        |  +--ro type?   uint16
                |  |        +--ro adjacency-sids
                |  |        |  +--ro adjacency-sid*
                |  |        |          (label-index format)
                |  |        |     +--ro label-index    uint32
                |  |        |     +--ro format
                |  |        |     |       bgp-ls-topo-t:sid-format
                |  |        |     +--ro flags?         binary
                |  |        |     +--ro weight?        uint8
                |  |        +--ro lan-adjacency-sids
                |  |        |  +--ro adjacency-sid*
                |  |        |          (label-index format)
                |  |        |     +--ro label-index    uint32
                |  |        |     +--ro format
                |  |        |     |       bgp-ls-topo-t:sid-format
                |  |        |     +--ro flags?         binary
                |  |        |     +--ro weight?        uint8
                |  |        |     +--ro neighbor-id?   union
                |  |        +--ro aslas
                |  |        |  +--ro asla* (sabm udabm)
                |  |        |     +--ro sabm              binary
                |  |        |     +--ro udabm             binary
                |  |        |     +--ro asla-attribute* (type)
                |  |        |        +--ro type
                |  |        |        |       identityref
                |  |        |        +--ro srlgs
                |  |        |        |  +--ro srlg*   uint32
                |  |        |        +--ro te-default-metric
                |  |        |        |  +--ro metric?   uint32
                |  |        |        +--ro unidirectional-link-delay
                |  |        |        |  +--ro delay?     uint32
                |  |        |        |  +--ro anomaly?   boolean
                |  |        |        +--ro min-max-unidirectional-link-
delay
                |  |        |        |  +--ro min
                |  |        |        |  |  +--ro delay?   uint32
                |  |        |        |  +--ro max
                |  |        |        |  |  +--ro delay?   uint32
                |  |        |        |  +--ro anomaly?   boolean
                |  |        |        +--ro unidirectional-delay-variati
on
                |  |        |        |  +--ro delay?   uint32
                |  |        |        +--ro unidirectional-link-loss
                |  |        |        |  +--ro link-loss?   uint32
                |  |        |        |  +--ro anomaly?     boolean
                |  |        |        +--ro unidirectional-residual-bw
                |  |        |        |  +--ro bw?
                |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
                |  |        |        +--ro unidirectional-available-bw
                |  |        |        |  +--ro bw?
                |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
                |  |        |        +--ro unidirectional-utilized-bw
                |  |        |        |  +--ro bw?
                |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
                |  |        |        +--ro extended-admin-group
                |  |        |        |  +--ro eag*   uint32
                |  |        |        +--ro unknowns
                |  |        |           +--ro unknown* (type)
                |  |        |              +--ro type     uint16
                |  |        |              +--ro value?
                |  |        |                      yang:hex-string
                |  |        +--ro l2-bundle-members
                |  |           +--ro l2-bundle-member*
                |  |                   (member-descriptor)
                |  |              +--ro member-descriptor
                |  |              |       uint32
                |  |              +--ro bundle-member-attribute*
                |  |                      (type)
                |  |                 +--ro type
                |  |                 |       identityref
                |  |                 +--ro te-default-metric
                |  |                 |  +--ro metric?   uint32
                |  |                 +--ro unidirectional-link-delay
                |  |                 |  +--ro delay?     uint32
                |  |                 |  +--ro anomaly?   boolean
                |  |                 +--ro min-max-unidirectional-link-
delay
                |  |                 |  +--ro min
                |  |                 |  |  +--ro delay?   uint32
                |  |                 |  +--ro max
                |  |                 |  |  +--ro delay?   uint32
                |  |                 |  +--ro anomaly?   boolean
                |  |                 +--ro unidirectional-delay-variati
on
                |  |                 |  +--ro delay?   uint32
                |  |                 +--ro unidirectional-link-loss
                |  |                 |  +--ro link-loss?   uint32
                |  |                 |  +--ro anomaly?     boolean
                |  |                 +--ro unidirectional-residual-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro unidirectional-available-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro unidirectional-utilized-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro extended-admin-group
                |  |                 |  +--ro eag*   uint32
                |  |                 +--ro unknowns
                |  |                 |  +--ro unknown* (type)
                |  |                 |     +--ro type     uint16
                |  |                 |     +--ro value?
                |  |                 |             yang:hex-string
                |  |                 +--ro maximum-link-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro maximum-reservable-link-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro unreserved-bws
                |  |                 |  +--ro unreserved-bw*
                |  |                 |          (priority)
                |  |                 |     +--ro priority     uint8
                |  |                 |     +--ro bandwidth?
                |  |                 |             ietf-rt-t:bandwidth-
ieee-float32
                |  |                 +--ro link-protection-type
                |  |                 |  +--ro type?   uint16
                |  |                 +--ro adjacency-sids
                |  |                 |  +--ro adjacency-sid*
                |  |                 |          (label-index format)
                |  |                 |     +--ro label-index
                |  |                 |     |       uint32
                |  |                 |     +--ro format
                |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
                |  |                 |     +--ro flags?
                |  |                 |     |       binary
                |  |                 |     +--ro weight?        uint8
                |  |                 +--ro lan-adjacency-sids
                |  |                 |  +--ro adjacency-sid*
                |  |                 |          (label-index format)
                |  |                 |     +--ro label-index
                |  |                 |     |       uint32
                |  |                 |     +--ro format
                |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
                |  |                 |     +--ro flags?
                |  |                 |     |       binary
                |  |                 |     +--ro weight?        uint8
                |  |                 |     +--ro neighbor-id?   union
                |  |                 +--ro aslas
                |  |                    +--ro asla* (sabm udabm)
                |  |                       +--ro sabm
                |  |                       |       binary
                |  |                       +--ro udabm
                |  |                       |       binary
                |  |                       +--ro asla-attribute*
                |  |                               (type)
                |  |                          +--ro type
                |  |                          |       identityref
                |  |                          +--ro srlgs
                |  |                          |  +--ro srlg*   uint32
                |  |                          +--ro te-default-metric
                |  |                          |  +--ro metric?
                |  |                          |          uint32
                |  |                          +--ro unidirectional-link
-delay
                |  |                          |  +--ro delay?
                |  |                          |  |       uint32
                |  |                          |  +--ro anomaly?
                |  |                          |          boolean
                |  |                          +--ro min-max-unidirectio
nal-link-delay
                |  |                          |  +--ro min
                |  |                          |  |  +--ro delay?
                |  |                          |  |          uint32
                |  |                          |  +--ro max
                |  |                          |  |  +--ro delay?
                |  |                          |  |          uint32
                |  |                          |  +--ro anomaly?
                |  |                          |          boolean
                |  |                          +--ro unidirectional-dela
y-variation
                |  |                          |  +--ro delay?
                |  |                          |          uint32
                |  |                          +--ro unidirectional-link
-loss
                |  |                          |  +--ro link-loss?
                |  |                          |  |       uint32
                |  |                          |  +--ro anomaly?
                |  |                          |          boolean
                |  |                          +--ro unidirectional-resi
dual-bw
                |  |                          |  +--ro bw?
                |  |                          |          ietf-rt-t:band
width-ieee-float32
                |  |                          +--ro unidirectional-avai
lable-bw
                |  |                          |  +--ro bw?
                |  |                          |          ietf-rt-t:band
width-ieee-float32
                |  |                          +--ro unidirectional-util
ized-bw
                |  |                          |  +--ro bw?
                |  |                          |          ietf-rt-t:band
width-ieee-float32
                |  |                          +--ro extended-admin-grou
p
                |  |                          |  +--ro eag*   uint32
                |  |                          +--ro unknowns
                |  |                             +--ro unknown*
                |  |                                     (type)
                |  |                                +--ro type
                |  |                                |       uint16
                |  |                                +--ro value?
                |  |                                        yang:hex-st
ring
                |  +--ro ospfv3-link*
                |  |       (area-id as local-router-id local-dr-identif
ier remote-router-id remote-dr-identifier local-id remote-id local-ipv4
-address remote-ipv4-address local-ipv6-address remote-ipv6-address mul
ti-topology-id)
                |  |  +--ro area-id
                |  |  |       ietf-ospf-t:area-id-type
                |  |  +--ro as                      inet:as-number
                |  |  +--ro local-router-id
                |  |  |       ietf-rt-t:router-id
                |  |  +--ro remote-router-id
                |  |  |       ietf-rt-t:router-id
                |  |  +--ro local-id                uint32
                |  |  +--ro remote-id               uint32
                |  |  +--ro local-ipv4-address      inet:ipv4-address
                |  |  +--ro remote-ipv4-address     inet:ipv4-address
                |  |  +--ro multi-topology-id       uint16
                |  |  +--ro local-dr-identifier     uint32
                |  |  +--ro remote-dr-identifier    uint32
                |  |  +--ro local-ipv6-address      inet:ipv6-address
                |  |  +--ro remote-ipv6-address     inet:ipv6-address
                |  |  +--ro link-attributes
                |  |     +--ro link-attribute* (type)
                |  |        +--ro type
                |  |        |       identityref
                |  |        +--ro te-default-metric
                |  |        |  +--ro metric?   uint32
                |  |        +--ro unidirectional-link-delay
                |  |        |  +--ro delay?     uint32
                |  |        |  +--ro anomaly?   boolean
                |  |        +--ro min-max-unidirectional-link-delay
                |  |        |  +--ro min
                |  |        |  |  +--ro delay?   uint32
                |  |        |  +--ro max
                |  |        |  |  +--ro delay?   uint32
                |  |        |  +--ro anomaly?   boolean
                |  |        +--ro unidirectional-delay-variation
                |  |        |  +--ro delay?   uint32
                |  |        +--ro unidirectional-link-loss
                |  |        |  +--ro link-loss?   uint32
                |  |        |  +--ro anomaly?     boolean
                |  |        +--ro unidirectional-residual-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro unidirectional-available-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro unidirectional-utilized-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro extended-admin-group
                |  |        |  +--ro eag*   uint32
                |  |        +--ro unknowns
                |  |        |  +--ro unknown* (type)
                |  |        |     +--ro type     uint16
                |  |        |     +--ro value?   yang:hex-string
                |  |        +--ro link-local-remote-identifiers
                |  |        |  +--ro local-identifier?    uint32
                |  |        |  +--ro remote-identifier?   uint32
                |  |        +--ro link-msd
                |  |        |  +--ro msd* (msd-type)
                |  |        |     +--ro msd-type     uint8
                |  |        |     +--ro msd-value?   uint8
                |  |        +--ro local-ipv4-router-ids
                |  |        |  +--ro router-id*   ietf-rt-t:router-id
                |  |        +--ro local-ipv6-router-ids
                |  |        |  +--ro router-id*   inet:ipv6-address
                |  |        +--ro remote-ipv4-router-ids
                |  |        |  +--ro router-id*   ietf-rt-t:router-id
                |  |        +--ro remote-ipv6-router-ids
                |  |        |  +--ro router-id*   inet:ipv6-address
                |  |        +--ro mpls-protocol-mask
                |  |        |  +--ro mask?   uint8
                |  |        +--ro igp-metric
                |  |        |  +--ro metric?   uint32
                |  |        +--ro srlgs
                |  |        |  +--ro srlg*   uint32
                |  |        +--ro opaque-link-attribute
                |  |        |  +--ro opaque-attrs?   yang:hex-string
                |  |        +--ro link-name
                |  |        |  +--ro name?   string
                |  |        +--ro srv6-end-x-sids
                |  |        |  +--ro srv6-end-x-sid* (sid)
                |  |        |     +--ro sid
                |  |        |     |       inet:ipv6-address
                |  |        |     +--ro weight?              uint8
                |  |        |     +--ro endpoint-behavior?   uint8
                |  |        |     +--ro flags?               binary
                |  |        |     +--ro algorithm?           uint8
                |  |        |     +--ro locator-block-len?   uint8
                |  |        |     +--ro locator-node-len?    uint8
                |  |        |     +--ro function-len?        uint8
                |  |        |     +--ro arg-len?             uint8
                |  |        +--ro srv6-lan-end-x-sids
                |  |        |  +--ro srv6-end-x-sid* (sid)
                |  |        |     +--ro sid
                |  |        |     |       inet:ipv6-address
                |  |        |     +--ro weight?              uint8
                |  |        |     +--ro endpoint-behavior?   uint8
                |  |        |     +--ro flags?               binary
                |  |        |     +--ro algorithm?           uint8
                |  |        |     +--ro locator-block-len?   uint8
                |  |        |     +--ro locator-node-len?    uint8
                |  |        |     +--ro function-len?        uint8
                |  |        |     +--ro arg-len?             uint8
                |  |        |     +--ro neighbor-id?         union
                |  |        +--ro maximum-link-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro maximum-reservable-link-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro unreserved-bws
                |  |        |  +--ro unreserved-bw* (priority)
                |  |        |     +--ro priority     uint8
                |  |        |     +--ro bandwidth?
                |  |        |             ietf-rt-t:bandwidth-ieee-floa
t32
                |  |        +--ro link-protection-type
                |  |        |  +--ro type?   uint16
                |  |        +--ro adjacency-sids
                |  |        |  +--ro adjacency-sid*
                |  |        |          (label-index format)
                |  |        |     +--ro label-index    uint32
                |  |        |     +--ro format
                |  |        |     |       bgp-ls-topo-t:sid-format
                |  |        |     +--ro flags?         binary
                |  |        |     +--ro weight?        uint8
                |  |        +--ro lan-adjacency-sids
                |  |        |  +--ro adjacency-sid*
                |  |        |          (label-index format)
                |  |        |     +--ro label-index    uint32
                |  |        |     +--ro format
                |  |        |     |       bgp-ls-topo-t:sid-format
                |  |        |     +--ro flags?         binary
                |  |        |     +--ro weight?        uint8
                |  |        |     +--ro neighbor-id?   union
                |  |        +--ro aslas
                |  |        |  +--ro asla* (sabm udabm)
                |  |        |     +--ro sabm              binary
                |  |        |     +--ro udabm             binary
                |  |        |     +--ro asla-attribute* (type)
                |  |        |        +--ro type
                |  |        |        |       identityref
                |  |        |        +--ro srlgs
                |  |        |        |  +--ro srlg*   uint32
                |  |        |        +--ro te-default-metric
                |  |        |        |  +--ro metric?   uint32
                |  |        |        +--ro unidirectional-link-delay
                |  |        |        |  +--ro delay?     uint32
                |  |        |        |  +--ro anomaly?   boolean
                |  |        |        +--ro min-max-unidirectional-link-
delay
                |  |        |        |  +--ro min
                |  |        |        |  |  +--ro delay?   uint32
                |  |        |        |  +--ro max
                |  |        |        |  |  +--ro delay?   uint32
                |  |        |        |  +--ro anomaly?   boolean
                |  |        |        +--ro unidirectional-delay-variati
on
                |  |        |        |  +--ro delay?   uint32
                |  |        |        +--ro unidirectional-link-loss
                |  |        |        |  +--ro link-loss?   uint32
                |  |        |        |  +--ro anomaly?     boolean
                |  |        |        +--ro unidirectional-residual-bw
                |  |        |        |  +--ro bw?
                |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
                |  |        |        +--ro unidirectional-available-bw
                |  |        |        |  +--ro bw?
                |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
                |  |        |        +--ro unidirectional-utilized-bw
                |  |        |        |  +--ro bw?
                |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
                |  |        |        +--ro extended-admin-group
                |  |        |        |  +--ro eag*   uint32
                |  |        |        +--ro unknowns
                |  |        |           +--ro unknown* (type)
                |  |        |              +--ro type     uint16
                |  |        |              +--ro value?
                |  |        |                      yang:hex-string
                |  |        +--ro l2-bundle-members
                |  |           +--ro l2-bundle-member*
                |  |                   (member-descriptor)
                |  |              +--ro member-descriptor
                |  |              |       uint32
                |  |              +--ro bundle-member-attribute*
                |  |                      (type)
                |  |                 +--ro type
                |  |                 |       identityref
                |  |                 +--ro te-default-metric
                |  |                 |  +--ro metric?   uint32
                |  |                 +--ro unidirectional-link-delay
                |  |                 |  +--ro delay?     uint32
                |  |                 |  +--ro anomaly?   boolean
                |  |                 +--ro min-max-unidirectional-link-
delay
                |  |                 |  +--ro min
                |  |                 |  |  +--ro delay?   uint32
                |  |                 |  +--ro max
                |  |                 |  |  +--ro delay?   uint32
                |  |                 |  +--ro anomaly?   boolean
                |  |                 +--ro unidirectional-delay-variati
on
                |  |                 |  +--ro delay?   uint32
                |  |                 +--ro unidirectional-link-loss
                |  |                 |  +--ro link-loss?   uint32
                |  |                 |  +--ro anomaly?     boolean
                |  |                 +--ro unidirectional-residual-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro unidirectional-available-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro unidirectional-utilized-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro extended-admin-group
                |  |                 |  +--ro eag*   uint32
                |  |                 +--ro unknowns
                |  |                 |  +--ro unknown* (type)
                |  |                 |     +--ro type     uint16
                |  |                 |     +--ro value?
                |  |                 |             yang:hex-string
                |  |                 +--ro maximum-link-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro maximum-reservable-link-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro unreserved-bws
                |  |                 |  +--ro unreserved-bw*
                |  |                 |          (priority)
                |  |                 |     +--ro priority     uint8
                |  |                 |     +--ro bandwidth?
                |  |                 |             ietf-rt-t:bandwidth-
ieee-float32
                |  |                 +--ro link-protection-type
                |  |                 |  +--ro type?   uint16
                |  |                 +--ro adjacency-sids
                |  |                 |  +--ro adjacency-sid*
                |  |                 |          (label-index format)
                |  |                 |     +--ro label-index
                |  |                 |     |       uint32
                |  |                 |     +--ro format
                |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
                |  |                 |     +--ro flags?
                |  |                 |     |       binary
                |  |                 |     +--ro weight?        uint8
                |  |                 +--ro lan-adjacency-sids
                |  |                 |  +--ro adjacency-sid*
                |  |                 |          (label-index format)
                |  |                 |     +--ro label-index
                |  |                 |     |       uint32
                |  |                 |     +--ro format
                |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
                |  |                 |     +--ro flags?
                |  |                 |     |       binary
                |  |                 |     +--ro weight?        uint8
                |  |                 |     +--ro neighbor-id?   union
                |  |                 +--ro aslas
                |  |                    +--ro asla* (sabm udabm)
                |  |                       +--ro sabm
                |  |                       |       binary
                |  |                       +--ro udabm
                |  |                       |       binary
                |  |                       +--ro asla-attribute*
                |  |                               (type)
                |  |                          +--ro type
                |  |                          |       identityref
                |  |                          +--ro srlgs
                |  |                          |  +--ro srlg*   uint32
                |  |                          +--ro te-default-metric
                |  |                          |  +--ro metric?
                |  |                          |          uint32
                |  |                          +--ro unidirectional-link
-delay
                |  |                          |  +--ro delay?
                |  |                          |  |       uint32
                |  |                          |  +--ro anomaly?
                |  |                          |          boolean
                |  |                          +--ro min-max-unidirectio
nal-link-delay
                |  |                          |  +--ro min
                |  |                          |  |  +--ro delay?
                |  |                          |  |          uint32
                |  |                          |  +--ro max
                |  |                          |  |  +--ro delay?
                |  |                          |  |          uint32
                |  |                          |  +--ro anomaly?
                |  |                          |          boolean
                |  |                          +--ro unidirectional-dela
y-variation
                |  |                          |  +--ro delay?
                |  |                          |          uint32
                |  |                          +--ro unidirectional-link
-loss
                |  |                          |  +--ro link-loss?
                |  |                          |  |       uint32
                |  |                          |  +--ro anomaly?
                |  |                          |          boolean
                |  |                          +--ro unidirectional-resi
dual-bw
                |  |                          |  +--ro bw?
                |  |                          |          ietf-rt-t:band
width-ieee-float32
                |  |                          +--ro unidirectional-avai
lable-bw
                |  |                          |  +--ro bw?
                |  |                          |          ietf-rt-t:band
width-ieee-float32
                |  |                          +--ro unidirectional-util
ized-bw
                |  |                          |  +--ro bw?
                |  |                          |          ietf-rt-t:band
width-ieee-float32
                |  |                          +--ro extended-admin-grou
p
                |  |                          |  +--ro eag*   uint32
                |  |                          +--ro unknowns
                |  |                             +--ro unknown*
                |  |                                     (type)
                |  |                                +--ro type
                |  |                                |       uint16
                |  |                                +--ro value?
                |  |                                        yang:hex-st
ring
                |  +--ro isis-link*
                |  |       (local-system-id local-psn-id local-as remot
e-system-id remote-psn-id remote-as local-id remote-id local-ipv4-addre
ss remote-ipv4-address local-ipv6-address remote-ipv6-address multi-top
ology-id)
                |  |  +--ro local-system-id
                |  |  |       ietf-isis-t:system-id
                |  |  +--ro local-psn-id           uint8
                |  |  +--ro local-as               inet:as-number
                |  |  +--ro remote-system-id
                |  |  |       ietf-isis-t:system-id
                |  |  +--ro remote-psn-id          uint8
                |  |  +--ro remote-as              inet:as-number
                |  |  +--ro local-id               uint32
                |  |  +--ro remote-id              uint32
                |  |  +--ro local-ipv4-address     inet:ipv4-address
                |  |  +--ro remote-ipv4-address    inet:ipv4-address
                |  |  +--ro local-ipv6-address     inet:ipv6-address
                |  |  +--ro remote-ipv6-address    inet:ipv6-address
                |  |  +--ro multi-topology-id      uint16
                |  |  +--ro link-attributes
                |  |     +--ro link-attribute* (type)
                |  |        +--ro type
                |  |        |       identityref
                |  |        +--ro te-default-metric
                |  |        |  +--ro metric?   uint32
                |  |        +--ro unidirectional-link-delay
                |  |        |  +--ro delay?     uint32
                |  |        |  +--ro anomaly?   boolean
                |  |        +--ro min-max-unidirectional-link-delay
                |  |        |  +--ro min
                |  |        |  |  +--ro delay?   uint32
                |  |        |  +--ro max
                |  |        |  |  +--ro delay?   uint32
                |  |        |  +--ro anomaly?   boolean
                |  |        +--ro unidirectional-delay-variation
                |  |        |  +--ro delay?   uint32
                |  |        +--ro unidirectional-link-loss
                |  |        |  +--ro link-loss?   uint32
                |  |        |  +--ro anomaly?     boolean
                |  |        +--ro unidirectional-residual-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro unidirectional-available-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro unidirectional-utilized-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro extended-admin-group
                |  |        |  +--ro eag*   uint32
                |  |        +--ro unknowns
                |  |        |  +--ro unknown* (type)
                |  |        |     +--ro type     uint16
                |  |        |     +--ro value?   yang:hex-string
                |  |        +--ro link-local-remote-identifiers
                |  |        |  +--ro local-identifier?    uint32
                |  |        |  +--ro remote-identifier?   uint32
                |  |        +--ro link-msd
                |  |        |  +--ro msd* (msd-type)
                |  |        |     +--ro msd-type     uint8
                |  |        |     +--ro msd-value?   uint8
                |  |        +--ro local-ipv4-router-ids
                |  |        |  +--ro router-id*   ietf-rt-t:router-id
                |  |        +--ro local-ipv6-router-ids
                |  |        |  +--ro router-id*   inet:ipv6-address
                |  |        +--ro remote-ipv4-router-ids
                |  |        |  +--ro router-id*   ietf-rt-t:router-id
                |  |        +--ro remote-ipv6-router-ids
                |  |        |  +--ro router-id*   inet:ipv6-address
                |  |        +--ro mpls-protocol-mask
                |  |        |  +--ro mask?   uint8
                |  |        +--ro igp-metric
                |  |        |  +--ro metric?   uint32
                |  |        +--ro srlgs
                |  |        |  +--ro srlg*   uint32
                |  |        +--ro opaque-link-attribute
                |  |        |  +--ro opaque-attrs?   yang:hex-string
                |  |        +--ro link-name
                |  |        |  +--ro name?   string
                |  |        +--ro srv6-end-x-sids
                |  |        |  +--ro srv6-end-x-sid* (sid)
                |  |        |     +--ro sid
                |  |        |     |       inet:ipv6-address
                |  |        |     +--ro weight?              uint8
                |  |        |     +--ro endpoint-behavior?   uint8
                |  |        |     +--ro flags?               binary
                |  |        |     +--ro algorithm?           uint8
                |  |        |     +--ro locator-block-len?   uint8
                |  |        |     +--ro locator-node-len?    uint8
                |  |        |     +--ro function-len?        uint8
                |  |        |     +--ro arg-len?             uint8
                |  |        +--ro srv6-lan-end-x-sids
                |  |        |  +--ro srv6-end-x-sid* (sid)
                |  |        |     +--ro sid
                |  |        |     |       inet:ipv6-address
                |  |        |     +--ro weight?              uint8
                |  |        |     +--ro endpoint-behavior?   uint8
                |  |        |     +--ro flags?               binary
                |  |        |     +--ro algorithm?           uint8
                |  |        |     +--ro locator-block-len?   uint8
                |  |        |     +--ro locator-node-len?    uint8
                |  |        |     +--ro function-len?        uint8
                |  |        |     +--ro arg-len?             uint8
                |  |        |     +--ro neighbor-id?         union
                |  |        +--ro maximum-link-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro maximum-reservable-link-bw
                |  |        |  +--ro bw?
                |  |        |          ietf-rt-t:bandwidth-ieee-float32
                |  |        +--ro unreserved-bws
                |  |        |  +--ro unreserved-bw* (priority)
                |  |        |     +--ro priority     uint8
                |  |        |     +--ro bandwidth?
                |  |        |             ietf-rt-t:bandwidth-ieee-floa
t32
                |  |        +--ro link-protection-type
                |  |        |  +--ro type?   uint16
                |  |        +--ro adjacency-sids
                |  |        |  +--ro adjacency-sid*
                |  |        |          (label-index format)
                |  |        |     +--ro label-index    uint32
                |  |        |     +--ro format
                |  |        |     |       bgp-ls-topo-t:sid-format
                |  |        |     +--ro flags?         binary
                |  |        |     +--ro weight?        uint8
                |  |        +--ro lan-adjacency-sids
                |  |        |  +--ro adjacency-sid*
                |  |        |          (label-index format)
                |  |        |     +--ro label-index    uint32
                |  |        |     +--ro format
                |  |        |     |       bgp-ls-topo-t:sid-format
                |  |        |     +--ro flags?         binary
                |  |        |     +--ro weight?        uint8
                |  |        |     +--ro neighbor-id?   union
                |  |        +--ro aslas
                |  |        |  +--ro asla* (sabm udabm)
                |  |        |     +--ro sabm              binary
                |  |        |     +--ro udabm             binary
                |  |        |     +--ro asla-attribute* (type)
                |  |        |        +--ro type
                |  |        |        |       identityref
                |  |        |        +--ro srlgs
                |  |        |        |  +--ro srlg*   uint32
                |  |        |        +--ro te-default-metric
                |  |        |        |  +--ro metric?   uint32
                |  |        |        +--ro unidirectional-link-delay
                |  |        |        |  +--ro delay?     uint32
                |  |        |        |  +--ro anomaly?   boolean
                |  |        |        +--ro min-max-unidirectional-link-
delay
                |  |        |        |  +--ro min
                |  |        |        |  |  +--ro delay?   uint32
                |  |        |        |  +--ro max
                |  |        |        |  |  +--ro delay?   uint32
                |  |        |        |  +--ro anomaly?   boolean
                |  |        |        +--ro unidirectional-delay-variati
on
                |  |        |        |  +--ro delay?   uint32
                |  |        |        +--ro unidirectional-link-loss
                |  |        |        |  +--ro link-loss?   uint32
                |  |        |        |  +--ro anomaly?     boolean
                |  |        |        +--ro unidirectional-residual-bw
                |  |        |        |  +--ro bw?
                |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
                |  |        |        +--ro unidirectional-available-bw
                |  |        |        |  +--ro bw?
                |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
                |  |        |        +--ro unidirectional-utilized-bw
                |  |        |        |  +--ro bw?
                |  |        |        |          ietf-rt-t:bandwidth-iee
e-float32
                |  |        |        +--ro extended-admin-group
                |  |        |        |  +--ro eag*   uint32
                |  |        |        +--ro unknowns
                |  |        |           +--ro unknown* (type)
                |  |        |              +--ro type     uint16
                |  |        |              +--ro value?
                |  |        |                      yang:hex-string
                |  |        +--ro l2-bundle-members
                |  |           +--ro l2-bundle-member*
                |  |                   (member-descriptor)
                |  |              +--ro member-descriptor
                |  |              |       uint32
                |  |              +--ro bundle-member-attribute*
                |  |                      (type)
                |  |                 +--ro type
                |  |                 |       identityref
                |  |                 +--ro te-default-metric
                |  |                 |  +--ro metric?   uint32
                |  |                 +--ro unidirectional-link-delay
                |  |                 |  +--ro delay?     uint32
                |  |                 |  +--ro anomaly?   boolean
                |  |                 +--ro min-max-unidirectional-link-
delay
                |  |                 |  +--ro min
                |  |                 |  |  +--ro delay?   uint32
                |  |                 |  +--ro max
                |  |                 |  |  +--ro delay?   uint32
                |  |                 |  +--ro anomaly?   boolean
                |  |                 +--ro unidirectional-delay-variati
on
                |  |                 |  +--ro delay?   uint32
                |  |                 +--ro unidirectional-link-loss
                |  |                 |  +--ro link-loss?   uint32
                |  |                 |  +--ro anomaly?     boolean
                |  |                 +--ro unidirectional-residual-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro unidirectional-available-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro unidirectional-utilized-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro extended-admin-group
                |  |                 |  +--ro eag*   uint32
                |  |                 +--ro unknowns
                |  |                 |  +--ro unknown* (type)
                |  |                 |     +--ro type     uint16
                |  |                 |     +--ro value?
                |  |                 |             yang:hex-string
                |  |                 +--ro maximum-link-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro maximum-reservable-link-bw
                |  |                 |  +--ro bw?
                |  |                 |          ietf-rt-t:bandwidth-iee
e-float32
                |  |                 +--ro unreserved-bws
                |  |                 |  +--ro unreserved-bw*
                |  |                 |          (priority)
                |  |                 |     +--ro priority     uint8
                |  |                 |     +--ro bandwidth?
                |  |                 |             ietf-rt-t:bandwidth-
ieee-float32
                |  |                 +--ro link-protection-type
                |  |                 |  +--ro type?   uint16
                |  |                 +--ro adjacency-sids
                |  |                 |  +--ro adjacency-sid*
                |  |                 |          (label-index format)
                |  |                 |     +--ro label-index
                |  |                 |     |       uint32
                |  |                 |     +--ro format
                |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
                |  |                 |     +--ro flags?
                |  |                 |     |       binary
                |  |                 |     +--ro weight?        uint8
                |  |                 +--ro lan-adjacency-sids
                |  |                 |  +--ro adjacency-sid*
                |  |                 |          (label-index format)
                |  |                 |     +--ro label-index
                |  |                 |     |       uint32
                |  |                 |     +--ro format
                |  |                 |     |       bgp-ls-topo-t:sid-fo
rmat
                |  |                 |     +--ro flags?
                |  |                 |     |       binary
                |  |                 |     +--ro weight?        uint8
                |  |                 |     +--ro neighbor-id?   union
                |  |                 +--ro aslas
                |  |                    +--ro asla* (sabm udabm)
                |  |                       +--ro sabm
                |  |                       |       binary
                |  |                       +--ro udabm
                |  |                       |       binary
                |  |                       +--ro asla-attribute*
                |  |                               (type)
                |  |                          +--ro type
                |  |                          |       identityref
                |  |                          +--ro srlgs
                |  |                          |  +--ro srlg*   uint32
                |  |                          +--ro te-default-metric
                |  |                          |  +--ro metric?
                |  |                          |          uint32
                |  |                          +--ro unidirectional-link
-delay
                |  |                          |  +--ro delay?
                |  |                          |  |       uint32
                |  |                          |  +--ro anomaly?
                |  |                          |          boolean
                |  |                          +--ro min-max-unidirectio
nal-link-delay
                |  |                          |  +--ro min
                |  |                          |  |  +--ro delay?
                |  |                          |  |          uint32
                |  |                          |  +--ro max
                |  |                          |  |  +--ro delay?
                |  |                          |  |          uint32
                |  |                          |  +--ro anomaly?
                |  |                          |          boolean
                |  |                          +--ro unidirectional-dela
y-variation
                |  |                          |  +--ro delay?
                |  |                          |          uint32
                |  |                          +--ro unidirectional-link
-loss
                |  |                          |  +--ro link-loss?
                |  |                          |  |       uint32
                |  |                          |  +--ro anomaly?
                |  |                          |          boolean
                |  |                          +--ro unidirectional-resi
dual-bw
                |  |                          |  +--ro bw?
                |  |                          |          ietf-rt-t:band
width-ieee-float32
                |  |                          +--ro unidirectional-avai
lable-bw
                |  |                          |  +--ro bw?
                |  |                          |          ietf-rt-t:band
width-ieee-float32
                |  |                          +--ro unidirectional-util
ized-bw
                |  |                          |  +--ro bw?
                |  |                          |          ietf-rt-t:band
width-ieee-float32
                |  |                          +--ro extended-admin-grou
p
                |  |                          |  +--ro eag*   uint32
                |  |                          +--ro unknowns
                |  |                             +--ro unknown*
                |  |                                     (type)
                |  |                                +--ro type
                |  |                                |       uint16
                |  |                                +--ro value?
                |  |                                        yang:hex-st
ring
                |  +--ro bgp-link*
                |          (local-as local-router-id remote-as remote-r
outer-id local-id remote-id local-ipv4-address remote-ipv4-address loca
l-ipv6-address remote-ipv6-address multi-topology-id)
                |     +--ro local-as               inet:as-number
                |     +--ro local-router-id
                |     |       ietf-rt-t:router-id
                |     +--ro remote-as              inet:as-number
                |     +--ro remote-router-id
                |     |       ietf-rt-t:router-id
                |     +--ro local-id               uint32
                |     +--ro remote-id              uint32
                |     +--ro local-ipv4-address     inet:ipv4-address
                |     +--ro remote-ipv4-address    inet:ipv4-address
                |     +--ro local-ipv6-address     inet:ipv6-address
                |     +--ro remote-ipv6-address    inet:ipv6-address
                |     +--ro multi-topology-id      uint16
                |     +--ro link-attributes
                |        +--ro link-attribute* (type)
                |           +--ro type             identityref
                |           +--ro bgp-peer-sids
                |              +--ro bgp-peer-sid*
                |                      (label-index format)
                |                 +--ro label-index    uint32
                |                 +--ro format
                |                 |       bgp-ls-topo-t:sid-format
                |                 +--ro flags?         binary
                |                 +--ro weight?        uint8
                +--ro prefixes
                |  +--ro ospf-prefix*
                |  |       (is-as-scoped area-id as router-id dr-identi
fier multi-topology-id route-type prefix)
                |  |  +--ro is-as-scoped         boolean
                |  |  +--ro area-id
                |  |  |       ietf-ospf-t:area-id-type
                |  |  +--ro as                   inet:as-number
                |  |  +--ro router-id            ietf-rt-t:router-id
                |  |  +--ro route-type
                |  |  |       bgp-ls-topo-t:ospf-route-type
                |  |  +--ro multi-topology-id    uint16
                |  |  +--ro dr-identifier        inet:ipv4-address
                |  |  +--ro prefix               inet:ipv4-prefix
                |  |  +--ro prefix-attributes
                |  |     +--ro prefix-attribute* (type)
                |  |        +--ro type
                |  |        |       identityref
                |  |        +--ro flexible-algorithm-prefix-metric
                |  |        |  +--ro fa-prefix-metric* (algorithm)
                |  |        |     +--ro metric?      uint32
                |  |        |     +--ro algorithm    uint8
                |  |        |     +--ro flags?       binary
                |  |        +--ro igp-flags
                |  |        |  +--ro flags?
                |  |        |          bgp-ls-topo-t:igp-flags-bits
                |  |        +--ro igp-route-tags
                |  |        |  +--ro tag*   uint32
                |  |        +--ro extended-igp-route-tags
                |  |        |  +--ro tag*   uint64
                |  |        +--ro prefix-metric
                |  |        |  +--ro metric?   uint32
                |  |        +--ro ospf-forwarding-address
                |  |        |  +--ro forw-address?   inet:ip-address
                |  |        +--ro opaque-prefix-attribute
                |  |        |  +--ro opaque-attrs?   yang:hex-string
                |  |        +--ro prefix-sids
                |  |        |  +--ro prefix-sid* (label-index format)
                |  |        |     +--ro label-index    uint32
                |  |        |     +--ro format
                |  |        |     |       bgp-ls-topo-t:sid-format
                |  |        |     +--ro flags?         binary
                |  |        |     +--ro algorithm?     uint8
                |  |        +--ro prefix-range
                |  |        |  +--ro index?        uint32
                |  |        |  +--ro range-size?   uint16
                |  |        |  +--ro flags?        binary
                |  |        |  +--ro algorithm?    uint8
                |  |        |  +--ro sid-flags?    binary
                |  |        +--ro srv6-locator
                |  |        |  +--ro metric?      uint32
                |  |        |  +--ro flags?       binary
                |  |        |  +--ro algorithm?   uint8
                |  |        +--ro prefix-attribute-flags
                |  |        |  +--ro flags?   binary
                |  |        +--ro prefix-source-router-id
                |  |        |  +--ro source-router-id?
                |  |        |          inet:ip-address
                |  |        +--ro unknowns
                |  |           +--ro unknown* (type)
                |  |              +--ro type     uint16
                |  |              +--ro value?   yang:hex-string
                |  +--ro ospfv3-prefix*
                |  |       (is-as-scoped area-id as router-id dr-identi
fier multi-topology-id route-type prefix)
                |  |  +--ro is-as-scoped         boolean
                |  |  +--ro area-id
                |  |  |       ietf-ospf-t:area-id-type
                |  |  +--ro as                   inet:as-number
                |  |  +--ro router-id            ietf-rt-t:router-id
                |  |  +--ro route-type
                |  |  |       bgp-ls-topo-t:ospf-route-type
                |  |  +--ro multi-topology-id    uint16
                |  |  +--ro dr-identifier        uint32
                |  |  +--ro prefix               inet:ip-prefix
                |  |  +--ro prefix-attributes
                |  |     +--ro prefix-attribute* (type)
                |  |        +--ro type
                |  |        |       identityref
                |  |        +--ro flexible-algorithm-prefix-metric
                |  |        |  +--ro fa-prefix-metric* (algorithm)
                |  |        |     +--ro metric?      uint32
                |  |        |     +--ro algorithm    uint8
                |  |        |     +--ro flags?       binary
                |  |        +--ro igp-flags
                |  |        |  +--ro flags?
                |  |        |          bgp-ls-topo-t:igp-flags-bits
                |  |        +--ro igp-route-tags
                |  |        |  +--ro tag*   uint32
                |  |        +--ro extended-igp-route-tags
                |  |        |  +--ro tag*   uint64
                |  |        +--ro prefix-metric
                |  |        |  +--ro metric?   uint32
                |  |        +--ro ospf-forwarding-address
                |  |        |  +--ro forw-address?   inet:ip-address
                |  |        +--ro opaque-prefix-attribute
                |  |        |  +--ro opaque-attrs?   yang:hex-string
                |  |        +--ro prefix-sids
                |  |        |  +--ro prefix-sid* (label-index format)
                |  |        |     +--ro label-index    uint32
                |  |        |     +--ro format
                |  |        |     |       bgp-ls-topo-t:sid-format
                |  |        |     +--ro flags?         binary
                |  |        |     +--ro algorithm?     uint8
                |  |        +--ro prefix-range
                |  |        |  +--ro index?        uint32
                |  |        |  +--ro range-size?   uint16
                |  |        |  +--ro flags?        binary
                |  |        |  +--ro algorithm?    uint8
                |  |        |  +--ro sid-flags?    binary
                |  |        +--ro srv6-locator
                |  |        |  +--ro metric?      uint32
                |  |        |  +--ro flags?       binary
                |  |        |  +--ro algorithm?   uint8
                |  |        +--ro prefix-attribute-flags
                |  |        |  +--ro flags?   binary
                |  |        +--ro prefix-source-router-id
                |  |        |  +--ro source-router-id?
                |  |        |          inet:ip-address
                |  |        +--ro unknowns
                |  |           +--ro unknown* (type)
                |  |              +--ro type     uint16
                |  |              +--ro value?   yang:hex-string
                |  +--ro isis-prefix*
                |          (system-id psn-id as multi-topology-id prefi
x)
                |     +--ro system-id
                |     |       ietf-isis-t:system-id
                |     +--ro psn-id               uint8
                |     +--ro as                   inet:as-number
                |     +--ro multi-topology-id    uint16
                |     +--ro prefix               inet:ip-prefix
                |     +--ro prefix-attributes
                |        +--ro prefix-attribute* (type)
                |           +--ro type
                |           |       identityref
                |           +--ro flexible-algorithm-prefix-metric
                |           |  +--ro fa-prefix-metric* (algorithm)
                |           |     +--ro metric?      uint32
                |           |     +--ro algorithm    uint8
                |           |     +--ro flags?       binary
                |           +--ro igp-flags
                |           |  +--ro flags?
                |           |          bgp-ls-topo-t:igp-flags-bits
                |           +--ro igp-route-tags
                |           |  +--ro tag*   uint32
                |           +--ro extended-igp-route-tags
                |           |  +--ro tag*   uint64
                |           +--ro prefix-metric
                |           |  +--ro metric?   uint32
                |           +--ro ospf-forwarding-address
                |           |  +--ro forw-address?   inet:ip-address
                |           +--ro opaque-prefix-attribute
                |           |  +--ro opaque-attrs?   yang:hex-string
                |           +--ro prefix-sids
                |           |  +--ro prefix-sid* (label-index format)
                |           |     +--ro label-index    uint32
                |           |     +--ro format
                |           |     |       bgp-ls-topo-t:sid-format
                |           |     +--ro flags?         binary
                |           |     +--ro algorithm?     uint8
                |           +--ro prefix-range
                |           |  +--ro index?        uint32
                |           |  +--ro range-size?   uint16
                |           |  +--ro flags?        binary
                |           |  +--ro algorithm?    uint8
                |           |  +--ro sid-flags?    binary
                |           +--ro srv6-locator
                |           |  +--ro metric?      uint32
                |           |  +--ro flags?       binary
                |           |  +--ro algorithm?   uint8
                |           +--ro prefix-attribute-flags
                |           |  +--ro flags?   binary
                |           +--ro prefix-source-router-id
                |           |  +--ro source-router-id?
                |           |          inet:ip-address
                |           +--ro unknowns
                |              +--ro unknown* (type)
                |                 +--ro type     uint16
                |                 +--ro value?   yang:hex-string
                +--ro srv6-sids
                |  +--ro ospfv3-srv6-sid*
                |  |       (is-as-scoped area-id router-id dr-identifie
r as sid multi-topology-id)
                |  |  +--ro is-as-scoped           boolean
                |  |  +--ro area-id
                |  |  |       ietf-ospf-t:area-id-type
                |  |  +--ro router-id
                |  |  |       ietf-rt-t:router-id
                |  |  +--ro dr-identifier          uint32
                |  |  +--ro as                     inet:as-number
                |  |  +--ro sid                    inet:ipv6-prefix
                |  |  +--ro multi-topology-id      uint16
                |  |  +--ro srv6-sid-attributes
                |  |     +--ro srv6-sid-attribute* (type)
                |  |        +--ro type
                |  |        |       identityref
                |  |        +--ro srv6-endpoint-behavior
                |  |        |  +--ro endpoint-behavior?   uint8
                |  |        |  +--ro flags?               binary
                |  |        |  +--ro algorithm?           uint8
                |  |        +--ro srv6-sid-structure
                |  |        |  +--ro locator-block-len?   uint8
                |  |        |  +--ro locator-node-len?    uint8
                |  |        |  +--ro function-len?        uint8
                |  |        |  +--ro arg-len?             uint8
                |  |        +--ro unknowns
                |  |           +--ro unknown* (type)
                |  |              +--ro type     uint16
                |  |              +--ro value?   yang:hex-string
                |  +--ro isis-srv6-sid*
                |  |       (system-id psn-id as sid multi-topology-id)
                |  |  +--ro system-id
                |  |  |       ietf-isis-t:system-id
                |  |  +--ro psn-id                 uint8
                |  |  +--ro as                     inet:as-number
                |  |  +--ro sid                    inet:ipv6-prefix
                |  |  +--ro multi-topology-id      uint16
                |  |  +--ro srv6-sid-attributes
                |  |     +--ro srv6-sid-attribute* (type)
                |  |        +--ro type
                |  |        |       identityref
                |  |        +--ro srv6-endpoint-behavior
                |  |        |  +--ro endpoint-behavior?   uint8
                |  |        |  +--ro flags?               binary
                |  |        |  +--ro algorithm?           uint8
                |  |        +--ro srv6-sid-structure
                |  |        |  +--ro locator-block-len?   uint8
                |  |        |  +--ro locator-node-len?    uint8
                |  |        |  +--ro function-len?        uint8
                |  |        |  +--ro arg-len?             uint8
                |  |        +--ro unknowns
                |  |           +--ro unknown* (type)
                |  |              +--ro type     uint16
                |  |              +--ro value?   yang:hex-string
                |  +--ro bgp-srv6-sid*
                |          (router-id as sid multi-topology-id)
                |     +--ro router-id
                |     |       ietf-rt-t:router-id
                |     +--ro as                     inet:as-number
                |     +--ro sid                    inet:ipv6-prefix
                |     +--ro multi-topology-id      uint16
                |     +--ro srv6-sid-attributes
                |        +--ro srv6-sid-attribute* (type)
                |           +--ro type
                |           |       identityref
                |           +--ro srv6-endpoint-behavior
                |           |  +--ro endpoint-behavior?   uint8
                |           |  +--ro flags?               binary
                |           |  +--ro algorithm?           uint8
                |           +--ro srv6-sid-structure
                |           |  +--ro locator-block-len?   uint8
                |           |  +--ro locator-node-len?    uint8
                |           |  +--ro function-len?        uint8
                |           |  +--ro arg-len?             uint8
                |           +--ro unknowns
                |           |  +--ro unknown* (type)
                |           |     +--ro type     uint16
                |           |     +--ro value?   yang:hex-string
                |           +--ro srv6-bgp-peer-node-sid
                |              +--ro flags?         binary
                |              +--ro weight?        uint8
                |              +--ro peer-as?       inet:as-number
                |              +--ro peer-bgp-id?
                |                      ietf-rt-t:router-id
                +--ro unknowns
                   +--ro unknown* (nlri)
                      +--ro nlri          yang:hex-string
                      +--ro attributes?   yang:hex-string
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:neighbors
            /bgp:neighbor/bgp:afi-safis/bgp:afi-safi:
    +--rw link-state!
    |  +--rw prefix-limit
    |  |  +--rw max-prefixes?            uint32
    |  |  +--rw warning-threshold-pct?   rt-types:percentage
    |  |  +--rw teardown?                boolean
    |  |  +--rw idle-time?               union
    |  |  +--ro prefix-limit-exceeded?   boolean
    |  +--rw max-rate?       uint32
    |  +--rw max-number?     uint32
    +--rw link-state-spf
       +--rw prefix-limit
       |  +--rw max-prefixes?            uint32
       |  +--rw warning-threshold-pct?   rt-types:percentage
       |  +--rw teardown?                boolean
       |  +--rw idle-time?               union
       |  +--ro prefix-limit-exceeded?   boolean
       +--rw metric?         uint32
       +--rw status?         enumeration
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:neighbors
            /bgp:neighbor/bgp:statistics:
    +--ro updates-sent?             yang:zero-based-counter32
    +--ro updates-received?         yang:zero-based-counter32
    +--ro error-updates-received?   yang:zero-based-counter32
    +--ro computations?             yang:zero-based-counter32
    +--ro triggering-events?        yang:zero-based-counter32
    +---x clear {bt:clear-statistics}?
       +---w input
       |  +---w clear-at?   yang:date-and-time
       +--ro output
          +--ro clear-finished-at?   yang:date-and-time
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/bgp:bgp/bgp:peer-groups
            /bgp:peer-group/bgp:afi-safis/bgp:afi-safi:
    +--rw link-state!
    |  +--rw prefix-limit
    |  |  +--rw max-prefixes?            uint32
    |  |  +--rw warning-threshold-pct?   rt-types:percentage
    |  |  +--rw teardown?                boolean
    |  |  +--rw idle-time?               union
    |  |  +--ro prefix-limit-exceeded?   boolean
    |  +--rw max-rate?       uint32
    |  +--rw max-number?     uint32
    +--rw link-state-spf
       +--rw prefix-limit
       |  +--rw max-prefixes?            uint32
       |  +--rw warning-threshold-pct?   rt-types:percentage
       |  +--rw teardown?                boolean
       |  +--rw idle-time?               union
       |  +--ro prefix-limit-exceeded?   boolean
       +--rw metric?         uint32
       +--rw status?         enumeration

Figure 7: Complete tree diagram

Appendix B. Examples

The following examples illustrate the BGP-LS Link-State Database (LSDB) populated with NLRIs from different source protocols. The data shown represents the bgp-ls-topology container defined in ietf-bgp-lsdb, which is augmented into the link-state presence container by ietf-bgp-ls at the path /rt:routing/rt:control-plane-protocols/ rt:control-plane-protocol/bgp:bgp/bgp:global/ bgp:afi-safis/bgp:afi-safi/ietf-bgp-ls:link-state. XML encoding follows [RFC7950].

B.1. OSPFv2 Instance

An OSPFv2 instance with one node (router-id 192.0.2.1), one link (192.0.2.1 to 192.0.2.2), and one prefix (203.0.113.0/24). Node and link attribute types are expressed as identityrefs from ietf-bgp-ls-topo-types.

<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"
 xmlns:bgp="urn:ietf:params:xml:ns:yang:ietf-bgp"
 xmlns:bgp-ls="urn:ietf:params:xml:ns:yang:ietf-bgp-ls"
 xmlns:t="urn:ietf:params:xml:ns:yang:ietf-bgp-ls-topo-types">
 <control-plane-protocols>
  <control-plane-protocol>
   <type>bgp:bgp</type>
   <name>example</name>
   <bgp:bgp>
    <bgp:global>
     <bgp:afi-safis>
      <bgp:afi-safi>
       <bgp:name>bgp-ls:bgp-ls</bgp:name>
       <bgp-ls:link-state>
        <bgp-ls-topology
         xmlns="urn:ietf:params:xml:ns:yang:ietf-bgp-ls">
         <instances>
          <instance>
           <vrf-name>default</vrf-name>
           <protocol>ospfv2</protocol>
           <identifier>0</identifier>
           <nodes>
            <ospf-node>
             <is-as-scoped>false</is-as-scoped>
             <area-id>0.0.0.0</area-id>
             <router-id>192.0.2.1</router-id>
             <dr-identifier>0.0.0.0</dr-identifier>
             <as>65001</as>
             <node-attributes>
              <node-attribute>
               <type>t:bgp-ls-topo-attr-local-ipv4-routerid</type>
               <local-ipv4-router-ids>
                <router-id>192.0.2.1</router-id>
               </local-ipv4-router-ids>
              </node-attribute>
             </node-attributes>
            </ospf-node>
           </nodes>
           <links>
            <ospf-link>
             <area-id>0.0.0.0</area-id>
             <as>65001</as>
             <local-router-id>192.0.2.1</local-router-id>
             <local-dr-identifier>0.0.0.0</local-dr-identifier>
             <remote-router-id>192.0.2.2</remote-router-id>
             <remote-dr-identifier>0.0.0.0</remote-dr-identifier>
             <local-id>1</local-id>
             <remote-id>2</remote-id>
             <local-ipv4-address>198.51.100.1</local-ipv4-address>
             <remote-ipv4-address>198.51.100.2</remote-ipv4-address>
             <multi-topology-id>0</multi-topology-id>
             <link-attributes>
              <link-attribute>
               <type>t:bgp-ls-topo-attr-igp-metric</type>
               <igp-metric><metric>10</metric></igp-metric>
              </link-attribute>
             </link-attributes>
            </ospf-link>
           </links>
           <prefixes>
            <ospf-prefix>
             <is-as-scoped>false</is-as-scoped>
             <area-id>0.0.0.0</area-id>
             <as>65001</as>
             <router-id>192.0.2.1</router-id>
             <dr-identifier>0.0.0.0</dr-identifier>
             <multi-topology-id>0</multi-topology-id>
             <route-type>intra-area</route-type>
             <prefix>203.0.113.0/24</prefix>
             <prefix-attributes>
              <prefix-attribute>
               <type>t:bgp-ls-topo-attr-prefix-metric</type>
               <prefix-metric><metric>10</metric></prefix-metric>
              </prefix-attribute>
             </prefix-attributes>
            </ospf-prefix>
           </prefixes>
          </instance>
         </instances>
        </bgp-ls-topology>
       </bgp-ls:link-state>
      </bgp:afi-safi>
     </bgp:afi-safis>
    </bgp:global>
   </bgp:bgp>
  </control-plane-protocol>
 </control-plane-protocols>
</routing>
Figure 8

B.2. OSPFv3 Instance

An OSPFv3 instance with one node advertising an IPv6 router-id attribute, one link using 0.0.0.0 as the sentinel value for absent IPv4 link addresses (the link is IPv6-only), and one IPv6 prefix.

<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"
 xmlns:bgp="urn:ietf:params:xml:ns:yang:ietf-bgp"
 xmlns:bgp-ls="urn:ietf:params:xml:ns:yang:ietf-bgp-ls"
 xmlns:t="urn:ietf:params:xml:ns:yang:ietf-bgp-ls-topo-types">
 <control-plane-protocols>
  <control-plane-protocol>
   <type>bgp:bgp</type>
   <name>example</name>
   <bgp:bgp>
    <bgp:global>
     <bgp:afi-safis>
      <bgp:afi-safi>
       <bgp:name>bgp-ls:bgp-ls</bgp:name>
       <bgp-ls:link-state>
        <bgp-ls-topology
         xmlns="urn:ietf:params:xml:ns:yang:ietf-bgp-ls">
         <instances>
          <instance>
           <vrf-name>default</vrf-name>
           <protocol>ospfv3</protocol>
           <identifier>0</identifier>
           <nodes>
            <ospfv3-node>
             <is-as-scoped>false</is-as-scoped>
             <area-id>0.0.0.0</area-id>
             <router-id>192.0.2.1</router-id>
             <dr-identifier>0</dr-identifier>
             <as>65001</as>
             <node-attributes>
              <node-attribute>
               <type>t:bgp-ls-topo-attr-local-ipv6-routerid</type>
               <local-ipv6-router-ids>
                <router-id>2001:db8::1</router-id>
               </local-ipv6-router-ids>
              </node-attribute>
             </node-attributes>
            </ospfv3-node>
           </nodes>
           <links>
            <ospfv3-link>
             <area-id>0.0.0.0</area-id>
             <as>65001</as>
             <local-router-id>192.0.2.1</local-router-id>
             <local-dr-identifier>0</local-dr-identifier>
             <remote-router-id>192.0.2.2</remote-router-id>
             <remote-dr-identifier>0</remote-dr-identifier>
             <local-id>1</local-id>
             <remote-id>2</remote-id>
             <!-- 0.0.0.0 sentinel: IPv6-only link -->
             <local-ipv4-address>0.0.0.0</local-ipv4-address>
             <remote-ipv4-address>0.0.0.0</remote-ipv4-address>
             <local-ipv6-address>2001:db8::1</local-ipv6-address>
             <remote-ipv6-address>2001:db8::2</remote-ipv6-address>
             <multi-topology-id>0</multi-topology-id>
             <link-attributes>
              <link-attribute>
               <type>t:bgp-ls-topo-attr-igp-metric</type>
               <igp-metric><metric>10</metric></igp-metric>
              </link-attribute>
             </link-attributes>
            </ospfv3-link>
           </links>
           <prefixes>
            <ospfv3-prefix>
             <is-as-scoped>false</is-as-scoped>
             <area-id>0.0.0.0</area-id>
             <as>65001</as>
             <router-id>192.0.2.1</router-id>
             <dr-identifier>0</dr-identifier>
             <multi-topology-id>0</multi-topology-id>
             <route-type>intra-area</route-type>
             <prefix>2001:db8:1::/48</prefix>
            </ospfv3-prefix>
           </prefixes>
          </instance>
         </instances>
        </bgp-ls-topology>
       </bgp-ls:link-state>
      </bgp:afi-safi>
     </bgp:afi-safis>
    </bgp:global>
   </bgp:bgp>
  </control-plane-protocol>
 </control-plane-protocols>
</routing>
Figure 9

B.3. IS-IS Instance

An IS-IS Level-1 instance with one node (system-id 0000.0000.0001), one link, and one prefix (10.1.0.0/24). IPv6 link addresses use :: as the sentinel value for absent IPv6 addresses (the link is IPv4-only).

<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"
 xmlns:bgp="urn:ietf:params:xml:ns:yang:ietf-bgp"
 xmlns:bgp-ls="urn:ietf:params:xml:ns:yang:ietf-bgp-ls"
 xmlns:t="urn:ietf:params:xml:ns:yang:ietf-bgp-ls-topo-types">
 <control-plane-protocols>
  <control-plane-protocol>
   <type>bgp:bgp</type>
   <name>example</name>
   <bgp:bgp>
    <bgp:global>
     <bgp:afi-safis>
      <bgp:afi-safi>
       <bgp:name>bgp-ls:bgp-ls</bgp:name>
       <bgp-ls:link-state>
        <bgp-ls-topology
         xmlns="urn:ietf:params:xml:ns:yang:ietf-bgp-ls">
         <instances>
          <instance>
           <vrf-name>default</vrf-name>
           <protocol>isis-l1</protocol>
           <identifier>0</identifier>
           <nodes>
            <isis-node>
             <system-id>0000.0000.0001</system-id>
             <psn-id>0</psn-id>
             <as>65001</as>
             <node-attributes>
              <node-attribute>
               <type>t:bgp-ls-topo-attr-local-ipv4-routerid</type>
               <local-ipv4-router-ids>
                <router-id>192.0.2.1</router-id>
               </local-ipv4-router-ids>
              </node-attribute>
             </node-attributes>
            </isis-node>
           </nodes>
           <links>
            <isis-link>
             <local-system-id>0000.0000.0001</local-system-id>
             <local-psn-id>0</local-psn-id>
             <local-as>65001</local-as>
             <remote-system-id>0000.0000.0002</remote-system-id>
             <remote-psn-id>0</remote-psn-id>
             <remote-as>65001</remote-as>
             <local-id>1</local-id>
             <remote-id>2</remote-id>
             <local-ipv4-address>198.51.100.1</local-ipv4-address>
             <remote-ipv4-address>198.51.100.2</remote-ipv4-address>
             <!-- :: sentinel: IPv4-only link -->
             <local-ipv6-address>::</local-ipv6-address>
             <remote-ipv6-address>::</remote-ipv6-address>
             <multi-topology-id>0</multi-topology-id>
             <link-attributes>
              <link-attribute>
               <type>t:bgp-ls-topo-attr-igp-metric</type>
               <igp-metric><metric>10</metric></igp-metric>
              </link-attribute>
             </link-attributes>
            </isis-link>
           </links>
           <prefixes>
            <isis-prefix>
             <system-id>0000.0000.0001</system-id>
             <psn-id>0</psn-id>
             <as>65001</as>
             <multi-topology-id>0</multi-topology-id>
             <prefix>10.1.0.0/24</prefix>
            </isis-prefix>
           </prefixes>
          </instance>
         </instances>
        </bgp-ls-topology>
       </bgp-ls:link-state>
      </bgp:afi-safi>
     </bgp:afi-safis>
    </bgp:global>
   </bgp:bgp>
  </control-plane-protocol>
 </control-plane-protocols>
</routing>
Figure 10

B.4. BGP Instance

A BGP instance with one BGP-LS link (AS 65001 router-id 192.0.2.1 to AS 65002 router-id 192.0.2.2). The link carries a BGP Peer Adjacency SID attribute (bgp-peer-sids) as defined in ietf-bgp-ls-topo-attr, demonstrating the new topology attribute submodule. The BGP protocol does not define node or prefix NLRIs in this model.

<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"
 xmlns:bgp="urn:ietf:params:xml:ns:yang:ietf-bgp"
 xmlns:bgp-ls="urn:ietf:params:xml:ns:yang:ietf-bgp-ls"
 xmlns:t="urn:ietf:params:xml:ns:yang:ietf-bgp-ls-topo-types">
 <control-plane-protocols>
  <control-plane-protocol>
   <type>bgp:bgp</type>
   <name>example</name>
   <bgp:bgp>
    <bgp:global>
     <bgp:afi-safis>
      <bgp:afi-safi>
       <bgp:name>bgp-ls:bgp-ls</bgp:name>
       <bgp-ls:link-state>
        <bgp-ls-topology
         xmlns="urn:ietf:params:xml:ns:yang:ietf-bgp-ls">
         <instances>
          <instance>
           <vrf-name>default</vrf-name>
           <protocol>bgp</protocol>
           <identifier>0</identifier>
           <links>
            <bgp-link>
             <local-as>65001</local-as>
             <local-router-id>192.0.2.1</local-router-id>
             <remote-as>65002</remote-as>
             <remote-router-id>192.0.2.2</remote-router-id>
             <local-id>1</local-id>
             <remote-id>2</remote-id>
             <local-ipv4-address>198.51.100.1</local-ipv4-address>
             <remote-ipv4-address>198.51.100.2</remote-ipv4-address>
             <!-- :: sentinel: IPv4-only link -->
             <local-ipv6-address>::</local-ipv6-address>
             <remote-ipv6-address>::</remote-ipv6-address>
             <multi-topology-id>0</multi-topology-id>
             <link-attributes>
              <link-attribute>
               <type>t:bgp-ls-topo-attr-bgp-peer-adj-sid</type>
               <bgp-peer-sids>
                <bgp-peer-sid>
                 <label-index>100</label-index>
                 <format>label</format>
                 <!-- flags: 1 octet, all zeros -->
                 <flags>AA==</flags>
                 <weight>0</weight>
                </bgp-peer-sid>
               </bgp-peer-sids>
              </link-attribute>
             </link-attributes>
            </bgp-link>
           </links>
          </instance>
         </instances>
        </bgp-ls-topology>
       </bgp-ls:link-state>
      </bgp:afi-safi>
     </bgp:afi-safis>
    </bgp:global>
   </bgp:bgp>
  </control-plane-protocol>
 </control-plane-protocols>
</routing>
Figure 11

Acknowledgements

The authors would like to thank Baalajee S and Thanigaivel Manoharan for their review and comments on the model and the document.

Contributors

Thanks to all of the contributors.

Authors' Addresses

Mahesh Jethanandani (editor)
Arrcus, Inc
Keyur Patel
Arrcus, Inc
Aravind Babu MahendraBabu
Cisco, Inc
India