Internet DRAFT - draft-hares-i2rs-bgp-im

draft-hares-i2rs-bgp-im







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


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

Abstract

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

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on April 26, 2015.

Copyright Notice

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

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



Hares, et al.            Expires April 26, 2015                 [Page 1]

Internet-Draft                   BGP IM                     October 2014


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Definitions and Acronyms  . . . . . . . . . . . . . . . . . .   3
   3.  BGP Data  . . . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.1.  BGP Protocol  . . . . . . . . . . . . . . . . . . . . . .   3
       3.1.1.  Yang Data Model for I2RS BGP IM Protocol Block  . . .   4
       3.1.2.  Elements in I2RS Protocol Block . . . . . . . . . . .   5
     3.2.  bgp_ipv4_instance . . . . . . . . . . . . . . . . . . . .   8
       3.2.1.  Yang Data Model bgp ipv4 unicast instance . . . . . .   8
       3.2.2.  Elements in bgp ipv4 unicast instance . . . . . . . .   8
     3.3.  bgp local rib . . . . . . . . . . . . . . . . . . . . . .  11
       3.3.1.  bgp-local-rib for IPv4 routes . . . . . . . . . . . .  12
     3.4.  BGP Peer  . . . . . . . . . . . . . . . . . . . . . . . .  16
       3.4.1.  Yang Top Level for BGP Peer . . . . . . . . . . . . .  16
       3.4.2.  Elements in BGP peer Structure  . . . . . . . . . . .  17
       3.4.3.  Reading/Writing Policy in I2RS IM model for BGP Peer   20
     3.5.  Additional variable used within all RIBS  . . . . . . . .  21
   4.  BGP Yang top-level description  . . . . . . . . . . . . . . .  22
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  87
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  87
   7.  Informative References  . . . . . . . . . . . . . . . . . . .  88
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  89

1.  Introduction

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

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






Hares, et al.            Expires April 26, 2015                 [Page 2]

Internet-Draft                   BGP IM                     October 2014


2.  Definitions and Acronyms

      BGP: Border Gateway Protocol

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

      NETCONF:The Network Configuration Protocol as defined in [RFC6536]

      RESTCONF: The REST-like protocol that provides a programmatic
      interface over HTTP for accesing data defined in YANG, using
      datastores defined in NETCONF Protocol [I-D.ietf-netconf-restconf]
      as defined in RBNF: Routing Backus-Naur Form [RFC5511].

3.  BGP Data

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

3.1.  BGP Protocol

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

   Protocol

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

      *  Router-ID (R/W) - Router-ID for BGP protocol,

      *  AS(R/W)- Autonomous System Number,

      *  protocol_status (R) - administrative status of the protocol,

      *  shutdown_protocol (R/W) - Shutdown the BGP protocol,

      *  ROLES (R) - a composite set of roles BGP peers play,

      *  bgp-ipv4-uni-instance (R/W) - instance for IPv4 unicast





Hares, et al.            Expires April 26, 2015                 [Page 3]

Internet-Draft                   BGP IM                     October 2014


      *  bgp-labled-ipv4instance (R/W) - instance for IPv4 unicast with
         lablels

      *  bgp-ipv4-multi-instance (R/W) - instance for IPv4 multicast

      *  bgp-vpnv4-instance (R/W) - instance for IPv4 VPNs

      *  bgp-vpn-l3vp-instance-list (R/W) list of L3VPN instances
         indexed by the BGP instance name

      *  bgp-ipv6-uni-instance (R/W) - instance handling IPv6 unicast

      *  bgp-label-ipv6-instance (R/W) - instance with iPv6 prefix plus
         labels

      *  bgp-ipv6-multi-instance (R/W) - bgp IPv6 multicast instance

      *  bgp-ipv6-vpn-instance-list (R/W) - list of Ipv6 L3VPN instances

   The sections below describe these elements.

3.1.1.  Yang Data Model for I2RS BGP IM Protocol Block





























Hares, et al.            Expires April 26, 2015                 [Page 4]

Internet-Draft                   BGP IM                     October 2014


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


3.1.2.  Elements in I2RS Protocol Block

   This section describes each element of the I2RS Protocol Block.

   Router-ID (R)

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

   Router-ID (W)

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




Hares, et al.            Expires April 26, 2015                 [Page 5]

Internet-Draft                   BGP IM                     October 2014


      protocol.  After the I2RS Client stops the relationship with the
      I2RS Agent, the Router-ID value reverts to the configured value.

   AS(R/W)

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

   protocol_status (R)

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

   shutdown_protocol(R/W)

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

   bgp_role (R)

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

   bgp-ipv4-uni-instance (R-W)




Hares, et al.            Expires April 26, 2015                 [Page 6]

Internet-Draft                   BGP IM                     October 2014


      This element BGP instances provides support for IPv4 unicast , and
      contains the associated bgp local rib, bgp peer list, bgp rib-in,
      and bgp-rib-out associated with IPv4 Unicast.

   bgp-labeled-ipv4-instance (R-W)

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

   bgp-ipv4-multi-instance (R-W)

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

   bgp-vpnv4-instance (R-W)

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

   bgp-ipv4-L3vpn-instance-list* (R-W)

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

   bgp-ipv6-uni-instance (R-W)

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

   bgp-labeled-ipv6-instance (R-W)

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

   bgp-ipv6-multi-instance(R-W)

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

   bgp-vpnv6-instance (R-W)

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



Hares, et al.            Expires April 26, 2015                 [Page 7]

Internet-Draft                   BGP IM                     October 2014


   bgp-ipv6-L3vpn-instance-list* (R-W)

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

3.2.  bgp_ipv4_instance

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

3.2.1.  Yang Data Model bgp ipv4 unicast instance

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

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


3.2.2.  Elements in bgp ipv4 unicast instance

   The definitions of the fields in BGP Instance are:

   BGP_INSTANCE_NAME (R/W)



Hares, et al.            Expires April 26, 2015                 [Page 8]

Internet-Draft                   BGP IM                     October 2014


      The BGP_INSTANCE_NAME provides a name to uniquely identify the BGP
      instance.

   BGP_INSTANCE_CREATION(R/W)

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

      *  Not I2RS created (NOT-I2RS),

      *  I2RS client requests creation (I2RSCLIENT_CREATE_BGP_INSTANCE),

      *  I2RS Agent rejects creation
         (I2RSAGENT_REJECTS_BGP_INSTANCE_CREATE),

      *  I2RS Agent attempting creation
         (I2RSAGENT_ATTEMPTS_BGP_INSTANCE_CREATE), and

      *  I2RS Agent failed creation
         (I2RSAGENT_FAILS_BGP_INSTANCE_CREATE)

      *  I2RS Agent created BGP instance
         (I2RSAGENT_CREATED_BGP_INSTANCE)

   BGP_INSTANCE_TYPE (R/W)

      contains flag field that summarizes common AFI-SAFIs within a flag
      word.  This enumeration

      *  BGP_IPV4_UNI flag - is a flag for AFI of IPV4 and a SAFI of
         Unicast (1).

      *  BGP_IPV4_MULTI flag - is a flag for AFI of IPV4 and a SAFI
         Multicast (2).

      *  BGP_L3VPN I is a flag for AFI of IPv4 and a SAFI of MPLS labels
         (4).

      *  BGP_IPv4_MVPN- is a flag for AFI of IPv4 and a SAFI of MCAST
         VPN (5).

      *  BGP_VPLS - is a flag for an AFI of IPv4 and a SAFI VPLS (65).

      *  BGP_IPV4_MDT - is a flag for AFI of IPv4 and a SAFI of BGP MDT
         (66).

      *  BGP_EVPN - is a flag for APFI of IPv4 and SAFI of EVPNs (70)



Hares, et al.            Expires April 26, 2015                 [Page 9]

Internet-Draft                   BGP IM                     October 2014


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

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

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

      *  BGP_IPv4_ROUTE_TARGET - is a flag for the AFI of IPv4 and a
         SAFI of Route Target Constraints (132)

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

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

      *  BGP_L2AD - is a flag for an AFI of IPv4 and a SAFI L2 Auto-
         discovery (140)

      *  BGP_IPv6_UNI - is a flag for AFI of IPv6 and SAFI of Unicast
         (1)

      *  BGP_IPv6_MULTI - is a flag for API of IPv65 and a SAFI of
         Multicast (2)

      *  BGP_IPV6_MPLS_VPN - is a flag for AFI of IPV4 and SAFI of
         Unicast MPLS VPNS.

   BGP_VENDOR_TYPE(R/W)

      contains a field to specify Vendor to identify different mechanism
      of BGP configuration.

   AFI (R/W)

      The AFI value from the standard values found in IANA's Address
      Family Numbers.

   SAFI (R/W)

      The AFI value from the standard values found in IANA's SAFI
      values.

   bgp-local-rib (R/W)





Hares, et al.            Expires April 26, 2015                [Page 10]

Internet-Draft                   BGP IM                     October 2014


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

   bgp-peer-list (R/W)

      contains a list of BGP Peer information (BGP_PEER) associated with
      this BGP instance.  A write to this BGP Peer list adds a BGP Peer
      to this BGP instance.

   rib-in (R/W)

      This contains bgp-rib-in route list.

   rib-out (R/W)

      This contains bgp-rib-out route list.

3.3.  bgp local rib

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

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

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

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

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




Hares, et al.            Expires April 26, 2015                [Page 11]

Internet-Draft                   BGP IM                     October 2014


   route type, attribute list, route creation, and state information.
   Subsequent RIBs do not repeat this information.

3.3.1.  bgp-local-rib for IPv4 routes

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

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

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







































Hares, et al.            Expires April 26, 2015                [Page 12]

Internet-Draft                   BGP IM                     October 2014


         +--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




Hares, et al.            Expires April 26, 2015                [Page 13]

Internet-Draft                   BGP IM                     October 2014


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

   The BGP Local RIB Entries are:

   BGP_ROUTE_TYPE(R/W)

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

      *  bgp-route-type-rd - route with RD information

      *  bgp-route-type-ipv4- IPv4 unicast route

      *  bgp-route-type-ipv6 -IPv6 unicast route

      *  bgp-route-labeled-ipv4 - IPv4 with labels attached

      *  bgp-route-labeled-ipv6 - IPve6 associated labels

      *  bgp-route-type-flow - flow specifications

      *  bgp-route-type-evpn - EVPN API/SAFI

      *  bgp-route-type-mvpn - Mutlicast VPN

      *  bgp-route-type-vpls - VPLS routes

      *  bgp-route-type-bgp-ls - BGP Link-state distribution info

      *  bgp-route-type-l2vpn-signaling-nlri - L2VPN signalling NLRI

      *  bgp-rt-constraint - constraint RT AFI/SAFI

      *  pw-route - pseudo-wire route

   bgp-attribute-list (R/W)

      contains a list of bgp attributes of the following BGP attributes

      *  bgp-origin - origin of BGP route (IGP, EGP or incomplete)

      *  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).

      *  bgp-nexthop - BGP next hop



Hares, et al.            Expires April 26, 2015                [Page 14]

Internet-Draft                   BGP IM                     October 2014


      *  bgp-med - Multi-Exit Descriminator

      *  bgp-localpref - Local Preference for route

      *  bgp-atomic-aggregation - ID for aggregator

      *  bgp-aggregator -IPv4 address (4 bytes) (ulipadddress), AS
         number (4 byte) (ulasnumber)

      *  bgp-community attribute (bgp-comm-attr) which contains: size of
         community attribute (uscommsize), reference count (ulrefcomm),
         and value (string).

      *  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),

      *  bgp cluster list which contains: lengthof cluster lists
         (uscluslen), reference count (ulrefclus), list of values
         (string)(clusterlist-value)

   bgp_route_creation (R/W)

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

      *  not-i2rs - routes created by non-I2RS sources

      *  i2rs-client-create-bgp-route - client requests a bgp local
         route created

      *  i2rsagent-fails-bgp-route-create - I2rs agent fails to create
         bgp local rib route

      *  i2rsagent-bgp-route-created - I2rsagent created this bgp local
         rib route

      *  i2rsagent-rejects-bgp-route-create - I2rs agent policy rejects
         attempt

      *  i2rsagent-attempts-bgp-route-create - route create in process

   bgp_status_info (R/W)

      contains a set of BGP status that includes:



Hares, et al.            Expires April 26, 2015                [Page 15]

Internet-Draft                   BGP IM                     October 2014


      *  rt_rib_current_state

      *  rt_rib_last_state

      *  rt_rib_reject_reason

      *  rt_not_preferred

3.4.  BGP Peer

   This section describes the BGP peer structure.

3.4.1.  Yang Top Level for BGP Peer


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



Hares, et al.            Expires April 26, 2015                [Page 16]

Internet-Draft                   BGP IM                     October 2014


          |  +--ro peer-prefix-high?           uint64
          |  +--ro peer-prefix-low?            uint64
          |  +--ro peer-prefix-ave?            uint64
          |  +--ro peer-prefix-time?           uint64
          |  +--ro peer-prefix-max?            uint64
          |  +--ro publish-version?            uint64
          +--rw bgp-rib-in
             +--rw bgp-rib-in-list* [ipv4-route ipv4-prefix-length]
                +--rw ipv4-route            inet:ipv4-prefix
                +--rw ipv4-prefix-length    uint8
                +--rw bgp-route-type?       enumeration
                +--rw bgp-attribute-list
                   ....
                +--ro bgp-route-create?     enumeration
                +--ro bgp-rt-state-info
                  ....
          +--rw bgp-rib-out
             +--rw bgp-rib-out-list* [ipv4-route ipv4-prefix-length]
                +--rw ipv4-route            inet:ipv4-prefix
                +--rw ipv4-prefix-length    uint8
                +--rw bgp-route-type?       enumeration
                +--rw bgp-attribute-list
                 ....
                +--ro bgp-route-create?     enumeration
                +--ro bgp-rt-state-info
                ....

3.4.2.  Elements in BGP peer Structure

   The following are the elements in the BGP_Peer structure

   BGP_PEER_NAME (R/W)

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

   Peer_Session_Address (R/W)

      provides local peer address information and remote peer address
      information.  Please see the description below for the details of
      the BGP session address.  An I2RS read of this information pulls
      this information pulls up the the BGP Peer data in ephemeral
      store.  The I2RS write to this causes the peer to attempt to set-




Hares, et al.            Expires April 26, 2015                [Page 17]

Internet-Draft                   BGP IM                     October 2014


      up a TCP session either initial TCP session or a second TCP
      session in with multiple TCP support

   BGP_PEER_TYPE (R/W)

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

   BGP_Peer_create(R/W)

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

   Peer_policy_in (R/W)

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

   Peer_policy_out (R/W)

      - This allows reference of the outbound policy by policy set
      names, and let the I2RS agent load an existing policy set.

   Peer_policy_in_pset (R/W)

      Full policy set loaded for Peer_policy_in_pset.

   Peer_policy_in_pset (R/W)

      Full policy set loaded for Peer_policy_in_pset.

   Peer state info (ro)

      includes the following information:

      *  Peer_current_state (R) the the current state of the BGP Peer in
         the BGP state machine.

      *  Peer_last_state (R)




Hares, et al.            Expires April 26, 2015                [Page 18]

Internet-Draft                   BGP IM                     October 2014


      *  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

      *  peer-received-update-cnt (ro) - received

      *  peer-transmit-update-cnt (ro)

      *  peer-received-route-cnt (ro)

      *  peer-send-route-cnt (ro)

      *  peer-max-prefix-rcv-limit (rw)

      *  peer-max-prefix-xmt-limit(rw)

      *  peer-prefix-high (ro)

      *  peer-prefix-low (ro)

      *  peer-prefix-ave (ro)

      *  peer-prefix-time (ro)

      *  peer-prefix-max (ro)

      *  publish-version (ro)

   bgp_rib_in

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

      *  bgp-route-type (rw) - type of route (described above)

      *  bgp-attribute-list (rw) - described above)

      *  bgp-route-create (ro) - source config or I2RS create status
         (described above)

      *  bgp-route-state (ro) - state of route (described above)

   bgp_rib_out (R/W)

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



Hares, et al.            Expires April 26, 2015                [Page 19]

Internet-Draft                   BGP IM                     October 2014


      *  bgp-route-type (rw) - type of route (described above)

      *  bgp-attribute-list (rw) - described above)

      *  bgp-route-create (ro) - source config or I2RS create status
         (described above)

      *  bgp-route-state (ro) - state of route (described above)

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

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

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

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

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

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




Hares, et al.            Expires April 26, 2015                [Page 20]

Internet-Draft                   BGP IM                     October 2014


   set pointed to by the Peer_policy_out name, and transfer the data in
   policy set form.

3.5.  Additional variable used within all RIBS

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

   o  route-distinguisher (R/W) - defined as route-distinguisher-def

   o  mpls-label (R/W) - defined as 24 bit mpls labels

   o  EVPN_AD_ROUTE (R/W) contains the following

      *  route-type - EVPN route type

      *  route-distinguisher - EVPN route distringuisher

      *  esi - string

      *  eth-tag-id - 32 bit ethernet tag

   o  evpn-mac-route contains the following

      *  route-type (r/w) - evpn-route-type

      *  route-distinguisher (r/w)

      *  esi (r/w) - string

      *  eth-tag-id (r/w) 32 bit ethernet tag

      *  mac-length (r/w) - length mac address (unit8)

      *  mac-address (r/w)

      *  ip-address-length (r/w) (uint8)

      *  ip-address (r/w)

      *  label 1 (r/w) (uint32)

      *  label 2 (r/2) (uint32)

   o  evpn-mcast-tree-route contains the following

      *  route-type (r/w)




Hares, et al.            Expires April 26, 2015                [Page 21]

Internet-Draft                   BGP IM                     October 2014


      *  route-distinguisher (r/w)

      *  eth-tag-id (r/w) ethernet tag id

      *  ip address-length (r/w) uint32

      *  origin-router-ip-address (r/w)

   o  evpn-eth-segment-route contains the following:

      *  route-type (r/w) - evpn-route-type

      *  route-distinguisher (r/w)

      *  esi (r/w) - string ethernet segment id

      *  ip address length(r/w) uint8

      *  origin-router-ip-address (r/w)

      *  FLOW_route (R/W) - to be completed

      *  MDT route (R/W) - to be completed

4.  BGP Yang top-level description

   Below is the full BGP Yang top-level description

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



Hares, et al.            Expires April 26, 2015                [Page 22]

Internet-Draft                   BGP IM                     October 2014


      |  |     +--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



Hares, et al.            Expires April 26, 2015                [Page 23]

Internet-Draft                   BGP IM                     October 2014


      |     +--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



Hares, et al.            Expires April 26, 2015                [Page 24]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 25]

Internet-Draft                   BGP IM                     October 2014


      |           |  +--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



Hares, et al.            Expires April 26, 2015                [Page 26]

Internet-Draft                   BGP IM                     October 2014


      |  |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 27]

Internet-Draft                   BGP IM                     October 2014


      |     +--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



Hares, et al.            Expires April 26, 2015                [Page 28]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 29]

Internet-Draft                   BGP IM                     October 2014


      |           |  +--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



Hares, et al.            Expires April 26, 2015                [Page 30]

Internet-Draft                   BGP IM                     October 2014


      |  |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 31]

Internet-Draft                   BGP IM                     October 2014


      |     +--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



Hares, et al.            Expires April 26, 2015                [Page 32]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 33]

Internet-Draft                   BGP IM                     October 2014


      |           |  +--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



Hares, et al.            Expires April 26, 2015                [Page 34]

Internet-Draft                   BGP IM                     October 2014


      |  |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 35]

Internet-Draft                   BGP IM                     October 2014


      |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 36]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 37]

Internet-Draft                   BGP IM                     October 2014


      |           |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 38]

Internet-Draft                   BGP IM                     October 2014


      |  |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 39]

Internet-Draft                   BGP IM                     October 2014


      |     +--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



Hares, et al.            Expires April 26, 2015                [Page 40]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 41]

Internet-Draft                   BGP IM                     October 2014


      |           |  +--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



Hares, et al.            Expires April 26, 2015                [Page 42]

Internet-Draft                   BGP IM                     October 2014


      |  |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 43]

Internet-Draft                   BGP IM                     October 2014


      |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 44]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 45]

Internet-Draft                   BGP IM                     October 2014


      |           |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 46]

Internet-Draft                   BGP IM                     October 2014


      |  |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 47]

Internet-Draft                   BGP IM                     October 2014


      |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 48]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 49]

Internet-Draft                   BGP IM                     October 2014


      |           |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 50]

Internet-Draft                   BGP IM                     October 2014


      |  |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 51]

Internet-Draft                   BGP IM                     October 2014


      |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 52]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 53]

Internet-Draft                   BGP IM                     October 2014


      |           |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 54]

Internet-Draft                   BGP IM                     October 2014


      |  |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 55]

Internet-Draft                   BGP IM                     October 2014


      |     |  |     +--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



Hares, et al.            Expires April 26, 2015                [Page 56]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 57]

Internet-Draft                   BGP IM                     October 2014


      |           |  +--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



Hares, et al.            Expires April 26, 2015                [Page 58]

Internet-Draft                   BGP IM                     October 2014


      |  |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 59]

Internet-Draft                   BGP IM                     October 2014


      |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 60]

Internet-Draft                   BGP IM                     October 2014


      |     |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 61]

Internet-Draft                   BGP IM                     October 2014


      |           |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 62]

Internet-Draft                   BGP IM                     October 2014


      |  |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 63]

Internet-Draft                   BGP IM                     October 2014


      |  |     |     +--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



Hares, et al.            Expires April 26, 2015                [Page 64]

Internet-Draft                   BGP IM                     October 2014


      |     |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 65]

Internet-Draft                   BGP IM                     October 2014


      |     |  |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 66]

Internet-Draft                   BGP IM                     October 2014


      |     |     |     +--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



Hares, et al.            Expires April 26, 2015                [Page 67]

Internet-Draft                   BGP IM                     October 2014


      |        |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 68]

Internet-Draft                   BGP IM                     October 2014


      |           |     +--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



Hares, et al.            Expires April 26, 2015                [Page 69]

Internet-Draft                   BGP IM                     October 2014


      |  |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 70]

Internet-Draft                   BGP IM                     October 2014


      |  |     |     +--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



Hares, et al.            Expires April 26, 2015                [Page 71]

Internet-Draft                   BGP IM                     October 2014


      |     |  +--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



Hares, et al.            Expires April 26, 2015                [Page 72]

Internet-Draft                   BGP IM                     October 2014


      |     |  |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 73]

Internet-Draft                   BGP IM                     October 2014


      |     |     +--:(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



Hares, et al.            Expires April 26, 2015                [Page 74]

Internet-Draft                   BGP IM                     October 2014


      |        |  +--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



Hares, et al.            Expires April 26, 2015                [Page 75]

Internet-Draft                   BGP IM                     October 2014


      |           |     +--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



Hares, et al.            Expires April 26, 2015                [Page 76]

Internet-Draft                   BGP IM                     October 2014


      |  |  |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 77]

Internet-Draft                   BGP IM                     October 2014


      |  |     +--:(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



Hares, et al.            Expires April 26, 2015                [Page 78]

Internet-Draft                   BGP IM                     October 2014


      |     +--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



Hares, et al.            Expires April 26, 2015                [Page 79]

Internet-Draft                   BGP IM                     October 2014


                             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



Hares, et al.            Expires April 26, 2015                [Page 80]

Internet-Draft                   BGP IM                     October 2014


      |        |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 81]

Internet-Draft                   BGP IM                     October 2014


         |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 82]

Internet-Draft                   BGP IM                     October 2014


         |     |     +--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



Hares, et al.            Expires April 26, 2015                [Page 83]

Internet-Draft                   BGP IM                     October 2014


            |  +--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



Hares, et al.            Expires April 26, 2015                [Page 84]

Internet-Draft                   BGP IM                     October 2014


            |  |  +--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



Hares, et al.            Expires April 26, 2015                [Page 85]

Internet-Draft                   BGP IM                     October 2014


               +--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



Hares, et al.            Expires April 26, 2015                [Page 86]

Internet-Draft                   BGP IM                     October 2014


                  |     +--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

5.  IANA Considerations

   This draft includes no request to IANA.

6.  Security Considerations

   TBD.








Hares, et al.            Expires April 26, 2015                [Page 87]

Internet-Draft                   BGP IM                     October 2014


7.  Informative References

   [I-D.hares-i2rs-bnp-info-model]
              Hares, S. and Q. Wu, "An Information Model for Basic
              Network Policy", draft-hares-i2rs-bnp-info-model-00 (work
              in progress), September 2014.

   [I-D.hares-i2rs-info-model-policy]
              Hares, S. and W. Wu, "An Information Model for Basic
              Network Policy", draft-hares-i2rs-info-model-policy-03
              (work in progress), July 2014.

   [I-D.ietf-i2rs-architecture]
              Atlas, A., Halpern, J., Hares, S., Ward, D., and T.
              Nadeau, "An Architecture for the Interface to the Routing
              System", draft-ietf-i2rs-architecture-05 (work in
              progress), July 2014.

   [I-D.ietf-i2rs-rib-info-model]
              Bahadur, N., Folkes, R., Kini, S., and J. Medved, "Routing
              Information Base Info Model", draft-ietf-i2rs-rib-info-
              model-03 (work in progress), May 2014.

   [I-D.ietf-netconf-restconf]
              Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", draft-ietf-netconf-restconf-02 (work in
              progress), October 2014.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3060]  Moore, B., Ellesson, E., Strassner, J., and A. Westerinen,
              "Policy Core Information Model -- Version 1
              Specification", RFC 3060, February 2001.

   [RFC3460]  Moore, B., "Policy Core Information Model (PCIM)
              Extensions", RFC 3460, January 2003.

   [RFC3644]  Snir, Y., Ramberg, Y., Strassner, J., Cohen, R., and B.
              Moore, "Policy Quality of Service (QoS) Information
              Model", RFC 3644, November 2003.

   [RFC5394]  Bryskin, I., Papadimitriou, D., Berger, L., and J. Ash,
              "Policy-Enabled Path Computation Framework", RFC 5394,
              December 2008.






Hares, et al.            Expires April 26, 2015                [Page 88]

Internet-Draft                   BGP IM                     October 2014


   [RFC5511]  Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax
              Used to Form Encoding Rules in Various Routing Protocol
              Specifications", RFC 5511, April 2009.

   [RFC6536]  Bierman, A. and M. Bjorklund, "Network Configuration
              Protocol (NETCONF) Access Control Model", RFC 6536, March
              2012.

Authors' Addresses

   Susan Hares
   Huawei
   7453 Hickory Hill
   Saline, MI  48176
   USA

   Email: shares@ndzh.com


   Lixing Wang
   Huawei
   Beijing
   PRC

   Email: wanglixing@huawei.com


   Shunwan Zhuang
   Huawei
   Beijing
   PRC

   Email: Zhuangshunwan@huawei.com


















Hares, et al.            Expires April 26, 2015                [Page 89]