I2RS Working Group S. Hares
Internet-Draft L. Wang
Intended status: Standards Track S. Zhuang
Expires: April 18, 2015 Huawei
October 15, 2014

An I2RS BGP Information Model
draft-hares-i2rs-bgp-im-01.txt

Abstract

This document introduces an information model for i2RS BGP protocol and network policy that aligns with the I2RS BGP use cases. This draft utilizes the general Policy based routing structured found in the RIB Information Model (IM) and Policy Base Policy.

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 http://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 April 18, 2015.

Copyright Notice

Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

The Interface to the Routing System (I2RS) provides read and write access to the information and state within the routing process within routing elements via protocol message exchange between an I2RS Client and an I2RS Agent associated with the a routing system. The [I-D.ietf-i2rs-architecture] describes the basic interactions of this exchange. One of the important functions of this messages exchange is for the I2RS client to interact with one or more I2RS agents to collect information from network routing systems.

One of the key information pieces that I2RS clients may collect from I2RS agents is the BGP information regarding BGP peers, BGP routes, and network topologies created within BGP. This document introduces a basic information model for BGP policies. This policy model can be linked with other information models such as the I2RS RIB informational model [I-D.ietf-i2rs-rib-info-model], and uses the generic policy found in the Policy Routing modules in [I-D.hares-i2rs-info-model-policy]. This basic BGP Information Model is an extendable policy model is a product of the industry approach to I2RS.

2. Definitions and Acronyms

3. BGP Data

BGP data includes information related to the BGP protocol instances, BGP Peer information, BGP Route information, and BGP policy. This section describes the information associated with the I2RS agent accessible via BGP.

3.1. BGP Protocol

BGP protocol support within a router(or virtual routing device) may have multiple instances of the BGP protocol. This section describes the information regarding the BGP protocol available to the I2RS Agent. The section begins with a top-level diagram of the Yang Data Model, and then goes to define the Yang data model in text.

Protocol


The BGP protocol information stores a group of information associated with a BGP protocol implementation. This group of informational includes:

The sections below describe these elements.

3.1.1. Yang Data Model for I2RS BGP IM Protocol Block

   +--rw bgp-protocol
      +--rw router-id?                      inet:ip-address
      +--rw as-number?                      uint32
      +--ro protocol-status?                enumeration
      +--rw shutdown-protocol?              boolean
      +--ro bgp-role?                       enumeration
      +--rw bgp-ipv4-uni-instance
	  |  ...
	  +--rw bgp-labeled-ipv4-instance
	  | ...
	  +--rw bgp-ipv4-multi-instance
	  |  ...
	  +--rw bgp-vpnv4-instance
	  |  ... 
	  +--rw bgp-ipv4-l3vpn-instance-list* [bgp-l3vpn-instance-name]
	  |  ...
	  +--rw bgp-ipv6-uni-instance
	  |  ...
	  +--rw bgp-labeled-ipv6-instance
	  | ...
	  +--rw bgp-ipv6-multi-instance
	  |  ...
	  +--rw bgp-vpnv6-instance
	  |  ... 
	  +--rw bgp-ipv6-l3vpn-instance-list* [bgp-l3vpn-instance-name]
	  |  ...
	  
	  

3.1.2. Elements in I2RS Protocol Block

This section describes each element of the I2RS Protocol Block.

Router-ID (R)


This I2RS BGP IM element stores the ROUTER-ID which is configured in the BGP protocol as the default router-id. Instances of a protocol may configure unique router-IDs. The router-ID is a 32 bit unsigned value imported from the running BGP process.
Router-ID (W)


Upon a write from the I2RS Client to this I2RS BGP IM element, this I2RS Agent will temporarily change this default in the BGP protocol. I2RS Agent-routing system software must be able to handle both the original value (from node configuration systems), and the I2RS value as valid defaults. This change in the ROUTER_-ID default is passed to the BGP instances spawned from the BGP protocol. After the I2RS Client stops the relationship with the I2RS Agent, the Router-ID value reverts to the configured value.
AS(R/W)


This I2RS BGP IM element stores the default AS number configured in the BGP implementation. This value is 8 byte value represented as a decimal value. This value is a read-write value. The initial value of the AS is imported by the I2RS Agent from the BGP protocol in the BGP routing system. This the normal case. If this data element is written to, I2RS stores the default AS number value in the BGP protocol as the new default AS in the BGP protocol. This does not change the default AS number in existing BGP instances with the existing peers. New BGP instances spawned after the I2RS changes the default AS value, should have the I2RS specified default AS. Upon the completion of the I2RS client-I2RS Agent association, the default AS value should be returned to the configured value.
protocol_status (R)


This I2RS BGP IM element stores an administrative status for the protocol activity of "no-shutdown" (0x00) or "shutdown" (0x01). If the routing entity the I2RS protocol is attached has BGP "shutdown", no data will be available from any BGP instances. This is a read-only variable.
shutdown_protocol(R/W)


A write of "TRUE" to the "shutdown_protocol" status in the I2RS Agent indicates the I2RS agent should request a shutdown of the BGP protocol from the routing function. The default value is "FALSE" for this I2RS variable. The read of the "shutdown_protocol" indicate the current status of the "shutdown_protocol" variable in the I2RS Agent. This is different than the "protocol_status" which indicates the status of the protocol: shutdown or not "shutdown" (running).
bgp_role (R)


The BGP_ROLE provides a list of BGP Roles found within the BGP Instances associated with the BGP protocol function on the device associated with the I2RS agent. These can be ASBR (AS border router E-BGP), PE (Provider Edge E-BGP), IBGP peer, or RR (Route Reflector).
bgp-ipv4-uni-instance (R-W)


This element BGP instances provides support for IPv4 unicast , and contains the associated bgp local rib, bgp peer list, bgp rib-in, and bgp-rib-out associated with IPv4 Unicast.
bgp-labeled-ipv4-instance (R-W)


This element provides the bgp instance with routes associated with label routes. (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these routes).
bgp-ipv4-multi-instance (R-W)


This element contains an bgp instance for IPv4 multicast. (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these routes).
bgp-vpnv4-instance (R-W)


This element contains BGP instance IPv4 VPNs. (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these routes).
bgp-ipv4-L3vpn-instance-list* (R-W)


This element contains BGP instance IPv4 VPNs. (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these routes).
bgp-ipv6-uni-instance (R-W)


This element contains BGP instance IPv6 unicast routes. (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these routes).
bgp-labeled-ipv6-instance (R-W)


This element provides the bgp instance with routes associated with label routes. (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these routes).
bgp-ipv6-multi-instance(R-W)


This element contains an bgp instance for IPv6 multicast. (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these routes).
bgp-vpnv6-instance (R-W)


This element contains BGP instance IPv6 VPNs. (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these routes).
bgp-ipv6-L3vpn-instance-list* (R-W)


This element contains BGP instance IPv4 VPNs. (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these routes).

3.2. bgp_ipv4_instance

BGP protocol support within a router(or virtual routing device) may have multiple instances of the BGP protocol. This section describes the information regarding the BGP protocol available to the I2RS Agent. The section begins with a top-level diagram of the Yang Data Model, and then goes to define the Yang data model in text.

3.2.1. Yang Data Model bgp ipv4 unicast instance

This figure below the yang model at bgp instance to handle the bgp instance. Within Yang, the definition is based on a a grouping which has name, I2rs creation flags, standard instance type, vendor type, afi, safi, bgp local RIB, and BGP peers. The standard instances types are: IPv4 unicast, IPv4 multicast, IPv4 L3vpn, VPLS, MDT, EVPN, BGP-ls, IPv4-mpls-vpn, IPv4-mpls-mvpn, BGP route-targets, IPv4 flow, IPv4 vpn-flow, IPv4 vrf-list, IPv6 vrf-list, and IPv6 unit, and IPv6 vpnv6. It also could contain instance types defined by vendors (bgp-vendor-type). This informational model contains the details of the instance grouping and its subcomponents: bgp-instance-name, bgp-instance-create, bgp-instance-type bgp-vendor-type, afi, safi, bgp-local-rib, and bgp-peer list. It does not enumerate these for each of the instance types, but provides a full yang tree of this definition in section x.

    +--rw bgp-ipv4-uni-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
     =......
      |  +--rw bgp-peer-list* [bgp-peer-name]
        ......
    
	  

3.2.2. Elements in bgp ipv4 unicast instance

The definitions of the fields in BGP Instance are:

BGP_INSTANCE_NAME (R/W)


The BGP_INSTANCE_NAME provides a name to uniquely identify the BGP instance.
BGP_INSTANCE_CREATION(R/W)


is the flag to indicate whether the I2RS client is requesting the I2RS agent to have the BGP routing protocol create a new BGP instance for these I2RS parameters. The internal status includes:
BGP_INSTANCE_TYPE (R/W)


contains flag field that summarizes common AFI-SAFIs within a flag word. This enumeration
BGP_VENDOR_TYPE(R/W)


contains a field to specify Vendor to identify different mechanism of BGP configuration.
AFI (R/W)


The AFI value from the standard values found in IANA's Address Family Numbers.
SAFI (R/W)


The AFI value from the standard values found in IANA's SAFI values.
bgp-local-rib (R/W)


The bgp-local-rib contains the contains a local RIB for BGP associated with this BGP instance. Every BGP instance has its own local RIB which contains the routes received by all Peers (Adj-RIB-IN per Peer), and selected by policy as the active route by the local BGP speaker's Decision Process.
bgp-peer-list (R/W)


contains a list of BGP Peer information (BGP_PEER) associated with this BGP instance. A write to this BGP Peer list adds a BGP Peer to this BGP instance.
rib-in (R/W)


This contains bgp-rib-in route list.
rib-out (R/W)


This contains bgp-rib-out route list.

3.3. bgp local rib

The routes associated with each BGP instance are the BGP local RIB, the AdjRIBIn, and the AdjRIBOut. The BGP local RIB is described below. The AdjRIBIn is the bgp_rib_in described in the BGP_Peer section. The policy that sets preferences on the routes received by the peer is identified by the Peer_policy_in (an policy set name), and fully readable by the Peer_policy_in_pset (policy set pointer) entry.

The AdjRIBOut is contained in bgp_rib_out (a route list) described in the BGP Peer Section. The Policy associated with the AdjRIBOut is identified by the Peer_policy_out (a policy set name) and fully readable by the Peer_policy_out_pset (policy set pointer).

This section describes the bgp local ribs for IPv4 unicast routes as a prototype for all rib routes.

Each bgp local RIB listed below may be created and stored as a prefix tree. However, yang model descriptions describe it as a list of routes with an index of prefix and length. The above top-level yang demonstrates this. This yang mechanism requires a unique definition per AFI/SAFI.

Each rib is indexed by the prefix/prefix-length and contains route type, attribute list, route creation information, and state information. The IPv4 local RIB shows the full definition of the route type, attribute list, route creation, and state information. Subsequent RIBs do not repeat this information.

3.3.1. bgp-local-rib for IPv4 routes

This section contains the overview of the bgp-local-rib for IPv4 routes, and serves as a prototype for all other ribs.

3.3.1.1. Yang Top-level for bgp-local-rib for IPv4 routes

This section describes the high-level yang definition for a local RIB with IPv4 routes. This serves as an prototype of all bgp-local-ribs.

      +--rw bgp-local-rib
      |  +--rw bgp-route-list* [ipv4-route ipv4-prefix-length]
      |     +--rw ipv4-route            inet:ipv4-prefix
      |     +--rw ipv4-prefix-length    uint8
      |     +--rw bgp-route-type?       enumeration
      |     +--rw bgp-attribute-list
      |     |  +--rw bgp-origin?        enumeration
      |     |  +--rw bgp-aspath
      |     |  |  +--rw usascount?         uint16
      |     |  |  +--rw ulrefcount?        uint16
      |     |  |  +--rw asstring?          string
      |     |  |  +--ro usascountfrcomp?   uint16
      |     |  |  +--rw usastotalcount?    uint16
      |     |  |  +--rw usas4pathlen?      uint16
      |     |  |  +--rw as4pathvalue?      string
      |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |  +--rw bgp-med?                uint32
      |     |  +--rw bgp-localpref?          uint32
      |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |  +--rw bgp-aggregator
      |     |  |  +--rw ulipaddress?   uint32
      |     |  |  +--rw ulasnumber?    uint32
      |     |  +--rw bgp-commattr
      |     |  |  +--rw uscommsize?       uint16
      |     |  |  +--rw ulrefcomm?        uint32
      |     |  |  +--rw commattr-value?   string
      |     |  +--rw bgp-extcommattr
      |     |  |  +--rw usextcommsize?       uint16
      |     |  |  +--rw ulrefcount?          uint32
      |     |  |  +--rw extcommattr-value?   string
      |     |  +--rw bgp-clusterlist
      |     |  |  +--rw uscluslen?           uint16
      |     |  |  +--rw ulrefclus?           uint32
      |     |  |  +--rw clusterlist-value?   string
      |     |  +--rw bgp-originator-id?      uint32
      |     +--ro bgp-route-create?     enumeration
      |     +--ro bgp-rt-state-info
      |        +--ro rib-current-state?      rib-state-def
      |        +--ro rib-last-state?         rib-state-def
      |        +--ro rib-rejected-reason?    enumeration
      |        +--ro not-preferred-reason?   enumeration
	    
	  

3.3.1.2. Common definitions for bgp-local-rib for IPv4 routes

The BGP Local RIB Entries are:

BGP_ROUTE_TYPE(R/W)


contains a ROUTE TYPE indicator (enumerated type). The enumerated types are:

bgp-attribute-list (R/W)


contains a list of bgp attributes of the following BGP attributes

bgp_route_creation (R/W)


provides the status of the creation of a BGP route requested by a I2RS Client to I2RS agent to be created in the BGP instance's local route. The status includes the following:

bgp_status_info (R/W)


contains a set of BGP status that includes:

3.4. BGP Peer

This section describes the BGP peer structure.

3.4.1. Yang Top Level for BGP Peer

	
    +--rw bgp-peer-list* [bgp-peer-name]
	   +--rw peer-session-address
       |  +--rw local-ipv4-address?    inet:ipv4-prefix
       |  +--rw remote-ipv4-address?   inet:ipv4-prefix
       +--rw bgp-peer-name           string
       +--ro bgp-peer-type?          enumeration
       +--ro bgp-peer-create?        enumeration
       +--rw bgp-policy-in
       +--rw bgp-policy-out
       +--ro peer-policy-in-pset
       +--ro peer-policy-out-pset
       +--rw peer-state-info
       |  +--ro peer-current-state?         peer-state
       |  +--ro peer-last-state?            peer-state
       |  +--ro peer-down-reason
       |  |  +--ro error-code?       enumeration
       |  |  +--ro sub-error-code
       |  |     +--ro (sub-error-code-type)?
       |  |        +--:(head-error-sub-code)
       |  |        |  +--ro head-error-sub-value?  enumeration
       |  |        +--:(open-error-sub-code)
       |  |        |  +--ro open-error-sub-value?  enumeration
       |  |        +--:(update-error-sub-code)
       |  |        |  +--ro update-error-sub-value? enumeration
       |  |        +--:(route-refresh-error-sub-code)
       |  |           +--ro route-refresh-error-sub-value? 
	   |  |                                  enumeration
       |  +--ro peer-received-update-cnt?   uint64
       |  +--ro peer-transmit-update-cnt?   uint64
       |  +--ro peer-received-route-cnt?    uint64
       |  +--ro peer-send-route-cnt?        uint64
       |  +--rw max-prefix-rcv-limit?       uint64
       |  +--rw max-prefix-xmt-limit?       uint64
       |  +--ro peer-prefix-high?           uint64
       |  +--ro peer-prefix-low?            uint64
       |  +--ro peer-prefix-ave?            uint64
       |  +--ro peer-prefix-time?           uint64
       |  +--ro peer-prefix-max?            uint64
       |  +--ro publish-version?            uint64
       +--rw bgp-rib-in
          +--rw bgp-rib-in-list* [ipv4-route ipv4-prefix-length]
             +--rw ipv4-route            inet:ipv4-prefix
             +--rw ipv4-prefix-length    uint8
             +--rw bgp-route-type?       enumeration
             +--rw bgp-attribute-list
				.... 
             +--ro bgp-route-create?     enumeration
             +--ro bgp-rt-state-info
               .... 
       +--rw bgp-rib-out
          +--rw bgp-rib-out-list* [ipv4-route ipv4-prefix-length]
             +--rw ipv4-route            inet:ipv4-prefix
             +--rw ipv4-prefix-length    uint8
             +--rw bgp-route-type?       enumeration
             +--rw bgp-attribute-list
			  .... 
             +--ro bgp-route-create?     enumeration
             +--ro bgp-rt-state-info
			 .... 
	

3.4.2. Elements in BGP peer Structure

The following are the elements in the BGP_Peer structure

BGP_PEER_NAME (R/W)


This entry uniquely names a BGP Peer. If multiple TCP connections are utilized between two BGP Peers, then the BGP Peer uniquely identifies the Peering. An I2RS Write to a BGP_PEER_NAME changes the BGP_PEER_NAME For the duration of the I2RS client-agent association for the run-time BGP, but it does not change the configured BGP Peer name.
Peer_Session_Address (R/W)


provides local peer address information and remote peer address information. Please see the description below for the details of the BGP session address. An I2RS read of this information pulls this information pulls up the the BGP Peer data in ephemeral store. The I2RS write to this causes the peer to attempt to set-up a TCP session either initial TCP session or a second TCP session in with multiple TCP support
BGP_PEER_TYPE (R/W)


contains the status on the type of BGP such as EBGP, IBGP, RR, RR-Client, PE, or CE. or Vendor specific types. (I2RS Note: Does this match normal configuration expectation or should this be an I2RS special variable)
BGP_Peer_create(R/W)


provides the I2RS creation status for this peer as: not-created by I2RS, requested by client but not processed, or an I2RS agent's response to the request: (agent reject peer creation, agent attempting peer creation, Agent failed peer creation, and Agent created BGP Peer).
Peer_policy_in (R/W)


- This allows reference of the bgp inbound policy by policy set name. Policy sets are defined by [RFC3460], and refers to the name of the policy set. This allows I2RS to read/write the policy set name, and let the I2RS agent link in the appropriate policy set.
Peer_policy_out (R/W)


- This allows reference of the outbound policy by policy set names, and let the I2RS agent load an existing policy set.
Peer_policy_in_pset (R/W)


Full policy set loaded for Peer_policy_in_pset.
Peer_policy_in_pset (R/W)


Full policy set loaded for Peer_policy_in_pset.
Peer state info (ro)


includes the following information:

bgp_rib_in


Route received (AdjRIBIn) in tree expressed in yang as a list of routes index by IPv4-route and Ipv4-prefix-length. Each route contains the following:

bgp_rib_out (R/W)


- Route output (AdjRIBOut) in tree expressed in yang as a list of routes index by IPv4-route and Ipv4-prefix-length. Each route contains the following:

3.4.3. Reading/Writing Policy in I2RS IM model for BGP Peer

The I2RS Agent's peer inbound and outbound policies are logically considered to be stored in policy sets that logically are defined in [RFC3460] but have the additions to be appropriate for I2RS basic network policy as described [I-D.hares-i2rs-bnp-info-model]. Policy groups uniquely identified by a Policy name. Policy sets are described either by name so that an on-board policy set is associated with the I2RS control BGP peer, or by full policy sets (-pset). This section describes why the choice to allow both name for pre-loaded policy sets and full policy set description.

Some I2RS clients will have long-term connections to I2RS Agents associated with a BGP routing function, and may choose to transfer the BGP Policy set or a set of the BGP Policy Components to the client's local memory. In this case, the I2RS Client could request the I2RS Agent to simply transfer the BGP Policy Sets name used by for the BGP Peers to minimize travel along with an indication of the last time the policy was updated.

The policy variables Peer_policy_in and Peer_policy_out allow both read and write of the Policy set names. The read of the Peer_policy_in and Peer_policy_out will provide simply the policy-set name. The write of the Peer_policy_in the I2RS agent will need to valid the the policy set name. After the policy set name is validated, the policy set link is placed in Peer_policy_in_pset and the BGP routing function updated with the policy set lists for the BGP Peer.

Similarly, if a write occurs to I2RS Agent's Peer_policy_out, the I2RS agent validates the policy-set name , replaces Peer_policy_out_pset with the link to the policy-set identified by the Policy-set name.

Reading either Peer_policy_in_pset will result in the I2RS Agent passing the policy linked to by the Peer_policy_in name (and linked to by Peer_policy_in_pset) to the I2RS Client in policy set form. Similarly, reading the Peer_policy_out_pset will retrieve the policy set pointed to by the Peer_policy_out name, and transfer the data in policy set form.

3.5. Additional variable used within all RIBS

The following additional variables are defined in the additional routes types.

4. BGP Yang top-level description

module: bgp-protocol
   +--rw bgp-protocol
      +--rw router-id?                      inet:ip-address
      +--rw as-number?                      uint32
      +--ro protocol-status?                enumeration
      +--rw shutdown-protocol?              boolean
      +--ro bgp-role?                       enumeration
      +--rw bgp-ipv4-uni-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv4-route ipv4-prefix-length]
      |  |     +--rw ipv4-route            inet:ipv4-prefix
      |  |     +--rw ipv4-prefix-length    uint8
      |  |     +--rw bgp-route-type?       enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?     enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv4-address?    inet:ipv4-prefix
      |     |  +--rw remote-ipv4-address?   inet:ipv4-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv4-route ipv4-prefix-length]
      |     |     +--rw ipv4-route            inet:ipv4-prefix
      |     |     +--rw ipv4-prefix-length    uint8
      |     |     +--rw bgp-route-type?       enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?     enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv4-route ipv4-prefix-length]
      |           +--rw ipv4-route            inet:ipv4-prefix
      |           +--rw ipv4-prefix-length    uint8
      |           +--rw bgp-route-type?       enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?     enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-labeled-ipv4-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv4-route ipv4-prefix-length mpls-label]
      |  |     +--rw ipv4-route            inet:ipv4-prefix
      |  |     +--rw ipv4-prefix-length    uint8
      |  |     +--rw mpls-label            mpls-label-def
      |  |     +--rw bgp-route-type?       enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?     enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv4-address?    inet:ipv4-prefix
      |     |  +--rw remote-ipv4-address?   inet:ipv4-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv4-route ipv4-prefix-length mpls-label]
      |     |     +--rw ipv4-route            inet:ipv4-prefix
      |     |     +--rw ipv4-prefix-length    uint8
      |     |     +--rw mpls-label            mpls-label-def
      |     |     +--rw bgp-route-type?       enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?     enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv4-route ipv4-prefix-length mpls-label]
      |           +--rw ipv4-route            inet:ipv4-prefix
      |           +--rw ipv4-prefix-length    uint8
      |           +--rw mpls-label            mpls-label-def
      |           +--rw bgp-route-type?       enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?     enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-ipv4-multi-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv4-route ipv4-prefix-length]
      |  |     +--rw ipv4-route            inet:ipv4-prefix
      |  |     +--rw ipv4-prefix-length    uint8
      |  |     +--rw bgp-route-type?       enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?     enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv4-address?    inet:ipv4-prefix
      |     |  +--rw remote-ipv4-address?   inet:ipv4-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv4-route ipv4-prefix-length]
      |     |     +--rw ipv4-route            inet:ipv4-prefix
      |     |     +--rw ipv4-prefix-length    uint8
      |     |     +--rw bgp-route-type?       enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?     enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv4-route ipv4-prefix-length]
      |           +--rw ipv4-route            inet:ipv4-prefix
      |           +--rw ipv4-prefix-length    uint8
      |           +--rw bgp-route-type?       enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?     enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-vpnv4-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv4-route ipv4-prefix-length route-distinguisher]
      |  |     +--rw ipv4-route             inet:ipv4-prefix
      |  |     +--rw ipv4-prefix-length     uint8
      |  |     +--rw mpls-label?            mpls-label-def
      |  |     +--rw route-distinguisher    route-distinguisher-def
      |  |     +--rw bgp-route-type?        enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?      enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv4-address?    inet:ipv4-prefix
      |     |  +--rw remote-ipv4-address?   inet:ipv4-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv4-route ipv4-prefix-length route-distinguisher]
      |     |     +--rw ipv4-route             inet:ipv4-prefix
      |     |     +--rw ipv4-prefix-length     uint8
      |     |     +--rw mpls-label?            mpls-label-def
      |     |     +--rw route-distinguisher    route-distinguisher-def
      |     |     +--rw bgp-route-type?        enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?      enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv4-route ipv4-prefix-length route-distinguisher]
      |           +--rw ipv4-route             inet:ipv4-prefix
      |           +--rw ipv4-prefix-length     uint8
      |           +--rw mpls-label?            mpls-label-def
      |           +--rw route-distinguisher    route-distinguisher-def
      |           +--rw bgp-route-type?        enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?      enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-ipv4-l3vpn-instance-list* [bgp-l3vpn-instance-name]
      |  +--rw bgp-l3vpn-instance-name    string
      |  +--rw bgp-instance-name?         string
      |  +--rw bgp-instance-create?       enumeration
      |  +--rw bgp-instance-type?         enumeration
      |  +--rw bgp-vendor-type?           enumeration
      |  +--rw afi?                       afi-def
      |  +--rw safi?                      safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv4-route ipv4-prefix-length]
      |  |     +--rw ipv4-route            inet:ipv4-prefix
      |  |     +--rw ipv4-prefix-length    uint8
      |  |     +--rw bgp-route-type?       enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?     enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv4-address?    inet:ipv4-prefix
      |     |  +--rw remote-ipv4-address?   inet:ipv4-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv4-route ipv4-prefix-length]
      |     |     +--rw ipv4-route            inet:ipv4-prefix
      |     |     +--rw ipv4-prefix-length    uint8
      |     |     +--rw bgp-route-type?       enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?     enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv4-route ipv4-prefix-length]
      |           +--rw ipv4-route            inet:ipv4-prefix
      |           +--rw ipv4-prefix-length    uint8
      |           +--rw bgp-route-type?       enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?     enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-ipv6-uni-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv6-route ipv6-prefix-length]
      |  |     +--rw ipv6-route            inet:ipv6-prefix
      |  |     +--rw ipv6-prefix-length    uint8
      |  |     +--rw bgp-route-type?       enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?     enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv6-address?    inet:ipv6-prefix
      |     |  +--rw remote-ipv6-address?   inet:ipv6-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv6-route ipv6-prefix-length]
      |     |     +--rw ipv6-route            inet:ipv6-prefix
      |     |     +--rw ipv6-prefix-length    uint8
      |     |     +--rw bgp-route-type?       enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?     enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv6-route ipv6-prefix-length]
      |           +--rw ipv6-route            inet:ipv6-prefix
      |           +--rw ipv6-prefix-length    uint8
      |           +--rw bgp-route-type?       enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?     enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-labeled-ipv6-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv6-route ipv6-prefix-length mpls-label]
      |  |     +--rw ipv6-route            inet:ipv6-prefix
      |  |     +--rw ipv6-prefix-length    uint8
      |  |     +--rw mpls-label            mpls-label-def
      |  |     +--rw bgp-route-type?       enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?     enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv6-address?    inet:ipv6-prefix
      |     |  +--rw remote-ipv6-address?   inet:ipv6-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv6-route ipv6-prefix-length mpls-label]
      |     |     +--rw ipv6-route            inet:ipv6-prefix
      |     |     +--rw ipv6-prefix-length    uint8
      |     |     +--rw mpls-label            mpls-label-def
      |     |     +--rw bgp-route-type?       enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?     enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv6-route ipv6-prefix-length mpls-label]
      |           +--rw ipv6-route            inet:ipv6-prefix
      |           +--rw ipv6-prefix-length    uint8
      |           +--rw mpls-label            mpls-label-def
      |           +--rw bgp-route-type?       enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?     enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-ipv6-multi-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv6-route ipv6-prefix-length]
      |  |     +--rw ipv6-route            inet:ipv6-prefix
      |  |     +--rw ipv6-prefix-length    uint8
      |  |     +--rw bgp-route-type?       enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?     enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv6-address?    inet:ipv6-prefix
      |     |  +--rw remote-ipv6-address?   inet:ipv6-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv6-route ipv6-prefix-length]
      |     |     +--rw ipv6-route            inet:ipv6-prefix
      |     |     +--rw ipv6-prefix-length    uint8
      |     |     +--rw bgp-route-type?       enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?     enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv6-route ipv6-prefix-length]
      |           +--rw ipv6-route            inet:ipv6-prefix
      |           +--rw ipv6-prefix-length    uint8
      |           +--rw bgp-route-type?       enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?     enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-vpnv6-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv6-route ipv6-prefix-length route-distinguisher]
      |  |     +--rw ipv6-route             inet:ipv6-prefix
      |  |     +--rw ipv6-prefix-length     uint8
      |  |     +--rw mpls-label?            mpls-label-def
      |  |     +--rw route-distinguisher    route-distinguisher-def
      |  |     +--rw bgp-route-type?        enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?      enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv6-address?    inet:ipv6-prefix
      |     |  +--rw remote-ipv6-address?   inet:ipv6-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv6-route ipv6-prefix-length route-distinguisher]
      |     |     +--rw ipv6-route             inet:ipv6-prefix
      |     |     +--rw ipv6-prefix-length     uint8
      |     |     +--rw mpls-label?            mpls-label-def
      |     |     +--rw route-distinguisher    route-distinguisher-def
      |     |     +--rw bgp-route-type?        enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?      enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv6-route ipv6-prefix-length route-distinguisher]
      |           +--rw ipv6-route             inet:ipv6-prefix
      |           +--rw ipv6-prefix-length     uint8
      |           +--rw mpls-label?            mpls-label-def
      |           +--rw route-distinguisher    route-distinguisher-def
      |           +--rw bgp-route-type?        enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?      enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-ipv6-l3vpn-instance-list* [bgp-l3vpn-instance-name]
      |  +--rw bgp-l3vpn-instance-name    string
      |  +--rw bgp-instance-name?         string
      |  +--rw bgp-instance-create?       enumeration
      |  +--rw bgp-instance-type?         enumeration
      |  +--rw bgp-vendor-type?           enumeration
      |  +--rw afi?                       afi-def
      |  +--rw safi?                      safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-list* [ipv6-route ipv6-prefix-length]
      |  |     +--rw ipv6-route            inet:ipv6-prefix
      |  |     +--rw ipv6-prefix-length    uint8
      |  |     +--rw bgp-route-type?       enumeration
      |  |     +--rw bgp-attribute-list
      |  |     |  +--rw bgp-origin?             enumeration
      |  |     |  +--rw bgp-aspath
      |  |     |  |  +--rw usascount?         uint16
      |  |     |  |  +--rw ulrefcount?        uint16
      |  |     |  |  +--rw asstring?          string
      |  |     |  |  +--ro usascountfrcomp?   uint16
      |  |     |  |  +--rw usastotalcount?    uint16
      |  |     |  |  +--rw usas4pathlen?      uint16
      |  |     |  |  +--rw as4pathvalue?      string
      |  |     |  +--rw bgp-nexthop?            inet:ip-address
      |  |     |  +--rw bgp-med?                uint32
      |  |     |  +--rw bgp-localpref?          uint32
      |  |     |  +--rw bgp-atomic-aggregate?   uint32
      |  |     |  +--rw bgp-aggregator
      |  |     |  |  +--rw ulipaddress?   uint32
      |  |     |  |  +--rw ulasnumber?    uint32
      |  |     |  +--rw bgp-commattr
      |  |     |  |  +--rw uscommsize?       uint16
      |  |     |  |  +--rw ulrefcomm?        uint32
      |  |     |  |  +--rw commattr-value?   string
      |  |     |  +--rw bgp-extcommattr
      |  |     |  |  +--rw usextcommsize?       uint16
      |  |     |  |  +--rw ulrefcount?          uint32
      |  |     |  |  +--rw extcommattr-value?   string
      |  |     |  +--rw bgp-clusterlist
      |  |     |  |  +--rw uscluslen?           uint16
      |  |     |  |  +--rw ulrefclus?           uint32
      |  |     |  |  +--rw clusterlist-value?   string
      |  |     |  +--rw bgp-originator-id?      uint32
      |  |     +--ro bgp-route-create?     enumeration
      |  |     +--ro bgp-rt-state-info
      |  |        +--ro rib-current-state?      rib-state-def
      |  |        +--ro rib-last-state?         rib-state-def
      |  |        +--ro rib-rejected-reason?    enumeration
      |  |        +--ro not-preferred-reason?   enumeration
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv6-address?    inet:ipv6-prefix
      |     |  +--rw remote-ipv6-address?   inet:ipv6-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-rib-in-list* [ipv6-route ipv6-prefix-length]
      |     |     +--rw ipv6-route            inet:ipv6-prefix
      |     |     +--rw ipv6-prefix-length    uint8
      |     |     +--rw bgp-route-type?       enumeration
      |     |     +--rw bgp-attribute-list
      |     |     |  +--rw bgp-origin?             enumeration
      |     |     |  +--rw bgp-aspath
      |     |     |  |  +--rw usascount?         uint16
      |     |     |  |  +--rw ulrefcount?        uint16
      |     |     |  |  +--rw asstring?          string
      |     |     |  |  +--ro usascountfrcomp?   uint16
      |     |     |  |  +--rw usastotalcount?    uint16
      |     |     |  |  +--rw usas4pathlen?      uint16
      |     |     |  |  +--rw as4pathvalue?      string
      |     |     |  +--rw bgp-nexthop?            inet:ip-address
      |     |     |  +--rw bgp-med?                uint32
      |     |     |  +--rw bgp-localpref?          uint32
      |     |     |  +--rw bgp-atomic-aggregate?   uint32
      |     |     |  +--rw bgp-aggregator
      |     |     |  |  +--rw ulipaddress?   uint32
      |     |     |  |  +--rw ulasnumber?    uint32
      |     |     |  +--rw bgp-commattr
      |     |     |  |  +--rw uscommsize?       uint16
      |     |     |  |  +--rw ulrefcomm?        uint32
      |     |     |  |  +--rw commattr-value?   string
      |     |     |  +--rw bgp-extcommattr
      |     |     |  |  +--rw usextcommsize?       uint16
      |     |     |  |  +--rw ulrefcount?          uint32
      |     |     |  |  +--rw extcommattr-value?   string
      |     |     |  +--rw bgp-clusterlist
      |     |     |  |  +--rw uscluslen?           uint16
      |     |     |  |  +--rw ulrefclus?           uint32
      |     |     |  |  +--rw clusterlist-value?   string
      |     |     |  +--rw bgp-originator-id?      uint32
      |     |     +--ro bgp-route-create?     enumeration
      |     |     +--ro bgp-rt-state-info
      |     |        +--ro rib-current-state?      rib-state-def
      |     |        +--ro rib-last-state?         rib-state-def
      |     |        +--ro rib-rejected-reason?    enumeration
      |     |        +--ro not-preferred-reason?   enumeration
      |     +--rw bgp-rib-out
      |        +--rw bgp-rib-out-list* [ipv6-route ipv6-prefix-length]
      |           +--rw ipv6-route            inet:ipv6-prefix
      |           +--rw ipv6-prefix-length    uint8
      |           +--rw bgp-route-type?       enumeration
      |           +--rw bgp-attribute-list
      |           |  +--rw bgp-origin?             enumeration
      |           |  +--rw bgp-aspath
      |           |  |  +--rw usascount?         uint16
      |           |  |  +--rw ulrefcount?        uint16
      |           |  |  +--rw asstring?          string
      |           |  |  +--ro usascountfrcomp?   uint16
      |           |  |  +--rw usastotalcount?    uint16
      |           |  |  +--rw usas4pathlen?      uint16
      |           |  |  +--rw as4pathvalue?      string
      |           |  +--rw bgp-nexthop?            inet:ip-address
      |           |  +--rw bgp-med?                uint32
      |           |  +--rw bgp-localpref?          uint32
      |           |  +--rw bgp-atomic-aggregate?   uint32
      |           |  +--rw bgp-aggregator
      |           |  |  +--rw ulipaddress?   uint32
      |           |  |  +--rw ulasnumber?    uint32
      |           |  +--rw bgp-commattr
      |           |  |  +--rw uscommsize?       uint16
      |           |  |  +--rw ulrefcomm?        uint32
      |           |  |  +--rw commattr-value?   string
      |           |  +--rw bgp-extcommattr
      |           |  |  +--rw usextcommsize?       uint16
      |           |  |  +--rw ulrefcount?          uint32
      |           |  |  +--rw extcommattr-value?   string
      |           |  +--rw bgp-clusterlist
      |           |  |  +--rw uscluslen?           uint16
      |           |  |  +--rw ulrefclus?           uint32
      |           |  |  +--rw clusterlist-value?   string
      |           |  +--rw bgp-originator-id?      uint32
      |           +--ro bgp-route-create?     enumeration
      |           +--ro bgp-rt-state-info
      |              +--ro rib-current-state?      rib-state-def
      |              +--ro rib-last-state?         rib-state-def
      |              +--ro rib-rejected-reason?    enumeration
      |              +--ro not-preferred-reason?   enumeration
      +--rw bgp-ipv4-mvpn-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-type?             enumeration
      |  |  +--rw bgp-attribute-list
      |  |  |  +--rw bgp-origin?             enumeration
      |  |  |  +--rw bgp-aspath
      |  |  |  |  +--rw usascount?         uint16
      |  |  |  |  +--rw ulrefcount?        uint16
      |  |  |  |  +--rw asstring?          string
      |  |  |  |  +--ro usascountfrcomp?   uint16
      |  |  |  |  +--rw usastotalcount?    uint16
      |  |  |  |  +--rw usas4pathlen?      uint16
      |  |  |  |  +--rw as4pathvalue?      string
      |  |  |  +--rw bgp-nexthop?            inet:ip-address
      |  |  |  +--rw bgp-med?                uint32
      |  |  |  +--rw bgp-localpref?          uint32
      |  |  |  +--rw bgp-atomic-aggregate?   uint32
      |  |  |  +--rw bgp-aggregator
      |  |  |  |  +--rw ulipaddress?   uint32
      |  |  |  |  +--rw ulasnumber?    uint32
      |  |  |  +--rw bgp-commattr
      |  |  |  |  +--rw uscommsize?       uint16
      |  |  |  |  +--rw ulrefcomm?        uint32
      |  |  |  |  +--rw commattr-value?   string
      |  |  |  +--rw bgp-extcommattr
      |  |  |  |  +--rw usextcommsize?       uint16
      |  |  |  |  +--rw ulrefcount?          uint32
      |  |  |  |  +--rw extcommattr-value?   string
      |  |  |  +--rw bgp-clusterlist
      |  |  |  |  +--rw uscluslen?           uint16
      |  |  |  |  +--rw ulrefclus?           uint32
      |  |  |  |  +--rw clusterlist-value?   string
      |  |  |  +--rw bgp-originator-id?      uint32
      |  |  +--ro bgp-route-create?           enumeration
      |  |  +--ro bgp-rt-state-info
      |  |  |  +--ro rib-current-state?      rib-state-def
      |  |  |  +--ro rib-last-state?         rib-state-def
      |  |  |  +--ro rib-rejected-reason?    enumeration
      |  |  |  +--ro not-preferred-reason?   enumeration
      |  |  +--rw (bgp-mvpn-route-type)?
      |  |     +--:(INTRA_AS_I_PMSI_AD)
      |  |     |  +--rw intra-as-i-pmsi-ad-route* [route-type route-distinguisher origin-router-ip-addr]
      |  |     |     +--rw route-type               mvpn-route-type
      |  |     |     +--rw route-distinguisher      route-distinguisher-def
      |  |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |  |     +--:(INTER_AS_I_PMSI_AD)
      |  |     |  +--rw inter_as_i_pmsi_as_route* [route-type route-distinguisher source-as]
      |  |     |     +--rw route-type             mvpn-route-type
      |  |     |     +--rw route-distinguisher    route-distinguisher-def
      |  |     |     +--rw source-as              inet:as-number
      |  |     +--:(S_PMSI_AD)
      |  |     |  +--rw s-pmsi-ad-route* [route-type route-distinguisher multicast-source multicast-group origin-router-ip-addr]
      |  |     |     +--rw route-type               mvpn-route-type
      |  |     |     +--rw route-distinguisher      route-distinguisher-def
      |  |     |     +--rw multicast-source         inet:ip-prefix
      |  |     |     +--rw multicast-group          inet:ip-prefix
      |  |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |  |     +--:(LEAF_AD)
      |  |     |  +--rw leaf-ad-route* [route-type route-key origin-router-ip-addr]
      |  |     |     +--rw route-type               mvpn-route-type
      |  |     |     +--rw route-key                binary
      |  |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |  |     +--:(SOURCE_ACTIVE_AD)
      |  |     |  +--rw source-active-ad-route* [route-type route-distinguisher multicast-source multicast-group]
      |  |     |     +--rw route-type             mvpn-route-type
      |  |     |     +--rw route-distinguisher    route-distinguisher-def
      |  |     |     +--rw multicast-source       inet:ip-prefix
      |  |     |     +--rw multicast-group        inet:ip-prefix
      |  |     +--:(SHARED_TREE_JOIN)
      |  |     |  +--rw shared-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |  |     |     +--rw route-type             mvpn-route-type
      |  |     |     +--rw route-distinguisher    route-distinguisher-def
      |  |     |     +--rw source-as              inet:as-number
      |  |     |     +--rw multicast-source       inet:ip-prefix
      |  |     |     +--rw multicast-group        inet:ip-prefix
      |  |     +--:(SOURCE_TREE_JOIN)
      |  |        +--rw source-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |  |           +--rw route-type             mvpn-route-type
      |  |           +--rw route-distinguisher    route-distinguisher-def
      |  |           +--rw source-as              inet:as-number
      |  |           +--rw multicast-source       inet:ip-prefix
      |  |           +--rw multicast-group        inet:ip-prefix
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv4-address?    inet:ipv4-prefix
      |     |  +--rw remote-ipv4-address?   inet:ipv4-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-route-type?             enumeration
      |     |  +--rw bgp-attribute-list
      |     |  |  +--rw bgp-origin?             enumeration
      |     |  |  +--rw bgp-aspath
      |     |  |  |  +--rw usascount?         uint16
      |     |  |  |  +--rw ulrefcount?        uint16
      |     |  |  |  +--rw asstring?          string
      |     |  |  |  +--ro usascountfrcomp?   uint16
      |     |  |  |  +--rw usastotalcount?    uint16
      |     |  |  |  +--rw usas4pathlen?      uint16
      |     |  |  |  +--rw as4pathvalue?      string
      |     |  |  +--rw bgp-nexthop?            inet:ip-address
      |     |  |  +--rw bgp-med?                uint32
      |     |  |  +--rw bgp-localpref?          uint32
      |     |  |  +--rw bgp-atomic-aggregate?   uint32
      |     |  |  +--rw bgp-aggregator
      |     |  |  |  +--rw ulipaddress?   uint32
      |     |  |  |  +--rw ulasnumber?    uint32
      |     |  |  +--rw bgp-commattr
      |     |  |  |  +--rw uscommsize?       uint16
      |     |  |  |  +--rw ulrefcomm?        uint32
      |     |  |  |  +--rw commattr-value?   string
      |     |  |  +--rw bgp-extcommattr
      |     |  |  |  +--rw usextcommsize?       uint16
      |     |  |  |  +--rw ulrefcount?          uint32
      |     |  |  |  +--rw extcommattr-value?   string
      |     |  |  +--rw bgp-clusterlist
      |     |  |  |  +--rw uscluslen?           uint16
      |     |  |  |  +--rw ulrefclus?           uint32
      |     |  |  |  +--rw clusterlist-value?   string
      |     |  |  +--rw bgp-originator-id?      uint32
      |     |  +--ro bgp-route-create?           enumeration
      |     |  +--ro bgp-rt-state-info
      |     |  |  +--ro rib-current-state?      rib-state-def
      |     |  |  +--ro rib-last-state?         rib-state-def
      |     |  |  +--ro rib-rejected-reason?    enumeration
      |     |  |  +--ro not-preferred-reason?   enumeration
      |     |  +--rw (bgp-mvpn-route-type)?
      |     |     +--:(INTRA_AS_I_PMSI_AD)
      |     |     |  +--rw intra-as-i-pmsi-ad-route* [route-type route-distinguisher origin-router-ip-addr]
      |     |     |     +--rw route-type               mvpn-route-type
      |     |     |     +--rw route-distinguisher      route-distinguisher-def
      |     |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |     |     +--:(INTER_AS_I_PMSI_AD)
      |     |     |  +--rw inter_as_i_pmsi_as_route* [route-type route-distinguisher source-as]
      |     |     |     +--rw route-type             mvpn-route-type
      |     |     |     +--rw route-distinguisher    route-distinguisher-def
      |     |     |     +--rw source-as              inet:as-number
      |     |     +--:(S_PMSI_AD)
      |     |     |  +--rw s-pmsi-ad-route* [route-type route-distinguisher multicast-source multicast-group origin-router-ip-addr]
      |     |     |     +--rw route-type               mvpn-route-type
      |     |     |     +--rw route-distinguisher      route-distinguisher-def
      |     |     |     +--rw multicast-source         inet:ip-prefix
      |     |     |     +--rw multicast-group          inet:ip-prefix
      |     |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |     |     +--:(LEAF_AD)
      |     |     |  +--rw leaf-ad-route* [route-type route-key origin-router-ip-addr]
      |     |     |     +--rw route-type               mvpn-route-type
      |     |     |     +--rw route-key                binary
      |     |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |     |     +--:(SOURCE_ACTIVE_AD)
      |     |     |  +--rw source-active-ad-route* [route-type route-distinguisher multicast-source multicast-group]
      |     |     |     +--rw route-type             mvpn-route-type
      |     |     |     +--rw route-distinguisher    route-distinguisher-def
      |     |     |     +--rw multicast-source       inet:ip-prefix
      |     |     |     +--rw multicast-group        inet:ip-prefix
      |     |     +--:(SHARED_TREE_JOIN)
      |     |     |  +--rw shared-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |     |     |     +--rw route-type             mvpn-route-type
      |     |     |     +--rw route-distinguisher    route-distinguisher-def
      |     |     |     +--rw source-as              inet:as-number
      |     |     |     +--rw multicast-source       inet:ip-prefix
      |     |     |     +--rw multicast-group        inet:ip-prefix
      |     |     +--:(SOURCE_TREE_JOIN)
      |     |        +--rw source-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |     |           +--rw route-type             mvpn-route-type
      |     |           +--rw route-distinguisher    route-distinguisher-def
      |     |           +--rw source-as              inet:as-number
      |     |           +--rw multicast-source       inet:ip-prefix
      |     |           +--rw multicast-group        inet:ip-prefix
      |     +--rw bgp-rib-out
      |        +--rw bgp-route-type?             enumeration
      |        +--rw bgp-attribute-list
      |        |  +--rw bgp-origin?             enumeration
      |        |  +--rw bgp-aspath
      |        |  |  +--rw usascount?         uint16
      |        |  |  +--rw ulrefcount?        uint16
      |        |  |  +--rw asstring?          string
      |        |  |  +--ro usascountfrcomp?   uint16
      |        |  |  +--rw usastotalcount?    uint16
      |        |  |  +--rw usas4pathlen?      uint16
      |        |  |  +--rw as4pathvalue?      string
      |        |  +--rw bgp-nexthop?            inet:ip-address
      |        |  +--rw bgp-med?                uint32
      |        |  +--rw bgp-localpref?          uint32
      |        |  +--rw bgp-atomic-aggregate?   uint32
      |        |  +--rw bgp-aggregator
      |        |  |  +--rw ulipaddress?   uint32
      |        |  |  +--rw ulasnumber?    uint32
      |        |  +--rw bgp-commattr
      |        |  |  +--rw uscommsize?       uint16
      |        |  |  +--rw ulrefcomm?        uint32
      |        |  |  +--rw commattr-value?   string
      |        |  +--rw bgp-extcommattr
      |        |  |  +--rw usextcommsize?       uint16
      |        |  |  +--rw ulrefcount?          uint32
      |        |  |  +--rw extcommattr-value?   string
      |        |  +--rw bgp-clusterlist
      |        |  |  +--rw uscluslen?           uint16
      |        |  |  +--rw ulrefclus?           uint32
      |        |  |  +--rw clusterlist-value?   string
      |        |  +--rw bgp-originator-id?      uint32
      |        +--ro bgp-route-create?           enumeration
      |        +--ro bgp-rt-state-info
      |        |  +--ro rib-current-state?      rib-state-def
      |        |  +--ro rib-last-state?         rib-state-def
      |        |  +--ro rib-rejected-reason?    enumeration
      |        |  +--ro not-preferred-reason?   enumeration
      |        +--rw (bgp-mvpn-route-type)?
      |           +--:(INTRA_AS_I_PMSI_AD)
      |           |  +--rw intra-as-i-pmsi-ad-route* [route-type route-distinguisher origin-router-ip-addr]
      |           |     +--rw route-type               mvpn-route-type
      |           |     +--rw route-distinguisher      route-distinguisher-def
      |           |     +--rw origin-router-ip-addr    inet:ip-prefix
      |           +--:(INTER_AS_I_PMSI_AD)
      |           |  +--rw inter_as_i_pmsi_as_route* [route-type route-distinguisher source-as]
      |           |     +--rw route-type             mvpn-route-type
      |           |     +--rw route-distinguisher    route-distinguisher-def
      |           |     +--rw source-as              inet:as-number
      |           +--:(S_PMSI_AD)
      |           |  +--rw s-pmsi-ad-route* [route-type route-distinguisher multicast-source multicast-group origin-router-ip-addr]
      |           |     +--rw route-type               mvpn-route-type
      |           |     +--rw route-distinguisher      route-distinguisher-def
      |           |     +--rw multicast-source         inet:ip-prefix
      |           |     +--rw multicast-group          inet:ip-prefix
      |           |     +--rw origin-router-ip-addr    inet:ip-prefix
      |           +--:(LEAF_AD)
      |           |  +--rw leaf-ad-route* [route-type route-key origin-router-ip-addr]
      |           |     +--rw route-type               mvpn-route-type
      |           |     +--rw route-key                binary
      |           |     +--rw origin-router-ip-addr    inet:ip-prefix
      |           +--:(SOURCE_ACTIVE_AD)
      |           |  +--rw source-active-ad-route* [route-type route-distinguisher multicast-source multicast-group]
      |           |     +--rw route-type             mvpn-route-type
      |           |     +--rw route-distinguisher    route-distinguisher-def
      |           |     +--rw multicast-source       inet:ip-prefix
      |           |     +--rw multicast-group        inet:ip-prefix
      |           +--:(SHARED_TREE_JOIN)
      |           |  +--rw shared-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |           |     +--rw route-type             mvpn-route-type
      |           |     +--rw route-distinguisher    route-distinguisher-def
      |           |     +--rw source-as              inet:as-number
      |           |     +--rw multicast-source       inet:ip-prefix
      |           |     +--rw multicast-group        inet:ip-prefix
      |           +--:(SOURCE_TREE_JOIN)
      |              +--rw source-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |                 +--rw route-type             mvpn-route-type
      |                 +--rw route-distinguisher    route-distinguisher-def
      |                 +--rw source-as              inet:as-number
      |                 +--rw multicast-source       inet:ip-prefix
      |                 +--rw multicast-group        inet:ip-prefix
      +--rw bgp-ipv6-mvpn-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-type?             enumeration
      |  |  +--rw bgp-attribute-list
      |  |  |  +--rw bgp-origin?             enumeration
      |  |  |  +--rw bgp-aspath
      |  |  |  |  +--rw usascount?         uint16
      |  |  |  |  +--rw ulrefcount?        uint16
      |  |  |  |  +--rw asstring?          string
      |  |  |  |  +--ro usascountfrcomp?   uint16
      |  |  |  |  +--rw usastotalcount?    uint16
      |  |  |  |  +--rw usas4pathlen?      uint16
      |  |  |  |  +--rw as4pathvalue?      string
      |  |  |  +--rw bgp-nexthop?            inet:ip-address
      |  |  |  +--rw bgp-med?                uint32
      |  |  |  +--rw bgp-localpref?          uint32
      |  |  |  +--rw bgp-atomic-aggregate?   uint32
      |  |  |  +--rw bgp-aggregator
      |  |  |  |  +--rw ulipaddress?   uint32
      |  |  |  |  +--rw ulasnumber?    uint32
      |  |  |  +--rw bgp-commattr
      |  |  |  |  +--rw uscommsize?       uint16
      |  |  |  |  +--rw ulrefcomm?        uint32
      |  |  |  |  +--rw commattr-value?   string
      |  |  |  +--rw bgp-extcommattr
      |  |  |  |  +--rw usextcommsize?       uint16
      |  |  |  |  +--rw ulrefcount?          uint32
      |  |  |  |  +--rw extcommattr-value?   string
      |  |  |  +--rw bgp-clusterlist
      |  |  |  |  +--rw uscluslen?           uint16
      |  |  |  |  +--rw ulrefclus?           uint32
      |  |  |  |  +--rw clusterlist-value?   string
      |  |  |  +--rw bgp-originator-id?      uint32
      |  |  +--ro bgp-route-create?           enumeration
      |  |  +--ro bgp-rt-state-info
      |  |  |  +--ro rib-current-state?      rib-state-def
      |  |  |  +--ro rib-last-state?         rib-state-def
      |  |  |  +--ro rib-rejected-reason?    enumeration
      |  |  |  +--ro not-preferred-reason?   enumeration
      |  |  +--rw (bgp-mvpn-route-type)?
      |  |     +--:(INTRA_AS_I_PMSI_AD)
      |  |     |  +--rw intra-as-i-pmsi-ad-route* [route-type route-distinguisher origin-router-ip-addr]
      |  |     |     +--rw route-type               mvpn-route-type
      |  |     |     +--rw route-distinguisher      route-distinguisher-def
      |  |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |  |     +--:(INTER_AS_I_PMSI_AD)
      |  |     |  +--rw inter_as_i_pmsi_as_route* [route-type route-distinguisher source-as]
      |  |     |     +--rw route-type             mvpn-route-type
      |  |     |     +--rw route-distinguisher    route-distinguisher-def
      |  |     |     +--rw source-as              inet:as-number
      |  |     +--:(S_PMSI_AD)
      |  |     |  +--rw s-pmsi-ad-route* [route-type route-distinguisher multicast-source multicast-group origin-router-ip-addr]
      |  |     |     +--rw route-type               mvpn-route-type
      |  |     |     +--rw route-distinguisher      route-distinguisher-def
      |  |     |     +--rw multicast-source         inet:ip-prefix
      |  |     |     +--rw multicast-group          inet:ip-prefix
      |  |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |  |     +--:(LEAF_AD)
      |  |     |  +--rw leaf-ad-route* [route-type route-key origin-router-ip-addr]
      |  |     |     +--rw route-type               mvpn-route-type
      |  |     |     +--rw route-key                binary
      |  |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |  |     +--:(SOURCE_ACTIVE_AD)
      |  |     |  +--rw source-active-ad-route* [route-type route-distinguisher multicast-source multicast-group]
      |  |     |     +--rw route-type             mvpn-route-type
      |  |     |     +--rw route-distinguisher    route-distinguisher-def
      |  |     |     +--rw multicast-source       inet:ip-prefix
      |  |     |     +--rw multicast-group        inet:ip-prefix
      |  |     +--:(SHARED_TREE_JOIN)
      |  |     |  +--rw shared-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |  |     |     +--rw route-type             mvpn-route-type
      |  |     |     +--rw route-distinguisher    route-distinguisher-def
      |  |     |     +--rw source-as              inet:as-number
      |  |     |     +--rw multicast-source       inet:ip-prefix
      |  |     |     +--rw multicast-group        inet:ip-prefix
      |  |     +--:(SOURCE_TREE_JOIN)
      |  |        +--rw source-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |  |           +--rw route-type             mvpn-route-type
      |  |           +--rw route-distinguisher    route-distinguisher-def
      |  |           +--rw source-as              inet:as-number
      |  |           +--rw multicast-source       inet:ip-prefix
      |  |           +--rw multicast-group        inet:ip-prefix
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv6-address?    inet:ipv6-prefix
      |     |  +--rw remote-ipv6-address?   inet:ipv6-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-route-type?             enumeration
      |     |  +--rw bgp-attribute-list
      |     |  |  +--rw bgp-origin?             enumeration
      |     |  |  +--rw bgp-aspath
      |     |  |  |  +--rw usascount?         uint16
      |     |  |  |  +--rw ulrefcount?        uint16
      |     |  |  |  +--rw asstring?          string
      |     |  |  |  +--ro usascountfrcomp?   uint16
      |     |  |  |  +--rw usastotalcount?    uint16
      |     |  |  |  +--rw usas4pathlen?      uint16
      |     |  |  |  +--rw as4pathvalue?      string
      |     |  |  +--rw bgp-nexthop?            inet:ip-address
      |     |  |  +--rw bgp-med?                uint32
      |     |  |  +--rw bgp-localpref?          uint32
      |     |  |  +--rw bgp-atomic-aggregate?   uint32
      |     |  |  +--rw bgp-aggregator
      |     |  |  |  +--rw ulipaddress?   uint32
      |     |  |  |  +--rw ulasnumber?    uint32
      |     |  |  +--rw bgp-commattr
      |     |  |  |  +--rw uscommsize?       uint16
      |     |  |  |  +--rw ulrefcomm?        uint32
      |     |  |  |  +--rw commattr-value?   string
      |     |  |  +--rw bgp-extcommattr
      |     |  |  |  +--rw usextcommsize?       uint16
      |     |  |  |  +--rw ulrefcount?          uint32
      |     |  |  |  +--rw extcommattr-value?   string
      |     |  |  +--rw bgp-clusterlist
      |     |  |  |  +--rw uscluslen?           uint16
      |     |  |  |  +--rw ulrefclus?           uint32
      |     |  |  |  +--rw clusterlist-value?   string
      |     |  |  +--rw bgp-originator-id?      uint32
      |     |  +--ro bgp-route-create?           enumeration
      |     |  +--ro bgp-rt-state-info
      |     |  |  +--ro rib-current-state?      rib-state-def
      |     |  |  +--ro rib-last-state?         rib-state-def
      |     |  |  +--ro rib-rejected-reason?    enumeration
      |     |  |  +--ro not-preferred-reason?   enumeration
      |     |  +--rw (bgp-mvpn-route-type)?
      |     |     +--:(INTRA_AS_I_PMSI_AD)
      |     |     |  +--rw intra-as-i-pmsi-ad-route* [route-type route-distinguisher origin-router-ip-addr]
      |     |     |     +--rw route-type               mvpn-route-type
      |     |     |     +--rw route-distinguisher      route-distinguisher-def
      |     |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |     |     +--:(INTER_AS_I_PMSI_AD)
      |     |     |  +--rw inter_as_i_pmsi_as_route* [route-type route-distinguisher source-as]
      |     |     |     +--rw route-type             mvpn-route-type
      |     |     |     +--rw route-distinguisher    route-distinguisher-def
      |     |     |     +--rw source-as              inet:as-number
      |     |     +--:(S_PMSI_AD)
      |     |     |  +--rw s-pmsi-ad-route* [route-type route-distinguisher multicast-source multicast-group origin-router-ip-addr]
      |     |     |     +--rw route-type               mvpn-route-type
      |     |     |     +--rw route-distinguisher      route-distinguisher-def
      |     |     |     +--rw multicast-source         inet:ip-prefix
      |     |     |     +--rw multicast-group          inet:ip-prefix
      |     |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |     |     +--:(LEAF_AD)
      |     |     |  +--rw leaf-ad-route* [route-type route-key origin-router-ip-addr]
      |     |     |     +--rw route-type               mvpn-route-type
      |     |     |     +--rw route-key                binary
      |     |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |     |     +--:(SOURCE_ACTIVE_AD)
      |     |     |  +--rw source-active-ad-route* [route-type route-distinguisher multicast-source multicast-group]
      |     |     |     +--rw route-type             mvpn-route-type
      |     |     |     +--rw route-distinguisher    route-distinguisher-def
      |     |     |     +--rw multicast-source       inet:ip-prefix
      |     |     |     +--rw multicast-group        inet:ip-prefix
      |     |     +--:(SHARED_TREE_JOIN)
      |     |     |  +--rw shared-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |     |     |     +--rw route-type             mvpn-route-type
      |     |     |     +--rw route-distinguisher    route-distinguisher-def
      |     |     |     +--rw source-as              inet:as-number
      |     |     |     +--rw multicast-source       inet:ip-prefix
      |     |     |     +--rw multicast-group        inet:ip-prefix
      |     |     +--:(SOURCE_TREE_JOIN)
      |     |        +--rw source-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |     |           +--rw route-type             mvpn-route-type
      |     |           +--rw route-distinguisher    route-distinguisher-def
      |     |           +--rw source-as              inet:as-number
      |     |           +--rw multicast-source       inet:ip-prefix
      |     |           +--rw multicast-group        inet:ip-prefix
      |     +--rw bgp-rib-out
      |        +--rw bgp-route-type?             enumeration
      |        +--rw bgp-attribute-list
      |        |  +--rw bgp-origin?             enumeration
      |        |  +--rw bgp-aspath
      |        |  |  +--rw usascount?         uint16
      |        |  |  +--rw ulrefcount?        uint16
      |        |  |  +--rw asstring?          string
      |        |  |  +--ro usascountfrcomp?   uint16
      |        |  |  +--rw usastotalcount?    uint16
      |        |  |  +--rw usas4pathlen?      uint16
      |        |  |  +--rw as4pathvalue?      string
      |        |  +--rw bgp-nexthop?            inet:ip-address
      |        |  +--rw bgp-med?                uint32
      |        |  +--rw bgp-localpref?          uint32
      |        |  +--rw bgp-atomic-aggregate?   uint32
      |        |  +--rw bgp-aggregator
      |        |  |  +--rw ulipaddress?   uint32
      |        |  |  +--rw ulasnumber?    uint32
      |        |  +--rw bgp-commattr
      |        |  |  +--rw uscommsize?       uint16
      |        |  |  +--rw ulrefcomm?        uint32
      |        |  |  +--rw commattr-value?   string
      |        |  +--rw bgp-extcommattr
      |        |  |  +--rw usextcommsize?       uint16
      |        |  |  +--rw ulrefcount?          uint32
      |        |  |  +--rw extcommattr-value?   string
      |        |  +--rw bgp-clusterlist
      |        |  |  +--rw uscluslen?           uint16
      |        |  |  +--rw ulrefclus?           uint32
      |        |  |  +--rw clusterlist-value?   string
      |        |  +--rw bgp-originator-id?      uint32
      |        +--ro bgp-route-create?           enumeration
      |        +--ro bgp-rt-state-info
      |        |  +--ro rib-current-state?      rib-state-def
      |        |  +--ro rib-last-state?         rib-state-def
      |        |  +--ro rib-rejected-reason?    enumeration
      |        |  +--ro not-preferred-reason?   enumeration
      |        +--rw (bgp-mvpn-route-type)?
      |           +--:(INTRA_AS_I_PMSI_AD)
      |           |  +--rw intra-as-i-pmsi-ad-route* [route-type route-distinguisher origin-router-ip-addr]
      |           |     +--rw route-type               mvpn-route-type
      |           |     +--rw route-distinguisher      route-distinguisher-def
      |           |     +--rw origin-router-ip-addr    inet:ip-prefix
      |           +--:(INTER_AS_I_PMSI_AD)
      |           |  +--rw inter_as_i_pmsi_as_route* [route-type route-distinguisher source-as]
      |           |     +--rw route-type             mvpn-route-type
      |           |     +--rw route-distinguisher    route-distinguisher-def
      |           |     +--rw source-as              inet:as-number
      |           +--:(S_PMSI_AD)
      |           |  +--rw s-pmsi-ad-route* [route-type route-distinguisher multicast-source multicast-group origin-router-ip-addr]
      |           |     +--rw route-type               mvpn-route-type
      |           |     +--rw route-distinguisher      route-distinguisher-def
      |           |     +--rw multicast-source         inet:ip-prefix
      |           |     +--rw multicast-group          inet:ip-prefix
      |           |     +--rw origin-router-ip-addr    inet:ip-prefix
      |           +--:(LEAF_AD)
      |           |  +--rw leaf-ad-route* [route-type route-key origin-router-ip-addr]
      |           |     +--rw route-type               mvpn-route-type
      |           |     +--rw route-key                binary
      |           |     +--rw origin-router-ip-addr    inet:ip-prefix
      |           +--:(SOURCE_ACTIVE_AD)
      |           |  +--rw source-active-ad-route* [route-type route-distinguisher multicast-source multicast-group]
      |           |     +--rw route-type             mvpn-route-type
      |           |     +--rw route-distinguisher    route-distinguisher-def
      |           |     +--rw multicast-source       inet:ip-prefix
      |           |     +--rw multicast-group        inet:ip-prefix
      |           +--:(SHARED_TREE_JOIN)
      |           |  +--rw shared-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |           |     +--rw route-type             mvpn-route-type
      |           |     +--rw route-distinguisher    route-distinguisher-def
      |           |     +--rw source-as              inet:as-number
      |           |     +--rw multicast-source       inet:ip-prefix
      |           |     +--rw multicast-group        inet:ip-prefix
      |           +--:(SOURCE_TREE_JOIN)
      |              +--rw source-tree-join-route* [route-type route-distinguisher source-as multicast-source multicast-group]
      |                 +--rw route-type             mvpn-route-type
      |                 +--rw route-distinguisher    route-distinguisher-def
      |                 +--rw source-as              inet:as-number
      |                 +--rw multicast-source       inet:ip-prefix
      |                 +--rw multicast-group        inet:ip-prefix
      +--rw bgp-mcast-vpls-instance
      |  +--rw bgp-instance-name?     string
      |  +--rw bgp-instance-create?   enumeration
      |  +--rw bgp-instance-type?     enumeration
      |  +--rw bgp-vendor-type?       enumeration
      |  +--rw afi?                   afi-def
      |  +--rw safi?                  safi-def
      |  +--rw bgp-local-rib
      |  |  +--rw bgp-route-type?            enumeration
      |  |  +--rw bgp-attribute-list
      |  |  |  +--rw bgp-origin?             enumeration
      |  |  |  +--rw bgp-aspath
      |  |  |  |  +--rw usascount?         uint16
      |  |  |  |  +--rw ulrefcount?        uint16
      |  |  |  |  +--rw asstring?          string
      |  |  |  |  +--ro usascountfrcomp?   uint16
      |  |  |  |  +--rw usastotalcount?    uint16
      |  |  |  |  +--rw usas4pathlen?      uint16
      |  |  |  |  +--rw as4pathvalue?      string
      |  |  |  +--rw bgp-nexthop?            inet:ip-address
      |  |  |  +--rw bgp-med?                uint32
      |  |  |  +--rw bgp-localpref?          uint32
      |  |  |  +--rw bgp-atomic-aggregate?   uint32
      |  |  |  +--rw bgp-aggregator
      |  |  |  |  +--rw ulipaddress?   uint32
      |  |  |  |  +--rw ulasnumber?    uint32
      |  |  |  +--rw bgp-commattr
      |  |  |  |  +--rw uscommsize?       uint16
      |  |  |  |  +--rw ulrefcomm?        uint32
      |  |  |  |  +--rw commattr-value?   string
      |  |  |  +--rw bgp-extcommattr
      |  |  |  |  +--rw usextcommsize?       uint16
      |  |  |  |  +--rw ulrefcount?          uint32
      |  |  |  |  +--rw extcommattr-value?   string
      |  |  |  +--rw bgp-clusterlist
      |  |  |  |  +--rw uscluslen?           uint16
      |  |  |  |  +--rw ulrefclus?           uint32
      |  |  |  |  +--rw clusterlist-value?   string
      |  |  |  +--rw bgp-originator-id?      uint32
      |  |  +--ro bgp-route-create?          enumeration
      |  |  +--ro bgp-rt-state-info
      |  |  |  +--ro rib-current-state?      rib-state-def
      |  |  |  +--ro rib-last-state?         rib-state-def
      |  |  |  +--ro rib-rejected-reason?    enumeration
      |  |  |  +--ro not-preferred-reason?   enumeration
      |  |  +--rw (bgp-mcast-vpls-route-type)?
      |  |     +--:(SELECTIVE_TREE_AD_ROUTE)
      |  |     |  +--rw selective-tree-ad-route* [route-type route-distinguisher multicast-source multicast-group origin-router-ip-addr]
      |  |     |     +--rw route-type               mcast-vpls-route-type
      |  |     |     +--rw route-distinguisher      route-distinguisher-def
      |  |     |     +--rw multicast-source         inet:ip-prefix
      |  |     |     +--rw multicast-group          inet:ip-prefix
      |  |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |  |     +--:(LEAF_AD)
      |  |        +--rw leaf-ad-route* [route-type route-key origin-router-ip-addr]
      |  |           +--rw route-type               mcast-vpls-route-type
      |  |           +--rw route-key                binary
      |  |           +--rw origin-router-ip-addr    inet:ip-prefix
      |  +--rw bgp-peer-list* [bgp-peer-name]
      |     +--rw peer-session-address
      |     |  +--rw local-ipv4-address?    inet:ipv4-prefix
      |     |  +--rw remote-ipv4-address?   inet:ipv4-prefix
      |     +--rw bgp-peer-name           string
      |     +--ro bgp-peer-type?          enumeration
      |     +--ro bgp-peer-create?        enumeration
      |     +--rw bgp-policy-in
      |     +--rw bgp-policy-out
      |     +--ro peer-policy-in-pset
      |     +--ro peer-policy-out-pset
      |     +--rw peer-state-info
      |     |  +--ro peer-current-state?         peer-state
      |     |  +--ro peer-last-state?            peer-state
      |     |  +--ro peer-down-reason
      |     |  |  +--ro error-code?       enumeration
      |     |  |  +--ro sub-error-code
      |     |  |     +--ro (sub-error-code-type)?
      |     |  |        +--:(head-error-sub-code)
      |     |  |        |  +--ro head-error-sub-value?            enumeration
      |     |  |        +--:(open-error-sub-code)
      |     |  |        |  +--ro open-error-sub-value?            enumeration
      |     |  |        +--:(update-error-sub-code)
      |     |  |        |  +--ro update-error-sub-value?          enumeration
      |     |  |        +--:(route-refresh-error-sub-code)
      |     |  |           +--ro route-refresh-error-sub-value?   enumeration
      |     |  +--ro peer-received-update-cnt?   uint64
      |     |  +--ro peer-transmit-update-cnt?   uint64
      |     |  +--ro peer-received-route-cnt?    uint64
      |     |  +--ro peer-send-route-cnt?        uint64
      |     |  +--rw max-prefix-rcv-limit?       uint64
      |     |  +--rw max-prefix-xmt-limit?       uint64
      |     |  +--ro peer-prefix-high?           uint64
      |     |  +--ro peer-prefix-low?            uint64
      |     |  +--ro peer-perfix-ave?            uint64
      |     |  +--ro peer-prefix-time?           uint64
      |     |  +--ro peer-prefix-max?            uint64
      |     |  +--ro publish-version?            uint64
      |     +--rw bgp-rib-in
      |     |  +--rw bgp-route-type?            enumeration
      |     |  +--rw bgp-attribute-list
      |     |  |  +--rw bgp-origin?             enumeration
      |     |  |  +--rw bgp-aspath
      |     |  |  |  +--rw usascount?         uint16
      |     |  |  |  +--rw ulrefcount?        uint16
      |     |  |  |  +--rw asstring?          string
      |     |  |  |  +--ro usascountfrcomp?   uint16
      |     |  |  |  +--rw usastotalcount?    uint16
      |     |  |  |  +--rw usas4pathlen?      uint16
      |     |  |  |  +--rw as4pathvalue?      string
      |     |  |  +--rw bgp-nexthop?            inet:ip-address
      |     |  |  +--rw bgp-med?                uint32
      |     |  |  +--rw bgp-localpref?          uint32
      |     |  |  +--rw bgp-atomic-aggregate?   uint32
      |     |  |  +--rw bgp-aggregator
      |     |  |  |  +--rw ulipaddress?   uint32
      |     |  |  |  +--rw ulasnumber?    uint32
      |     |  |  +--rw bgp-commattr
      |     |  |  |  +--rw uscommsize?       uint16
      |     |  |  |  +--rw ulrefcomm?        uint32
      |     |  |  |  +--rw commattr-value?   string
      |     |  |  +--rw bgp-extcommattr
      |     |  |  |  +--rw usextcommsize?       uint16
      |     |  |  |  +--rw ulrefcount?          uint32
      |     |  |  |  +--rw extcommattr-value?   string
      |     |  |  +--rw bgp-clusterlist
      |     |  |  |  +--rw uscluslen?           uint16
      |     |  |  |  +--rw ulrefclus?           uint32
      |     |  |  |  +--rw clusterlist-value?   string
      |     |  |  +--rw bgp-originator-id?      uint32
      |     |  +--ro bgp-route-create?          enumeration
      |     |  +--ro bgp-rt-state-info
      |     |  |  +--ro rib-current-state?      rib-state-def
      |     |  |  +--ro rib-last-state?         rib-state-def
      |     |  |  +--ro rib-rejected-reason?    enumeration
      |     |  |  +--ro not-preferred-reason?   enumeration
      |     |  +--rw (bgp-mcast-vpls-route-type)?
      |     |     +--:(SELECTIVE_TREE_AD_ROUTE)
      |     |     |  +--rw selective-tree-ad-route* [route-type route-distinguisher multicast-source multicast-group origin-router-ip-addr]
      |     |     |     +--rw route-type               mcast-vpls-route-type
      |     |     |     +--rw route-distinguisher      route-distinguisher-def
      |     |     |     +--rw multicast-source         inet:ip-prefix
      |     |     |     +--rw multicast-group          inet:ip-prefix
      |     |     |     +--rw origin-router-ip-addr    inet:ip-prefix
      |     |     +--:(LEAF_AD)
      |     |        +--rw leaf-ad-route* [route-type route-key origin-router-ip-addr]
      |     |           +--rw route-type               mcast-vpls-route-type
      |     |           +--rw route-key                binary
      |     |           +--rw origin-router-ip-addr    inet:ip-prefix
      |     +--rw bgp-rib-out
      |        +--rw bgp-route-type?            enumeration
      |        +--rw bgp-attribute-list
      |        |  +--rw bgp-origin?             enumeration
      |        |  +--rw bgp-aspath
      |        |  |  +--rw usascount?         uint16
      |        |  |  +--rw ulrefcount?        uint16
      |        |  |  +--rw asstring?          string
      |        |  |  +--ro usascountfrcomp?   uint16
      |        |  |  +--rw usastotalcount?    uint16
      |        |  |  +--rw usas4pathlen?      uint16
      |        |  |  +--rw as4pathvalue?      string
      |        |  +--rw bgp-nexthop?            inet:ip-address
      |        |  +--rw bgp-med?                uint32
      |        |  +--rw bgp-localpref?          uint32
      |        |  +--rw bgp-atomic-aggregate?   uint32
      |        |  +--rw bgp-aggregator
      |        |  |  +--rw ulipaddress?   uint32
      |        |  |  +--rw ulasnumber?    uint32
      |        |  +--rw bgp-commattr
      |        |  |  +--rw uscommsize?       uint16
      |        |  |  +--rw ulrefcomm?        uint32
      |        |  |  +--rw commattr-value?   string
      |        |  +--rw bgp-extcommattr
      |        |  |  +--rw usextcommsize?       uint16
      |        |  |  +--rw ulrefcount?          uint32
      |        |  |  +--rw extcommattr-value?   string
      |        |  +--rw bgp-clusterlist
      |        |  |  +--rw uscluslen?           uint16
      |        |  |  +--rw ulrefclus?           uint32
      |        |  |  +--rw clusterlist-value?   string
      |        |  +--rw bgp-originator-id?      uint32
      |        +--ro bgp-route-create?          enumeration
      |        +--ro bgp-rt-state-info
      |        |  +--ro rib-current-state?      rib-state-def
      |        |  +--ro rib-last-state?         rib-state-def
      |        |  +--ro rib-rejected-reason?    enumeration
      |        |  +--ro not-preferred-reason?   enumeration
      |        +--rw (bgp-mcast-vpls-route-type)?
      |           +--:(SELECTIVE_TREE_AD_ROUTE)
      |           |  +--rw selective-tree-ad-route* [route-type route-distinguisher multicast-source multicast-group origin-router-ip-addr]
      |           |     +--rw route-type               mcast-vpls-route-type
      |           |     +--rw route-distinguisher      route-distinguisher-def
      |           |     +--rw multicast-source         inet:ip-prefix
      |           |     +--rw multicast-group          inet:ip-prefix
      |           |     +--rw origin-router-ip-addr    inet:ip-prefix
      |           +--:(LEAF_AD)
      |              +--rw leaf-ad-route* [route-type route-key origin-router-ip-addr]
      |                 +--rw route-type               mcast-vpls-route-type
      |                 +--rw route-key                binary
      |                 +--rw origin-router-ip-addr    inet:ip-prefix
      +--rw bgp-evpn-instance
         +--rw bgp-instance-name?     string
         +--rw bgp-instance-create?   enumeration
         +--rw bgp-instance-type?     enumeration
         +--rw bgp-vendor-type?       enumeration
         +--rw afi?                   afi-def
         +--rw safi?                  safi-def
         +--rw bgp-local-rib
         |  +--rw bgp-route-type?              enumeration
         |  +--rw bgp-attribute-list
         |  |  +--rw bgp-origin?             enumeration
         |  |  +--rw bgp-aspath
         |  |  |  +--rw usascount?         uint16
         |  |  |  +--rw ulrefcount?        uint16
         |  |  |  +--rw asstring?          string
         |  |  |  +--ro usascountfrcomp?   uint16
         |  |  |  +--rw usastotalcount?    uint16
         |  |  |  +--rw usas4pathlen?      uint16
         |  |  |  +--rw as4pathvalue?      string
         |  |  +--rw bgp-nexthop?            inet:ip-address
         |  |  +--rw bgp-med?                uint32
         |  |  +--rw bgp-localpref?          uint32
         |  |  +--rw bgp-atomic-aggregate?   uint32
         |  |  +--rw bgp-aggregator
         |  |  |  +--rw ulipaddress?   uint32
         |  |  |  +--rw ulasnumber?    uint32
         |  |  +--rw bgp-commattr
         |  |  |  +--rw uscommsize?       uint16
         |  |  |  +--rw ulrefcomm?        uint32
         |  |  |  +--rw commattr-value?   string
         |  |  +--rw bgp-extcommattr
         |  |  |  +--rw usextcommsize?       uint16
         |  |  |  +--rw ulrefcount?          uint32
         |  |  |  +--rw extcommattr-value?   string
         |  |  +--rw bgp-clusterlist
         |  |  |  +--rw uscluslen?           uint16
         |  |  |  +--rw ulrefclus?           uint32
         |  |  |  +--rw clusterlist-value?   string
         |  |  +--rw bgp-originator-id?      uint32
         |  +--ro bgp-route-create?            enumeration
         |  +--ro bgp-rt-state-info
         |  |  +--ro rib-current-state?      rib-state-def
         |  |  +--ro rib-last-state?         rib-state-def
         |  |  +--ro rib-rejected-reason?    enumeration
         |  |  +--ro not-preferred-reason?   enumeration
         |  +--rw (bgp-evpn-route-type)?
         |     +--:(EVPN_AD_ROUTE)
         |     |  +--rw evpn-ad-route* [route-type route-distinguisher esi eth-tag-id]
         |     |     +--rw route-type             evpn-route-type
         |     |     +--rw route-distinguisher    route-distinguisher-def
         |     |     +--rw esi                    string
         |     |     +--rw eth-tag-id             uint32
         |     +--:(EVPN_MAC_ROUTE)
         |     |  +--rw evpn-mac-route* [route-type route-distinguisher esi eth-tag-id mac-length mac-address ip-address-length ip-address]
         |     |     +--rw route-type             evpn-route-type
         |     |     +--rw route-distinguisher    route-distinguisher-def
         |     |     +--rw esi                    string
         |     |     +--rw eth-tag-id             uint32
         |     |     +--rw mac-length             uint8
         |     |     +--rw mac-address            yang:mac-address
         |     |     +--rw ip-address-length      uint8
         |     |     +--rw ip-address             inet:ip-address
         |     |     +--rw label1?                uint32
         |     |     +--rw label2?                uint32
         |     +--:(EVPN_INC_MCAST_TREE)
         |     |  +--rw evpn-inc-mcast-tree-route* [route-type route-distinguisher eth-tag-id ip-address-length origin-router-ip-addr]
         |     |     +--rw route-type               evpn-route-type
         |     |     +--rw route-distinguisher      route-distinguisher-def
         |     |     +--rw eth-tag-id               uint32
         |     |     +--rw ip-address-length        uint8
         |     |     +--rw origin-router-ip-addr    inet:ip-prefix
         |     +--:(EVPN_ETH_SEGMENT_ROUTE)
         |        +--rw evpn-eth-segment-route* [route-type route-distinguisher esi ip-address-length origin-router-ip-addr]
         |           +--rw route-type               evpn-route-type
         |           +--rw route-distinguisher      route-distinguisher-def
         |           +--rw esi                      string
         |           +--rw ip-address-length        uint8
         |           +--rw origin-router-ip-addr    inet:ip-prefix
         +--rw bgp-peer-list* [bgp-peer-name]
            +--rw peer-session-address
            |  +--rw local-ipv4-address?    inet:ipv4-prefix
            |  +--rw remote-ipv4-address?   inet:ipv4-prefix
            +--rw bgp-peer-name           string
            +--ro bgp-peer-type?          enumeration
            +--ro bgp-peer-create?        enumeration
            +--rw bgp-policy-in
            +--rw bgp-policy-out
            +--ro peer-policy-in-pset
            +--ro peer-policy-out-pset
            +--rw peer-state-info
            |  +--ro peer-current-state?         peer-state
            |  +--ro peer-last-state?            peer-state
            |  +--ro peer-down-reason
            |  |  +--ro error-code?       enumeration
            |  |  +--ro sub-error-code
            |  |     +--ro (sub-error-code-type)?
            |  |        +--:(head-error-sub-code)
            |  |        |  +--ro head-error-sub-value?            enumeration
            |  |        +--:(open-error-sub-code)
            |  |        |  +--ro open-error-sub-value?            enumeration
            |  |        +--:(update-error-sub-code)
            |  |        |  +--ro update-error-sub-value?          enumeration
            |  |        +--:(route-refresh-error-sub-code)
            |  |           +--ro route-refresh-error-sub-value?   enumeration
            |  +--ro peer-received-update-cnt?   uint64
            |  +--ro peer-transmit-update-cnt?   uint64
            |  +--ro peer-received-route-cnt?    uint64
            |  +--ro peer-send-route-cnt?        uint64
            |  +--rw max-prefix-rcv-limit?       uint64
            |  +--rw max-prefix-xmt-limit?       uint64
            |  +--ro peer-prefix-high?           uint64
            |  +--ro peer-prefix-low?            uint64
            |  +--ro peer-perfix-ave?            uint64
            |  +--ro peer-prefix-time?           uint64
            |  +--ro peer-prefix-max?            uint64
            |  +--ro publish-version?            uint64
            +--rw bgp-rib-in
            |  +--rw bgp-route-type?              enumeration
            |  +--rw bgp-attribute-list
            |  |  +--rw bgp-origin?             enumeration
            |  |  +--rw bgp-aspath
            |  |  |  +--rw usascount?         uint16
            |  |  |  +--rw ulrefcount?        uint16
            |  |  |  +--rw asstring?          string
            |  |  |  +--ro usascountfrcomp?   uint16
            |  |  |  +--rw usastotalcount?    uint16
            |  |  |  +--rw usas4pathlen?      uint16
            |  |  |  +--rw as4pathvalue?      string
            |  |  +--rw bgp-nexthop?            inet:ip-address
            |  |  +--rw bgp-med?                uint32
            |  |  +--rw bgp-localpref?          uint32
            |  |  +--rw bgp-atomic-aggregate?   uint32
            |  |  +--rw bgp-aggregator
            |  |  |  +--rw ulipaddress?   uint32
            |  |  |  +--rw ulasnumber?    uint32
            |  |  +--rw bgp-commattr
            |  |  |  +--rw uscommsize?       uint16
            |  |  |  +--rw ulrefcomm?        uint32
            |  |  |  +--rw commattr-value?   string
            |  |  +--rw bgp-extcommattr
            |  |  |  +--rw usextcommsize?       uint16
            |  |  |  +--rw ulrefcount?          uint32
            |  |  |  +--rw extcommattr-value?   string
            |  |  +--rw bgp-clusterlist
            |  |  |  +--rw uscluslen?           uint16
            |  |  |  +--rw ulrefclus?           uint32
            |  |  |  +--rw clusterlist-value?   string
            |  |  +--rw bgp-originator-id?      uint32
            |  +--ro bgp-route-create?            enumeration
            |  +--ro bgp-rt-state-info
            |  |  +--ro rib-current-state?      rib-state-def
            |  |  +--ro rib-last-state?         rib-state-def
            |  |  +--ro rib-rejected-reason?    enumeration
            |  |  +--ro not-preferred-reason?   enumeration
            |  +--rw (bgp-evpn-route-type)?
            |     +--:(EVPN_AD_ROUTE)
            |     |  +--rw evpn-ad-route* [route-type route-distinguisher esi eth-tag-id]
            |     |     +--rw route-type             evpn-route-type
            |     |     +--rw route-distinguisher    route-distinguisher-def
            |     |     +--rw esi                    string
            |     |     +--rw eth-tag-id             uint32
            |     +--:(EVPN_MAC_ROUTE)
            |     |  +--rw evpn-mac-route* [route-type route-distinguisher esi eth-tag-id mac-length mac-address ip-address-length ip-address]
            |     |     +--rw route-type             evpn-route-type
            |     |     +--rw route-distinguisher    route-distinguisher-def
            |     |     +--rw esi                    string
            |     |     +--rw eth-tag-id             uint32
            |     |     +--rw mac-length             uint8
            |     |     +--rw mac-address            yang:mac-address
            |     |     +--rw ip-address-length      uint8
            |     |     +--rw ip-address             inet:ip-address
            |     |     +--rw label1?                uint32
            |     |     +--rw label2?                uint32
            |     +--:(EVPN_INC_MCAST_TREE)
            |     |  +--rw evpn-inc-mcast-tree-route* [route-type route-distinguisher eth-tag-id ip-address-length origin-router-ip-addr]
            |     |     +--rw route-type               evpn-route-type
            |     |     +--rw route-distinguisher      route-distinguisher-def
            |     |     +--rw eth-tag-id               uint32
            |     |     +--rw ip-address-length        uint8
            |     |     +--rw origin-router-ip-addr    inet:ip-prefix
            |     +--:(EVPN_ETH_SEGMENT_ROUTE)
            |        +--rw evpn-eth-segment-route* [route-type route-distinguisher esi ip-address-length origin-router-ip-addr]
            |           +--rw route-type               evpn-route-type
            |           +--rw route-distinguisher      route-distinguisher-def
            |           +--rw esi                      string
            |           +--rw ip-address-length        uint8
            |           +--rw origin-router-ip-addr    inet:ip-prefix
            +--rw bgp-rib-out
               +--rw bgp-route-type?              enumeration
               +--rw bgp-attribute-list
               |  +--rw bgp-origin?             enumeration
               |  +--rw bgp-aspath
               |  |  +--rw usascount?         uint16
               |  |  +--rw ulrefcount?        uint16
               |  |  +--rw asstring?          string
               |  |  +--ro usascountfrcomp?   uint16
               |  |  +--rw usastotalcount?    uint16
               |  |  +--rw usas4pathlen?      uint16
               |  |  +--rw as4pathvalue?      string
               |  +--rw bgp-nexthop?            inet:ip-address
               |  +--rw bgp-med?                uint32
               |  +--rw bgp-localpref?          uint32
               |  +--rw bgp-atomic-aggregate?   uint32
               |  +--rw bgp-aggregator
               |  |  +--rw ulipaddress?   uint32
               |  |  +--rw ulasnumber?    uint32
               |  +--rw bgp-commattr
               |  |  +--rw uscommsize?       uint16
               |  |  +--rw ulrefcomm?        uint32
               |  |  +--rw commattr-value?   string
               |  +--rw bgp-extcommattr
               |  |  +--rw usextcommsize?       uint16
               |  |  +--rw ulrefcount?          uint32
               |  |  +--rw extcommattr-value?   string
               |  +--rw bgp-clusterlist
               |  |  +--rw uscluslen?           uint16
               |  |  +--rw ulrefclus?           uint32
               |  |  +--rw clusterlist-value?   string
               |  +--rw bgp-originator-id?      uint32
               +--ro bgp-route-create?            enumeration
               +--ro bgp-rt-state-info
               |  +--ro rib-current-state?      rib-state-def
               |  +--ro rib-last-state?         rib-state-def
               |  +--ro rib-rejected-reason?    enumeration
               |  +--ro not-preferred-reason?   enumeration
               +--rw (bgp-evpn-route-type)?
                  +--:(EVPN_AD_ROUTE)
                  |  +--rw evpn-ad-route* [route-type route-distinguisher esi eth-tag-id]
                  |     +--rw route-type             evpn-route-type
                  |     +--rw route-distinguisher    route-distinguisher-def
                  |     +--rw esi                    string
                  |     +--rw eth-tag-id             uint32
                  +--:(EVPN_MAC_ROUTE)
                  |  +--rw evpn-mac-route* [route-type route-distinguisher esi eth-tag-id mac-length mac-address ip-address-length ip-address]
                  |     +--rw route-type             evpn-route-type
                  |     +--rw route-distinguisher    route-distinguisher-def
                  |     +--rw esi                    string
                  |     +--rw eth-tag-id             uint32
                  |     +--rw mac-length             uint8
                  |     +--rw mac-address            yang:mac-address
                  |     +--rw ip-address-length      uint8
                  |     +--rw ip-address             inet:ip-address
                  |     +--rw label1?                uint32
                  |     +--rw label2?                uint32
                  +--:(EVPN_INC_MCAST_TREE)
                  |  +--rw evpn-inc-mcast-tree-route* [route-type route-distinguisher eth-tag-id ip-address-length origin-router-ip-addr]
                  |     +--rw route-type               evpn-route-type
                  |     +--rw route-distinguisher      route-distinguisher-def
                  |     +--rw eth-tag-id               uint32
                  |     +--rw ip-address-length        uint8
                  |     +--rw origin-router-ip-addr    inet:ip-prefix
                  +--:(EVPN_ETH_SEGMENT_ROUTE)
                     +--rw evpn-eth-segment-route* [route-type route-distinguisher esi ip-address-length origin-router-ip-addr]
                        +--rw route-type               evpn-route-type
                        +--rw route-distinguisher      route-distinguisher-def
                        +--rw esi                      string
                        +--rw ip-address-length        uint8
                        +--rw origin-router-ip-addr    inet:ip-prefix		  
	

Below is the full BGP Yang top-level description

5. IANA Considerations

This draft includes no request to IANA.

6. Security Considerations

TBD.

7. Informative References

[I-D.hares-i2rs-bnp-info-model] Hares, S. and Q. Wu, "An Information Model for Basic Network Policy", Internet-Draft draft-hares-i2rs-bnp-info-model-00, September 2014.
[I-D.hares-i2rs-info-model-policy] Hares, S. and W. Wu, "An Information Model for Basic Network Policy", Internet-Draft draft-hares-i2rs-info-model-policy-03, July 2014.
[I-D.ietf-i2rs-architecture] Atlas, A., Halpern, J., Hares, S., Ward, D. and T. Nadeau, "An Architecture for the Interface to the Routing System", Internet-Draft draft-ietf-i2rs-architecture-05, July 2014.
[I-D.ietf-i2rs-rib-info-model] Bahadur, N., Folkes, R., Kini, S. and J. Medved, "Routing Information Base Info Model", Internet-Draft draft-ietf-i2rs-rib-info-model-03, May 2014.
[I-D.ietf-netconf-restconf] Bierman, A., Bjorklund, M. and K. Watsen, "RESTCONF Protocol", Internet-Draft draft-ietf-netconf-restconf-02, October 2014.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3060] Moore, B., Ellesson, E., Strassner, J. and A. Westerinen, "Policy Core Information Model -- Version 1 Specification", RFC 3060, February 2001.
[RFC3460] Moore, B., "Policy Core Information Model (PCIM) Extensions", RFC 3460, January 2003.
[RFC3644] Snir, Y., Ramberg, Y., Strassner, J., Cohen, R. and B. Moore, "Policy Quality of Service (QoS) Information Model", RFC 3644, November 2003.
[RFC5394] Bryskin, I., Papadimitriou, D., Berger, L. and J. Ash, "Policy-Enabled Path Computation Framework", RFC 5394, December 2008.
[RFC5511] Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax Used to Form Encoding Rules in Various Routing Protocol Specifications", RFC 5511, April 2009.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration Protocol (NETCONF) Access Control Model", RFC 6536, March 2012.

Authors' Addresses

Susan Hares Huawei 7453 Hickory Hill Saline, MI 48176 USA EMail: shares@ndzh.com
Lixing Wang Huawei Beijing, PRC EMail: wanglixing@huawei.com
Shunwan Zhuang Huawei Beijing, PRC EMail: Zhuangshunwan@huawei.com