One document matched: draft-hares-i2rs-bgp-im-02.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3060 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3060.xml">
<!ENTITY RFC3460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3460.xml">
<!ENTITY RFC3644 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3644.xml">
<!ENTITY RFC5394 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5394.xml">
<!ENTITY RFC5511 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5511.xml">
<!ENTITY RFC6536 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6536.xml">
<!ENTITY I-D.ietf-i2rs-architecture SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i2rs-architecture.xml">
<!ENTITY I-D.ietf-i2rs-rib-info-model SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i2rs-rib-info-model.xml">
<!ENTITY I-D.white-i2rs-use-case SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.white-i2rs-use-case.xml">
<!ENTITY I-D.hares-i2rs-bnp-info-model SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.hares-i2rs-bnp-info-model.xml">
<!ENTITY I-D.keyupate-i2rs-bgp-usecases SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.keyupate-i2rs-bgp-usecases">
<!ENTITY I-D.ietf-netconf-restconf SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-netconf-restconf.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<rfc category="std" docName="draft-hares-i2rs-bgp-im-02.txt" ipr="trust200902">
  <front>
    <title abbrev="BGP IM">An I2RS BGP Information Model</title>

    <author fullname="Susan Hares" initials="S" surname="Hares">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>7453 Hickory Hill</street>

          <city>Saline</city>

          <region>MI</region>

          <code>48176</code>

          <country>USA</country>
        </postal>

        <email>shares@ndzh.com</email>
      </address>
    </author>

    <author fullname="Lixing Wang" initials="L." surname="Wang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <country>PRC</country>
        </postal>

        <email>wanglixing@huawei.com</email>
      </address>
    </author>

    <author fullname="Shunwan Zhuang" initials="S." surname="Zhuang">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <country>PRC</country>
        </postal>

        <email>Zhuangshunwan@huawei.com</email>
      </address>
    </author>

    <date year="2014"/>

    <area>Routing</area>

    <workgroup>I2RS Working Group</workgroup>

    <keyword>I2RS</keyword>

    <keyword>Information Model</keyword>

    <keyword>IM</keyword>

    <abstract>
      <t>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.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro" title="Introduction">
      <t>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 <xref
      target="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.</t>

      <t>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 <xref
      target="I-D.ietf-i2rs-rib-info-model"/>, and uses the generic policy
      found in the Policy Routing modules in <xref
      target="I-D.hares-i2rs-info-model-policy"> </xref>. This basic BGP
      Information Model is an extendable policy model is a product of the
      industry approach to I2RS.</t>
    </section>

    <section title="Definitions and Acronyms">
      <t><list>
          <t>BGP: Border Gateway Protocol</t>

          <t>Information Model: An abstract model of a conceptual domain,
          independent of a specific implementation or data representation</t>

          <t>NETCONF:The Network Configuration Protocol as defined in <xref
          target="RFC6536"> </xref></t>

          <t>RESTCONF: The REST-like protocol that provides a programmatic
          interface over HTTP for accesing data defined in YANG, using
          datastores defined in NETCONF Protocol <xref
          target="I-D.ietf-netconf-restconf"> </xref> as defined in RBNF:
          Routing Backus-Naur Form <xref target="RFC5511"> </xref>.</t>
        </list></t>
    </section>

    <section title="BGP Data">
      <t>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.</t>
      <section title="BGP Protocol">
        <t>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. 
		</t>
		 <t>
		 <list style="hanging">
            <t hangText="Protocol"><vspace blankLines="1"/> The BGP protocol
            information stores a group of information associated with a BGP
            protocol implementation. This group of informational includes:
            <list style="symbols">
                <t>Router-ID (R/W) - Router-ID for BGP protocol,</t>

                <t>AS(R/W)- Autonomous System Number,</t>
                <t>protocol_status (R) - administrative status of the
                protocol,</t>
                <t>shutdown_protocol (R/W) - Shutdown the BGP protocol,</t>
                <t>ROLES (R) - a composite set of roles BGP peers play,</t>
                <t>bgp-ipv4-uni-instance (R/W) - instance for IPv4 unicast </t>
				<t> bgp-labled-ipv4instance (R/W) - instance for IPv4 unicast with lablels </t>
				<t>bgp-ipv4-multi-instance (R/W) - instance for IPv4 multicast </t>
				<t>bgp-vpnv4-instance (R/W) - instance for IPv4 VPNs </t>
				<t> bgp-vpn-l3vp-instance-list (R/W) list of L3VPN instances indexed by
				the BGP instance name </t>
				<t> bgp-ipv6-uni-instance (R/W) - instance handling IPv6 unicast </t>
				<t> bgp-label-ipv6-instance (R/W) - instance with iPv6 prefix plus labels </t>
				<t> bgp-ipv6-multi-instance (R/W) - bgp IPv6 multicast instance </t> 
				<t> bgp-ipv6-vpn-instance-list (R/W) - list of Ipv6 L3VPN instances </t>
              </list>
			  </t>
          </list> 
		  The sections below describe these elements.
		  </t> 
        <section title="Yang Data Model for I2RS BGP IM Protocol Block">
          <t><figure>
              <artwork><![CDATA[
   +--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]
	  |  ...
	  ]]>
	  </artwork>
            </figure></t>
        </section>
        <section title="Elements in I2RS Protocol Block">
          <t>This section describes each element of the I2RS Protocol Block.
          <list style="hanging">
              <t hangText="Router-ID (R) "><vspace blankLines="1"/> 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.</t>

              <t hangText="Router-ID (W) "><vspace blankLines="1"/> 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.</t>

              <t hangText="AS(R/W)"><vspace blankLines="1"/> 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.</t>

              <t hangText="protocol_status (R) "><vspace blankLines="1"/>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.</t>

              <t hangText="shutdown_protocol(R/W)"><vspace blankLines="1"/> 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).</t>

              <t hangText="bgp_role (R)"><vspace blankLines="1"/>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).</t>
              <t hangText="bgp-ipv4-uni-instance (R-W)"><vspace blankLines="1"/>
              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. 
			  </t>
			  <t hangText="bgp-labeled-ipv4-instance (R-W) "><vspace blankLines="1"/>
			  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). 
			  </t> 
			  <t hangText="bgp-ipv4-multi-instance (R-W) "><vspace blankLines="1"/>
			  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). </t>
			  <t hangText="bgp-vpnv4-instance (R-W) "><vspace blankLines="1"/>
			  This element contains BGP instance IPv4 VPNs.
			   (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these
			  routes). 
			  </t>
			  <t hangText="bgp-ipv4-L3vpn-instance-list* (R-W) "><vspace blankLines="1"/>
			  This element contains BGP instance IPv4 VPNs.
			   (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these
			  routes). </t>
			  <t hangText="bgp-ipv6-uni-instance (R-W) "><vspace blankLines="1"/>
			  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). </t>
			   <t hangText="bgp-labeled-ipv6-instance (R-W) "><vspace blankLines="1"/>
			  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). 
			  </t> 
			  <t hangText="bgp-ipv6-multi-instance(R-W) "><vspace blankLines="1"/>
			  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). </t>
			  <t hangText="bgp-vpnv6-instance (R-W) "><vspace blankLines="1"/>
			  This element contains BGP instance IPv6 VPNs.
			   (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these
			  routes). 
			  </t>
			  <t hangText="bgp-ipv6-L3vpn-instance-list* (R-W) "><vspace blankLines="1"/>
			  This element contains BGP instance IPv4 VPNs.
			   (Contains bgp local rib, bgp peer list, bgp rib-in, and bgp rib-out for these
			  routes). </t>
            </list></t>
        </section>
      </section>
      <section title="bgp_ipv4_instance">
	    <t>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. 
		</t>
        <section title="Yang Data Model bgp ipv4 unicast instance">
          <t>
		  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. 
		  </t>
		  <t> 
		  <figure>
              <artwork><![CDATA[
    +--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]
        ......
    ]]>
	  </artwork>
            </figure>
			</t>
        </section>
		<section title="Elements in bgp ipv4 unicast instance"> 
          <t>The definitions of the fields in BGP Instance are: 
		  <list style="hanging">
              <t hangText="BGP_INSTANCE_NAME (R/W)"><vspace blankLines="1"/>
              The BGP_INSTANCE_NAME provides a name to uniquely identify the
              BGP instance. </t>

              <t hangText="BGP_INSTANCE_CREATION(R/W)"><vspace
              blankLines="1"/> 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: <list style="symbols">
                  <t>Not I2RS created (NOT-I2RS),</t>
                  <t>I2RS client requests creation
                  (I2RSCLIENT_CREATE_BGP_INSTANCE),</t>

                  <t>I2RS Agent rejects creation
                  (I2RSAGENT_REJECTS_BGP_INSTANCE_CREATE),</t>

                  <t>I2RS Agent attempting creation
                  (I2RSAGENT_ATTEMPTS_BGP_INSTANCE_CREATE), and</t>

                  <t>I2RS Agent failed creation
                  (I2RSAGENT_FAILS_BGP_INSTANCE_CREATE)</t>

                  <t>I2RS Agent created BGP instance
                  (I2RSAGENT_CREATED_BGP_INSTANCE)</t>
                </list></t>

              <t hangText="BGP_INSTANCE_TYPE (R/W)"><vspace blankLines="1"/>
              contains flag field that summarizes common AFI-SAFIs within a
              flag word. This enumeration
			      <list style="symbols">
                  <t>BGP_IPV4_UNI flag - is a flag for AFI of IPV4 and a SAFI
                  of Unicast (1).</t>

                  <t>BGP_IPV4_MULTI flag - is a flag for AFI of IPV4 and a
                  SAFI Multicast (2).</t>

                  <t>BGP_L3VPN I is a flag for AFI of IPv4 and a SAFI of MPLS
                  labels (4).</t>

                  <t>BGP_IPv4_MVPN- is a flag for AFI of IPv4 and a SAFI of
                  MCAST VPN (5).</t>

                  <t>BGP_VPLS - is a flag for an AFI of IPv4 and a SAFI VPLS
                  (65).</t>

                  <t>BGP_IPV4_MDT - is a flag for AFI of IPv4 and a SAFI of
                  BGP MDT (66).</t>

                  <t>BGP_EVPN - is a flag for APFI of IPv4 and SAFI of EVPNs
                  (70)</t>

                  <t>BGP_LS - is a flag for an AFI of IPv4 and a SAFI of BGP
                  link state (LS) (71).</t>

                  <t>BGP_IPV4_MPLS_VPN - is a flag for an AFI of IPv4 and a
                  SAFI MPLS-labled Unicast VPNs (128).</t>

                  <t>BGP_IPv4_MPLS_MVPN - is a flag for an AFI of IPv4 and a
                  SAFI MPLS-labeled Multicast VPNs (129).</t>

                  <t>BGP_IPv4_ROUTE_TARGET - is a flag for the AFI of IPv4 and
                  a SAFI of Route Target Constraints (132)</t>

                  <t>BGP_IPv4_FLOW - is a flag for an AFI of IPv4 and a SAFI
                  of IPv4 dissemination of flow specification rules (133).</t>

                  <t>BGP_IPv4_VPN_FLOW - is a flag for an AFI of IPv4 and a
                  SAFI of IPv4 VPN dissemination of flow specification
                  rules(134).</t>

                  <t>BGP_L2AD - is a flag for an AFI of IPv4 and a SAFI L2
                  Auto-discovery (140)</t>

                  <t>BGP_IPv6_UNI - is a flag for AFI of IPv6 and SAFI of
                  Unicast (1)</t>

                  <t>BGP_IPv6_MULTI - is a flag for API of IPv65 and a SAFI of
                  Multicast (2)</t>

                  <t>BGP_IPV6_MPLS_VPN - is a flag for AFI of IPV4 and SAFI of
                  Unicast MPLS VPNS.</t>
                </list></t>

              <t hangText="BGP_VENDOR_TYPE(R/W)"><vspace blankLines="1"/>
              contains a field to specify Vendor to identify different
			  mechanism of BGP configuration.</t>

              <t hangText="AFI (R/W)"><vspace blankLines="1"/> The AFI value
              from the standard values found in IANA's Address Family
              Numbers.</t>

              <t hangText="SAFI (R/W)"><vspace blankLines="1"/> The AFI value
              from the standard values found in IANA's SAFI values.</t>
			  
              <t hangText="bgp-local-rib (R/W)"><vspace
              blankLines="1"/> 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.</t>

              <t hangText="bgp-peer-list (R/W)"><vspace blankLines="1"/>
              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.</t>
			  <t hangText="rib-in (R/W)"><vspace blankLines="1"/>
              This contains bgp-rib-in route list.</t>
			  <t hangText="rib-out (R/W)"><vspace blankLines="1"/>
              This contains bgp-rib-out route list.</t>
            </list>
			</t>
        </section>
      </section> 
      <section title="bgp local rib ">
          <t>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.</t>
        <t>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).</t>
		<t>
		  This section describes the bgp local ribs for IPv4 unicast routes as
		  a prototype for all rib routes. 
		  </t>
		  <t>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.
		  </t>
		  <t> 
		  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. 
		  </t> 
		<section title="bgp-local-rib for IPv4 routes">
		<t>
		This section contains the overview of the bgp-local-rib for IPv4 routes, 
		and serves as a prototype for all other ribs. 
		</t> 
		<section title="Yang Top-level for bgp-local-rib for IPv4 routes">
		  <t>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.</t>
		  <t> 
		  <figure>
          <artwork><![CDATA[
      +--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 route-admin-distaince	uint16 
      |     +--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 custome-community
	  |     |  |  |  +--rw valid 			 boolean
	  |     |  |  |  +--rw insertion-pont	 uint32
	  |     |  |  |  +--rw community-id		 unit8
	  |     |  |  |  +rw cost-id			 uint32 
      |     |  |  +--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
	    ]]>
	  </artwork>
	  </figure> 
	  </t> 
	  </section>
	  <section title="Common definitions for bgp-local-rib for IPv4 routes">
        <t>The BGP Local RIB Entries are:
		<list style="hanging">
        <t hangText="BGP_ROUTE_TYPE(R/W)"><vspace blankLines="1"/>
         contains a ROUTE TYPE indicator (enumerated type).
		 The enumerated types are: 
		 <list style="symbols">
		 <t> bgp-route-type-rd - route with RD information </t> 
		 <t> bgp-route-type-ipv4- IPv4 unicast route </t>  
         <t> bgp-route-type-ipv6 -IPv6 unicast route </t>
		 <t> bgp-route-labeled-ipv4 - IPv4 with labels attached </t> 
		 <t> bgp-route-labeled-ipv6 - IPve6 associated labels </t> 
		 <t> bgp-route-type-flow - flow specifications </t>
	     <t> bgp-route-type-evpn - EVPN API/SAFI </t>
		 <t> bgp-route-type-mvpn - Mutlicast VPN </t>
		 <t> bgp-route-type-vpls - VPLS routes </t>
		 <t> bgp-route-type-bgp-ls - BGP Link-state distribution info </t>
		 <t> bgp-route-type-l2vpn-signaling-nlri - L2VPN signalling NLRI </t>
		 <t> bgp-rt-constraint - constraint RT AFI/SAFI </t>
		 <t> pw-route - pseudo-wire route </t>
		 </list>  
		 </t> 
        <t hangText="bgp-attribute-list (R/W) "><vspace blankLines="1"/> 
		contains a list of bgp attributes of the 
		following BGP attributes 
		 <list style="symbols">
		    <t> bgp-origin - origin of BGP route (IGP, EGP or incomplete)</t>
			<t> bgp-aspath structure which contains
				use count (usascount), reference count (ulrefcount),
				AS (in string form), length of as sequence (usascountfrcmp),
				total number of as in path count (usastotalcount), 
                length of 4-byte AS path tlvs (usaspathlen), and
				string with 4-byte AS path value (as4pathvalue). </t>
			<t> bgp-nexthop - BGP next hop </t> 
			<t> bgp-med - Multi-Exit Descriminator </t>
			<t> bgp-localpref - Local Preference for route </t>
			<t> bgp-atomic-aggregation - ID for aggregator </t>
			<t> bgp-aggregator -IPv4 address (4 bytes) (ulipadddress), AS number (4 byte) (ulasnumber) </t>
			<t> bgp-community attribute (bgp-comm-attr) which contains: 
			   size of community attribute (uscommsize), reference count (ulrefcomm),
               and value (string).  </t>
			<t> bgp extended community which contains:
                custom-cost community (valid flag, insertion pint, community id, and cost), 			
				size of community attribute (usexcommsize), reference count (ulrefcount),
				and external community value (string)(extcommattr-value), </t>
			<t> bgp cluster list which contains: 
			    lengthof cluster lists (uscluslen), reference count (ulrefclus),
				list of values (string)(clusterlist-value) </t>
		</list>
		</t>
        <t hangText="bgp_route_creation (R/W) "><vspace blankLines="1"/> 
		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:
		<list style="symbols">
		<t> not-i2rs - routes created by non-I2RS sources </t>
		<t> i2rs-client-create-bgp-route - client requests a bgp local route created </t>
		<t> i2rsagent-fails-bgp-route-create - I2rs agent fails to create bgp local rib route </t>
		<t> i2rsagent-bgp-route-created - I2rsagent created this bgp local rib route </t>
		<t> i2rsagent-rejects-bgp-route-create - I2rs agent policy rejects attempt </t>
		<t> i2rsagent-attempts-bgp-route-create - route create in process </t> 
       </list> 
	   </t> 
        <t hangText="bgp_status_info (R/W) "><vspace blankLines="1"/>
        contains a set of BGP status that includes: 
		  <list style="symbols">
            <t>rt_rib_current_state</t>
            <t>rt_rib_last_state</t>
			<t>rt_rib_reject_reason</t>
            <t>rt_not_preferred</t>
           </list>
		   </t>
        </list>
		</t>
          </section>
        </section>
      </section>
      <section title="BGP Peer">
	  <t>
	  This section describes the BGP peer structure. 
	  </t>
	  <section title="Yang Top Level for BGP Peer">
	  <t> 
		  <figure>
          <artwork><![CDATA[
	
    +--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
			 .... 
	]]></artwork>
            </figure>
			</t>
	 </section>
	 <section title="Elements in BGP peer Structure">
        <t>The following are the elements in the BGP_Peer structure 
		<list style="hanging">
              <t hangText="BGP_PEER_NAME (R/W)"><vspace blankLines="1"/> 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.</t>

              <t hangText="Peer_Session_Address (R/W)"><vspace
              blankLines="1"/> 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 </t> 

              <t hangText="BGP_PEER_TYPE (R/W)"><vspace blankLines="1"/>
              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) </t> 
			  
              <t hangText="BGP_Peer_create(R/W)"><vspace blankLines="1"/>
              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).</t>
            <t hangText="Peer_policy_in (R/W)"><vspace blankLines="1"/>
   			   - This allows reference of the bgp inbound policy by policy set name.  
			     Policy sets are defined by <xref target="RFC3460"></xref>,
				 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. </t> 
		     <t hangText="Peer_policy_out (R/W)"><vspace blankLines="1"/>
   			   - This allows reference of the outbound policy by policy set names, 
			     and let the I2RS agent load an existing policy set.</t> 
               <t hangText="Peer_policy_in_pset (R/W)"><vspace blankLines="1"/>
   			   Full policy set loaded for Peer_policy_in_pset.</t> 
			     <t hangText="Peer_policy_in_pset (R/W)"><vspace blankLines="1"/>
   			   Full policy set loaded for Peer_policy_in_pset.</t> 
			<t hangText="Peer state info (ro) "><vspace blankLines="1"/>
   			     includes the following information: 
				<list style="symbols">
				  <t>Peer_current_state (R) the the current state of the BGP
                  Peer in the BGP state machine.</t>
                  <t>Peer_last_state (R)</t>
			      <t>Peer_down_reason (R) which includes the reason
					and the sub-error codes for bgp header errors,
					bgp open errors, bgp update errors, and bgp
					route refresh errors</t>
			       <t> peer-received-update-cnt (ro)  - received </t>
			       <t> peer-transmit-update-cnt (ro)</t>
	               <t> peer-received-route-cnt (ro) </t>
				   <t> peer-send-route-cnt (ro)</t> 
				   <t> peer-max-prefix-rcv-limit (rw) </t>
				   <t> peer-max-prefix-xmt-limit(rw) </t>
				   <t> peer-prefix-high (ro)</t>
				   <t> peer-prefix-low (ro) </t>
				   <t> peer-prefix-ave (ro) </t> 
			       <t> peer-prefix-time (ro) </t>
		           <t> peer-prefix-max (ro) </t>
				   <t> publish-version (ro) </t> 
                  </list>
				  </t>	  
              <t hangText="bgp_rib_in"><vspace blankLines="1"/> 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: 
			   <list style="symbols">
			   <t> bgp-route-type (rw) - type of route (described above) </t>
			   <t> bgp-attribute-list (rw) - described above) </t>
			   <t> bgp-route-create (ro) - source config or I2RS create status (described above) </t>
			   <t> bgp-route-state (ro) - state of route (described above) </t> 
			   </list> </t> 
              <t hangText="bgp_rib_out (R/W)"><vspace blankLines="1"/>
             -  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: 
			   <list style="symbols">
			   <t> bgp-route-type (rw) - type of route (described above) </t>
			   <t> bgp-attribute-list (rw) - described above) </t>
			   <t> bgp-route-create (ro) - source config or I2RS create status (described above) </t>
			   <t> bgp-route-state (ro) - state of route (described above) </t> 
			   </list> 
			   </t> 
          </list>
		  </t>
		</section> 
        <section title="Reading/Writing Policy in I2RS IM model for BGP Peer" >
          <t>The I2RS Agent's peer inbound and outbound policies are logically
          considered to be stored in policy sets that logically are defined in
		  <xref target="RFC3460"></xref> but have the additions to 
		  be appropriate for I2RS basic network policy as described <xref
          target="I-D.hares-i2rs-bnp-info-model"> </xref>. 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. </t> 

          <t>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.</t>

          <t>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.</t>

          <t>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.</t>

          <t>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.</t>
        </section>
	</section> 
     <section title="Additional variable used within all RIBS" >
		<t> The following additional variables are defined
		in the additional routes types. </t>
		<t> 
		<list style="symbols">
		<t>route-distinguisher (R/W) - defined as route-distinguisher-def</t>
		<t> mpls-label (R/W) - defined as 24 bit mpls labels </t>
		<t> EVPN_AD_ROUTE (R/W) contains the following
		<list style="symbols">
			<t> route-type - EVPN route type </t>
			<t> route-distinguisher - EVPN route distringuisher </t>
			<t> esi - string </t> 
			<t> eth-tag-id - 32 bit ethernet tag </t>
		</list> 
		</t>
		<t> evpn-mac-route contains the following
		 <list style="symbols">
		   <t> route-type (r/w) - evpn-route-type </t>
		   <t> route-distinguisher (r/w) </t> 
		   <t> esi (r/w) - string </t>
		   <t> eth-tag-id (r/w) 32 bit ethernet tag </t> 
		   <t> mac-length (r/w) - length mac address (unit8) </t>
		   <t> mac-address (r/w) </t> 
		   <t> ip-address-length (r/w) (uint8) </t>
		   <t> ip-address (r/w) </t>
		   <t> label 1 (r/w) (uint32) </t>
		   <t> label 2 (r/2) (uint32) </t>
		   </list> 
		   </t>
	     <t> evpn-mcast-tree-route contains the following
		  <list style="symbols"> 
		  <t> route-type (r/w) </t>
		  <t> route-distinguisher (r/w) </t>
		  <t> eth-tag-id (r/w) ethernet tag id </t>
		  <t> ip address-length (r/w) uint32 </t>
		  <t> origin-router-ip-address (r/w) </t>
		  </list>
		  </t>
		  <t> evpn-eth-segment-route contains the following:
		  <list style="symbols">
		  <t> route-type (r/w) - evpn-route-type </t>
		  <t> route-distinguisher (r/w) </t>
		  <t> esi (r/w) - string ethernet segment id </t>
		  <t> ip address length(r/w) uint8 </t>
		  <t> origin-router-ip-address (r/w) </t> 
		<t>FLOW_route (R/W) - to be completed </t>
		<t>MDT route (R/W) - to be completed </t>
		</list> 
		</t>
		</list> 
		</t> 
      </section>
    </section>
	  <section title="BGP Yang top-level description" >
		<t> Below is the full BGP Yang top-level description
		  <figure>
          <artwork><![CDATA[
odule: 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 route-admin-distance  uint16
      |  |     +--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 
	  |  |     |  |  |  +--rw valid 			 boolean
	  |  |     |  |  |  +--rw insertion-point uint32
	  |  |     |  |  |  +--rw community-id       uint8
	  |  |     |  |  |  +--rw cost-id            uint32   
      |  |     |  |  +--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 route-admin-distance  uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id    uint8
	  |     |     |  |  |  +--rw cost-id         uint32 
      |     |     |  |  +--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 route-admin-distance  uint16
      |           +--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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id    uint8
	  |           |  |  |  +--rw cost-id         uint32   
      |           |  |  +--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 route-admin-distance  uint16
      |  |     +--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 custom-community
	  |  |     |  |  |  +--rw valid 	      boolean
	  |  |     |  |  |  +--rw insertion-point uint32
	  |  |     |  |  |  +--rw community-id    uint8
	  |  |     |  |  |  +--rw cost-id         uint32 
      |  |     |  |  +--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 route-admin-distance  uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id    uint8
	  |     |     |  |  |  +--rw cost-id         uint32   
      |     |     |  |  +--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 route-admin-distance  uint16
      |           +--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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id    uint8
	  |           |  |  |  +--rw cost-id         uint32   
      |           |  |  +--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 route-admin-distance  uint16
      |  |     +--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 custom-community
	  |  |     |  |  |  +--rw valid 			 boolean
	  |  |     |  |  |  +--rw community-id       uint8
	  |  |     |  |  |  +--rw insertion-point    uint32   
	  |  |     |  |  |  +--rw cost-id            uint32   
      |  |     |  |  +--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 route-admin-distance  uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id    uint8
	  |     |     |  |  |  +--rw cost-id         uint32   
      |     |     |  |  +--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 route-admin-distance  uint16
      |           +--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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id    uint8
	  |           |  |  |  +--rw cost-id         uint32   
      |           |  |  +--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 route-admin-distance  uint16
      |  |     +--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 custom-community
	  |  |     |  |  |  +--rw valid 		  boolean
	  |  |     |  |  |  +--rw insertion-point uint32
	  |  |     |  |  |  +--rw community-id       uint8
	  |  |     |  |  |  +--rw cost-id            uint32   
      |  |     |  |  +--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			  policy-group-name
      |     +--rw bgp-policy-out		  policy-group-name
      |     +--ro peer-policy-in-pset	  policy-set-name
      |     +--ro peer-policy-out-pset	  policy-set-name
      |     +--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 route-admin-distance  uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id    uint8
	  |     |     |  |  |  +--rw cost-id         uint32   
      |     |     |  |  +--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 route-admin-distance   uint16
      |           +--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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id    uint8
	  |           |  |  |  +--rw cost-id         uint32   
      |           |  |  +--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 route-admin-distance  uint16
      |  |     +--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 custom-community
	  |  |     |  |  |  +--rw valid 		  boolean
	  |  |     |  |  |  +--rw insertion-point uint32
	  |  |     |  |  |  +--rw community-id    uint8
	  |  |     |  |  |  +--rw cost-id         uint32   
      |  |     |  |  +--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 route-admin-distance  uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id    uint8
	  |     |     |  |  |  +--rw cost-id         uint32   
      |     |     |  |  +--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 route-admin-distance  uint16
      |           +--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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id    uint8
	  |           |  |  |  +--rw cost-id         uint32   
      |           |  |  +--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 route-admin-distance  uint16
      |  |     +--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 custom-community
	  |  |     |  |  |  +--rw valid 			 boolean
	  |  |     |  |  |  +--rw insertion-point uint32
	  |  |     |  |  |  +--rw community-id    uint8
	  |  |     |  |  |  +--rw cost-id         uint32   
      |  |     |  |  +--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 route-admin-distance  uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id    uint8
	  |     |     |  |  |  +--rw cost-id         uint32   
      |     |     |  |  +--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 route-admin-distance  uint16
      |           +--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?     et: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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id    uint8
	  |           |  |  |  +--rw cost-id         uint32   
      |           |  |  +--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 route-admin-distance  uint16
      |  |     +--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 custom-community
	  |  |     |  |  |  +--rw valid 	      boolean
	  |  |     |  |  |  +--rw insertion-point uint32
	  |  |     |  |  |  +--rw community-id    uint8
	  |  |     |  |  |  +--rw cost-id         uint32   
      |  |     |  |  +--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 route-admin-distance  uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id    uint8
	  |     |     |  |  |  +--rw cost-id         uint32   
      |     |     |  |  +--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 route-admin-distance  uint16
      |           +--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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id       uint8
	  |           |  |  |  +--rw cost-id            uint32   
      |           |  |  +--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 route-admin-distance  uint16
      |  |     +--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 custom-community
	  |  |     |  |  |  +--rw valid 			 boolean
	  |  |     |  |  |  +--rw insertion-point uint32
	  |  |     |  |  |  +--rw community-id       uint8
	  |  |     |  |  |  +--rw cost-id            uint32   
      |  |     |  |  +--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 route-admin-distance  uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id       uint8
	  |     |     |  |  |  +--rw cost-id            uint32   
      |     |     |  |  +--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 route-admin-distance  uint16
      |           +--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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id       uint8
	  |           |  |  |  +--rw cost-id            uint32   
      |           |  |  +--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 route-admin-distance   uint16
      |  |     +--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 custom-community
	  |  |     |  |  |  +--rw valid 			 boolean
	  |  |     |  |  |  +--rw insertion-point uint32
	  |  |     |  |  |  +--rw community-id       uint8
	  |  |     |  |  |  +--rw cost-id            uint32   
      |  |     |  |  +--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 route-admin-distance   uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id       uint8
	  |     |     |  |  |  +--rw cost-id            uint32   
      |     |     |  |  +--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 route-admin-distance   uint16
      |           +--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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id      uint8
	  |           |  |  |  +--rw cost-id           uint32   
      |           |  |  +--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 route-admin-distance  uint16
      |  |     +--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 custom-community
	  |  |     |  |  +--rw valid 			 boolean
	  |  |     |  |  |  +--rw insertion-point uint32
	  |  |     |  |  |  +--rw community-id       uint8
	  |  |     |  |  |  +--rw cost-id            uint32   
      |  |     |  |  +--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 route-admin-distance  uint16
      |     |     +--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 custom-community
	  |     |     |  |  |  +--rw valid 			 boolean
	  |     |     |  |  |  +--rw insertion-point uint32
	  |     |     |  |  |  +--rw community-id       uint8
	  |     |     |  |  |  +--rw cost-id            uint32   
      |     |     |  |  +--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 route-admin-distance  uint16
      |           +--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 custom-community
	  |           |  |  |  +--rw valid 			 boolean
	  |           |  |  |  +--rw insertion-point uint32
	  |           |  |  |  +--rw community-id       uint8
	  |           |  |  |  +--rw cost-id            uint32   
      |           |  |  +--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 route-admin-distance  uint16
      |  |  +--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 custom-community
	  |  |  |  |  |  +--rw valid 			 boolean
	  |  |  |  |  |  +--rw insertion-point uint32
	  |  |  |  |  |  +--rw community-id       uint8
	  |  |  |  |  |  +--rw cost-id            uint32   
      |  |  |  |  +--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 route-admin-distance  uint16
      |     |  +--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 custom-community
	  |     |  |  |  |  +--rw valid 		  boolean
	  |     |  |  |  |  +--rw insertion-point uint32
	  |     |  |  |  |  +--rw community-id       uint8
	  |     |  |  |  |  +--rw cost-id            uint32   
      |     |  |  |  +--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 route-admin-distance     uint16
      |        +--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 custom-community
	  |        |  |  |  +--rw valid 			 boolean
	  |        |  |  |  +--rw insertion-point uint32
	  |        |  |  |  +--rw community-id       uint8
	  |        |  |  |  +--rw cost-id            uint32   
      |        |  |  +--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 route-admin-distance  uint16
      |  |  +--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 custom-community
	  |  |  |  |  |  +--rw valid 			 boolean
	  |  |  |  |  |  +--rw insertion-point uint32
	  |  |  |  |  |  +--rw community-id       uint8
	  |  |  |  |  |  +--rw cost-id            uint32   
      |  |  |  |  +--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 route-admin-distance  uint16
      |     |  +--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 custom-community
	  |     |  |  |  +--rw valid 			 boolean
	  |     |  |  |  +--rw insertion-point uint32
	  |     |  |  |  +--rw community-id       uint8
      |     |  |  |  +--rw cost-id            uint32   
      |     |  |  |  +--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 route-admin-distance  uint16
      |        +--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 custom-community
	  |        |  |  |  +--rw valid 			 boolean
	  |        |  |  |  +--rw insertion-point uint32
	  |        |  |  |  +--rw community-id       uint8
	  |        |  |  |  +--rw cost-id            uint32   
      |        |  |  +--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 route-admin-distance  uint16
      |  |  +--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 custom-community
	  |  |  |  |  |  +--rw valid 			 boolean
	  |  |  |  |  |  +--rw insertion-point uint32
	  |  |  |  |  |  +--rw community-id       uint8
	  |  |  |  |  |  +--rw cost-id            uint32   
      |  |  |  |  +--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 route-admin-distance  uint16
      |     |  +--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 custom-community
	  |     |  |  |  |  +--rw valid 			 boolean
	  |     |  |  |  |  +--rw insertion-point uint32
	  |     |  |  |  |  +--rw community-id       uint8
	  |     |  |  |  |  +--rw cost-id            uint32   
      |     |  |  |  +--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 route-admin-distance  uint16
      |        +--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 custom-community
	  |        |  |  |  +--rw valid 			 boolean
	  |        |  |  |  +--rw insertion-point uint32
	  |        |  |  |  +--rw community-id       uint8
	  |        |  |  |  +--rw cost-id            uint32   
      |        |  |  +--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 route-admin-distance  uint16
         |  +--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 custom-community
	     |  |  |  |  +--rw valid 			 boolean
	     |  |  |  |  +--rw insertion-point uint32
	     |  |  |  |  +--rw community-id       uint8
	     |  |  |  |  +--rw cost-id            uint32   
         |  |  |  +--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 route-admin-distance  uint16
            |  +--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 custom-community
	        |  |  |  |  +--rw valid 			 boolean
	        |  |  |  |  +--rw insertion-point uint32
	        |  |  |  |  +--rw community-id       uint8
	        |  |  |  |  +--rw cost-id            uint32   
            |  |  |  +--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-distinguisherroute-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 route-admin-distance  uint16
               +--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 custom-community
	           |  |  |  +--rw valid 			 boolean
	           |  |  |  +--rw insertion-point uint32
	           |  |  |  +--rw community-id       uint8
	           |  |  |  +--rw cost-id            uint32   
               |  |  +--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-distinguisherroute-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		  
	]]></artwork>
            </figure>
			</t>
      </section>
    <section anchor="IANA" title="IANA Considerations">
      <t>This draft includes no request to IANA.</t>
    </section>
    <section title="Security Considerations">
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references title="Informative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.3060"?>
	  <?rfc include="reference.RFC.3460"?>
      <?rfc include="reference.RFC.3644"?>
      <?rfc include="reference.RFC.5394"?>
      <?rfc include="reference.RFC.5511"?>
      <?rfc include="reference.RFC.6536"?>
      <?rfc include='reference.I-D.ietf-i2rs-architecture'?>
      <?rfc include='reference.I-D.ietf-i2rs-rib-info-model'?>
      <?rfc include='reference.I-D.ietf-netconf-restconf'?>
	  <?rfc include='reference.I-D.hares-i2rs-bnp-info-model'?>
      <?rfc include='reference.I-D.hares-i2rs-info-model-policy'?>
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-24 04:12:13