DC-BGP-MIB DEFINITIONS ::= BEGIN

-- PRODUCT-SHORT-NAME BGP

  IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Integer32,
    Counter32,
    Gauge32,
    Unsigned32
-- Begin Versa change {
      ,
      Counter64
-- End Versa change }
      FROM SNMPv2-SMI

    TEXTUAL-CONVENTION,
    DisplayString,
    TruthValue,
    RowStatus,
    TimeStamp,
    TimeInterval
      FROM SNMPv2-TC

    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
      FROM SNMPv2-CONF

    BfdSessionStatus,
    AdminDistance,
    PreAccessListListIndexOrZero,
    VrfName,
    LongDisplayString
      FROM DC-MASTER-TC

    InetAddressType,
    InetAddress,
    InetPortNumber,
    InetAddressPrefixLength
      FROM INET-ADDRESS-MIB;

  bgpMib MODULE-IDENTITY
    LAST-UPDATED "201006280000Z" -- Mon Jun 28 00:00:00 GMT 2010
    ORGANIZATION "Data Connection Ltd."
    CONTACT-INFO
                 "Postal: Data Connection Ltd.
                          100 Church Street
                          Enfield
                          Middlesex EN2 6BQ
                          United Kingdom
                  Tel:    +44 20 83661177
                  E-mail: dcbgp@datconnection.com"
    DESCRIPTION  "The MIB module for management of the DC-BGP
                  product."

-- Begin Versa change {
    REVISION     "201506290000Z"
    DESCRIPTION
            "Added new address family ipv4 versaPrivate to support SD-WAN"

    REVISION     "201502200000Z"
    DESCRIPTION
            "Added remove private AS for versa enhancements."

    REVISION     "201502180000Z"
    DESCRIPTION
            "Added bgp neigbhor history elements for versa enhancements."
-- End Versa change }

-- Versa changed national from 0 to 42
  ::= { iso member-body(2) gb(826) national (42) eng-ltd (1)
        dataConnectionLtd (1578918) adg (5) qb (65) 1 }

-------------------------------------------------------------------------------
-- Textual Conventions.

  BgpIdentifier ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "4x"
    STATUS     current
    DESCRIPTION
        "The representation of a BGP Identifier."
    SYNTAX OCTET STRING (SIZE (4))

  BgpAfi ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "The representation of a BGP AFI (Address Family Identifier)"
    SYNTAX      INTEGER {
                  other(0),
                  ipv4(1),
                  ipv6(2),
                  l2vpn(25)
                }

  BgpSafi ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "The representation of a BGP SAFI (Sub-Address Family Identifier)"
    SYNTAX      INTEGER {
                  none(0),
                  unicast(1),
                  multicast(2),
                  both(3),
                  labeled(4),
                  vpls(65),
                  evpn(70),
                  mplsBgpVpn(128),
-- Begin Versa change {
                  mplsBgpMVpn(129),
-- End Versa change }
                  private(241)
-- Begin Versa change {
                  , versaPrivate(248)
-- End Versa change }
                }

  BgpAutonomousSystemNumber ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "An autonomous System Number.  If bgpAsSize is
        two-octet, the range is 0..65535.  If it is
        four-octet, it is the full range of Unsigned32."
    SYNTAX Unsigned32

  BgpAsSize ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The size of the AS number."
    SYNTAX      INTEGER {
                  twoOctet(1),
                  fourOctet(2)
                }

  BgpAdminStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The desired administrative state of an entry."
    SYNTAX      INTEGER {
                  adminStatusUp(1),
                  adminStatusDown(2)
                }

  BgpOperStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The current operational state of an entity."
    SYNTAX      INTEGER {
                  operStatusUp(1),        -- active
                  operStatusDown(2),      -- inactive
                  operStatusGoingUp(3),   -- activating
                  operStatusGoingDown(4), -- deactivating
                  operStatusActFailed(5)  -- activation failed
                }

  BgpOriginCode ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "A BGP origin code."
    SYNTAX      INTEGER {
                  originIgp(0),        -- path interior to originating AS
                  originEgp(1),        -- path learned via EGP protocol
                  originIncomplete(2)  -- path was learned by other means
                }

  BgpMedDeltaType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Whether to increment or decrement an MED value."
    SYNTAX      INTEGER {
                  increment(1),     -- increment the MED by the value specified
                  decrement(2)      -- decrement the MED by the value specified
                }

  BgpIpMatchType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The type of match carried out by the route map for this IP
                 prefix list."
    SYNTAX      INTEGER {
                  nlriAddr(1),
                  sourceAddr(2),
                  nextHopAddr(3)
                }

  BgpPermitOrDeny ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Whether the behavior is to permit or deny."
    SYNTAX      INTEGER {
                  permit(1),        -- Unmatched routes are permitted
                  deny(2)           -- Unmatched routes are denied
                }

  BgpDropOrWarn ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Whether to drop a session or just warn a parameter has been
                 exceeded."
    SYNTAX      INTEGER {
                  drop(1),          -- The session is dropped
                  warn(2)           -- A warning is produced
                }

  BgpIbgpOrEbgp ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Whether this is an IBGP, confederation EBGP, or EBGP
                 peer group."
    SYNTAX      INTEGER {
                  ibgp(1),
                  ebgp(2),
                  ebgpconfed(3)
                }

  BgpPeerOrAfm ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Whether an index refers to a BGP Peer Index or an AFM index."
    SYNTAX      INTEGER {
                  peerIndex(1),
                  afmIndex(2),
                  noIndex(3)
                }

  BgpAsPathAction ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "How to handle setting an AS-Path attribute."
    SYNTAX      INTEGER {
                  none(0),          -- No action is carried out
                  set(1),           -- The local AS number is prepended to the
                                    --  AS path
                  remMatch(2),      -- AS values matching the bgpRouteMapMaAS
                                    --  regular expression are removed
                  remMatchAndSet(3) -- AS values matching the bgpRouteMapMaAS
                                    --  regular expression are remove, and the
                                    --  local AS number is prepended to the AS
                                    --  path
                }

  BgpAggregateOptions ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The option used when aggregating."
    SYNTAX      INTEGER {
                  none(1),           -- No options.  An aggregate entry is
                                     --  generated if more specific entries are
                                     --  present
                  summary(2),        -- Only the summary option.  More specific
                                     --  routes that make the aggregate are not
                                     --  advertised
                  asSet(3),          -- Aggregates the AS-PATH using the
                                     --  algorithm described in RFC 1771.  This
                                     --  maintains the longest AS-Sequence common
                                     --  common to the aggregated routes and
                                     --  adds AS numbers from the other routes
                                     --  to an AS-Set
                  summaryAsSet(4),   -- Both summary and AS-Set options
                  asAppend(5),       -- No common AS sequence is maintained.
                                     --  All AS numbers from the aggregated
                                     --  routes are added to an AS-Set.
                  summaryAsAppend(6) -- Both summary and As-Append options
                }

  BgpMjStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The status of a master join."
    SYNTAX      INTEGER {
                  mjNotJoined(1),        -- initial state of join
                  mjSentAddJoin(2),      -- sent ATG_FT_ADD_JOIN to slave
                  mjSentRegister(3),     -- sent registration signal to slave
                  mjJoinActive(4),       -- join is active
                  mjSentDelJoin(5),      -- sent ATG_FT_DELETE_JOIN to slave
                  mjSentUnregister(6),   -- sent unregistration to slave
                  mjJoinGone(7),         -- join has been deleted
                  mjFailedToRegister(8), -- slave rejected reg message
                  mjFailingOver(9),      -- slave is failing over
                  mjFailed(10),          -- join has permanently failed
                  mjNoPartner(11)        -- no partner to join to
                }

  BgpSjStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The status of a slave join."
    SYNTAX      INTEGER {
                  sjNotJoined(1),      -- initial state of join
                  sjJoined(2),         -- master has sent an ATG_FT_ADD_JOIN
                  sjJoinActive(3),     -- master has registered the join
                  sjJoinUnreg(4),      -- master has unregistered the join
                  sjJoinGone(5),       -- master has deleted the join
                  sjFailingOver(6),    -- master is failing over
                  sjFailed(7)          -- join has permanently failed
                }

  BgpPeerStates ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The current state of a connection to a BGP peer."
    SYNTAX      INTEGER {
                  idle(1),
                  connect(2),
                  active(3),
                  opensent(4),
                  openconfirm(5),
                  established(6)
                }

  BgpPeerEvents ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "An event that has occurred to a connection to a BGP peer."
    SYNTAX      INTEGER {
                  noEvent(0),             -- no event has yet occurred
                  start(1),               -- the connection has been activated
                                          --  (either outgoing or incoming)
                  stop(2),                -- the connection has been
                                          --  deactivated
                  transportOpen(3),       -- the transport connection has been
                                          --  opened
                  transportClosed(4),     -- the transport connection has been
                                          --  closed
                  transportOpenFailed(5), -- an attempt to open the transport
                                          --  connection has failed
                  transportFatalError(6), -- a fatal error has occurred on the
                                          --  transport connection
                  connectRetryTimer(7),   -- the ConnectRetry timer has popped
                  holdTimer(8),           -- the Hold timer has popped
                  keepaliverTimer(9),     -- the Keepalive timer has popped
                  recvOpen(10),           -- a BGP Open message has been
                                          --  received
                  recvKeepAlive(11),      -- a BGP KeepAlive message has been
                                          --  received
                  recvUpdate(12),         -- a BGP Update message has been
                                          --  received
                  recvNotification(13),   -- a BGP Notification message has
                                          --  been received
                  connParmsUpdate(14)     -- Connection parameters have been
                                          --  updated
                }

  BgpCapabilities ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The capabilities advertised by a BGP instance."
    SYNTAX      BITS {
                  mpIpv4Unicast(0),             -- multiprotocol BGP support
                                                --  for IPv4 unicast routes
                  mpIpv4Multicast(1),           -- multiprotocol BGP support
                                                --  for IPv4 multicast routes
                  mpIpv4Vpn(2),                 -- multiprotocol BGP support
                                                --  for IPv4 VPN routes
                  mpIpv4Label(3),               -- multiprotocol BGP support
                                                --  for labeled IPv4 VPN
                                                --  routes
                  mpIpv6Unicast(4),             -- multiprotocol BGP support
                                                --  for IPv6 unicast routes
                  mpIpv6Multicast(5),           -- multiprotocol BGP support
                                                --  for IPv6 multicast routes
                  mpIpv6Vpn(6),                 -- multiprotocol BGP support
                                                --  for IPv6 VPN routes
                  mpIpv6Label(7),               -- multiprotocol BGP support
                                                --  for labeled IPv6 VPN
                                                --  routes
                  routeRefresh(8),              -- support for Route Refresh
                                                --  messages
                  gracefulRestart(9),           -- support for graceful restart
                                                --  processing
                  routeRefreshCisco(10),        -- support for pre-standard
                                                --  (Cisco) Route Refresh
                                                --  messages
                  outboundRouteFilter(11),      -- support for Outbound Route
                                                --  Filtering, for one or more
                                                --  AFI/SAFI types
                  outboundRouteFilterCisco(12), -- support for pre-standard
                                                --  (Cisco) Outbound Route
                                                --  Filtering, for one or more
                                                --  AFI/SAFI types
                  fourOctetAs(13),              -- support for four-octet AS
                                                --  numbers
                  mpL2vpnVpls(14),              -- multiprotocol BGP support
                                                --  for AFI/SAFI = L2VPN/VPLS
                  addPath(15),                  -- support for additional BGP
                                                --  paths
                  mpL2vpnEvpn(16),              -- multiprotocol BGP support
                                                --  for AFI/SAFI = L2VPN/EVPN
-- Begin Versa change {
                   mpIpv4VersaPrivate(17),      -- multiprotocol BGP support
                                                --  for IPv4 versaPrivate routes
                  versaPrivateRouteVer1(18),    -- Versa private route version 1
                  versaPrivateRouteVer2(19),    -- Versa private route version 2
                  versaBranchName(20),          -- Versa Branch Name
                  mpIpv4MulticastVpn(21),       -- mrib ipv4 vpn
                  mpIpv6MulticastVpn(22),       -- mrib ipv6 vpn
-- End Versa change }
                  mpIpv4Private(23),            -- multiprotocol BGP support
                                                --  for AFI/SAFI = IPv4/Private
                  enhancedRouteRefresh(24),     -- support for enhanced route
                                                --  refresh (RFC7313)
                  extendedNextHopIpv4Uni(25),   -- Support for extended
                                                --  next-hop encoding for IPv4
                                                --  unicast routes (RFC5549)
                  extendedNextHopIpv4Multi(26), -- Support for extended
                                                --  next-hop encoding for IPv4
                                                --  multicast routes (RFC5549)
                  extendedNextHopIpv4Label(27), -- Support for extended
                                                --  next-hop encoding for IPv4
                                                --  labeled routes (RFC5549)
                  extendedNextHopIpv4Vpn(28)    -- Support for extended
                                                --  next-hop encoding for IPv4
                                                --  VPN routes (RFC5549)
                }

  BgpPeerRestartSupport ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The level of restart support advertised by a peer."
    SYNTAX      INTEGER {
                  none(1),        -- the peer does not support restart.
                  awareOnly(2),   -- the peer has advertised a restart
                                  --  capability, but has not advertised any
                                  --  address families as being restart
                                  --  capable.
                  enabled(3)      -- the peer supports restart capability for
                                  --  one or more address families.
                }

  BgpPeerRestartStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The current status of a restarting BGP peer."
    SYNTAX      INTEGER {
                  notRestarting(1),        -- the peer is not restarting
                  restartTimerRunning(2),  -- the restart timer is running in
                                           --  one or more Adj-RIBs-In for this
                                           --  peer.  The session to this peer
                                           --  has failed and has not yet been
                                           --  re-established.
                  stalePathTimerRunning(3) -- the stale path timer is running
                                           --  in one or more Adj-RIBs-In for
                                           --  this peer, and the restart timer
                                           --  is not running for any
                                           --  Adj-RIBs-In for this peer.  The
                                           --  session to this peer has failed
                                           --  and has been re-established, but
                                           --  the peer has not yet refreshed
                                           --  its routes to DC-BGP.
                }

  BgpPeerLastFailure ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "The cause of the last failure to occur to a session to a BGP peer."
    SYNTAX      INTEGER {
                  other(1),      -- the trap was not triggered by a
                                 --  Notification message
                  notifySent(2), -- the trap was triggered by a sent
                                 --  Notificatino message
                  notifyRecv(3)  -- the trap was triggered by a received
                                 --  Notification message
                }

  BgpCeaseErrorSubcode ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "The error subcode to be sent in the Cease Notification message."
    SYNTAX      INTEGER {
                  none(0),          -- no subcode is specified.
                  adminShutdown(2), -- administrative Shutdown.
                  peerUnconfig(3),  -- peer De-configured.
                  adminReset(4),    -- administrative Reset.
                  configChange(6),  -- other Configuration Change.
                  noResource(8)     -- out of Resources.
                }

  BgpPeerReflectorClientType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "What type of client this BGP Peer is.  A client of a route
                 reflector is a meshed client if and only if it is fully meshed
                 with all meshed clients of that route reflector."
    SYNTAX      INTEGER {
                  nonClient(0),
                  client(1),
                  meshedClient(2)
                }

  BgpComponentId ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The type of process to which a given entity is joined."
    SYNTAX      INTEGER {
                  componentRm(1),        -- RIB Manager
                  componentNm(2),        -- Neighbor Manager
                  componentIpSockets(3), -- IP Sockets Stub
                  componentRtm(4),       -- Routing Table Manager
                  componentVmIpv4(5),    -- VPN Manager (IPv4 VPNs)
                  componentBfd(6)        -- BFD Stub
                }

  BgpCommunity ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "4x"
    STATUS       current
    DESCRIPTION "The representation of a BGP Community."
    SYNTAX OCTET STRING (SIZE(4))

  BgpExtendedCommunity ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "8x"
    STATUS       current
    DESCRIPTION "The representation of a BGP Extended Community."
    SYNTAX OCTET STRING (SIZE(8))

  BgpCommunityAction ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "How to handle adding a community attribute."
    SYNTAX      INTEGER {
                  none(0),      -- No action is carried out
                  removeAll(1),  -- Current community list is cleared
                  removeSpecific(2),  -- The community is removed from the list
                  setSpecific(3),    -- The community is added to the list
                  removeAllAndSet(4) -- The community replaces the current list
                }

  BgpPathAttrAtomicAggPresence ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Whether the route has the ATOMIC_AGGREGATE Path Attribute
                 present."
    SYNTAX      INTEGER {
                  atomicAggregatePresent(1),
                  atomicAggregateMissing(2)
                }

  BgpOrfType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Type of Outbound Route Filter."
    SYNTAX      INTEGER {
                  community(2),          -- Community ORF-Type
                  extCommunity(3),       -- Extended Community ORF-Type
                  prefix(64)             -- Address Prefix ORF-Type
                }

  BgpOrfSendReceive ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "ORF send/receive indicator."
    SYNTAX      INTEGER {
                  receive(1),       -- Willing to receive ORF entries from peer
                  send(2),          -- Would like to send ORF entries to peer
                  both(3)           -- Both send and receive
                }

  BgpOrfAssociation ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Indicates the type of association (if any) to the Outbound
                 Route Filtering protocol."
    SYNTAX      INTEGER {
                  noAssociation(0),  -- No association.  Route map is not
                                     -- eligible for advertisement to peers via
                                     -- the ORF protocol
                  local(1),          -- Configured locally and eligible for
                                     -- advertisement to peers via the ORF
                                     -- protocol
                  remote(2)          -- Learned from peer via the ORF protocol
                }

 BgpPeeringType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Indicates the type of peering relationship with the peer."
    SYNTAX      INTEGER {
                  unspecified(0),   -- Relationship is unspecified
                  provider(1),      -- Peer is a provider
                  customer(2),      -- Peer is a customer
                  biLateral(3)      -- Peer is neither a customer or a provider
                }

 BgpAfiSafiBits ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Bit flags used to indicate one or more AFI/SAFI combinations."
    SYNTAX      BITS {
                  ipv4Unicast(0),
                  ipv4Multicast(1),
                  ipv4MplsBgpVpn(2),
                  ipv6Unicast(3),
                  ipv6Multicast(4),
                  ipv6MplsBgpVpn(5),
                  ipv4Labeled(6),
                  ipv6Labeled(7),
                  l2vpnVpls(8),
                  l2vpnEvpn(9)
-- Begin Versa change {
                  , ipv4VersaPrivate(10)
                  , ipv4Private(11)
                  , ipv4MplsBgpMVpn(12)
                  , ipv6MplsBgpMVpn(13)
-- End Versa change }
--                  ipv4Private(10)
                }

  BgpNlriIsActiveFlag ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Indicates whether an NLRI is active in the routing table."
    SYNTAX      INTEGER {
                  notTracked(1),    -- BGP is not tracking active routes
                  inactive(2),      -- The BGP route is inactive
                  active(3)         -- The BGP route is active
                }

  BgpRestartExitReason ::= TEXTUAL-CONVENTION
         STATUS      current
         DESCRIPTION
            "The reason for exiting an attempted graceful restart."
         SYNTAX     INTEGER {
                      none (1),                  -- none attempted
                      inProgress (2),            -- restart in progress
                      completed (3),             -- successfully completed
                      timedOut (4),              -- timed out
                      failed (5),                -- failed.
                      completePeerNoSupport (6)  -- successfully completed
                    }

  BgpAddPathSrCap ::= TEXTUAL-CONVENTION
     STATUS     current
     DESCRIPTION "BGP additional path send/receive capability."
     SYNTAX     INTEGER {
                  disable (0),               -- disable sending and receiving
                  receive (1),               -- receive but do not send
                  send (2),                  -- send but do not receive
                  both (3),                  -- send and receive
                  inherit (4),               -- inherit configuration from
                                             -- the entity AFI/SAFI level
                  unknown (5)                -- unknown
                }

  BgpPeerConfigStates ::= TEXTUAL-CONVENTION
     STATUS      current
     DESCRIPTION
        "Reports the state of the peer configuration."
     SYNTAX     INTEGER {
                  stateUpToDate (1),            -- Up to date.
                  stateOutOfDateAdminDown (2),  -- Out of date, requiring the
                                                -- peer's admin status to be
                                                -- set to down.
                  stateOutOfDateRowInactive (3) -- Out of date, requiring the
                                                -- peer's row status to be set
                                                -- to inactive.
                }

  BgpPeerConfigUsage ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Bit flags used to control whether the peer uses the peer
                 configuration or the peer group configuration for individual
                 MIB fields.

                 If set, the peer should use the peer group configuration
                 value rather than the peer configuration value."
    SYNTAX    BITS {
                bgpPeerUseGrpPassword(0),        -- Use peer group's password
                bgpPeerUseGrpReflClient(1),      -- Use peer group's reflector
                                                 -- client value
                bgpPeerUseGrpHoldTime(2),        -- Use peer group's hold time
                                                 -- value
                bgpPeerUseGrpKeepAlive(3),       -- Use peer group's keep
                                                 -- alive value
                bgpPeerUseGrpTtl(4),             -- Use peer group's time to
                                                 -- live value
                bgpPeerUseGrpMinRteAdvInt(5),    -- Use peer group's minimum
                                                 -- route advertise interval
                bgpPeerUseGrpMinRteWthInt(6),    -- Use peer group's minimum
                                                 -- route withdraw interval
                bgpPeerUseGrpMaxPrefix(7),       -- Use peer group's maximum
                                                 -- prefix value
                bgpPeerUseGrpAltLocalAs(8),      -- Use peer group's
                                                 -- alternative local AS
                                                 -- number
                bgpPeerUseGrpAggrConfedAs(9),    -- Use peer group's
                                                 -- aggregated confederation
                                                 -- AS number
                bgpPeerUseGrpThrdPtyNxtHp(10),   -- Use peer group's
                                                 -- third party next hop value
                bgpPeerUseGrpNxtHopPeer(11),     -- Use peer group's
                                                 -- next hop peer value
                bgpPeerUseGrpSendComm(12),       -- Use peer group's
                                                 -- send community attributes
                                                 -- value
                bgpPeerUseGrpSendExtComm(13),    -- Use peer group's send
                                                 -- extended community
                                                 -- attributes value
                bgpPeerUseGrpSoftReset(14),      -- Use peer group's
                                                 -- soft reset value
                bgpPeerUseGrpAllowLocalAs(15),   -- Use peer group's
                                                 -- allow local AS count
                bgpPeerUseGrpDisLoopDetect(16),  -- Use peer group's
                                                 -- disable sender-side loop
                                                 -- detection value
                bgpPeerUseGrpPeerWeight(17),     -- Use peer group's
                                                 -- peer weight value
                bgpPeerUseGrpFallover(18),       -- Use peer group's
                                                 -- fallover value
                bgpPeerUseGrpRemoteAs(19),       -- Use peer group's
                                                 -- remote AS value
                bgpPeerUseGrpCheckFirstAs(20),   -- Use peer group's
                                                 -- check first AS value
                bgpPeerUseGrpNxtHopSlf(21),      -- Use peer group's next hop
                                                 -- self setting
                bgpPeerUseGrpEnableAttrDisc(22), -- Use peer group's enable
                                                 -- attribute discard setting
                bgpPeerUseGrpDmzLink(23),        -- Use peer group's DMZ link
                                                 -- setting
                bgpPeerUseGrpDlAclIn(24),        -- Use peer group's
                                                 -- Distribution List ACL In
                                                 -- setting.
                bgpPeerUseGrpDlAclOut(25),       -- Use peer group's
                                                 -- Distribution List Prefix
                                                 -- List In setting.
                bgpPeerUseGrpDlPlIn(26),         -- Use peer group's
                                                 -- Distribution List Prefix
                                                 -- List In setting.
                bgpPeerUseGrpDlPlOut(27),        -- Use peer group's
                                                 -- Distribution List Prefix
                                                 -- List Out setting.
                bgpPeerUseGrpFilterListIn(28),   -- Use peer group's Filter
                                                 -- List In setting.
                bgpPeerUseGrpFilterListOut(29),  -- Use peer group's Filter
                                                 -- List Out setting.
                bgpPeerUseGrpSlowPeer(30),       -- Use peer group's Slow Peer
                                                 -- setting.
                bgpPeerUseGrpAfiSafiDisable(31)  -- Use the peer group's Afi
                                                 -- Safi Disable setting.
              }

  BgpPeerConfigUsage2 ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Bit flags used to control whether the peer uses the peer
                 configuration or the peer group configuration for individual
                 MIB fields.

                 If set, the peer should use the peer group configuration
                 value rather than the peer configuration value."
    SYNTAX    BITS {
                bgpPeerUseGrpConfedMember(0),    -- Use peer group's
                                                 -- confederation member value
                bgpPeerUseGrpTrapEstab(1),       -- Use peer group's
                                                 -- established trap value
                bgpPeerUseGrpTrapBackw(2),       -- Use peer group's backward
                                                 -- transition trap value
                bgpPeerUseGrpConnectRetryInt(3), -- Use peer group's connect
                                                 -- retry interval
                bgpPeerUseGrpMinASOrigInt(4),    -- Use peer group's minimum AS
                                                 -- origination interval
                bgpPeerUseGrpConfigDropWarn(5),  -- Use peer group's session
                                                 -- dropped or generate warning
                                                 -- flag
                bgpPeerUseGrpConfigPassive(6),   -- Use peer group's configure
                                                 -- passive connections flag
                bgpPeerUseGrpConfigOpenDelay(7), -- Use peer group's open delay
                                                 -- interval
                bgpPeerUseGrpConfigIdleHold(8),  -- Use peer group's hold time
                                                 -- in idle state interval
                bgpPeerUseGrpCheckNextHop(9),    -- Use peer group's check BGP
                                                 -- route's next hop flag
                bgpPeerUseGrpMaxOrfEntries(10),  -- Use peer group's ORF
                                                 -- entries limit
                bgpPeerUseGrpPeeringType(11),    -- Use peer group's peering
                                                 -- type
                bgpPeerUseGrpDisRouteRefr(12),   -- Use peer group's disable
                                                 -- route refresh flag
                bgpPeerUseGrpTrapPrefix(13),     -- Use peer group's "send
                                                 -- SNMP trap when prefix count
                                                 -- reaches maximum" flag
                bgpPeerUseGrpConfigThresh(14),   -- Use peer group's configure
                                                 -- threshold percentage limit
                bgpPeerUseGrpMaxPrfxHold(15),    -- Use peer group's maximum
                                                 -- prefix hold interval
                bgpPeerUseGrpTrapGrHlpState(16), -- Use peer group's graceful
                                                 -- restart helper trap flag
                bgpPeerUseGrpConfAltLocAsMd(17), -- Use peer group's
                                                 -- alternative local AS number
                                                 -- mode
                bgpPeerUseGrpBfdDesired(18),     -- Use peer group's BFD
                                                 -- desired flag
                bgpPeerUseGrpAsOverride(19),     -- Use peer group's AS-
                                                 -- override behaviour
                bgpPeerUseGrpImportMap(20),      -- Use peer group's config
                                                 -- table's import map
                bgpPeerUseGrpExportMap(21),      -- Use peer group's config
                                                 -- table's export map
                bgpPeerUseGrpRemove(22),         -- Use peer group's config
                                                 -- table's remove private AS
                                                 -- setting.
                bgpPeerUseGrpAddrSrcIf(23),      -- Use peer group's address
                                                 -- source interface behaviour
                bgpPeerUseGrpImportLocalPref(24),-- Use peer group's import
                                                 -- local-pref values
                bgpPeerUseGrpExportLocalPref(25),-- Use peer group's export
                                                 -- local-pref values
                bgpPeerASUseGrpAddPathBestN(26), -- Use peer group's afi-safi
                                                 -- advertise best paths count
                bgpPeerASUseGrpAddPathCapCfg(27),-- Use peer group's afi-safi
                                                 -- additional path capability
                bgpPeerASUseGrpExpIpAallPre(28), -- Use peer group's route
                                                 -- export AALL IP prefix
                                                 -- access list index
                bgpPeerASUseGrpImpIpAallPre(29), -- Use peer group's route
                                                 -- import AALL IP prefix
                                                 -- access list index
                bgpPeerASUseGrpOrigDflt(30),     -- Use peer group's afi-safi
                                                 -- "originate default route"
                                                 -- setting
                bgpPeerASUseGrpOrigDfltRtMap(31) -- Use peer group's afi-safi
                                                 -- "originate default route
                                                 -- policy"setting
              }

  BgpPeerConfigUsage3 ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Bit flags used to control whether the peer uses the peer
                 configuration or the peer group configuration for individual
                 MIB fields.

                 If set, the peer should use the peer group configuration
                 value rather than the peer configuration value."
    SYNTAX    BITS {
                bgpPeerUseGrpAddrSource(0),        -- Use peer group's source
                                                   -- address
                bgpPeerUseGrpAfiSafiImportMap(1),  -- Use peer group's AFI/SAFI
                                                   -- import map
                bgpPeerUseGrpAfiSafiExportMap(2),  -- Use peer group's AFI/SAFI
                                                   -- export map
                bgpPeerUseGrpMaxPrfxClear(3),      -- Use peer group's max
                                                   -- prefix clear value
                bgpPeerUseGrpPrfxThresholdClear(4),-- Use peer group's prefix
                                                   -- threshold clear value.
                bgpPeerUseGrpAfiSafiPreserveNh(5), -- Use peer group's AFI/SAFI
                                                   -- preserve next hop setting
                bgpPeerUseGrpTtlSecurityMinTtl(6), -- Use peer group's TTL
                                                   -- security minimum TTL
                                                   -- setting
                bgpPeerUseGrpAfiSafiRmtNxtHop(7)   -- Use peer group's decision
                                                   -- to check received next
                                                   -- hop from eBGP peers
              }

  BgpPeerAfiSafiCfgUsage ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Bit flags used to control whether the peer / peer group uses
                 peer / peer group configuration or AFI/SAFI configuration
                 for individual MIB fields.

                 If set, the peer / peer group should use the peer / peer
                 group configuration.  If not set, the peer should use the
                 AFI/SAFI configuration value."
    SYNTAX    BITS {
                bgpPeerAfiSafiUsePeerMinAdInt(0),   -- Use peer / peer group
                                                    -- configuration for
                                                    -- minimum advertisment
                                                    -- interval
                bgpPeerAfiSafiUsePeerNxtHopSlf(1)   -- Use peer / peer group
                                                    -- configuration for
                                                    -- next hop self
              }

  BgpTrueFalseOrInherit ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Indicates whether support for a feature is true, false, or
                 is determined by the entity default."
    SYNTAX      INTEGER {
                  inherit(0),                -- use the entity value
                  true(1),                   -- support for the feature is on
                  false(2)                   -- support for the feature is off
                }

    -- Begin Versa change {
  BgpDebugFlags ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Indicates whether to log debug information for a given bgp feature."
    SYNTAX    BITS {
                bfd(0),                 --  Trace BFD events
                keepalive(1),           --  Trace BGP keepalive packets
                notification(2),        --  Trace BGP notifications
                open(3),                --  Trace BGP open packets
                packets(4),             --  Trace all BGP protocol packets
                policy(5),              --  Trace policy processing
                receive(6),             --  Trace received packets
                refresh(7),             --  Trace BGP refresh packets
                route(8),               --  Trace routing information
                sdwan(9),               --  Trace sdwan state transitions
                send(10),               --  Trace transmitted packets
                state(11),              --  Trace state transitions
                update(12),             --  Trace BGP update packets
                interface(13),          --  Trace interface events
                ips(14),                --  Trace IPS processing
                fsm(15)                 --  Trace FSM
              }
   -- END Versa change }

  BgpReasonNotBest ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Reports the reason a route was determined to be not the
                 best route to that destination."
    SYNTAX      INTEGER {
                  notConsidered(0),       -- The route has not been considered
                                          -- for best route
                  routeIsBest(1),         -- The is the best route
                  weight(2),              -- The route was beaten by one with a
                                          -- better weight
                  localPref(3),           -- The route was beaten by one with a
                                          -- better local preference
                  localOrigPreferred(4),  -- The route was beaten by a
                                          -- locally-originated route
                  asPathLen(5),           -- The route was beaten by one with a
                                          -- shorter AS Path
                  origin(6),              -- The route was beaten by one with a
                                          -- lower origin code
                  med(7),                 -- The route was beaten by one with a
                                          -- lower MED
                  localOrigTieBreaker(8), -- The route was beaten by another
                                          -- locally originated route
                  ebgpVsibgp(9),          -- The IBGP route was beaten by a
                                          -- route from an external peer
                  adminDistance(10),      -- The route was beaten by a route
                                          -- with a lower admin distance
                  pathCostToNextHop(11),  -- The route was beaten by a route
                                          -- with a lower path cost to the
                                          -- next hop.
                  prefExisting(12),       -- The route was beaten because
                                          -- existing route was preferred
                  identifier(13),         -- The route was beaten by a route
                                          -- with a lower identifier either
                                          -- ORIGINATOR ID or BGP identifier
                  clusterLen(14),         -- The route was beaten by a route
                                          -- with a lower cluster length
                  peerType(15),           -- The route was beaten by a route
                                          -- with a preferred peer address
                                          -- type.  IPv6 is preferred to IPv4
                  peerAddress(16),        -- The route was beaten by a route
                                          -- with a lower peer address
                  peerPort(17),           -- The route was beaten by a route
                                          -- with a lower peer port
                  pathId(18),             -- The route was beaten by a route
                                          -- with a lower path id
-- Begin Versa change {
                  grStale(19)             -- Graceful restart stale route
-- End Versa change }
                }

  BgpCommListEntryType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "How an entry in the bgpCommunityListTable is used to match
                 route commmunities or an entry in the bgpExtCommListTable is
                 used to match route extended commmunities."
    SYNTAX      INTEGER {
                  communityGroup(1),    -- Use a community group
                  regularExpression(2)  -- Use a regular expression
                }

  BgpNlriPeerTypes ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The type of peer than a route was received from."
    SYNTAX      INTEGER {
                  none(1),    -- The route was not received from a BGP peer.
                  iBGP(2),    -- The route was received from an iBGP BGP peer.
                  eBGP(3)     -- The route was received from an eBGP BGP peer.
                }

  BgpPeerAfiSafiCfgFromGrFlags ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "A set of bit flags which control whether peer AFI/SAFI
                 configuration is taken from peer group level configuration
                 (bgpPeergrTable or bgpPeergrAfiSafiTable), or from the
                 configuration indicated by bgpPeerConfigUsage (and
                 bgpPeerConfigUsage2 and bgpPeerConfigUsage3)."
    SYNTAX      BITS {
                   bgpPeerAfiSafiUseGrDisable(0),
                   bgpPeerAfiSafiUseGrAllowLocalAS(1),
                   bgpPeerAfiSafiUseGrDisableSndLpDetect(2),
                   bgpPeerAfiSafiUseGrAfiSafiNxtHopSlf(3),
                   bgpPeerAfiSafiUseGrAfiSafiOrigDefault(4),
                   bgpPeerAfiSafiUseGrAfiSafiOrigDfltRtMap(5),
                   bgpPeerAfiSafiUseGrAfiSafiSoftResetStore(6),
                   bgpPeerAfiSafiUseGrAfiSafiConfigMaxPrfx(7),
                   bgpPeerAfiSafiUseGrAfiSafiConfigDropWarn(8),
                   bgpPeerAfiSafiUseGrTrapPrefix(9),
                   bgpPeerAfiSafiUseGrConfigThreshold(10),
                   bgpPeerAfiSafiUseGrMaxPrfxHold(11),
                   bgpPeerAfiSafiUseGrMaxOrfEntries(12),
                   bgpPeerAfiSafiUseGrAddPathCapCfg(13),
                   bgpPeerAfiSafiUseGrAddPathBestN(14),
                   bgpPeerAfiSafiUseGrImportMap(15),
                   bgpPeerAfiSafiUseGrExportMap(16),
                   bgpPeerAfiSafiUseGrImportAallPre(17),
                   bgpPeerAfiSafiUseGrExportAallPre(18),
                   bgpPeerAfiSafiUseGrReflectorClient(19),
                   bgpPeerAfiSafiUseGrAsOverride(20),
                   bgpPeerAfiSafiUseGrAsOrigInt(21),
                   bgpPeerAfiSafiUseGrMinRteAdvertInt(22),
                   bgpPeerAfiSafiUseGrMinRteWithdrawInt(23),
                   bgpPeerAfiSafiUseGrSendComm(24),
                   bgpPeerAfiSafiUseGrSendExtComm(25),
                   bgpPeerAfiSafiUseGrMaxPrfxClear(26),
                   bgpPeerAfiSafiUseGrPrfxThrsholdClear(27),
                   bgpPeerAfiSafiUseGrPreserveNh(28),
                   bgpPeerAfiSafiUseGrAcceptRmtNxtHop(29)
                 }

  BgpPrivAsActs ::= TEXTUAL-CONVENTION
     STATUS     current
     DESCRIPTION "What action to take when exporting routes whose AS-path
                  contains private AS numbers to eBGP peers."
     SYNTAX     INTEGER {
                  remove (1),    -- Private AS numbers are removed from the
                                 -- AS-path if the AS-path contains only
                                 -- private AS numbers.
                  none (2),      -- Private AS numbers are not removed or
                                 -- replaced.
                  removeAll (3), -- All private AS numbers are removed from the
                                 -- AS-path, regardless of whether the AS-path
                                 -- contains any public AS numbers.
                  replace (4),   -- Private AS numbers in the AS-path are
                                 -- replaced with the local AS number if the
                                 -- AS-path contains only private AS numbers.
                  replaceAll (5) -- All private AS numbers in the AS-path are
                                 -- replaced with the local AS number,
                                 -- regardless of whether the AS-path contains
                                 -- any public AS numbers.
                }

  BgpNextHopSelf ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "The next hop action to apply.

                 For back compatibility the values of 'yes' and 'no' are the
                 same as the values of the truth values 'true' and 'false'
                 respectively."
    SYNTAX     INTEGER {
                 true (1),   -- Next hop self is configured.
                 false (2),  -- Next hop self is not configured.
                 all (3)     -- Next hop self is configured for both eBGP and
                             -- iBGP learned routes when acting as a route
                             -- reflector.  Normally, as per RFC 4456, next hop
                             -- self is not applied to iBGP learned routes.
               }

-------------------------------------------------------------------------------

  bgpNotifications     OBJECT IDENTIFIER ::= { bgpMib 1 }
  bgpRm                OBJECT IDENTIFIER ::= { bgpMib 2 }

--
-- RIB Manager Entity Table.
--
-- This is the top-level MIB for the DC-BGP RIB Manager.  It controls
-- creation and global configuration of the RIB Manager.
--
-- It also contains the system wide parameters of Route Flap Damping as
-- defined in RFC 2439.  Route Flap Damping applies a penalty to a route if it
-- changes, and this penalty value is decayed over time.  If the penalty value
-- exceeds a cut off threshold the route is suppressed until the penalty falls
-- below the reuse threshold.  These values are set via a route map in the
-- bgpFlapConfigTable.  The values in this table are used system wide and
-- define how often calculations take place and sizes of reuse lists.  Reuse
-- lists are utilised to make the calculations of when a flapping route is
-- available for re-use more efficient.
--

  bgpRmEntTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_RM
    SYNTAX      SEQUENCE OF BgpRmEntEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry in this table represents a RIB Manager
                 entity.  Only some fields in an entry can be changed while the
                 admin status is up."
    ::= { bgpRm 1 }

  bgpRmEntEntry OBJECT-TYPE
    SYNTAX      BgpRmEntEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a RIB Manager entity."
    INDEX { bgpRmEntIndex }
    ::= { bgpRmEntTable 1 }

  BgpRmEntEntry ::= SEQUENCE {
      bgpRmEntIndex                   Unsigned32,
      bgpRmEntRowStatus               RowStatus,
      bgpRmEntAdminStatus             BgpAdminStatus,
      bgpRmEntOperStatus              BgpOperStatus,
      bgpRmEntAsSize                  BgpAsSize,
      bgpRmEntLocalAs                 BgpAutonomousSystemNumber,
      bgpRmEntConfederationId         BgpAutonomousSystemNumber,
      bgpRmEntLocalIdentifier         BgpIdentifier,
      bgpRmEntClusterId               BgpIdentifier,
      bgpRmEntIpv4MultiSupport        TruthValue,
      bgpRmEntVpnIpv4Support          TruthValue,
      bgpRmEntFlapDeltat              Unsigned32,
      bgpRmEntFlapReusemax            Unsigned32,
      bgpRmEntFlapReusesize           Unsigned32,
      bgpRmEntFlapReusearray          Unsigned32,
      bgpRmEntFlapFreemax             Unsigned32,
      bgpRmEntNoRefresh               TruthValue,
      bgpRmEntDefLocalPref            Unsigned32,
      bgpRmEntAlwaysCompMed           TruthValue,
      bgpRmEntAggregateMed            TruthValue,
      bgpRmEntDeterministicMed        TruthValue,
      bgpRmEntNhrJoinStatus           BgpMjStatus,
      bgpRmEntNhrEntIndex             Unsigned32,
      bgpRmEntI3JoinStatus            BgpMjStatus,
      bgpRmEntI3EntIndex              Unsigned32,
      bgpRmEntPauseThreshold          Unsigned32,
      bgpRmEntMaxIBgpEcmpRoutes       Unsigned32,
      bgpRmEntMaxEBgpEcmpRoutes       Unsigned32,
      bgpRmEntRestartSupported        TruthValue,
      bgpRmEntMaxRestartTime          Unsigned32,
      bgpRmEntRecoveryTime            Unsigned32,
      bgpRmEntDoGracefulRestart       TruthValue,
      bgpRmEntIpv4UniFwdPrsrvd        TruthValue,
      bgpRmEntIpv4MultiFwdPrsrvd      TruthValue,
      bgpRmEntVpnIpv4FwdPrsrvd        TruthValue,
      bgpRmEntIpv4ArinhJoinStatus     BgpSjStatus,
      bgpRmEntIpv4ArinhEntIndex       Unsigned32,
      bgpRmEntIpv6ArinhJoinStatus     BgpSjStatus,
      bgpRmEntIpv6ArinhEntIndex       Unsigned32,
      bgpRmEntSupportIpv6             TruthValue,
      bgpRmEntStrictConfed            TruthValue,
      bgpRmEntOrfSupported            TruthValue,
      bgpRmEntCiscoPrefixSupported    TruthValue,
      bgpRmEntSelectDeferTime         Unsigned32,
      bgpRmEntStalePathTime           Unsigned32,
      bgpRmEntNonPersistentAros       TruthValue,
      bgpRmEntAroRouteThreshold       Unsigned32,
      bgpRmEntMaxActiveAroGroups      Unsigned32,
      bgpRmEntNumArosInGroup          Unsigned32,
      bgpRmEntNumAroRoutes            Counter32,
      bgpRmEntPeakNumAroRoutes        Counter32,
      bgpRmEntClearStats              TruthValue,
      bgpRmEntFastExtFallover         TruthValue,
      bgpRmEntRemainDelayTime         TimeInterval,
      bgpRmEntPathAttrs               Gauge32,
      bgpRmEntAggSplitHorizon         TruthValue,
      bgpRmEntAggAdvSuppr             TruthValue,
      bgpRmEntUpdateGroups            TruthValue,
      bgpRmEntPhase3DelayTime         Unsigned32,
      bgpRmEntTrapOperState           TruthValue,
      bgpRmEntMaxASLimit              Unsigned32,
      bgpRmEntRestartTimeLeft         Unsigned32,
      bgpRmEntRestartExitReason       BgpRestartExitReason,
      bgpRmEntAsPathMultipathRelax    TruthValue,
      bgpRmEntAsPathIgnore            TruthValue,
      bgpRmEntPreferExistingRoute     TruthValue,
      bgpRmEntMedMissingAsWorst       TruthValue,
      bgpRmEntMedConfed               TruthValue,
      bgpRmEntDynPeerRestartTime      Unsigned32,
      bgpRmEntCheckFirstAsNum         TruthValue,
      bgpRmEntRibSizeWarning          Unsigned32,
-- Begin Versa change {
      bgpRmEntRtiName                 OCTET STRING,
      bgpRmEntLmgrJoinStatus          BgpMjStatus,
      bgpRmEntLmgrEntIndex            Unsigned32,
      bgpRmEntDebug                   BgpDebugFlags,
      bgpRmEntLevel                   Unsigned32,
      bgpRmEntAllFlagsEnabled         TruthValue,
      bgpRmEntRxTxFlagsEnabled        TruthValue,
      bgpRmEntProcId                  Unsigned32,
      bgpRmEntRestartMultiplier       Unsigned32,
      bgpRmEntEnableAlarms            TruthValue,
-- End Versa change }
      bgpRmEntVrfName                 VrfName,
      bgpRmEntDynPeerLimit            Unsigned32,
      bgpRmEntTableVersion            Unsigned32,
      bgpRmEntHelperOnly              TruthValue,
      bgpRmEntInterClientReflEnabled  TruthValue,
      bgpRmEntConfigRtRefresh         TruthValue,
      bgpRmEntSupportIpv4             TruthValue,
      bgpRmEntUseHalProgramming       TruthValue
-- Begin Versa change {
      , bgpRmEntTenantId              Unsigned32,
      bgpRmEntStaleGr                 TruthValue,
      bgpRmEntSlaCommunity            BgpExtendedCommunity,
      bgpRmEntSooAuto                 TruthValue,
      bgpRmEntSiteId                  Unsigned32,
      bgpRmEntCliId                   Unsigned32,
      bgpRmEntTenantName              OCTET STRING,
      bgpRmEntVPSiteInfoLocal         TruthValue,
      bgpRmEntVPSiteInfoRemote        TruthValue,
      bgpRmEntCommOldFormat           TruthValue
-- End Versa change }
      }

  bgpRmEntIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies a RIB Manager entity."
    ::= { bgpRmEntEntry 1 }

  bgpRmEntRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status for this RIB Manager Entity Table entry,
                 used to create and destroy table entries."
    ::= { bgpRmEntEntry 2 }

  bgpRmEntAdminStatus OBJECT-TYPE
    SYNTAX      BgpAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The administrative status of this RIB Manager entity,
                 used to activate and deactivate RM."
    DEFVAL      { adminStatusDown }
    ::= { bgpRmEntEntry 3 }

  bgpRmEntOperStatus OBJECT-TYPE
    SYNTAX      BgpOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current operational status of this RIB Manager
                 entity."
    ::= { bgpRmEntEntry 4 }

  bgpRmEntAsSize OBJECT-TYPE
    SYNTAX      BgpAsSize
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The size of AS numbers.

                 The semantics of this are determined as per RFC 4893.  It is
                 equivalent to the Base Scalar bgpM2AsSize.  This field can
                 only be changed when the Admin Status is down."
    DEFVAL      { twoOctet }
    ::= { bgpRmEntEntry 5 }

  bgpRmEntLocalAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The local autonomous system number.

                 For a router not in a confederation, it is equivalent to
                 the Base Scalar bgpM2LocalAs.  For a router in a
                 confederation, it is equivalent to the Base Scalar
                 bgpM2ConfederationId.  If bgpRmEntConfederationId is not
                 0, then this router is in a confederation.

                 If the bgpAsSize is twoOctet, then the range is
                 constrained to be 0-65535.  A non-mappable 4-octet AS
                 number should only be used when all BGP speakers within
                 the AS support 4-octet AS numbers.

                 This field can only be changed when the Admin Status is
                 down."
    ::= { bgpRmEntEntry 6 }

  bgpRmEntConfederationId OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The confederation identifier.

                 This is an externally visible autonomous system number
                 that identifies the confederation as a whole.

                 This field is only valid if the router is in a
                 confederation.  This field must be 0 if and only if the
                 router is not in a confederation.  When this field is non
                 zero, the local AS number (bgpRmEntLocalAs) is used within
                 the confederation.

                 If the bgpAsSize is twoOctet, then the range is
                 constrained to be 0-65535.  A non-mappable 4-octet AS
                 number should only be used when all BGP speakers within
                 the confederation support 4-octet AS numbers.

                 This field can only be changed when the Admin Status is
                 down."
   DEFVAL { 0 }
    ::= { bgpRmEntEntry 7 }

  bgpRmEntLocalIdentifier OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The BGP Identifier of the local system. This is a generic
                 identifier and not necessarily an IP address.  This field
                 can only be changed when the Admin Status is down.
                 It is equivalent to the Base Scalar bgpM2LocalIdentifier."
    ::= { bgpRmEntEntry 8 }

  bgpRmEntClusterId OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The configured Cluster-ID of the local router.
                 A value of 0.0.0.0 indicates the absence of this
                 value.  This field can only be changed when the Admin
                 Status is down.  The RM entity will act as a route reflector
                 if any peer is configured to be a client.  If no cluster ID is
                 explicitly configured here, the Router ID will be used.
                 It is equivalent to the Base Scalar Route Reflector Extension
                 entry bgpM2ClusterId."
    DEFVAL { '00000000'h }
    ::= { bgpRmEntEntry 9 }

  bgpRmEntIpv4MultiSupport OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "This value is TRUE if Multicast IPv4 is supported.
                 This field can only be changed when the Admin Status is
                 down."
    DEFVAL { false }
    ::= { bgpRmEntEntry 10 }

  bgpRmEntVpnIpv4Support OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "This value is TRUE if VPN-IPv4 addresses for MPLS/BGP
                 VPNs are supported.  This field can only be changed when
                 the Admin Status is down."
    DEFVAL { false }
    ::= { bgpRmEntEntry 11 }

  bgpRmEntFlapDeltat OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is the time granularity used to perform all decay
                 computations.  This field can only be changed when the
                 Admin Status is down."
    DEFVAL { 1 }
    ::= { bgpRmEntEntry 12 }

  bgpRmEntFlapReusemax OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is the time corresponding to the last reuse list. This
                 is the maximum value of T-hold that may be configured in the
                 bgpFlapConfigTable table.  This field can only be changed
                 when the Admin Status is down."
    DEFVAL { 3600 }
    ::= { bgpRmEntEntry 13 }

  bgpRmEntFlapReusesize OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is the number of reuse lists.  This field, together with
                 bgpRmEntFlapReusemax, fixes the time interval that each reuse
                 list covers.  This field can only be changed when the Admin
                 Status is down."
    DEFVAL { 256 }
    ::= { bgpRmEntEntry 14 }

  bgpRmEntFlapReusearray OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is the size of the reuse index arrays.  This size
                 determines the accuracy with which suppressed routes can be
                 placed within the set of reuse lists when suppressed for a
                 long time.  This field can only be changed when the Admin
                 Status is down.

                 This field has a range of 1 to 65535."
    DEFVAL { 1024 }
    ::= { bgpRmEntEntry 15 }

  bgpRmEntFlapFreemax OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is the maximum length of time for which a penalty against
                 a route this is not available shall be remebered, across all
                 configurations in the bgpFlapConfigTable.  This field can only
                 be changed when the Admin Status is down."
    DEFVAL { 3600 }
    ::= { bgpRmEntEntry 16 }

  bgpRmEntNoRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is set to TRUE to prevent automatic route refresh
                 when a policy update has occurred.

                 This field allows several policy updates to be followed by
                 a single route refresh once the updates are complete.
                 The policy updates can include updates to route maps, peer
                 configuration and peer group configuration.

                 To do this:
                 -  set this field to TRUE
                 -  make the policy updates
                 -  set this field to FALSE to send out route refreshes when
                    the policy updates are complete."
    DEFVAL { false }
    ::= { bgpRmEntEntry 17 }

  bgpRmEntDefLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The default value used for the local preference if one is not
                 set up through the filtering process.  This field can only be
                 changed when the Admin Status is down."
    DEFVAL { 100 }
    ::= { bgpRmEntEntry 18 }

  bgpRmEntAlwaysCompMed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is set to TRUE to always compare the MULTI-EXIT-DESC
                 route attribute in the BGP decision process, even if the
                 routes in consideration were learned from different autonomous
                 systems.  This field can only be changed when the Admin Status
                 is down."
    DEFVAL { false }
    ::= { bgpRmEntEntry 19 }

  bgpRmEntAggregateMed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If FALSE, then routes will only be aggregated if they
                 have matching MULTI-EXIT-DISC route attributes.  This
                 means that operation is in strict compliance with the
                 specification. If TRUE, routes will be aggregated independent
                 of their MULTI-EXIT-DISC attributes.  This field can only be
                 changed when the Admin Status is down."
    DEFVAL { true }
    ::= { bgpRmEntEntry 20 }

  bgpRmEntDeterministicMed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is set to TRUE to enable deterministic MULTI-EXIT-DESC
                 processing.  If set to FALSE, the selection of routes by the
                 BGP decision process is non-deterministic, because of the
                 rules for comparing MULTI-EXIT-DESC values, and this can lead
                 to flapping of routes.  Setting this value to TRUE modifies
                 the route selection procedure so that the BGP decision process
                 is deterministic.  This field can only be changed when the
                 Admin Status is down."
    DEFVAL { true }
    ::= { bgpRmEntEntry 21 }

  bgpRmEntNhrJoinStatus OBJECT-TYPE
    SYNTAX      BgpMjStatus
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION "The status of the NHR Interface join."
    ::= { bgpRmEntEntry 22 }

  bgpRmEntNhrEntIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "Identifies the NHR Interface routing stub entity.  This field
                 can only be changed when the Admin Status is down."
    ::= { bgpRmEntEntry 23 }

  bgpRmEntI3JoinStatus OBJECT-TYPE
    SYNTAX      BgpMjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the I3 join."
    ::= { bgpRmEntEntry 24 }

  bgpRmEntI3EntIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Identifies the I3 Interface routing stub entity.  This field
                 can only be changed when the Admin Status is down."
    ::= { bgpRmEntEntry 25 }

  bgpRmEntPauseThreshold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The RM component can be configured to limit the amount of
                 work that it carries out in a single cycle of the N-BASE
                 scheduler.  The component maintains a work penalty that is set
                 to zero each time RM is scheduled, and that is incremented
                 during lengthy calculations.  If the penalty reaches the
                 threshold, then RM pauses processing.  The default value for
                 the threshold has been chosen so that the most common UPDATE
                 messages will be processed without pausing."
    DEFVAL { 2000 }
    ::= { bgpRmEntEntry 26 }

  bgpRmEntMaxIBgpEcmpRoutes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum number of Equal Cost BGP next-hops stored by
                 DC-BGP for a route learnt via internal BGP.  This is also
                 the maximum number of network next-hops sent to the
                 routing table manager by DC-BGP for such a route.

                 Note that this field can be over-ridden for a particular
                 <AFI, SAFI> using the bgpRmAfiSafiMaxIBgpEcmpRoutes field
                 in the bgpRmAfiSafiTable.

                 Changing this field when the Admin Status is up will cause
                 all affected Loc-RIB routes to be recalculated."
-- Versa changed default
    DEFVAL { 16 }
    ::= { bgpRmEntEntry 27 }

  bgpRmEntMaxEBgpEcmpRoutes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum number of Equal Cost BGP next-hops stored by
                 DC-BGP for a route learnt via external BGP.  This is also
                 the maximum number of network next-hops sent to the
                 routing table manager by DC-BGP for such a route.

                 Note that this field can be over-ridden for a particular
                 <AFI, SAFI> using the bgpRmAfiSafiMaxEBgpEcmpRoutes field
                 in the bgpRmAfiSafiTable.

                 Changing this field when the Admin Status is up will cause
                 all affected Loc-RIB routes to be recalculated."
-- Versa changed default
     DEFVAL { 16 }
    ::= { bgpRmEntEntry 28 }

  bgpRmEntRestartSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether DC-BGP RIB Manager should execute graceful restart
                 procedures in the event of either a peer failure or its own
                 failure.  This field can only be changed when the Admin Status
                 is down."
-- Versa changed default
    DEFVAL { true }
    ::= { bgpRmEntEntry 29 }

  bgpRmEntMaxRestartTime OBJECT-TYPE
    SYNTAX      Unsigned32 (1..918000)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is the maximum time (in seconds) to wait for a
                 graceful restart capable peer to come back after a
                 peer restart or peer session failure.
                 This value is used when the value advertised by the peer in
                 its own OPEN message exceeds this threshold.  This field is
                 only used if bgpRmEntRestartSupported is set to TRUE.

                 This field has a range of QB_MAX_RESTART_TIME_MIN to
                 QB_MAX_RESTART_TIME_MAX."
    DEFVAL { 120 }
    ::= { bgpRmEntEntry 30 }

  bgpRmEntRecoveryTime OBJECT-TYPE
    SYNTAX      Unsigned32 (1..918000)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The interval which DC-BGP should advertize to its peers as
                 the estimated time (in seconds) it will take for the BGP
                 session to be re-established after a local restart.  This
                 can be used to speed up routing convergence by its peer in
                 case the BGP speaker does not come back after a restart.

                 During a local restart this is also the maximum time DC-BGP
                 will wait for all AFMs to restart.  If any AFMs fail to
                 restart within this time the decision process will commence
                 immediately thereby overriding the timer specified by
                 bgpRmEntSelectDeferTime.

                 This field is also the time DC-BGP will wait for a failed
                 stub to re-join.  If the stub does not come back within this
                 time, DC-BGP will deactivate.

                 This field has a range of QB_RECOVERY_DURATION_MIN to
                 QB_RECOVERY_DURATION_MAX."
    DEFVAL { 120 }
    ::= { bgpRmEntEntry 31 }

  bgpRmEntDoGracefulRestart OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether DC-BGP RIB Manager should execute
                 graceful restart procedures when it is restarted.

                 Executing graceful restart procedures ensures that routing
                 information is preserved while DC-BGP recovers state from
                 local AFMs and peers.

                 DC-BGP can only execute graceful restart procedures if
                 bgpRmEntRestartSupported is also set to true.

                 -  To disable graceful restart support set both
                    bgpRmEntRestartSupported and this field to false.
                    (This field must be set to false if
                    bgpRmEntRestartSupported is false).

                 -  To support graceful restart by peers without executing
                    graceful restart procedures locally set
                    bgpRmEntRestartSupported to true and this field to
                    false.

                 -  To support graceful restart by peers and execute
                    graceful restart procedures locally set both
                    bgpRmEntRestartSupported and this field to true.

                 This field can be updated at any time.  Changes made when
                 initiating DC-BGP restart take effect immediately,
                 otherwise any change will only take effect when DC-BGP is
                 next restarted."
    DEFVAL { false }
    ::= { bgpRmEntEntry 32 }

  bgpRmEntIpv4UniFwdPrsrvd OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "This value should be set to TRUE if Unicast IPv4
                 forwarding state has been preserved over a restart, and the
                 value of the bgpRmEntRestartSupported field is set to TRUE."
    DEFVAL { false }
    ::= { bgpRmEntEntry 33 }

  bgpRmEntIpv4MultiFwdPrsrvd OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "This value should be set to TRUE if Multicast IPv4
                 forwarding state has been preserved over a restart, and the
                 value of the bgpRmEntRestartSupported field is set to TRUE."
    DEFVAL { false }
    ::= { bgpRmEntEntry 34 }

  bgpRmEntVpnIpv4FwdPrsrvd OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "This value should be set to TRUE if VPN-IPv4 forwarding
                 state has been preserved over a restart, and the
                 value of the bgpRmEntRestartSupported field is set to TRUE."
    DEFVAL { false }
    ::= { bgpRmEntEntry 35 }

  bgpRmEntIpv4ArinhJoinStatus OBJECT-TYPE
    SYNTAX      BgpSjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the ARI Interface slave join for querying IPv4
                 next hops.  This is equivalent to the bgpRmArinhJoinStatus
                 field within the bgpRmArinhJoinTable for the IPv4 Unicast
                 table entry."
    ::= { bgpRmEntEntry 36 }

  bgpRmEntIpv4ArinhEntIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Identifies the IPv4 ARI provider entity.  This is equivalent
                 to the bgpRmArinhEntIndex field within the
                 bgpRmArinhJoinTable for the IPv4 Unicast table entry."
    ::= { bgpRmEntEntry 37 }

  bgpRmEntIpv6ArinhJoinStatus OBJECT-TYPE
    SYNTAX      BgpSjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the ARI Interface slave join for querying IPv6
                 next hops.  This is equivalent to the bgpRmArinhJoinStatus
                 field within the bgpRmArinhJoinTable for the IPv6 Unicast
                 table entry."
    ::= { bgpRmEntEntry 38 }

  bgpRmEntIpv6ArinhEntIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Identifies the IPv6 ARI provider entity.  This is equivalent
                 to the bgpRmArinhEntIndex field within the
                 bgpRmArinhJoinTable for the IPv6 Unicast table entry."
    ::= { bgpRmEntEntry 39 }

  bgpRmEntSupportIpv6 OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether this instance supports connections to BGP
                 peers with IPv6 addresses, and understands IPv6 next hop
                 addresses.  This field must not be set to TRUE unless
                 IPv6 support has been licensed.

                 This field can be changed at any time, causing BGP to be
                 immediately deactivated and reactivated."
    DEFVAL { false }
    ::= { bgpRmEntEntry 40 }

  bgpRmEntStrictConfed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "When set to TRUE DC-BGP insists upon strict adherence by peers
                 to the protocol specification, rejecting AS-Path attributes
                 with erroneous AS-Confed segments.  When set to FALSE DC-BGP
                 adopts a more pragmatic approach dealing as best it can with
                 non standard AS-Path information.  This latter approach can be
                 useful in allowing interoperability with older, non-standards
                 compliant peers.  To be specific, the following rules are
                 NOT applied to incoming BGP UPDATEs when this field is FALSE.

                 - Confederation AS Path information is not permitted if
                   either the local BGP router is not in a confederation, or
                   if the BGP peer is not in the local BGP router's
                   confederation.

                 - If the BGP peer is in the local BGP router's confederation
                   then the AS Path must contain confederation segments, and
                   the first AS Path segment must be of type
                   AS_CONFED_SEQUENCE.

                 This field can only be changed when the Admin Status is down."
    DEFVAL { false }
    ::= { bgpRmEntEntry 41 }

  bgpRmEntOrfSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether DC-BGP RIB Manager should support Cooperative Route
                 Filtering (commonly referred to as Outbound Route Filtering
                 or ORF).

                 This field can only be changed when the Admin Status is
                 down."
     DEFVAL { false }
     ::= { bgpRmEntEntry 42 }

  bgpRmEntCiscoPrefixSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether DC-BGP RIB Manager should advertise support for
                 the proprietary Cisco ORF prefix type.

                 This field can only be changed when the Admin Status is
                 down and is only relevant if ORF support is enabled."
     DEFVAL { false }
     ::= { bgpRmEntEntry 43 }

  bgpRmEntSelectDeferTime OBJECT-TYPE
    SYNTAX      Unsigned32 (1..918000)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum time (in seconds) following local restart that
                 DC-BGP will wait before performing route selection.

                 The value specified should be large enough to provide all
                 peers with enough time to send all their routes.

                 The value must be greater than or equal to
                 bgpRmEntRecoveryTime.

                 This field is only relevant if bgpRmEntRestartSupported is
                 TRUE.

                 This field has a range of QB_SELECT_DEFER_TIME_MIN to
                 QB_SELECT_DEFER_TIME_MAX."
-- Versa changed default
    DEFVAL { 120 }
    ::= { bgpRmEntEntry 44 }

  bgpRmEntStalePathTime OBJECT-TYPE
    SYNTAX      Unsigned32 (1..918000)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum time (in seconds) that DC-BGP will wait
                 following a peer restart or peer session failure before
                 removing stale routes from that peer.

                 The value must be greater than or equal to
                 bgpRmEntMaxRestartTime.

                 This field is only relevant if bgpRmEntRestartSupported is
                 TRUE.

                 This field has a range of QB_STALE_PATH_TIME_MIN to
                 QB_STALE_PATH_TIME_MAX."
-- Versa changed default
    DEFVAL      { 120 }
    ::= { bgpRmEntEntry 45 }

  bgpRmEntNonPersistentAros OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-create
     STATUS      obsolete
     DESCRIPTION "This field is now retired."
     DEFVAL      { false }
     ::= { bgpRmEntEntry 46 }

  bgpRmEntAroRouteThreshold OBJECT-TYPE
     SYNTAX      Unsigned32
     MAX-ACCESS  read-create
     STATUS      obsolete
     DESCRIPTION "This field is now retired."
     DEFVAL       { 0 }
     ::= { bgpRmEntEntry 47 }

  bgpRmEntMaxActiveAroGroups OBJECT-TYPE
     SYNTAX      Unsigned32
     MAX-ACCESS  read-create
     STATUS      obsolete
     DESCRIPTION "This field is now retired."
     DEFVAL       { 0 }
     ::= { bgpRmEntEntry 48 }

  bgpRmEntNumArosInGroup OBJECT-TYPE
     SYNTAX      Unsigned32
     MAX-ACCESS  read-create
     STATUS      obsolete
     DESCRIPTION "This field is now retired."
     DEFVAL      { 0 }
     ::= { bgpRmEntEntry 49 }

  bgpRmEntNumAroRoutes OBJECT-TYPE
     SYNTAX       Counter32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION  "The total number of Adj-RIB-Out routes currently allocated
                   across all Adj-RIBs-Out.

                   When additional paths are enabled, routes with different
                   path ID values count as different prefixes."
::= {bgpRmEntEntry 50 }

  bgpRmEntPeakNumAroRoutes OBJECT-TYPE
     SYNTAX       Counter32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION  "The peak number of Adj-RIB-Out routes that have been
                   allocated at any one time.

                   When additional paths are enabled, routes with different
                   path ID values count as different prefixes.

                   This counter can be reset to the current
                   bgpRmEntNumAroRoutes value by setting the bgpRmEntClearStats
                   field to true."
     ::= {bgpRmEntEntry 51 }

  bgpRmEntClearStats OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to true to reset the bgpRmEntPeakNumAroRoutes field
                 and to clear the bgpRmAfiSafiTotNumPrefixAllocs,
                 bgpRmAfiSafiTotNumRouteAllocs,
                 bgpRmAfiSafiTotNumPrefixFrees and
                 bgpRmAfiSafiTotNumRouteFrees counters.  Reading the value
                 of this field has no meaning."
    ::= { bgpRmEntEntry 52 }

  bgpRmEntFastExtFallover OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether DC-BGP is configured to perform fast
                 external fallover.

                 When bgpRmEntFastExtFallover is 'true', BGP sessions to
                 directly connected EBGP peers fail as soon as a loss of
                 reachability is detected, instead of waiting for the TCP
                 session to time out.

                 Note that this is only applied to peers that are known to
                 be directly connected - in other words, peers that have
                 bgpPeerTtl set to 1, or that are identified by interface
                 only.

                 In addition, DC-BGP must be able to determine the
                 interface over which the connection to the peer has been
                 established.  Therefore, this only applies to peers
                 identified by interface only or those with a remote
                 address that corresponds to a unique local subnet."
   DEFVAL       { false }
    ::= { bgpRmEntEntry 53 }

  bgpRmEntRemainDelayTime OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The maximum time remaining until route selection takes
                 place following a restart, in hundredths of a second.  This
                 is the time left until the timer with duration
                 bgpRmEntSelectDeferTime pops."
    ::= { bgpRmEntEntry 54 }

  bgpRmEntPathAttrs OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of path attributes present."
    ::= { bgpRmEntEntry 55 }

  bgpRmEntAggSplitHorizon OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether DC-BGP should apply split-horizon
                 processing when advertising locally generated aggregate
                 routes to a peer.

                 If set to TRUE, locally generated aggregate routes will not
                 be advertised to any peer that advertised a route that
                 contributed to the aggregate.

                 If set to FALSE, this check will not be performed."
-- Versa changed default
    DEFVAL       { false }
    ::= { bgpRmEntEntry 56 }

  bgpRmEntAggAdvSuppr OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field governs the behaviour of DC-BGP when a
                 locally-generated, summary aggregate route cannot be
                 advertised to a peer.

                 If set to TRUE, DC-BGP should attempt to advertise the
                 suppressed routes that contributed to the aggregate.

                 If set to FALSE, the suppressed routes will not be
                 advertised."
    DEFVAL       { true }
    ::= { bgpRmEntEntry 57 }

  bgpRmEntUpdateGroups OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field indicates that DC-BGP should combine peers into
                 update groups.  This means that peers which have similar
                 configuration and export policies for a particular
                 AFI/SAFI will share a single Adj-RIB-Out and will receive
                 the same set of updates for that AFI/SAFI.

                 The identity of the update group that a peer is placed in
                 for a particular AFI/SAFI can be found in the
                 bgpPeerAfiSafiStUpdateGroup field for the peer.

                 Information about update groups, including the effective
                 configuration and export policy that is shared by the
                 peers in the update group can be found in the
                 bgpUpdateGroupTable.  The members of an update group can
                 be found in the bgpUpdateGroupMembershipTable.

                 Note that setting bgpRmEntUpdateGroups to 'true' has the
                 following restrictions.

                 -  Split-horizon aggregates must be disabled
                    (bgpRmEntAggSplitHorizon must be 'false').

                 Inconsistent entity MIB settings will be rejected.

                 Enabling update groups also has the following limitations.

                 -  The value of bgpPeerCheckNextHop is ignored (assumed to
                    be 'false').

                 -  The use of ORF (Outbound Route Filtering) is
                    restricted.  In particular, DC-BGP will continue to
                    send outbound route filters to peers, but received
                    filters are ignored.

                 -  Sender-side loop detection is disabled for peers in
                    an update group.

                 This field can only be changed when the Admin Status is
                 down."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 58 }

  bgpRmEntPhase3DelayTime OBJECT-TYPE
    SYNTAX      Unsigned32 (0..3600)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The time in seconds after the number of Established BGP
                 sessions changes from zero to one in which phase 3 work will
                 be postponed if there is still phase 1 or phase 2 work to
                 do.

                 The allows the Loc-RIB to stabilize before advertising
                 routes to peers, preventing the same route being advertised
                 multiple times."
    DEFVAL       { 120 }
    ::= { bgpRmEntEntry 59 }

  bgpRmEntTrapOperState OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the Oper State change
                 trap is used.

                 If in use DC-BGP will send a trap whenever the operational
                 status of the RM Entity changes to 'up', 'down' or
                 'actFailed'."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 60 }

  bgpRmEntMaxASLimit OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum number of AS numbers in the AS_PATH attribute
                 that is allowed in routes learned from peers.  Routes
                 whose AS_PATH has more AS numbers than this limit are
                 filtered out.

                 A value of zero means that no limit is set.

                 Changing the value of this field does not affect existing
                 routes."
    DEFVAL       { 0 }
    ::= { bgpRmEntEntry 61 }

  bgpRmEntRestartTimeLeft OBJECT-TYPE
       SYNTAX       Unsigned32 (0..4294967295)
       UNITS        "seconds"
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Remaining time before BGP graceful restart times out."
    ::= { bgpRmEntEntry 62 }

  bgpRmEntRestartExitReason OBJECT-TYPE
       SYNTAX       BgpRestartExitReason
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Describes the outcome of the last attempt at a graceful
          restart.  If the value is 'none', no restart has yet been
          attempted.  If the value is 'inProgress', a restart
          attempt is currently underway."
    ::= { bgpRmEntEntry 63 }

  bgpRmEntAsPathMultipathRelax OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field indicates whether BGP routes with different
                 AS_PATHs can be used as equal cost routes.

                 If this is FALSE then DC-BGP only treats two BGP routes as
                 equal cost if several of their attributes, including the
                 AS_PATH, are identical.  This is the default behavior.

                 If this is TRUE then DC-BGP can treat two BGP routes as
                 equal cost even if their AS_PATHs differ, as long as their
                 AS_PATH lengths and other relevant attributes are the
                 same.  This allows routes with different AS_PATHs to be
                 programmed into the forwarding table as equal cost
                 multipath routes.

                 When multipath-relax is enabled DC-BGP still selects one
                 of the multipath routes as the best route to advertise to
                 its peers.  The AS_PATH advertised to peers reflects the
                 best route but not other equal cost routes, so it does not
                 reflect the full set of ASs on the forwarding path.  This
                 means that enabling multipath-relax can cause routing
                 loops.  Therefore multipath-relax should only be enabled
                 if the network administrator is sure that routing loops
                 cannot occur.

                 This field can only be changed when the Admin Status is
                 down."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 64 }

  bgpRmEntAsPathIgnore OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field indicates whether DC-BGP ignores AS path length
                 when determining the preferred route from two BGP routes.

                 If this is FALSE then DC-BGP treats the BGP route with the
                 shorter AS path length as being the preferred route.  This
                 is the default behavior and is required for DC-BGP to use
                 the decision process as defined in the BGP standards.

                 If this is TRUE then DC-BGP ignores the AS path length
                 when determining the preferred route.  Other attributes
                 will be used to determine the preferred route.

                 All BGP routers in an AS should have the same
                 configuration for this field to avoid routing loops.

                 This field can only be changed when the Admin Status is
                 down."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 65 }

  bgpRmEntPreferExistingRoute OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field indicates how DC-BGP handles a tie when
                 determining the preferred route between two routes of
                 essentially equal cost received from BGP peers external to
                 the local AS or confederation.

                 If this is FALSE then DC-BGP uses the standard algorithm
                 tie-breaker, comparing the peer BGP router ID, cluster
                 list length and peer IP address as tie breakers.  This is
                 the default behavior and is required for DC-BGP to use the
                 decision process as defined in the BGP standards.

                 If this is TRUE then DC-BGP always chooses a route that is
                 currently selected as the best path to break the tie.  If
                 there is no current best path, or for routes received from
                 BGP peers internal to the local AS or confederation,
                 DC-BGP continues to use the standard algorithm.

                 All BGP routers in an AS should have the same
                 configuration for this field to avoid routing loops.

                 This field can only be changed when the Admin Status is
                 down."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 66 }

  bgpRmEntMedMissingAsWorst OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field indicates whether DC-BGP treats the multi-exit
                 discriminator (MED) for a BGP route received with no MED
                 as having the worst possible priority value.

                 If this is FALSE then DC-BGP treats the MED for such a
                 route as being zero (the best or most preferred priority
                 value).  This is the default behavior and is required for
                 DC-BGP to use the decision process as defined in the BGP
                 standards.

                 If this is TRUE then DC-BGP treats the MED for such a
                 route as being 0xFFFFFFFF (the worst or least preferred
                 priority value).

                 All BGP routers in an AS should have the same
                 configuration for this field to avoid routing loops.

                 This field can only be changed when the Admin Status is
                 down."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 67 }

  bgpRmEntMedConfed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field indicates whether DC-BGP carries out multi-exit
                 discriminator (MED) comparison to determine the preferred
                 route from two BGP routes originating from the local
                 confederation.

                 If this is FALSE then DC-BGP does not carry out MED
                 comparison between BGP routes whose AS paths are either
                 empty or contain only confederation segment types.

                 If this is TRUE then DC-BGP additionally carries out MED
                 comparison between two BGP routes matching the above criteria.
                 This is the default behavior and is required for DC-BGP to
                 use the decision process as defined in the BGP standards.

                 All BGP routers in an AS should have the same
                 configuration for this field to avoid routing loops.

                 This field can only be changed when the Admin Status is
                 down."
    DEFVAL       { true }
    ::= { bgpRmEntEntry 68 }

  bgpRmEntDynPeerRestartTime OBJECT-TYPE
    SYNTAX      Unsigned32 (0..3600)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The time to wait (in seconds) for dynamic peers to
                 reconnect following local restart.

                 DC-BGP will wait at least this time following local
                 restart before performing route selection.

                This is important for graceful restart with dynamic peers
                - if you do not support graceful restart with dynamic
                peers this should be set to zero.

                The value specified should be large enough to provide
                dynamic BGP peers with enough time to reconnect following
                local restart.  To ensure this the value should be greater
                than the ConnectRetry interval
                (bgpPeerConnectRetryInterval) used by the dynamic peers.

                The value must be less than or equal to
                bgpRmEntRecoveryTime and bgpRmEntSelectDeferTime.

                This field is only relevant if bgpRmEntRestartSupported is
                TRUE."
    DEFVAL      { 0 }
    ::= { bgpRmEntEntry 69 }

  bgpRmEntCheckFirstAsNum OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the first AS number in the AS_PATH
                 attribute in an UPDATE received from a peer should be
                 checked to make sure it is the same as the AS number of
                 the peer.  This flag only applies to EBGP peers.  It
                 should be set to True unless BGP peers have a specific
                 policy that means they do not prepend their AS number so
                 that it is the first in the path.

                 The setting of this field may be overridden by the
                 equivalent configuration in the peer or peer group if that
                 configuration is not set to inherit from the entity.

                 This field can be changed at any time, but only takes effect
                 for a particular peer when the peer session is restarted."
    DEFVAL { true }
    ::= { bgpRmEntEntry 70 }

  bgpRmEntRibSizeWarning OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Limit on the total number of routes across all of DC-BGP's
                 Adj-RIBs-IN across all <AFI, SAFI>.  (In other words, the
                 count of all locally-redistributed routes and routes
                 learned from peers.)

                 Once this limit has been reached, DC-BGP sends an
                 AMB_BGP_TRAP_RIB_SIZE_WARNING trap, and takes no further
                 action and will continue to accept new routes.  It is the
                 responsibility of the management layer or end user to take
                 action to reduce the RIB size, for example, by
                 deactivating peers.

                 DC-BGP will send another instance of this trap if the
                 number of routes later falls below this limit.

                 A value of zero (0) means that no traps will be sent.

                 This field can be changed while DC-BGP is active."
    DEFVAL       { 0 }
    ::= { bgpRmEntEntry 71 }

-- Begin Versa change {

  bgpRmEntRtiName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This value describes routing instance name. This value
                 is passed, while configuring the routing instance."
    ::= { bgpRmEntEntry 72 }

  bgpRmEntLmgrJoinStatus OBJECT-TYPE
    SYNTAX      BgpMjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the LMGR join."
    ::= { bgpRmEntEntry 73 }

  bgpRmEntLmgrEntIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Identifies the LMGR entity.  This field
                 can only be changed when the Admin Status is down."
    ::= { bgpRmEntEntry 74 }


  bgpRmEntDebug OBJECT-TYPE
    SYNTAX      BgpDebugFlags
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set debug flags of BGP Instance."
    ::= { bgpRmEntEntry 75 }

  bgpRmEntLevel OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set debug level of BGP Instance."
    DEFVAL       { 1 }
    ::= { bgpRmEntEntry 76 }

  bgpRmEntAllFlagsEnabled OBJECT-TYPE
     SYNTAX               TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to determine  all flags enabled."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 77 }

  bgpRmEntRxTxFlagsEnabled OBJECT-TYPE
     SYNTAX               TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to determine rx/tx flags enabled."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 78 }

  bgpRmEntProcId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is used to get BGP RM entity processId."
    ::= { bgpRmEntEntry 79 }

  bgpRmEntRestartMultiplier OBJECT-TYPE
    SYNTAX      Unsigned32 (1..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set multiplier for all configured
                 graceful restart time except bgpRmEntDynPeerRestartTime."
    DEFVAL       { 1 }
    ::= { bgpRmEntEntry 80 }

  bgpRmEntEnableAlarms OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to enable alarms."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 81 }
-- End Versa change }

  bgpRmEntVrfName OBJECT-TYPE
        SYNTAX VrfName
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The text name of the VRF in which this entity instance is
             running.

             If this field is a zero-length string then it is assumed
             that this entity instance is running in the 'global'
             context.

             This field follows replaceOnlyWhileDisabled behavior and
             cannot be changed when the row is active."
        DEFVAL { "" }
    ::= { bgpRmEntEntry 82 }

  bgpRmEntDynPeerLimit OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Limit on the total number of dynamic peers that can be
                 accepted.

                 A value of zero (0) means no limit.

                 This field can be changed while DC-BGP is active.  If this
                 results in a limit smaller than the current number of
                 dynamic peers, then existing peers are not affected, but
                 no new dynamic peers will be accepted until the number of
                 existing peers drops below the limit."
    DEFVAL      { 0 }
    ::= { bgpRmEntEntry 83 }

  bgpRmEntTableVersion OBJECT-TYPE
       SYNTAX       Unsigned32 (0..4294967295)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
                 "The table version number of the Loc-RIB.  Initialized to 1
                  when BGP starts or restarts, and is incremented every time
                  the Loc-RIB is recalculated."
    ::= { bgpRmEntEntry 84 }

  bgpRmEntHelperOnly OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If graceful restart is supported (bgpRmEntRestartSupported
                 is True), this field controls whether DC-BGP will act as a
                 helper node only - its effect is to force BGP restart
                 capabilities to be advertised to peers with no AFI/SAFIs
                 listed.  Peers will assume that this node can support the peer
                 during graceful restart, but that this node will not retain
                 any forwarding state if it restarts.

                 This field can be changed while DC-BGP is active, but the
                 new setting will not take effect until RM is restarted.
                 The field should ony be set to True if the local node does
                 not support Graceful Restart itself, so is not expected to
                 change for an active node."
    DEFVAL { false }
    ::= { bgpRmEntEntry 85 }

  bgpRmEntInterClientReflEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether DC-BGP supports acting as a route reflector
                between route reflector clients.

                Routes will not be reflected between two peers that are
                configured to be route reflector clients in the
                bgpPeerReflectorClient field if this field takes the value
                AMB_FALSE.

                This field can be changed at any time.  If it is changed,
                then the ARO for any peers that are route reflector
                clients is recalculated."
    DEFVAL { true }
    ::= { bgpRmEntEntry 86 }

  bgpRmEntConfigRtRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this field to 'true' to trigger a route refresh for
                all peers.  Peers that do not support route refresh will
                have their sessions toggled.

                Reading the value of this field has no meaning.  The field
                is not returned on a MIB Get."
    DEFVAL { false }
    ::= { bgpRmEntEntry 87 }

  bgpRmEntSupportIpv4 OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether this instance supports connections to
                 BGP peers with IPv4 addresses, and understands IPv4 next
                 hop addresses.

                 This field can be changed at any time, causing BGP to be
                 immediately deactivated and reactivated. "
    DEFVAL { true }
    ::= { bgpRmEntEntry 88 }

  bgpRmEntUseHalProgramming OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether DC-BGP is being used in a system
                 integrated with the HAL components.

                 When this field is set to true, DC-BGP will request
                 specific types of route from DC-RTM depending on the
                 required encapsulation.  For example, DC-BGP will request
                 an MPLS-capable path for EVPN-MPLS routes.

                 Note that the value of this field must be determined as
                 part of the integration of DC-BGP and must not be exposed
                 to end users."
    DEFVAL { false }
    ::= { bgpRmEntEntry 89 }

-- Begin Versa change {

  bgpRmEntTenantId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set tenant id."
    ::= { bgpRmEntEntry 90 }

  bgpRmEntStaleGr OBJECT-TYPE
     SYNTAX       TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to change the behavior when route delete
                comes, stale entry does not get deleted."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 91 }

  bgpRmEntSlaCommunity OBJECT-TYPE
    SYNTAX      BgpExtendedCommunity
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to attach specified extended community to
                 all redistributed routes."
    ::= { bgpRmEntEntry 92 }

  bgpRmEntSooAuto OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to attach auto-generated extended community
                 to all redistributed local host routes."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 93 }

  bgpRmEntSiteId OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to specify site-id for this router in sdwan
                 case. Else set to 0."
    DEFVAL       { 0 }
    ::= { bgpRmEntEntry 94 }

  bgpRmEntCliId OBJECT-TYPE
    SYNTAX      Unsigned32      
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set bgp cli id."
    ::= { bgpRmEntEntry 95 }

  bgpRmEntTenantName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This value describes org name."
    ::= { bgpRmEntEntry 98 }

  bgpRmEntVPSiteInfoLocal OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to include local site information
                 (tenant-name(s), wan-ip(s), cpu-load, mem-load, site-identification)
                 in versa-private routes."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 99 }

  bgpRmEntVPSiteInfoRemote OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to include remote site information
                 (tenant-name(s), wan-ip(s), cpu-load, mem-load, site-identification)
                 in versa-private routes."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 100 }

  bgpRmEntCommOldFormat OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "If set to 'true' the set and match communities in the route
                 maps will be processed in the old format i.e. as a 4 byte
                 number."
    DEFVAL       { false }
    ::= { bgpRmEntEntry 101 }

-- End Versa change }

-------------------------------------------------------------------------------

  bgpPeer OBJECT IDENTIFIER ::= { bgpMib 3 }

  bgpPeerData OBJECT IDENTIFIER ::= { bgpPeer 1 }

  --
  -- BGP Peer Data Table
  --
  -- This table contains all the information required for each peer including
  -- protocol parameters, statistics and policy configuration.  A row in this
  -- table is created for each peer the RIB Manager knows about.
  --

  bgpPeerTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_PER
    SYNTAX      SEQUENCE OF BgpPeerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "BGP peer configuration table.

                 This table allows a user to configure individual BGP peers.

                 This table is a configuration table - all status, statistics
                 and control fields are deprecated in favor of the BGP peer
                 status table (bgpPeerStatusTable).

                 This table does not contain entries for dynamic peers.

                 If a user configures a new BGP peer that matches an existing
                 dynamic BGP peer then DC-BGP terminates any BGP session with
                 the dynamic BGP peer to force it to use the new
                 configuration.

                 If the peer belongs to a peer group, then the peer's
                 configuration values may be taken from either the peer MIB
                 or the peer group MIB.  Which values are used is controlled
                 by the config_usage, config_usage2 and config_usage3 fields
                 in the peer MIB.  These fields contains a set of bit flags.

                 These fields may themselves be overridden by per-AFI/SAFI
                 configuration as described in the description of
                 bgpPeerAfiSafiTable.

                 Unless specified under the description of a MIB field below,
                 or overridden by the bgpPeerAfiSafiTable, the following
                 applies.

                 -  Each configuration field in the bgpPeerTable MIB has a
                    copy in the bgpPeerGrTable MIB and a corresponding config
                    usage flag.

                 -  If the bit flag is set, then the value in the
                    bgpPeerGrTable MIB is used provided the MIB row exists
                    and is active.  Otherwise, the value in the bgpPeerTable
                    MIB is used.

                 -  If the configuration field also has a per-afi-safi
                    version in the bgpPeerAfiSafiTable MIB, then there is
                    also a per-afi-safi version in the
                    bgpPeergrAfiSafiTable MIB and the bit flag applies to
                    these values as well."
    ::= { bgpPeerData 1 }

  bgpPeerEntry OBJECT-TYPE
    SYNTAX      BgpPeerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about the connection with
                 a BGP peer."
    INDEX { bgpRmEntIndex,
            bgpPeerLocalAddrType,
            bgpPeerLocalAddr,
            bgpPeerLocalPort,
            bgpPeerRemoteAddrType,
            bgpPeerRemoteAddr,
            bgpPeerRemotePort,
            bgpPeerLocalAddrScopeId}
    ::= { bgpPeerTable 1 }

  BgpPeerEntry ::= SEQUENCE {
      bgpPeerIdentifier                   BgpIdentifier,
      bgpPeerState                        BgpPeerStates,
      bgpPeerRowStatus                    RowStatus,
      bgpPeerAdminStatus                  BgpAdminStatus,
      bgpPeerOperStatus                   BgpOperStatus,
      bgpPeerLocalAddrType                InetAddressType,
      bgpPeerLocalAddr                    InetAddress,
      bgpPeerLocalPort                    InetPortNumber,
      bgpPeerLocalNm                      Unsigned32,
      bgpPeerRemoteAddrType               InetAddressType,
      bgpPeerRemoteAddr                   InetAddress,
      bgpPeerRemotePort                   InetPortNumber,
      bgpPeerRemoteAs                     BgpAutonomousSystemNumber,
      bgpPeerIndex                        Unsigned32,
      bgpPeerConfedMember                 TruthValue,
      bgpPeerReflectorClient              BgpPeerReflectorClientType,
      bgpPeerTrapEstab                    TruthValue,
      bgpPeerTrapBackw                    TruthValue,
      bgpPeerCapsSupport                  TruthValue,
      bgpPeerLastError                    OCTET STRING,
      bgpPeerLastErrorDataLen             Unsigned32,
      bgpPeerLastErrorData                OCTET STRING,
      bgpPeerFsmEstablishedTime           Gauge32,
      bgpPeerInUpdatesElapsedTime         Gauge32,
      bgpPeerConnectRetryInterval         Unsigned32,
      bgpPeerHoldTimeConfigd              Unsigned32,
      bgpPeerKeepAliveConfigd             Unsigned32,
      bgpPeerMinASOriginationInterval     Unsigned32,
      bgpPeerMinRouteAdvertiseInterval    Unsigned32,
      bgpPeerHoldTime                     Integer32,
      bgpPeerKeepAlive                    Integer32,
      bgpPeerInUpdates                    Counter32,
      bgpPeerOutUpdates                   Counter32,
      bgpPeerInTotalMessages              Counter32,
      bgpPeerOutTotalMessages             Counter32,
      bgpPeerFsmEstablishedTransitions    Counter32,
      bgpPeerConnectRetryCount            Counter32,
      bgpPeerClearCnts                    TruthValue,
      bgpPeerConfigPeergr                 Unsigned32,
      bgpPeerConfigIndex                  Unsigned32,
      bgpPeerConfigRtRefresh              TruthValue,
      bgpPeerConfigMaxPrfx                Integer32,
      bgpPeerConfigDropWarn               BgpDropOrWarn,
      bgpPeerConfigPassive                TruthValue,
      bgpPeerConfigOpenDelay              Unsigned32,
      bgpPeerConfigIdleHold               Unsigned32,
      bgpPeerPassword                     OCTET STRING,
      bgpPeerTtl                          Integer32,
      bgpPeerCheckFirstAsNum              BgpTrueFalseOrInherit,
      bgpPeerAggrInclConfedAS             TruthValue,
      bgpPeerMinRouteWithdrawInterval     Unsigned32,
      bgpPeerStalePathTime                Unsigned32,
      bgpPeerCheckNextHop                 TruthValue,
      bgpPeerLocalAddrScopeId             Unsigned32,
      bgpPeerMaxOrfEntries                Unsigned32,
      bgpPeerOrfEntryCount                Counter32,
      bgpPeerPeeringType                  BgpPeeringType,
      bgpPeerSoftResetWithStoredInfo      TruthValue,
      bgpPeerAllowLocalAs                 Unsigned32,
      bgpPeerDisableSenderLoopDetect      TruthValue,
      bgpPeerDisableRouteRefresh          TruthValue,
      bgpPeerFlapStatsClearStat           TruthValue,
      bgpPeerFlapStatsClearMap            Unsigned32,
      bgpPeerLastErrorRcvd                OCTET STRING,
      bgpPeerLastErrorRcvdTime            TimeStamp,
      bgpPeerLastErrorSent                OCTET STRING,
      bgpPeerLastErrorSentTime            TimeStamp,
      bgpPeerLastState                    BgpPeerStates,
      bgpPeerLastEvent                    BgpPeerEvents,
      bgpPeerCapsSent                     BgpCapabilities,
      bgpPeerCapsRcvd                     BgpCapabilities,
      bgpPeerCapsNegotiated               BgpCapabilities,
      bgpPeerRstrSupport                  BgpPeerRestartSupport,
      bgpPeerRstrFamily                   BgpAfiSafiBits,
      bgpPeerRstrRestarting               TruthValue,
      bgpPeerRstrStatus                   BgpPeerRestartStatus,
      bgpPeerRstrRemTime                  TimeInterval,
      bgpPeerRcvdMsgElapsedTime           TimeInterval,
      bgpPeerIdleHoldRemTime              TimeInterval,
      bgpPeerRouteRefrSent                Counter32,
      bgpPeerRouteRefrRcvd                Counter32,
      bgpPeerNxtHopSlf                    BgpNextHopSelf,
      bgpPeerThirdPtyNxtHop               TruthValue,
      bgpPeerNxtHopPeer                   TruthValue,
      bgpPeerTrapPrefix                   TruthValue,
      bgpPeerConfigThreshold              Unsigned32,
      bgpPeerMaxPrfxHold                  Unsigned32,
      bgpPeerSelectedLocalAddrType        InetAddressType,
      bgpPeerSelectedLocalAddr            InetAddress,
      bgpPeerSelectedLocalPort            InetPortNumber,
      bgpPeerSelectedRemotePort           InetPortNumber,
      bgpPeerBfdDesired                   TruthValue,
      bgpPeerBfdStatus                    BfdSessionStatus,
      bgpPeerCeaseErrorSubcode            BgpCeaseErrorSubcode,
      bgpPeerConfAltLocalAs               BgpAutonomousSystemNumber,
      bgpPeerSelectedLocalAs              BgpAutonomousSystemNumber,
      bgpPeerSelectedRemoteAs             BgpAutonomousSystemNumber,
      bgpPeerInPrfxes                     Gauge32,
      bgpPeerOutPrfxes                    Gauge32,
      bgpPeerOutPrfxesAdvertised          Gauge32,
      bgpPeerTrapGrHelperState            TruthValue,
      bgpPeerEnableAttributeDiscard       TruthValue,
      bgpPeerConfAltLocalAsMode           INTEGER,
      bgpPeerSendComm                     TruthValue,
      bgpPeerSendExtComm                  TruthValue,
      bgpPeerConfigUsage                  BgpPeerConfigUsage,
      bgpPeerWeight                       Integer32,
      bgpPeerFallover                     BgpTrueFalseOrInherit,
      bgpPeerConfigUsage2                 BgpPeerConfigUsage2,
      bgpPeerDmzLink                      TruthValue,
-- Begin Versa change {
      bgpPeerRemovePrivate                TruthValue,
      bgpPeerAsOverride                   TruthValue,
-- End Versa change }
      bgpPeerDistListAclIn                Integer32,
      bgpPeerDistListAclOut               Integer32,
      bgpPeerDistListPlIn                 Integer32,
      bgpPeerDistListPlOut                Integer32,
      bgpPeerFilterListIn                 Unsigned32,
      bgpPeerFilterListOut                Unsigned32,
--      bgpPeerAsOverride                   TruthValue,
      bgpPeerAddrSourceIf                 Unsigned32,
      bgpPeerUseImportLocalPref           TruthValue,
      bgpPeerImportLocalPref              Unsigned32,
      bgpPeerUseExportLocalPref           TruthValue,
      bgpPeerExportLocalPref              Unsigned32,
      bgpPeerSlowPeer                     TruthValue,
      bgpPeerConfigUsage3                 BgpPeerConfigUsage3,
      bgpPeerAddrSourceType               InetAddressType,
      bgpPeerAddrSource                   InetAddress,
      bgpPeerMaxPrfxClear                 Unsigned32,
      bgpPeerPrfxThresholdClear           Unsigned32,
      bgpPeerTtlSecurityMinTtl            Integer32,
      bgpPeerRemovePrivateAs              BgpPrivAsActs
      }

  bgpPeerIdentifier OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusIdentifier
                 instead.

                 The BGP Identifier of this entry's BGP peer.

                 This entry is zero unless the bgpPeerState is in the
                 openconfirm or the established state."
    ::= { bgpPeerEntry 2 }

  bgpPeerState OBJECT-TYPE
    SYNTAX      BgpPeerStates
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusState
                 instead.

                 The BGP peer's FSM state."
    ::= { bgpPeerEntry 3 }

  bgpPeerRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status for this BGP peer table entry, used to
                create and destroy table entries."
    ::= { bgpPeerEntry 4 }

  bgpPeerAdminStatus OBJECT-TYPE
    SYNTAX      BgpAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The desired state of the BGP connection.

                 A transition from 'up' to 'down' will cause the BGP  Stop
                 Event to be generated.

                 A transition from 'down' to 'up' will cause the BGP  Start
                 Event to be generated.

                 This parameter can be used to restart BGP peer
                 connections.  Care should be used in providing write
                 access to this object without adequate authentication."
    DEFVAL      { adminStatusDown }
    ::= { bgpPeerEntry 5 }

  bgpPeerOperStatus OBJECT-TYPE
    SYNTAX      BgpOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current operational status of this peer.  This usually
                 reflects the desired AdminStatus, but can contain transitional
                 values and failures."
    ::= { bgpPeerEntry 6 }

  bgpPeerLocalAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The address family of the local address configured for the
                 peering session.

                 Valid values are: unknown(0), ipv4(1) and ipv6(2).

                 A type of ipv6 is only accepted if bgpRmEntSupportIpv6 is
                 TRUE.

                 The value unknown is used if and only if the peer is
                 identified only by interface index.  See
                 bgpPeerLocalAddrScopeId."
    ::= { bgpPeerEntry 7 }

  bgpPeerLocalAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The local address configured for the peering session, or
                 a zero length address if not specified.

                 For outbound connections, if a local address is specified
                 then DC-BGP will bind to the specified local address.
                 Otherwise the local address is selected by the TCP/IP stack
                 for the NM instance configured in the bgpPeerLocalNm field.

                 For incoming connections, if a local address is specified
                 then the incoming connection must match the specified local
                 address.  Otherwise the local address used by the incoming
                 connection is ignored.

                 This should typically be set to the local address that is
                 recognized by the peer, though for directly connected
                 peers (such as EBGP peers) it can be left unspecified.

                 The bgpPeerSelectedLocalAddr field shows the local address
                 actually in use.

                 Note that you can have 2 peer entries to the same remote
                 <address, port> if they come from a different local
                 <address, port>.  To configure this each local
                 <address, port> must be specified explicitly and not be zero
                 length.  You will not be allowed  to do this if you are
                 listening on all addresses as it will be impossible to tell
                 which peer an incoming connection is for.  You must
                 explicitly listen on each local address in this case."
    ::= { bgpPeerEntry 8 }

  bgpPeerLocalPort OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The local port configured for the peering session, or zero
                 if not specified.

                 For outbound connections, if a local port is specified
                 then DC-BGP will bind to the specified local port.
                 Otherwise the local port is selected by the TCP/IP stack.

                 For incoming connections, if a local port is specified
                 then the incoming connection must match the specified local
                 port.  Otherwise the local port used by the incoming
                 connection is ignored.

                 This should typically be set to zero.

                 The bgpPeerSelectedLocalPort field shows the local port
                 actually in use."
    ::= { bgpPeerEntry 9 }

  bgpPeerLocalNm OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The entity index of the Neighbor Manager for peering
                 sessions with this peer.

                 This field can only be changed when the row is not active.

                 This field has no corresponding field in the peer group
                 MIB."
    ::= { bgpPeerEntry 10 }

  bgpPeerRemoteAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The address family of the remote address for the peering
                 session.

                 Valid values are: unknown(0), ipv4(1) and ipv6(2).

                 A type of ipv6 is only accepted if bgpRmEntSupportIpv6 is
                 TRUE.

                 The value unknown is used if and only if the peer is
                 identified only by interface index.  See
                 bgpPeerLocalAddrScopeId."
    ::= { bgpPeerEntry 11 }

  bgpPeerRemoteAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The remote address for the peering session, or a zero
                 length field if not specified in which case this peer is
                 identified only by interface by bgpPeerLocalAddrScopeId.

                 For outbound connections, DC-BGP will connect to the
                 specified remote address.

                 For incoming connections, the incoming connection must match
                 the specified remote address."
    ::= { bgpPeerEntry 12 }

  bgpPeerRemotePort OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The remote port configured for the peering session, or
                 zero if not specified.

                 For outbound connections, if a remote port is specified
                 then DC-BGP will connect to the specified remote port.
                 Otherwise DC-BGP will connect to the well-known port (179)
                 for BGP.

                 For incoming connections, if a remote port is specified
                 then the incoming connection must match the specified remote
                 port.  Otherwise the remote port used by the incoming
                 connection is ignored.

                 This should typically be set to zero.

                 The bgpPeerStatusSelRemotePort field shows the remote port
                 actually in use.

                 You cannot configure a remote port of zero if you have
                 already configured a non-zero remote port for the same
                 remote address.  Similarly you cannot configure a non-zero
                 remote port if you have already configured a port of zero
                 for the same remote address."
    ::= { bgpPeerEntry 13 }

  bgpPeerRemoteAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The remote autonomous system number.  This is ignored for
                 peers that are identified by interface only.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    ::= { bgpPeerEntry 14 }

  bgpPeerIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusPeerIndex
                 instead.

                 The peer index is a unique index for the peer entry in the
                 bgpPeerStatusTable.  It is used to provide an index value
                 for other tables whose data is logically per-peer.

                 The peer index value is fixed until the entry in the
                 bgpPeerStatusTable is destroyed, but it changes if the entry
                 is destroyed and recreated."
    ::= { bgpPeerEntry 15 }

  bgpPeerConfedMember OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the peer is a member
                 of the same confederation that this router is in.

                 This field can only be set to true if the field
                 bgpRmEntConfederationId is non-zero.  Note that the value
                 should be set to true even if the peer is in the same
                 member AS that this router is in.  Member AS numbers are
                 kept internal to the confederation, so it is possible for
                 a member AS number to be the same as the AS number of a
                 neighbor outside the confederation, and so it is not
                 possible to determine whether a peer is in this
                 confederation just by examining the peer's AS number.  The
                 value of this field resolves any ambiguity.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL      { false }
    ::= { bgpPeerEntry 16 }

  bgpPeerReflectorClient OBJECT-TYPE
    SYNTAX      BgpPeerReflectorClientType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether the given peer is a reflector
                client of this router, or not.  A value of nonClient(0)
                indicates that this peer is not a reflector client.  A
                value of client(1) indicates that this peer is a reflector
                client that is not fully meshed with other reflector
                clients.  A value of meshedClient(2) indicates that the
                peer is a reflector client and is fully meshed with all
                other reflector clients.

                For specific AFI/SAFI, this can be configured using
                bgpPeerAfiSafiReflectorClient.

                This field can be changed at any time.  However, if the
                field is changed while the peer is admin_status UP, the
                change will only take effect after the peer has been
                cycled admin_status DOWN and then UP, thus forcing the
                peer session to be restarted.  In this case, until the
                peer is set admin_status DOWN, the peer will be marked as
                out of date (as reported by the config_state field in the
                AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL      { nonClient }
    ::= { bgpPeerEntry 17 }

  bgpPeerTrapEstab OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the Established trap
                 is used.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
-- Versa changed default
    DEFVAL { true }
    ::= { bgpPeerEntry 18 }

  bgpPeerTrapBackw OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the Backward
                 Transition trap is used.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
-- Versa changed default
    DEFVAL { true }
    ::= { bgpPeerEntry 19 }

  bgpPeerCapsSupport OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusCapsSupport instead.

                 Whether or not this peer accepted our local capabilities
                 optional parameter sent on the OPEN message.  This field
                 will not be relevant until the peer has reached open_confirm
                 state.  Note that this field indicates support or otherwise
                 of the capabilities optional parameter, not a specific
                 capability."
    ::= { bgpPeerEntry 20 }

  bgpPeerLastError OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (2))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusLastError
                 instead.

                 The last error code and subcode sent or received on this
                 connection.  If no error has occurred, this field is zero.
                 Otherwise, the first byte of this two byte OCTET STRING
                 contains the error code, and the second byte contains the
                 subcode."
    ::= { bgpPeerEntry 21 }

  bgpPeerLastErrorDataLen OBJECT-TYPE
    SYNTAX      Unsigned32 (0..128)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusLastErrorDataLen instead.

                 The length of the last error data.  If this is zero no
                 error data was provided or generated."
    ::= { bgpPeerEntry 22 }

  bgpPeerLastErrorData OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusLastErrorData instead.

                 The last error code's data seen by this peer on this
                 connection."
    ::= { bgpPeerEntry 23 }

  bgpPeerFsmEstablishedTime OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusFsmEstablishedTime instead.

                 This timer indicates how long in seconds this peer has
                 been in the Established state or how long since this peer
                 was last in the Established state.  It is set to zero when
                 a new peer is configured or the router is booted."
    ::= { bgpPeerEntry 24 }

  bgpPeerInUpdatesElapsedTime OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusInUpdatesElpsTime instead.

                 Elapsed time in seconds since the last BGP message was
                 received from the peer.  Each time bgpPeerStatusInUpdates is
                 incremented, the value of this object is set to zero (0)."
    ::= { bgpPeerEntry 25 }

  bgpPeerConnectRetryInterval OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval for the ConnectRetry timer.  The suggested
                 value for this timer is 120 seconds.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
-- Versa changed default
    DEFVAL { 5 }
    ::= { bgpPeerEntry 26 }

  bgpPeerHoldTimeConfigd OBJECT-TYPE
    SYNTAX      Unsigned32 ( 0 | 3..65535 )
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the Hold Time configured for
                 this BGP speaker with this peer.  This value is placed in
                 an OPEN message sent to this peer by this BGP speaker, and
                 is compared with the Hold Time field in an OPEN message
                 received from the peer when determining the Hold Time
                 (bgpPeerHoldTime) with the peer.  This value must not be
                 less than three seconds if it is not zero (0) in which
                 case the Hold Time is NOT to be established with the peer.
                 The value of this object is only allowed to be zero (0) if
                 the value of bgpPeerKeepAliveConfigd is also zero (0).
                 The suggested value for this timer is 90 seconds.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
       DEFVAL { 90 }
    ::= { bgpPeerEntry 27 }

  bgpPeerKeepAliveConfigd OBJECT-TYPE
    SYNTAX      Unsigned32 ( 0 | 1..21845 )
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the KeepAlive configured for
                 this BGP speaker with this peer.  The value of this object
                 will only determine the KEEPALIVE messages' frequency
                 relative to the value specified in bgpPeerHoldTimeConfigd;
                 the actual time interval for the KEEPALIVE messages is
                 indicated by bgpPeerKeepAlive.  A reasonable maximum value
                 for this timer would be configured to be one third of that
                 of bgpPeerHoldTimeConfigd.

                 The value of this object is only allowed to be zero (0) if
                 the value of bgpPeerHoldTimeConfigd is also zero (0).  If
                 the value of this object is zero (0), no periodical
                 KEEPALIVE messages are sent to the peer after the BGP
                 connection has been established.  The suggested value for
                 this timer is 30 seconds.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { 30 }
    ::= { bgpPeerEntry 28 }

  bgpPeerMinASOriginationInterval OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for determining the minimum amount
                 of time that must elapse between successive advertisements of
                 UPDATE messages that report changes to a route within the
                 advertising BGP speaker's own autonomous system. The
                 suggested value for this timer is 15 seconds.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer group as explained in
                 the table description.

                 If this field is set to zero, the
                 bgpPeerAfiSafiMinASOrigInt field for the relevant
                 address family is used instead."
    DEFVAL { 15 }
    ::= { bgpPeerEntry 29 }

  bgpPeerMinRouteAdvertiseInterval OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the
                 MinRouteAdvertisementInterval timer.  This determines the
                 minimum time between a BGP UPDATE to a peer advertising or
                 withdrawing a route and a subsequent BGP UPDATE to the
                 peer advertising a route to the same destination.

                 The default value for this timer is 30 seconds.  Its value
                 must not be less than bgpPeerMinRouteWithdrawInterval.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer group as explained in
                 the table description.

                 For an individual AFI-SAFI, if the
                 bgpPeerAfiSafiUsePeerMinAdInt flag is unset in the
                 bgpPeerAfiSafiConfigUsage of the bgpPeerAfiSafiTable, this
                 value is ignored, and the bgpPeerAfiSafiMinRteAdvertInt
                 value in the bgpPeerAfiSafiTable is used instead."
-- Versam changed default
    DEFVAL { 1 }
    ::= { bgpPeerEntry 30 }

  bgpPeerHoldTime OBJECT-TYPE
    SYNTAX      Integer32  ( 0 | 3..65535 )
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusHoldTime
                 instead.

                 Time interval in seconds for the Hold Timer established with
                 the peer.

                 The Hold Timer interval is calculated by this BGP speaker by
                 using the smaller of the configured bgpPeerHoldTimeConfigd
                 value and the Hold Time received in the OPEN message.

                 A value of zero indicates that the Hold Timer has not been
                 established with the peer."
    ::= { bgpPeerEntry 31 }

  bgpPeerKeepAlive OBJECT-TYPE
    SYNTAX      Integer32 ( 0 | 1..21845 )
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusKeepAlive
                 instead.

                 Time interval in seconds for the KeepAlive Timer established
                 with the peer.

                 The KeepAlive Timer interval is calculated by this BGP
                 speaker such that, when compared with bgpPeerStatusHoldTime,
                 it has the same proportion as the configured
                 bgpPeerKeepAliveConfigd has when compared with
                 bgpPeerHoldTimeConfigd.

                 A value of zero indicates that the KeepAlive Timer has not
                 been established with the peer."
    ::= { bgpPeerEntry 32 }

  bgpPeerInUpdates OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusInUpdates
                 instead.

                 The number of BGP UPDATE messages received on this
                 connection.  This object is initialized to zero when the
                 connection is established."
    ::= { bgpPeerEntry 33 }

  bgpPeerOutUpdates OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusOutUpdates
                 instead.

                 The number of BGP UPDATE messages transmitted on this
                 connection.  This object is initialized to zero when the
                 connection is established."
    ::= { bgpPeerEntry 34 }

  bgpPeerInTotalMessages OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusInTotalMessages instead.

                 The total number of messages received from the remote peer
                 on this connection.  This object is initialized to zero when
                 the connection is established."
    ::= { bgpPeerEntry 35 }

  bgpPeerOutTotalMessages OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusOutTotalMessages instead.

                 The total number of messages transmitted to the remote
                 peer on this connection.  This object is initialized to zero
                 when the connection is established."
    ::= { bgpPeerEntry 36 }

  bgpPeerFsmEstablishedTransitions OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusFsmEstTransitions instead.

                 The total number of times the BGP FSM transitioned into
                 the established state for this peer."
    ::= { bgpPeerEntry 37 }

  bgpPeerConnectRetryCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusConnectRetryCount instead.

                 The current connect retry count of this peer.

                 This is incremented each time the peer session flaps, and is
                 used to determine the time to wait before retrying the
                 session.

                 Note this is only incremented when an active session
                 terminates abnormally, and not when it simply fails to come
                 up.

                 This counter can be cleared by setting the
                 bgpPeerClearCnts field to true."
    ::= { bgpPeerEntry 38 }

  bgpPeerClearCnts OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusClearCnts instead.

                 Set to clear the counters associated with this peer.

                 Reading the value of this field has no meaning.  The field
                 is not returned on a MIB Get."
    ::= { bgpPeerEntry 39 }

  bgpPeerConfigPeergr OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the peer group this neighbor belongs to, or
                 zero if this neighbor does not belong to a peer group."
    DEFVAL { 0 }
    ::= { bgpPeerEntry 40 }

  bgpPeerConfigIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Policy Configuration Table this peer uses
                 for its policy setup.  This field may be changed when the
                 peer is admin_status UP.  A value of zero indicates that
                 the peer is not associated with any config row.

                 This field has a corresponding field in the peer group MIB
                 but its use is not controlled by the peer's configuration
                 usage fields.  The peer group's bgpPeergrConfig field
                 overrides this field for export policy but not for import
                 policy."
    DEFVAL { 0 }
    ::= { bgpPeerEntry 41 }

  bgpPeerConfigRtRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusRtRefresh
                 instead.

                 Set this field to 'true' to trigger a route refresh for this
                 peer.

                 Setting this field will only have an effect if a BGP
                 session to the peer is active.  Peers that do not support
                 route refresh will have their sessions toggled.

                 Reading the value of this field has no meaning.  The field
                 is not returned on a MIB Get."
    DEFVAL { false }
    ::= { bgpPeerEntry 42 }

  bgpPeerConfigMaxPrfx OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with the address-family
                 specific bgpPeerAfiSafiConfigMaxPrfx to limit the number of
                 prefixes that can be accepted from this peer.

                 Setting bgpPeerConfigMaxPrfx to a non-zero value sets the
                 maximum number of prefixes (totalled across all supported
                 address families) that can be accepted from this peer.

                 Alternatively, separate values for the maximum prefix limit
                 can be specified for each address family.  To configure
                 this, set bgpPeerConfigMaxPrfx to zero, and set
                 bgpPeerAfiSafiConfigMaxPrfx for each address family for
                 which a limit is required."
    DEFVAL { 0 }
    ::= { bgpPeerEntry 43 }

  bgpPeerConfigDropWarn OBJECT-TYPE
    SYNTAX      BgpDropOrWarn
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with the address-family
                 specific bgpPeerAfiSafiConfigDropWarn to determine whether
                 the session is dropped or a warning is generated when
                 the maximum number of prefixes set is exceeded.

                 Setting bgpPeerConfigDropWarn to 'drop' will cause the
                 session to be dropped when the prefix limit is reached.

                 To configure this behavior independently for different address
                 families, set bgpPeerConfigDropWarn to 'warn', and set
                 the value of bgpPeerAfiSafiConfigDropWarn for each address
                 family as needed."
-- Versa changed default from warn to drop
    DEFVAL { drop }
    ::= { bgpPeerEntry 44 }

  bgpPeerConfigPassive OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If TRUE, then no outbound connections will be initiated,
                 and only incoming connections will be accepted.  If FALSE,
                 then outbound connections will be attempted to this peer,
                 and incoming connections will be accepted from this peer.
                 Note that receipt of incoming connections requires a
                 listening socket to be active in the Neighbor Manager
                 instance responsible for this peer.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { false }
    ::= {bgpPeerEntry 45 }

  bgpPeerConfigOpenDelay OBJECT-TYPE
    SYNTAX      Unsigned32 (0..240)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The delay to enforce in between a TCP connection with this
                 peer becoming established and a BGP Open message being
                 sent.  If this delay is zero, then no delay will be
                 injected, and a BGP Open message will be sent as soon as
                 the TCP connection allows it.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { 0 }
    ::= { bgpPeerEntry 46 }

  bgpPeerConfigIdleHold OBJECT-TYPE
    SYNTAX      Unsigned32 (1..32767)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The time to hold this peer in Idle state after a BGP
                 session has progressed beyond Idle state initially and
                 then returned to it.  No new connections will be initiated
                 or accepted until the peer comes out of Idle state.  By
                 setting this field to a large value, this timer can be
                 used to provide some level of peer oscillation damping, if
                 desired.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
-- Versa changed default
    DEFVAL { 2 }
    ::= { bgpPeerEntry 47 }

  bgpPeerPassword OBJECT-TYPE
-- Versa changed max size to 512
    SYNTAX      OCTET STRING (SIZE (0..512))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The MD5 password used by this peer.  This value is passed to
                 the sockets stub at creation.  bgpPeerPasswordLen must be
                 set to the length of the string.  This field can only be
                 changed when the row is not active."
    ::= { bgpPeerEntry 48 }

  bgpPeerTtl OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Time To Live used by the connection on this peer.
                 Directly connected peers should have this set to one.  A
                 value of zero indicates the TTL socket option will not be
                 set for this peer.  The sockets layer will therefore
                 insert its default value of TTL into all packets.

                 This field is ignored for peers identified only by
                 interface since they must be directly connected.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { 0 }
    ::= { bgpPeerEntry 49 }

  bgpPeerCheckFirstAsNum OBJECT-TYPE
    SYNTAX      BgpTrueFalseOrInherit
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the first AS number in the AS_PATH
                 attribute in an UPDATE received from this peer should be
                 checked to make sure it is the same as the AS number of
                 the peer.  This flag only applies to EBGP peers.  It
                 should be set to True unless the peer has a specific
                 policy that means it does not prepend its AS number so
                 that it is the first in the path.

                 When set to 'true', DC-BGP checks the first AS number in
                 UDPATES received from the peer.

                 When set to 'false', DC-BGP does not check the first AS
                 number in UDPATES received from the peer.

                 When set to 'inherit', the fallover behavior for this peer
                 is determined by the setting of the
                 bgpRmEntCheckFirstAsNum field.

                 If the peer belongs to a peer group, then the
                 configuration is taken from either this field or the
                 equivalent peer group field, depending on the setting of
                 the bit in the bgpPeerConfigUsage field.  The value for
                 the peer or peer group is determined and, if this is
                 'inherit', then the bgpRmEntCheckFirstAsNum value is used.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { true }
    ::= { bgpPeerEntry 50 }

  bgpPeerAggrInclConfedAS OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the neighbor
                 understands aggregated confederation AS_PATH information.
                 If set to FALSE, no confederation AS_PATH information is
                 included in aggregate AS_PATHs.

                 This field can only be changed when the peer is admin_status
                 DOWN."
    DEFVAL { true }
    ::= { bgpPeerEntry 51 }

  bgpPeerMinRouteWithdrawInterval OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the MinRouteWithdrawInterval
                 timer.  This is the interval which is enforced between
                 advertisement and subsequent withdrawal of a route.

                 The default value for this timer is 30 seconds.  The value
                 must not exceed that of bgpPeerMinRouteAdvertiseInterval.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer group as explained in
                 the table description.

                 If this field is set to zero, the
                 bgpPeerAfiSafiMinRteWithdrawInt field for the relevant
                 address family is used instead."
-- Versa changed default
    DEFVAL { 0 }
    ::= { bgpPeerEntry 52 }

  bgpPeerStalePathTime OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusStalePathTime instead.

                 The maximum time in seconds that DC-BGP will wait
                 following a peer restart or peer session failure before
                 removing stale routes from that peer.

                 This is advertised by the peer in its OPEN message if it
                 supports graceful restart.  If the advertised value is
                 greater than the bgpRmEntMaxRestartTime, then that value
                 will be used in preference.

                 Specifically, this is the maximum duration that RM will wait
                 between the session going down and receiving an end-of-RIB
                 (EOR) marker."
    DEFVAL { 30 }
    ::= { bgpPeerEntry 53 }

  bgpPeerCheckNextHop OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not to check the BGP next-hop of routes sent to
                 this peer.  If set to TRUE, which is the default, then
                 routes with a BGP next-hop which is the same as the peer's
                 address will not be sent to this peer.  If set to FALSE,
                 then this filtering will not be performed.  In this case,
                 the receiving peer should discard any such routes itself."
    DEFVAL { true }
    ::= { bgpPeerEntry 54 }

  bgpPeerLocalAddrScopeId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "For a peer identified by a link-local IPv6 addresses, this
                 is the scope ID of bgpPeerLocalAddr and bgpPeerRemoteAddr.

                 For a peer identified only by interface (bgpPeerLocalAddr
                 and bgpPeerRemoteAddr are both zero), this is the
                 interface index of the local point-to-point interface
                 through which the peer is reachable.

                 Otherwise, this field is set to zero."
    ::= { bgpPeerEntry 55 }

  bgpPeerMaxOrfEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with the address-family
                 specific bgpPeerAfiSafiMaxOrfEntries to limit the number of
                 ORF entries of all types that can be accepted from this peer.

                 Setting bgpPeerMaxOrfEntries to a non-zero value sets the
                 maximum number of ORF entries (totalled across all supported
                 address families) that can be accepted from this peer.

                 If this limit is exceeded then the connection will be closed.

                 Alternatively, separate values for the maximum number of ORF
                 entries can be specified for each address family.  To
                 configure this, set bgpPeerMaxOrfEntries to zero, and set
                 bgpPeerAfiSafiMaxOrfEntries for each address family for which
                 a limit is required.

                 The value of this field can be changed at any time.
                 However, the new value will only take effect the next time
                 the session is restarted or when the peer modifies its ORF
                 entries."
    DEFVAL { 100000 }
    ::= { bgpPeerEntry 56 }

  bgpPeerOrfEntryCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusOrfEntryCount instead.

                 The current number of ORF entries of all types that have
                 been received from the peer."
    ::= { bgpPeerEntry 57 }

  bgpPeerPeeringType OBJECT-TYPE
    SYNTAX      BgpPeeringType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The type of peering relationship associated with this
                 peer.  Setting this to 'biLateral' will stop the
                 advertisement of routes with the NOPEER community to this
                 peer, and also filter out routes with the NOPEER community
                 received from the peer.  Setting the field to other values
                 is currently only for information.  This field only
                 applies to EBGP peers.  If this field is set for an IBGP
                 peer, the setting will have no effect and will still
                 return 'unspecified'."
    DEFVAL      { unspecified }
    ::= { bgpPeerEntry 58 }

  bgpPeerSoftResetWithStoredInfo OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with
                 bgpPeerAfiSafiSoftResetStore to configure 'soft reset with
                 stored routing information'.  This option
                 causes all routes learned from a peer to be stored so that
                 the ARI can be recalculated (for example, due to a change in
                 import policy) without performing a route refresh or
                 restarting the peer session.

                 When bgpPeerSoftResetWithStoredInfo is 'false', BGP does not
                 perform soft reset for any address family.

                 When bgpPeerSoftResetWithStoredInfo is 'true', BGP performs
                 soft reset for those address families for which
                 bgpPeerAfiSafiSoftResetStore is 'true'.

                 This field can only be changed when the peer is admin_status
                 DOWN.

                 There is a significant occupancy impact associated with
                 this option.

                 Note that this option overlaps with route refresh (RR) and
                 Outbound Route Filter (ORF) behavior.  To clarify, when this
                 option is enabled, the following also occur for the session
                 to that peer.
                 - Routes are stored in this way, even if the peer advertizes
                   support for RR or ORF.
                 - Route refresh and ORF capabilities continue to be advertized
                   (if configured).
                 - A route refresh will never be sent to this peer, apart from
                   one (containing no ORFs) at the start of the session if
                   both peers support ORF.
                 - ORFs are never sent to the peer.
                 - DC-BGP still responds to RR requests from the peer (if it
                   advertizes the RR capability).
                 - DC-BGP still accepts ORF requests from the peer (if it
                   advertizes the ORF capability)."
    DEFVAL { false }
    ::= { bgpPeerEntry 59 }

  bgpPeerAllowLocalAs OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of instances of the local AS identifier that may
                 be contained in the route's AS-Path without rejecting the
                 route.

                 The AS-Path attribute of a BGP route contains the identifiers
                 of the Autonomous Systems traversed by the route.  When
                 a route is received with an AS-Path containing the local
                 AS identifier, it normally indicates a routing loop, and
                 the default behavior is to reject the route.  This object
                 allows this behavior to be over-ridden.

                 This is useful, for example, for VPN routes, where routes
                 from one CE router are advertised to other CE routers
                 through a provider's BGP network.  Two CE routers in
                 the same AS can enable this feature to prevent routes from
                 the other CE from being discarded.

                 When bgpPeerAllowLocalAs is set to a non-zero value, that
                 value is used for all address families, and the value of
                 bgpPeerAfiSafiAllowLocalAs is ignored.

                 Alternatively, the value may be configured independently for
                 each address family.  To do this, set bgpPeerAllowLocalAs to 0
                 and set the value of bgpPeerAfiSafiAllowLocalAs for each
                 address family.

                 Changing the value of this object while the peer is active
                 triggers BGP to refresh its routes from the peer."
    DEFVAL { 0 }
    ::= { bgpPeerEntry 60 }

  bgpPeerDisableSenderLoopDetect OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used in conjunction with
                 bgpPeerAfiSafiDisableSndLpDetect to indicate whether BGP
                 should disable sender-side loop detection when sending
                 routes to the peer.

                 By default, BGP performs sender side loop detection.
                 That is, it will not advertise a route to a peer if
                 the AS-Path of the route already contains the peer's AS
                 number.  A peer would typically discard such routes, so
                 this is normally a useful optimization.

                 However, the peer may be configured to accept such routes
                 (see bgpPeerAllowLocalAs).  In this case it is
                 necessary to disable sender-side loop detection, by setting
                 bgpPeerDisableSndLpDetect to 'true'.

                 Sender-side loop detection may be disabled independently
                 for each address family.  When bgpPeerDisableSndLpDetect
                 is set to 'true', set bgpPeerAfiSafiDisableSndLpDetect to
                 'true' or 'false' to disable or enable sender-side loop
                 detection for each address family.

                 If the value of this object is changed while the peer session
                 is active, BGP will check for any routes that need to be
                 advertised or withdrawn as a result of the change.

                 Note that sender-side loop detection does not operate on
                 peers in an update group."
-- Versa changed default
    DEFVAL { true }
    ::= { bgpPeerEntry 61 }

  bgpPeerDisableRouteRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates that DC-BGP should not advertise support for
                 Route Refresh messages to this peer.

                 When this flag is set, DC-BGP will not advertise support
                 for Route Refresh messages to this peer.  When this flag
                 is not set, DC-BGP will advertise support for Route
                 Refresh messages to this peer.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { false }
    ::= { bgpPeerEntry 62 }

  bgpPeerFlapStatsClearStat OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusFlapStatsClearStat instead.

                 Set this field to 'true' to clear the bgpFlapStatsFlapcnt
                 in all entries in the bgpNlriTable matching routes from this
                 peer.  This will not unsuppress a suppressed route.

                 If the bgpPeerFlapStatsClearMap field is also set, this
                 defines the Route Map used to determine the set of routes
                 for which the bgpFlapStatsFlapcnt should be reset.  If
                 bgpPeerFlapStatsClearMap is not set, all routes from this
                 peer will be reset.

                 Reading the value of this field has no meaning.  The field
                 is not returned on a MIB Get."
    ::= { bgpPeerEntry 63 }

  bgpPeerFlapStatsClearMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusFlapStatsClearMap instead.

                 This field is set with bgpPeerFlapStatsClearStat to
                 restrict the set of routes for which bgpFlapStatsFlapcnt is
                 reset when bgpPeerFlapStatsClearStat is set.

                 This field is an index to the bgpRouteMapTable.  The
                 bgpFlapStatsFlapcnt in all routes matching the Route Map are
                 cleared.  Entries in the Route Map may be set to permit (to
                 cause a match) or to deny (to prevent a match).

                 Setting this field without bgpPeerFlapStatsClearStat has no
                 meaning.

                 Reading the value of this field has no meaning.  The field
                 is not returned on a MIB Get."
    ::= { bgpPeerEntry 64 }

  bgpPeerLastErrorRcvd OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(2))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusLastErrorRcvd instead.

                 The last error code and subcode received from the peer on
                 this connection.

                 If no error has been received from the peer, this field is
                 zero.  Otherwise, the first byte of this two byte OCTET
                 STRING contains the error code, and the second byte contains
                 the subcode."
    ::= { bgpPeerEntry 65 }

  bgpPeerLastErrorRcvdTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusLastErrorRcvdTime instead.

                 The value of sysUpTime when the last error was received
                 from the peer on this connection.

                 If no error has been received from the peer, this field is
                 zero."
    ::= { bgpPeerEntry 66 }

  bgpPeerLastErrorSent OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(2))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusLastErrorSent instead.

                 The last error code and subcode sent to the peer on this
                 connection.

                 If no error has been sent to the peer, this field is zero.
                 Otherwise, the first byte of this two byte OCTET STRING
                 contains the error code, and the second byte contains the
                 subcode."
    ::= { bgpPeerEntry 67 }

  bgpPeerLastErrorSentTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusLastErrorSentTime instead.

                 The value of sysUpTime when the last error was sent to the
                 peer on this connection.

                 If no error has been sent to the peer, this field is zero."
    ::= { bgpPeerEntry 68 }

  bgpPeerLastState OBJECT-TYPE
    SYNTAX      BgpPeerStates
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusLastState
                 instead.

                 The BGP peer's previous FSM state."
    ::= { bgpPeerEntry 69 }

  bgpPeerLastEvent OBJECT-TYPE
    SYNTAX      BgpPeerEvents
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusLastEvent
                 instead.

                 The last input to be made to the BGP peer's FSM."
    ::= { bgpPeerEntry 70 }

  bgpPeerCapsSent OBJECT-TYPE
    SYNTAX      BgpCapabilities
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusCapsSent
                 instead.

                 The capabilities announced to the peer on the most recent
                 Open message sent to the peer.  This field is set to zero
                 before the first Open message is sent to the peer, and
                 is unchanged if the session comes down."
    ::= { bgpPeerEntry 71 }

  bgpPeerCapsRcvd OBJECT-TYPE
    SYNTAX      BgpCapabilities
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusCapsRcvd
                 instead.

                 The capabilities received on the most recent Open message
                 received from the peer.  This field is set to zero before
                 the first Open message is received from the peer, and is
                 unchanged if the session comes down.

                 In the event that the peer signals a capability that DC-BGP
                 does not recognize, this field will only contain those
                 capabilities that DC-BGP recognizes.  A user should walk the
                 bgpPeerCapsRcvdTable to confirm the full list of
                 capabilities received from the peer."
    ::= { bgpPeerEntry 72 }

  bgpPeerCapsNegotiated OBJECT-TYPE
    SYNTAX      BgpCapabilities
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusCapsNegotiated instead.

                 The capabilities negotiated for the session with the peer.
                 This field is set to zero before Open messages have been
                 exchanged with the peer, and is unchanged if the session
                 comes down."
    ::= { bgpPeerEntry 73 }

  bgpPeerRstrSupport OBJECT-TYPE
    SYNTAX      BgpPeerRestartSupport
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusRstrSupport instead.

                 Whether the peer supports graceful restart.  This field is
                 set to 'none' before an Open message has been received from
                 a peer, and is unchanged if the session comes down."
    ::= { bgpPeerEntry 74 }

  bgpPeerRstrFamily OBJECT-TYPE
    SYNTAX      BgpAfiSafiBits
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusRstrFamily
                 instead.

                 The address and subaddress families for which the peer
                 supports graceful restart.  This field is set to zero before
                 an Open message has been received from a peer, and is
                 unchanged if the session comes down."
    ::= { bgpPeerEntry 75 }

  bgpPeerRstrRestarting OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusRstrRestarting instead.

                 Whether the peer is currently in the process of restarting."
    ::= { bgpPeerEntry 76 }

  bgpPeerRstrStatus OBJECT-TYPE
    SYNTAX      BgpPeerRestartStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusRstrStatus
                 instead.

                 The current state of the peer's restart processing.  If
                 bgpPeerRstrRestarting is false, this is set to
                 notRestarting."
    ::= { bgpPeerEntry 77 }

  bgpPeerRstrRemTime OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusRstrRemTime instead.

                 The time remaining in the current restart state, in
                 hundredths of a second.  If bgpPeerRstrStatus is
                 notRestarting, this is set to zero."
    ::= { bgpPeerEntry 78 }

  bgpPeerRcvdMsgElapsedTime OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusRcvdMsgElpsTime instead.

                 The elapsed time in hundredths of a second since anything
                 was received from this peer.  If nothing has been received
                 from this peer, this field is set to zero.  If the session
                 comes down this value continues to increase."
    ::= { bgpPeerEntry 79 }

  bgpPeerIdleHoldRemTime OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusIdleHoldRemTime instead.

                 For a peer in 'idle' state, the time remaining in
                 hundredths of a second until DC-BGP will try to reactivate
                 the connection.  If the peer is not in 'idle' state, this is
                 set to zero."
    ::= { bgpPeerEntry 80 }

  bgpPeerRouteRefrSent OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusRouteRefrSent instead.

                 The number of Route Refresh messages sent to the peer.  If
                 the session comes down this value is unchanged, and will
                 continue to increment if the session is reestablished."
    ::= { bgpPeerEntry 81 }

  bgpPeerRouteRefrRcvd OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusRouteRefrRcvd instead.

                 The number of Route Refresh messages received from the peer.
                 If the session comes down this value is unchanged, and will
                 continue to increment if the session is reestablished."
    ::= { bgpPeerEntry 82 }

  bgpPeerNxtHopSlf OBJECT-TYPE
    SYNTAX      BgpNextHopSelf
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the peer has next hop self configured.

                 Setting this field to a value other than 'no' causes the
                 value of bgpPeerThirdPtyNxtHop to be ignored.

                 For an individual AFI-SAFI, if the
                 bgpPeerAfiSafiUsePeerNxtHopSlf flag is unset in the
                 bgpPeerAfiSafiConfigUsage of the bgpPeerAfiSafiTable, this
                 value is ignored, and the bgpPeerAfiSafiNxtHopSlf value
                 in the bgpPeerAfiSafiTable is used instead."
    DEFVAL { false }
    ::= { bgpPeerEntry 83 }

  bgpPeerThirdPtyNxtHop OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the local BGP speaker should advertise routes
                 received from this peer using third party next hop (this is
                 optional behaviour described in the BGP specification).

                 This field is only used when exporting routes to other EBGP
                 peers, and when bgpPeerNxtHopSlf is 'false'."
    DEFVAL { true }
    ::= { bgpPeerEntry 84 }

  bgpPeerNxtHopPeer OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the local BGP speaker should override the use
                 of third party next hop by an EBGP peer.  If an EBGP peer
                 speaker uses third party next hop, routes learnt from the peer
                 may specify a next hop belonging to a router that the local
                 BGP speaker does not peer with.

                 If this field is set to 'true', then all data forwarded along
                 a route learnt from an EBGP peer will be sent to the EBGP
                 peer.  The peer's address is put into the BGP next hop field
                 when the route is advertised to IBGP peers.

                 If set to 'false', then data is sent to the next hop
                 specified by the peer.  The field is only used when importing
                 routes from EBGP."
    DEFVAL { false }
    ::= { bgpPeerEntry 85 }

  bgpPeerTrapPrefix OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used in conjunction with bgpPeerAfiSafiTrapPrefix to
                 determine whether BGP issues an SNMP trap when the number of
                 prefixes received from this peer reaches the maximum number
                 of prefixes allowed, set by bgpPeerConfigMaxPrfx and
                 bgpPeerAfiSafiConfigMaxPrfx, or the warning threshold set by
                 bgpPeerConfigThreshold and bgpPeerAfiSafiConfigThreshold or
                 the clear thresholds set by bgpPeerMaxPrfxClear,
                 bgpPeerAfiSafiMaxPrfxClear, bgpPeerPrfxThresholdClear and
                 bgpPeerAfiSafiPrfxThrsholdClear.

                 To disable sending of traps for all address families, set
                 bgpPeerTrapPrefix to 'false'.

                 To enable the sending of traps, set bgpPeerTrapPrefix to
                 'true' and set bgpPeerAfiSafiTrapPrefix to 'true' for those
                 address families for which this behavior is required."
-- Versa changed default from false to true
    DEFVAL { true }
    ::= { bgpPeerEntry 86 }

  bgpPeerConfigThreshold OBJECT-TYPE
    SYNTAX      Unsigned32 (0..100)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A percentage of the limit set by bgpPeerConfigMaxPrfx.
                 When the number of prefixes received from this peer reaches
                 this threshold, BGP issues a warning.  The action carried
                 out by DC-BGP depends on the value of bgpPeerTrapPrefix and
                 bgpPeerAfiSafiTrapPrefix.

                 This field is not used if bgpPeerConfigMaxPrfx is set to
                 zero.  This field sets a threshold for all address families
                 received from a peer.

                 To configure a threshold for individual families, set
                 bgpPeerConfigThreshold to zero and set
                 bgpPeerAfiSafiConfigThreshold to the required threshold for
                 each address family."
    DEFVAL { 75 }
    ::= { bgpPeerEntry 87 }

  bgpPeerMaxPrfxHold OBJECT-TYPE
    SYNTAX      Unsigned32 (0..86400)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The time interval in seconds between when this BGP session
                 is torn down due to the number of prefixes received from
                 this peer exceeding the maximum in
                 bgpPeerConfigMaxPrfx(AfiSafi) and when BGP attempts to
                 reestablish the session.

                 To configure a time interval for individual families, set
                 bgpPeerMaxPrfxHold to zero and set bgpPeerAfiSafiMaxPrfxHold
                 to the required time interval for each address family.

                 If both bgpPeerMaxPrfxHold and bgpPeerAfiSafiMaxPrfxHold are
                 set to zero for an address family, the session is not
                 reestablished.  An attempt to configure a non-zero value
                 less than 30 seconds is rejected."
    DEFVAL { 90 }
    ::= { bgpPeerEntry 88 }

    bgpPeerSelectedLocalAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusSelLocalAddrType instead.

                 The address family of the local address used by the
                 transport connection for the peering session.

                 If a connection exists then this field will be identical
                 to bgpPeerLocalAddrType.

                 A value of none implies that there is currently no
                 connection to this peer."
    ::= { bgpPeerEntry 89 }

  bgpPeerSelectedLocalAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusSelLocalAddr instead.

                 The local address used by the transport connection for the
                 peering session.

                 If a connection exists and bgpPeerLocalAddr is specified
                 then these two fields will be identical."
    ::= { bgpPeerEntry 90 }

   bgpPeerSelectedLocalPort OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusSelLocalPort instead.

                 The local port used by the transport connection for the
                 peering session.

                 If a connection exists and bgpPeerLocalPort is non-zero then
                 these two fields will be identical.

                 A value of zero implies that there is currently no
                 connection to this peer."
    ::= { bgpPeerEntry 91 }

   bgpPeerSelectedRemotePort OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusSelRemotePort instead.

                 The remote port used by the transport connection for the
                 peering session.

                 If a connection exists and bgpPeerRemotePort is non-zero
                 then these two fields will be identical.

                 A value of zero implies that there is currently no
                 connection to this peer."
   ::= { bgpPeerEntry 92 }

   bgpPeerBfdDesired OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether Bidirectional Forwarding Detection (BFD) is
                 desired for this peer.

                 If the NM entity managing this peer session (configured using
                 bgpPeerLocalNm) does not have an active join to a BFD provider
                 (configured using bgpNmEntBfdEntityIndex), then BFD will not be
                 used on this interface regardless of the value of this field.

                 This field can be changed at any time."
    DEFVAL { false }
    ::= { bgpPeerEntry 93 }

   bgpPeerBfdStatus OBJECT-TYPE
    SYNTAX      BfdSessionStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusBfdStatus
                 instead.

                 BFD session state for this peer."
    ::= { bgpPeerEntry 94 }

   bgpPeerCeaseErrorSubcode OBJECT-TYPE
    SYNTAX      BgpCeaseErrorSubcode
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusCeaseErrorSubcode instead.

                 The error subcode to be sent in the Cease Notification
                 messages triggered by MIB requests that set the state of
                 the BGP peer from 'up' to 'down'.  If set to 'none' then
                 DC-BGP chooses the subcode itself.

                 This field does not affect the error subcode for Cease
                 Notification messages triggered for other reasons."
    DEFVAL      { none }
    ::= { bgpPeerEntry 95 }

   bgpPeerConfAltLocalAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "An alternative local AS number that can be used to
                 establish a session with this peer.  This is used when
                 merging two ASs into a single AS.

                 A value of zero means 'not configured'.

                 If an alternative local AS number is configured then the
                 peering session can be established using the alternative
                 local AS instead of the primary local AS number specified
                 by bgpRmEntLocalAs.

                 Setting an alternative local AS number allows the primary
                 local AS number to be changed without reconfiguring the
                 peer at the same time.  Later the peer can be reconfigured
                 to establish the session using the new remote AS number
                 and the alternative local AS number can be reset to zero.

                 An alternative local AS number should only be used as an
                 intermediate step on one side of a BGP session.  Do not
                 configure an alternative local AS number on both sides of
                 a BGP session - configure the correct remote AS numbers
                 instead.

                 If this is an IBGP peer then bgpPeerRemoteAs must have the
                 same value as bgpRmEntLocalAs.  In this case the IBGP
                 session can be established using either
                 bgpRmEntLocalAs/bgpPeerRemoteAs or bgpPeerConfAltLocalAs.

                 If this is an EBGP peer then bgpPeerRemoteAs must specify
                 the remote peer's AS number, and bgpRmEntLocalAs,
                 bgpPeerConfAltLocalAs and bgpPeerRemoteAs must all be
                 different.  In this case the EBGP session can be
                 established using bgpRmEntLocalAs or bgpPeerConfAltLocalAs
                 as the local AS number, but the remote AS number must
                 match bgpPeerRemoteAs.

                 The bgpPeerConfAltLocalAsMode field controls detailed
                 operation of the alternative local AS number, including
                 whether the peering session can be established using
                 bgpRmEntLocalAs or only using bgpPeerConfAltLocalAs.

                 Use of alternative local AS numbers is not supported if
                 the router is a member of a confederation.

                 The constraints explained above mean that this field is
                 only used if the following conditions are all met:
                 -  bgpRmEntConfederationId = 0
                 -  bgpPeerConfAltLocalAs != 0
                 -  bgpPeerConfAltLocalAs != bgpRmEntLocalAs
                 -  bgpPeerConfAltLocalAs != bgpPeerRemoteAs.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL      { 0 }
    ::= { bgpPeerEntry 96 }

   bgpPeerSelectedLocalAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusSelLocalAs
                 instead.

                 The local AS number used on this session.

                 If bgpPeerConfAltLocalAs is set to a non-zero value, then
                 the session might have been set up advertising one of two
                 local AS numbers (bgpRmEntLocalAs or
                 bgpPeerConfAltLocalAs).  This field reports which local AS
                 number was used.

                 If, as normal, bgpPeerConfAltLocalAs is zero, then the AS
                 number advertised for the session (and reported by this
                 field) is bgpRmEntLocalAs.

                 If the bgpPeerState is not 'established', then this field
                 is zero."
    ::= { bgpPeerEntry 97 }

   bgpPeerSelectedRemoteAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusSelRemoteAs instead.

                 The remote AS number used on this session.

                 If bgpPeerConfAltLocalAs is set to a non-zero value, and
                 if this is an IBGP peer, then the remote peer might have
                 advertised one of two AS numbers (bgpPeerRemoteAs or
                 bgpPeerConfAltLocalAs).  This field reports which AS
                 number was advertised by the remote peer.

                 If bgpPeerConfAltLocalAs is zero, then the AS number
                 advertised by the remote peer (and reported in this
                 this field) must equal bgpPeerRemoteAs.

                 If the bgpPeerState is not 'established', then this field
                 is zero."
    ::= { bgpPeerEntry 98 }

   bgpPeerInPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusInPrfxes
                 instead.

                 The total number of prefixes received from this peer.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 This is equivalent to the sum of bgpPrfxInPrfxes for all
                 AFI/SAFI combinations that this peer supports."
    ::= { bgpPeerEntry 99 }

   bgpPeerOutPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use bgpPeerStatusOutPrfxes
                 instead.

                 The number of prefixes that are installed in all of this
                 peer's Adj-RIBs-Out.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 This is equivalent to the sum of bgpPrfxOutPrfxes for all
                 AFI/SAFI combinations that this peer supports."
    ::= { bgpPeerEntry 100 }

   bgpPeerOutPrfxesAdvertised OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerStatusOutPrfxesAdvertised instead.

                 The total number of prefixes advertised to this peer.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 This is equivalent to the sum of bgpPrfxOutPrfxesAdvertised
                 for all AFI/SAFI combinations that this peer supports.

                 Note that the value of this field may differ from
                 bgpPeerOutPrfxes since that field includes recently withdrawn
                 routes which are undergoing suppression procedures."
    ::= { bgpPeerEntry 101 }

  bgpPeerTrapGrHelperState OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION  "This value indicates whether or not the Graceful Restart
                  helper trap is used.

                  If in use for this peer, DC-BGP will send a trap whenever
                  the peer restart status changes - in other words, whenever
                  the value of bgpPeerRstrStatus for the peer changes."
    DEFVAL       { false }
    ::= { bgpPeerEntry 102 }

  bgpPeerEnableAttributeDiscard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION  "This value indicates whether or not the 'attribute
                  discard' error handling mechanism is used for BGP UPDATE
                  messages received from this peer.  This mechanism applies
                  when a BGP UPDATE message is received containing a
                  malformed AGGREGATOR, AS4_AGGREGATOR, AS4_PATH or
                  ATOMIC_AGGREGATE attribute.

                  When set to 'false', the error handling mechanism defined
                  in the original BGP specification is used, and the BGP
                  session is reset.  This can lead to session flapping and
                  network instability, even though routing is not adversely
                  affected by the presence of these malformed attributes.

                  When set to 'true', the alternative error handling
                  mechanism of 'attribute discard' is used, where the
                  attribute is dropped and the rest of the BGP UPDATE
                  message is processed as normal.

                  Use of 'attribute discard' error handling is fixed at the
                  start of a BGP session, so changes to this field take
                  effect at the start of the next session."
    DEFVAL       { true }
    ::= { bgpPeerEntry 103 }

   bgpPeerConfAltLocalAsMode OBJECT-TYPE
    SYNTAX      INTEGER {
                  mode1(1),
                  mode2(2),
                  mode3(3),
                  mode4(4)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION  "This field controls the operation of the alternative local
                  AS number specified by the bgpPeerConfAltLocalAs field.
                  It has no effect unless bgpPeerConfAltLocalAs specifies a
                  valid non-zero value.

                  This field controls the use of the alternative local AS
                  number in the following BGP operations:
                  -  establishing the peering session
                  -  updating the AS_PATH when importing a route received
                     from the peer (EBGP only)
                  -  updating the AS_PATH when exporting a route to the peer
                     (EBGP only).

                  These operations are described in full in the BGP
                  Configuration and Management Guide (bgp_config_mgmt.doc)
                  and summarized in the following table.

                  Mode        |Session   |AS_PATH In|AS_PATH Out
                  ============+==========+==========+==================
                  Standard BGP|Primary AS|-         |Primary AS
                  Mode 1      |Either    |-         |Selected As
                  Mode 2      |Alt AS    |Alt AS    |Alt AS, Primary AS
                  Mode 3      |Alt AS    |-         |Alt AS, Primary AS
                  Mode 4      |Alt AS    |-         |Alt AS.

                  This field can be changed at any time.  However, if the
                  field is changed while the peer is admin_status UP, the
                  change will only take effect after the peer has been
                  cycled admin_status DOWN and then UP, thus forcing the
                  peer session to be restarted.  In this case, until the
                  peer is set admin_status DOWN, the peer will be marked as
                  out of date (as reported by the config_state field in the
                  AMB_BGP_PEER_STATUS row for the peer)."
-- Versa changed default
    DEFVAL      { mode2 }
    ::= { bgpPeerEntry 104 }

  bgpPeerSendComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION  "This value indicates whether or not to send BGP community
                  attributes to the peer.

                  When set to 'true', and bgpPeerAfiSafiSendComm for the
                  relevant address family is set to 'true', DC-BGP sends
                  UPDATE messages to the peer including BGP community
                  attributes.

                  Otherwise, DC-BGP sends UPDATE messages to the peer
                  omitting BGP community attributes.

                  The peer may be configured to ignore this field and
                  instead obtain the value from a peer group as explained in
                  the table description.

                  Changing the value of this field while the peer is active
                  triggers DC-BGP to resend routes with community attributes
                  included or omitted according to the new configuration."
    DEFVAL       { true }
    ::= { bgpPeerEntry 105 }

  bgpPeerSendExtComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION  "This value indicates whether or not to send BGP extended
                  community attributes to the peer.

                  When set to 'true', and bgpPeerAfiSafiSendExtComm for the
                  relevant address family is set to 'true', DC-BGP sends
                  UPDATE messages to the peer including BGP extended
                  community attributes.

                  Otherwise, DC-BGP sends UPDATE messages to the peer
                  omitting BGP extended community attributes.

                  The peer may be configured to ignore this field and
                  instead obtain the value from a peer group as explained in
                  the table description.

                  Changing the value of this field while the peer is active
                  triggers DC-BGP to resend routes with extended community
                  attributes included or omitted according to the new
                  configuration."
    DEFVAL       { true }
    ::= { bgpPeerEntry 106 }

  bgpPeerConfigUsage OBJECT-TYPE
    SYNTAX      BgpPeerConfigUsage
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A set of bit flags, used together with bgpPeerConfigUsage2
                 and bgpPeerConfigUsage3, which control where the peer
                 picks up its configuration from.

                 A bit flag exists for a subset of the peer's configuration
                 fields which can also be configured on a peer group.  More
                 specifically, this subset consists of the fields in
                 bgpPeerTable (or bgpPeerAfiSafiTable) which have a
                 corresponding entry in bgpPeergrTable (or
                 bgpPeergrAfiSafiTable).

                 For this subset of fields, the peer should use the peer
                 configuration value if the bit flag is unset and should
                 use the peer group configuration value if the bit flag is
                 set.

                 For a specific peer AFI/SAFI, this flag might be
                 overridden.  For details, see bgpPeerAfiSafiConfigFromGr."
-- Versa changed default
    DEFVAL       { { } }
    ::= { bgpPeerEntry 107 }

  bgpPeerWeight OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value defines the weight to be applied to routes
                 received from this neighbor.

                 All routes learned from this neighbor will be given this
                 weight initially.  The weight assigned using this field
                 may be overridden by the weight set by a route map.  When
                 choosing routes, a higher weight is preferred.

                 Changing the value of this object while the peer is active
                 triggers BGP to refresh its routes from the peer."
    DEFVAL      { 0 }
    ::= { bgpPeerEntry 108 }

  bgpPeerFallover OBJECT-TYPE
    SYNTAX      BgpTrueFalseOrInherit
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION  "This value indicates whether or not to monitor the route to
                  this peer so that the session can be deactivated if the route
                  fails.  Monitoring the route means DC-BGP will react to
                  failure more quickly.

                  When set to 'true', DC-BGP monitors the route to the peer
                  and removes the session if the route fails.

                  When set to 'false', DC-BGP does not monitor the route to
                  the peer.

                  When set to 'inherit', the fallover behavior for this peer
                  is determined by the setting of the bgpRmEntFastExtFallover
                  field.

                  The peer may be configured to ignore this field and
                  instead obtain the value from a peer group as explained in
                  the table description.

                  If the value that is determined is 'inherit', then the
                  bgpRmEntFastExtFallover value is used.

                  This field can be changed at any time.  The change takes
                  immediate effect."
    DEFVAL       { inherit }
    ::= { bgpPeerEntry 109 }

  bgpPeerConfigUsage2 OBJECT-TYPE
    SYNTAX      BgpPeerConfigUsage2
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A set of bit flags, used together with bgpPeerConfigUsage and
                 bgpPeerConfigUsage3, which control where the peer picks up its
                 configuration from.

                 A bit flag exists for a subset of the peer's configuration
                 fields which can also be configured on a peer group.  More
                 specifically, this subset consists of the fields in
                 bgpPeerTable (or bgpPeerAfiSafiTable) which have a
                 corresponding entry in bgpPeergrTable (or
                 bgpPeergrAfiSafiTable).

                 For this subset of fields, the peer should use the peer
                 configuration value if the bit flag is unset and should
                 use the peer group configuration value if the bit flag is
                 set.

                 For a specific peer AFI/SAFI, this flag might be
                 overridden.  For details, see bgpPeerAfiSafiConfigFromGr."
-- Versa changed default
    DEFVAL       { { } }
    ::= { bgpPeerEntry 110 }

  bgpPeerDmzLink OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "For an eBGP peer, this field indicates whether all routes
                 with IPv4 address family received from the peer should
                 have an extended community attached containing the
                 bandwidth of the link to the eBGP peer when the routes are
                 propagated to iBGP peers as per
                 draft-ietf-idr-link-bandwidth-06 (subject to send_ext_comm
                 configuration).

                 Changing the value of this object while the peer is active
                 causes DC-BGP to review whether the extended community
                 should be added to or removed from routes received from
                 the peer (as appropriate) and propagates any changes
                 to its iBGP peers.

                 This setting has no effect on routes with address family
                 other than IPv4."
    DEFVAL       { false }
    ::= { bgpPeerEntry 111 }

-- Begin Versa change {

  bgpPeerRemovePrivate OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether private AS numbers are removed from the AS path before
                 sending an update to this peer.  This is only relevant for an
                 eBGP peer."
    DEFVAL { false }
    ::= { bgpPeerEntry 112 }

  bgpPeerAsOverride OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether Neighbor AS numbers are replaced with the local AS number
                 from the AS path before sending an update to this peer.  This is
                 only relevant for an eBGP peer."
    DEFVAL { false }
    ::= { bgpPeerEntry 113 }
-- End Versa change }

  bgpPeerDistListAclIn OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Access List index identifying the Access List to use
                 to filter routes received from the peer.

                 If this index is non-zero and the Access List with this
                 index is defined, then routes received from this peer
                 are matched against this access list and permitted or
                 denied as defined by the access list."
    DEFVAL       { 0 }
    ::= { bgpPeerEntry 114 }

  bgpPeerDistListAclOut OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Access List index identifying the Access List to use
                 to filter routes advertised to the peer.

                 If this index is non-zero and the Access List with this
                 index is defined, then routes to be advertised to this
                 peer are matched against this access list and advertised
                 or not as defined by the access list."
    DEFVAL       { 0 }
    ::= { bgpPeerEntry 115 }

  bgpPeerDistListPlIn OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Prefix List index identifying the Prefix List to use
                 to filter routes received from the peer.

                 If this index is non-zero and the Prefix List with this
                 index is defined, then routes received from this peer
                 are matched against this prefix list and permitted or
                 denied as defined by the prefix list."
    DEFVAL       { 0 }
    ::= { bgpPeerEntry 116 }

  bgpPeerDistListPlOut OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Prefix List index identifying the Prefix List to use
                 to filter routes advertised to the peer.

                 If this index is non-zero and the Prefix List with this
                 index is defined, then routes to be advertised to this
                 peer are matched against this prefix list and advertised
                 or not as defined by the prefix list."
    DEFVAL       { 0 }
    ::= { bgpPeerEntry 117}

  bgpPeerFilterListIn OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Filter List index identifying the Filter List to use
                 to filter routes received from the peer.

                 If this index is non-zero and the Filter List with this
                 index is defined, then routes received from this peer
                 are matched against this filter list and permitted or
                 denied as defined by the filter list."
    DEFVAL       { 0 }
    ::= { bgpPeerEntry 118 }

  bgpPeerFilterListOut OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Filter List index identifying the Filter List to use
                 to filter routes advertised to the peer.

                 If this index is non-zero and the Filter List with this
                 index is defined, then routes to be advertised to this peer
                 are matched against this filter list and advertised or
                 not as defined by the filter list."
    DEFVAL       { 0 }
    ::= { bgpPeerEntry 119 }

--  bgpPeerAsOverride OBJECT-TYPE
--    SYNTAX      TruthValue
--    MAX-ACCESS  read-write
--    STATUS      current
--    DESCRIPTION "This field is used in conjunction with
--                 bgpPeerAfiSafiAsOverride to indicate whether BGP should
--                 perform AS-override on routes advertised to the peer.
--
--                 If AS-override is enabled, then when advertising routes to
--                 this peer for this address-family, any instance of the peer's
--                 AS number will be replaced in the advertised AS path with the
--                 local AS number.

--                 If the peer is a member of a peer-group and the
--                 AMB_BGP_PEER_CU2_AS_OVERRIDE bit is set in the
--                 bgpPeerConfigUsage2 field, then this field is ignored, and the
--                 value of the bgpPeergrAsOverride field in the bgpPeergrTable
--                 is used instead.
--
--                 AS-override may be enabled independently for each address
--                 family.  When bgpPeerAsOverride is set to 'true', set
--                 bgpPeerAfiSafiAsOverride to 'true' or 'false' to enable or
--                 disable as-override for each address family.

--                 If the value of this object is changed while the peer session
--                 is active, BGP will check for any routes that need to be
--                 advertised or withdrawn as a result of the change.
--
--                 Note that this field has no effect when set for iBGP peers."
--    DEFVAL       { false }
--    ::= { bgpPeerEntry 120 }

  bgpPeerAddrSourceIf OBJECT-TYPE
    SYNTAX      Unsigned32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The interface index for the interface from which the
                source address for session is chosen.  If non-zero, BGP
                will look for the first address on this interface with a
                type matching bgpPeerRemoteAddrType, and use that as the
                source address.  If no matching address or interface
                exists, or this field is set to zero, the source address
                is chosen as described in bgpPeerLocalAddr.

                This field is ignored for peers identified only by
                interface (bgpPeerLocalAddr and bgpPeerRemoteAddr are both
                zero).

                This field can be changed at any time, causing the peer to
                be immediately deactivated and reactivated.

                If the configured interface (or address on that interface)
                did not exist when the peer was activated, and is
                subsequently added, the peer will automatically use the
                configured interface address.  This will cause the peer to
                be immediately deactivated and reactivated."
    DEFVAL { 0 }
    ::= { bgpPeerEntry 120 }

  bgpPeerUseImportLocalPref OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field defines whether the value in
                bgpPeerImportLocalPref should be used to configure the
                local preference value assigned to routes received from
                this peer.

                The peer may be configured to ignore this field and
                instead obtain the value from a peer group as explained in
                the table description.

                This field can be changed at any time."
    DEFVAL       { false }
    ::= { bgpPeerEntry 121 }

  bgpPeerImportLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures the local preference value assigned to routes
                received from this peer.  This overrides the value
                received from the peer.

                This field is only used if bgpPeerUseImportLocalPref is
                set to AMB_TRUE.

                The peer may be configured to ignore this field and
                instead obtain the value from a peer group as explained in
                the table description.

                This field can be changed at any time."
    DEFVAL       { 0 }
    ::= { bgpPeerEntry 122 }

  bgpPeerUseExportLocalPref OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field defines whether the value in
                bgpPeerExportLocalPref should be used to configure the
                local preference value assigned to routes sent to this
                peer.

                The peer may be configured to ignore this field and
                instead obtain the value from a peer group as explained in
                the table description.

                This field can be changed at any time."
    DEFVAL       { false }
    ::= { bgpPeerEntry 123 }

  bgpPeerExportLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures the local preference value assigned to routes
                being sent to this peer.  This overrides the value already
                set for the local preference of a route.

                This field is only used if bgpPeerUseExportLocalPref is
                set to AMB_TRUE.

                The peer may be configured to ignore this field and
                instead obtain the value from a peer group as explained in
                the table description.

                This field can be changed at any time."
    DEFVAL       { 0 }
    ::= { bgpPeerEntry 124 }

  bgpPeerSlowPeer OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Marks the peer as a slow peer.

                When update groups are in use, slow peers are kept
                separate from other peers to prevent backpressure from the
                slow peers slowing down updates sent to the other peers.

                The peer may be configured to ignore this field and
                instead obtain the value from a peer group as explained in
                the table description.

                This field can be changed at any time."
    DEFVAL       { false }
    ::= { bgpPeerEntry 125 }

  bgpPeerConfigUsage3 OBJECT-TYPE
    SYNTAX      BgpPeerConfigUsage3
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A set of bit flags, used together with bgpPeerConfigUsage
                and bgpPeerConfigUsage2 which control where the peer picks
                up its configuration from.

                A bit flag exists for a subset of the peer's configuration
                fields which can also be configured on a peer group.  More
                specifically, this subset consists of the fields in
                bgpPeerTable (or bgpPeerAfiSafiTable) which have a
                corresponding entry in bgpPeergrTable (or
                bgpPeergrAfiSafiTable).

                For this subset of fields, the peer should use the peer
                configuration value if the bit flag is unset and should
                use the peer group configuration value if the bit flag is
                set.

                For a specific peer AFI/SAFI, this flag might be
                overridden.  For details, see bgpPeerAfiSafiConfigFromGr."
-- Versa changed default
    DEFVAL       { { } }
  ::= {bgpPeerEntry 126 }

  bgpPeerAddrSourceType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The address type of the bgpPeerAddrSource field.  Setting
                this field to the default value means that bgpPeerAddrSource
                is unspecified.

                This field is ignored for peers identified only by
                interface (bgpPeerLocalAddr and bgpPeerRemoteAddr are both
                zero).

                An AMB_INETWK_ADDR_TYPE_IPV6 must always be global.

                This field can be changed at any time, causing the peer to
                be immediately deactivated and reactivated."
    DEFVAL       { unknown }
    ::= {bgpPeerEntry 127 }

  bgpPeerAddrSource OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If an address is specified with a type matching
                bgpPeerRemoteAddrType, and bgpPeerAddrSourceIf is NOT
                specified, then BGP will use this address as the source
                address for the BGP session to this peer.

                This field is ignored for peers identified only by
                interface (bgpPeerLocalAddr and bgpPeerRemoteAddr are both
                zero).

                If the type does not match bgpPeerRemoteAddrType, or
                bgpPeerAddrSourceIf is specified, then the source address
                is chosen as described in bgpPeerAddrSourceIf.

                This field can be changed at any time, causing the peer to
                be immediately deactivated and reactivated."
    ::= {bgpPeerEntry 128 }

  bgpPeerMaxPrfxClear OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with the address-family
                specific bgpPeerAfiSafiMaxPrfxClear to control when a
                bgpPeerAfiSafiMaxPrefixClear trap is sent.  This trap will
                only be sent if the number of prefixes associated with this
                peer drops to this level AND a bgpPeerAfiSafiMaxPrefix trap
                has previously been sent.

                In the case where bgpPeerConfigMaxPrfx is non-zero, a
                non-zero value of bgpPeerMaxPrfxClear is applied to the
                number of prefixes (totalled across all supported address
                families).

                The peer may be configured to ignore this field and instead
                obtain the value from a peer group as explained in the table
                description.

                Alternatively, in the case where bgpPeerConfigMaxPrfx is
                zero and per-AFI/SAFI configuration is being applied,
                separate values can be specified for each address family.
                To configure this, set bgpPeerMaxPrfxClear to zero  and set
                bgpPeerAfiSafiMaxPrfxClear for each address family for which
               a clear level is required."
    DEFVAL       { 0 }
    ::= {bgpPeerEntry 129 }

  bgpPeerPrfxThresholdClear OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A percentage of the limit set by bgpPeerConfigMaxPrfx.
                This object is used in conjunction with the address-family
                specific bgpPeerAfiSafiPrfxThrsholdClear to control when a
                bgpPeerAfiSafiPrfxThrshldClear trap is sent.
                This trap will only be sent if the number of prefixes
                associated with this peer drops to this level AND a
                bgpPeerAfiSafiPrefixThreshold trap has previously been sent.

                In the case where bgpPeerConfigThreshold is non-zero, a
                non-zero value of bgpPeerPrfxThreshClear is applied to the
                number of prefixes (totalled across all supported address
                families).

                The peer may be configured to ignore this field and instead
                obtain the value from a peer group as explained in the table
                description.

                Alternatively, in the case where bgpPeerConfigThreshold is
                zero and per-AFI/SAFI configuration is being applied,
                separate values can be specified for each address family.
                To configure this, set bgpPeerPrfxThresholdClear to zero
                and set bgpPeerAfiSafiPrfxThrsholdClear for each address
                family for which a clear level is required."
    DEFVAL       { 0 }
    ::= {bgpPeerEntry 130 }

  bgpPeerTtlSecurityMinTtl OBJECT-TYPE
    SYNTAX      Integer32 (0..254)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The minimum TTL (for IPv4) or Hop Limit (for IPv6) that
                must be set in a BGP packet received from this peer.  This
                field is used to enable the Generalized TTL Security
                Mechanism (GTSM), as defined in RFC 5082.

                If set to 0, then no restriction is applied to received
                packets (that is, GTSM is not enabled).

                If set to any other value, then packets received from a
                peer with a TTL or Hop Limit less than the specified value
                will be dropped.  A non-zero value also means that DC-BGP
                will send packets to this peer with TTL set to 255, as
                specified in RFC 5082.  This overrides the TTL value
                specified in bgpPeerTtl or bgpPeergrTttl.

                Note that the typical use case for GTSM is for directly
                connected peers, where this field should be set to 254.
                Non-directly connected peers may still use this feature,
                with a lower value for this field, but the value must be
                chosen such that changes in the network topology do not
                cause packets to be dropped incorrectly.

                This field can be changed at any time.  However, if the
                field is changed while the peer is admin_status UP, the
                change will only take effect after the peer has been
                cycled admin_status DOWN and then UP, thus forcing the
                peer session to be restarted.  In this case, until the
                peer is set admin_status DOWN, the peer will be marked as
                out of date (as reported by the config_state field in the
                AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { 0 }
    ::= { bgpPeerEntry 131 }

-- Versa started using this instead of bgpPeerRemovePrivate
  bgpPeerRemovePrivateAs OBJECT-TYPE
    SYNTAX      BgpPrivAsActs
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether private AS numbers are removed from the AS path or
                 replaced with the local AS number before sending an update to
                 this peer.  This is only relevant for an EBGP peer.

                 If the peer is a member of a peer group then DC-BGP chooses
                 whether to use the peer or peer group's configuration based on
                 the flags in bgpPeerConfigUsage2."
-- Versa changed default
    DEFVAL { 2 }
    ::= { bgpPeerEntry 132 }

------------------------------------------------------------------------------

  --
  -- Peer <AFI, SAFI> configuration table.
  --

  bgpPeerAfiSafiTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_AFI
    SYNTAX      SEQUENCE OF BgpPeerAfiSafiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Peer <AFI, SAFI> configuration table.

                 This table allows a user to configure peer characteristics
                 on a per AFI/SAFI basis.

                 This table is a configuration table - all status, statistics
                 and control fields are deprecated in favor of the BGP peer
                 AFI/SAFI status table (bgpPeerAfiSafiStatusTable).

                 Rows in this table cannot be created or destroyed manually.
                 A table entry for each supported address family is created
                 automatically when an entry in the bgpPeerTable is created.
                 The entries are destroyed when the bgpPeerTable entry is
                 destroyed.

                 This table does not contain entries for dynamic peers.

                 If the peer belongs to a peer group, then the peer's
                 per-afi-safi configuration values may be taken from either
                 the peer level (bgpPeerTable and bgpPeerAfiSafiTable) or the
                 peer group level (bgpPeergrTable and bgpPeergrAfiSafiTable).
                 Which level is used is controlled by
                 bgpPeerAfiSafiConfigFromGr, and by the configuration usage
                 fields in bgpPeerTable (bgpPeerConfigUsage,
                 bgpPeerConfigUsage2 and bgpPeerConfigUsage3).  Each of these
                 fields contains a set of bit flags.

                 bgpPeerAfiSafiConfigFromGr takes precedence, and behaves as
                 follows.

                 -  For each configuration field in bgpPeerAfiSafiTable, a
                    a corresponding bit is defined in
                    bgpPeerAfiSafiConfigFromGr.

                 -  If the bit flag is set, then the configuration is taken
                    from the peer group level.

                 The bit flag in the configuration usage fields in
                 bgpPeerTable is only relevant if the
                 bgpPeerAfiSafiConfigFromGr bit is clear.  The peer
                 configuration usage fields behave as follows.

                 -  If a configuration field exists in both bgpPeerTable
                    and the bgpPeerAfiSafiTable, then a corresponding bit
                    flag is defined.

                 -  If the bit flag is set, then the configuration is taken
                    from the peer group level (if the row/rows is/are
                    active).  Otherwise, the value is taken from the peer
                    level."
    ::= { bgpPeerData 2 }

  bgpPeerAfiSafiEntry OBJECT-TYPE
    SYNTAX      BgpPeerAfiSafiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Peer <AFI, SAFI> configuration table entry."
    INDEX { bgpRmEntIndex,
            bgpPeerLocalAddrType,
            bgpPeerLocalAddr,
            bgpPeerLocalPort,
            bgpPeerRemoteAddrType,
            bgpPeerRemoteAddr,
            bgpPeerRemotePort,
            bgpPeerLocalAddrScopeId,
            bgpPeerAfiSafiAfi,
            bgpPeerAfiSafiSafi }
    ::= { bgpPeerAfiSafiTable 1 }

  BgpPeerAfiSafiEntry ::= SEQUENCE {
      bgpPeerAfiSafiAfi                   BgpAfi,
      bgpPeerAfiSafiSafi                  BgpSafi,
      bgpPeerAfiSafiDisable               TruthValue,
      bgpPeerAfiSafiConfigRtRefresh       TruthValue,
      bgpPeerAfiSafiAllowLocalAs          Unsigned32,
      bgpPeerAfiSafiDisableSndLpDetect    TruthValue,
      bgpPeerAfiSafiNxtHopSlf             BgpNextHopSelf,
      bgpPeerAfiSafiOrigDefault           TruthValue,
      bgpPeerAfiSafiOrigDefaultRtMap      Unsigned32,
      bgpPeerAfiSafiSoftResetStore        TruthValue,
      bgpPeerAfiSafiConfigMaxPrfx         Integer32,
      bgpPeerAfiSafiConfigDropWarn        BgpDropOrWarn,
      bgpPeerAfiSafiTrapPrefix            TruthValue,
      bgpPeerAfiSafiConfigThreshold       Unsigned32,
      bgpPeerAfiSafiMaxPrfxHold           Unsigned32,
      bgpPeerAfiSafiMaxOrfEntries         Unsigned32,
      bgpPeerAfiSafiAddPathCapCfg         BgpAddPathSrCap,
      bgpPeerAfiSafiAddPathCapNeg         BgpAddPathSrCap,
      bgpPeerAfiSafiAddPathBestN          Unsigned32,
      bgpPeerAfiSafiImportMap             Unsigned32,
      bgpPeerAfiSafiExportMap             Unsigned32,
      bgpPeerAfiSafiImportIpPre           Unsigned32,
      bgpPeerAfiSafiExportIpPre           Unsigned32,
      bgpPeerAfiSafiImportIpAallPre       PreAccessListListIndexOrZero,
      bgpPeerAfiSafiExportIpAallPre       PreAccessListListIndexOrZero,
      bgpPeerAfiSafiReflectorClient       BgpPeerReflectorClientType,
      bgpPeerAfiSafiAsOverride            TruthValue,
      bgpPeerAfiSafiMinASOrigInt          Unsigned32,
      bgpPeerAfiSafiMinRteAdvertInt       Unsigned32,
      bgpPeerAfiSafiMinRteWithdrawInt     Unsigned32,
      bgpPeerAfiSafiSendComm              TruthValue,
      bgpPeerAfiSafiSendExtComm           TruthValue,
      bgpPeerAfiSafiConfigUsage           BgpPeerAfiSafiCfgUsage,
      bgpPeerAfiSafiMaxPrfxClear          Unsigned32,
      bgpPeerAfiSafiPrfxThrsholdClear     Unsigned32,
      bgpPeerAfiSafiPreserveNh            TruthValue,
      bgpPeerAfiSafiAcceptRmtNxtHop       TruthValue,
      bgpPeerAfiSafiConfigFromGr          BgpPeerAfiSafiCfgFromGrFlags
      }

  bgpPeerAfiSafiAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The AFI index into the peer <AFI, SAFI> table."
    ::= { bgpPeerAfiSafiEntry 8 }

  bgpPeerAfiSafiSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The SAFI index into the peer <AFI, SAFI> table."
    ::= { bgpPeerAfiSafiEntry 9 }

  bgpPeerAfiSafiDisable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "When bgpPeerAfiSafiDisable is 'true', BGP will not
                 advertise Multiprotocol support to the peer for this
                 address family.

                 When bgpPeerAfiSafiDisable is 'false', BGP will advertise
                 Multiprotocol support to the peer if support for the
                 address family has been enabled in the corresponding
                 bgpRmAfiSafiTable entry.

                 Any update to this object will take effect the next time
                 that the bgpPeerTable entry is activated
                 (bgpPeerAdminStatus is changed to 'adminStatusUp').

                 If config usage bit bgpPeerUseGrpAfiSafiDisable is set, and
                 the peer belongs to a peer group, then the
                 bgpPeergrAfiSafiDisable value is used instead of this value."
    DEFVAL { false }
    ::= { bgpPeerAfiSafiEntry 10 }

  bgpPeerAfiSafiConfigRtRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerAfiSafiStRtRefresh instead.

                 Set this to 'true' to trigger BGP to send a Route Refresh
                 to the peer for this AFI/SAFI.

                 Setting this field will only have an effect if a BGP
                 session to the peer is active.  Peers that do not support
                 route refresh will have their sessions toggled.

                 This field always has the value 'false' when read."
    DEFVAL { false }
    ::= { bgpPeerAfiSafiEntry 11 }

  bgpPeerAfiSafiAllowLocalAs OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of instances of the local AS identifier that may
                 be contained in the route's AS-Path without rejecting the
                 route.

                 The AS-Path attribute of a BGP route contains the identifiers
                 of the Autonomous Systems traversed by the route.  When
                 a route is received with an AS-Path containing the local
                 AS identifier, it normally indicates a routing loop, and
                 the default behavior is to reject the route.  This object
                 allows this behavior to be over-ridden.

                 This is useful, for example, for VPN routes, where routes
                 from one CE router are advertised to other CE routers sites
                 through a provider's BGP network.  Two CE routers in
                 the same AS can enable this feature to prevent routes from
                 the other CE from being discarded.

                 If bgpPeerAllowLocalAs is set to a non-zero value, then that
                 value is used for all address families, and the value of
                 bgpPeerAfiSafiAllowLocalAs is ignored.

                 To configure values independently for each address family, set
                 bgpPeerAllowLocalAs to 0 and set the values of
                 bgpPeerAfiSafiAllowLocalAs as required.

                 Changing the value of this object while the peer is active
                 triggers BGP to refresh its routes from the peer.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 12 }

  bgpPeerAfiSafiDisableSndLpDetect OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the sender-side loop detection
                 configuration provided by bgpPeerDisableSenderLoopDetect.

                 By default, BGP performs sender side loop detection.  That
                 is, it will not advertise a route to a peer if the AS-Path
                 of the route already contains the peer's AS number.  A
                 peer would typically discard such routes, so this is
                 normally a useful optimization.

                 However, the peer may be configured to accept such routes
                 (see bgpPeerAfiSafiAllowLocalAs).  In this case it is
                 necessary to disable sender-side loop detection.

                 When bgpPeerDisableSenderLoopDetect is 'true', BGP
                 disables sender-side loop detection for those address
                 families for which bgpPeerAfiSafiDisableSndLpDetect is
                 'true'.

                 When bgpPeerDisableSenderLoopDetect is 'false',
                 sender-side loop detection is not disabled for any address
                 families.

                 If the value of this object is changed while the peer session
                 is active, BGP will check for any routes that need to be
                 advertised or withdrawn as a result of the change.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description.

                 Note that sender-side loop detection does not operate on
                 peers in an update group."
    DEFVAL { true }
    ::= { bgpPeerAfiSafiEntry 13 }

  bgpPeerAfiSafiNxtHopSlf OBJECT-TYPE
    SYNTAX      BgpNextHopSelf
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the next-hop-self configuration
                 provided by bgpPeerNxtHopSlf.

                 If the bgpPeerAfiSafiUsePeerNxtHopSlf bit is set in the
                 bgpPeerAfiSafiConfigUsage field then this value is ignored
                 and the peer configuration is used instead.

                 If the value of this object is changed while the peer session
                 is active, BGP will check for any routes that need to be
                 advertised or withdrawn as a result of the change.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
-- Versa changed default
    DEFVAL { true }
    ::= { bgpPeerAfiSafiEntry 14 }

  bgpPeerAfiSafiOrigDefault OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether BGP should originate a default route to
                 the peer for this AFI/SAFI.

                 BGP cannot originate default VPN routes and so
                 bgpPeerAfiSafiOrigDefault cannot be set to 'true' if
                 bgpPeerAfiSafiSafi is 'mplsBgpVpn'.

                 This is because there is no single default route for a VPN
                 address family - there may be one for each VRF.  If a
                 default VPN route is required, it should should be
                 redistributed from the corresponding VRF.  This ensures
                 that the default VPN route is advertised by BGP along with
                 the associated label, route distinguisher and route
                 targets.

                 Similarly, BGP does not support the allocation of a label
                 for a default route, and so bgpPeerAfiSafiOrigDefault
                 cannot be set to 'true' if bgpPeerAfiSafiSafi is
                 'labeled'.

                 Default routes are meaningless for L2VPNs, so
                 bgpPeerAfiSafiOrigDefault cannot be set to 'true' if
                 bgpPeerAfiSafiAfi is 'l2vpn'.

                 The origination of default routes may optionally be
                 conditional based on policy.  If this is required, then
                 set bgpPeerAfiSafiOrigDefaultRtMap to specify a route map.

                 If no route map is specified
                 (bgpPeerAfiSafiOrigDefaultRtMap is zero), then default
                 route origination is based solely on the setting of
                 bgpPeerAfiSafiOrigDefault.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { false }
    ::= { bgpPeerAfiSafiEntry 15 }

  bgpPeerAfiSafiOrigDefaultRtMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configured policy for origination of default routes.

                 The value of bgpPeerAfiSafiOrigDefaultRtMap is only
                 examined if bgpPeerAfiSafiOrigDefault is 'true'.

                 It identifies a route map consisting of all rows in the
                 bgpRouteMapTable with bgpRouteMapIndex set to
                 bgpPeerAfiSafiOrigDefaultRtMap.

                 The route map has two purposes.

                 -  The match clauses are used for conditional
                 advertisement of the default route.  A default route is
                 only originated for an address family if
                 bgpPeerAfiSafiOrigDefault is 'true' and if there is at
                 least one route in the loc-RIB matching the route map.

                 -  The set clauses of the route map determine the
                 attributes of the originated default route.

                 Note that route maps may consist of multiple
                 bgpRouteMapTable entries.  These bgpRouteMapTable entries
                 can be configured to match a specific address family.  Any
                 such bgpRouteMapTable entry that does not match the
                 address family for this bgpPeerAfiSafiTable entry is
                 ignored.

                 These route maps should be configured as follows.

                 -  To restrict a route map to a particular AFI/SAFI,
                 specify bgpRouteMapMaAfi and bgpRouteMapMaSafi.

                 -  Each route map should specify an IP prefix list to
                 match on.  This is not mandated by DC-BGP, but other
                 types of matches may have a performance impact.

                 -  Each IP prefix match is assumed to be an exact match.
                 In other words, DC-BGP treats each bgpIpPreTable entry
                 as having bgpIpPreLe = bgpIpPreLen, and bgpIpPreGe = 0.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 16 }

  bgpPeerAfiSafiSoftResetStore OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the soft reset configuration provided
                 by bgpPeerSoftResetWithStoredInfo.

                 When bgpPeerSoftResetWithStoredInfo is 'false', BGP does not
                 perform soft reset for any address family.

                 When bgpPeerSoftResetWithStoredInfo is 'true', BGP performs
                 soft reset for those address families for which
                 bgpPeerAfiSafiSoftResetStore is 'true'.

                 Any update to this object will take effect the next time
                 that the peer session reactivates.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { false }
    ::= { bgpPeerAfiSafiEntry 17 }

  bgpPeerAfiSafiConfigMaxPrfx OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the maximum prefix configuration
                 provided by bgpPeerConfigMaxPrfx.

                 To configure address family specific values for the maximum
                 number of prefixes that can be accepted from the peer,
                 set bgpPeerConfigMaxPrfx to zero, and set
                 bgpPeerAfiSafiConfigMaxPrfx to the limit for this address
                 family.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 18 }

  bgpPeerAfiSafiConfigDropWarn OBJECT-TYPE
    SYNTAX      BgpDropOrWarn
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the configuration provided by
                 bgpPeerConfigDropWarn, which determines the behavior when the
                 maximum prefix limit is reached.

                 To configure whether the session is dropped or a warning is
                 behavior independently for different address
                 families, set bgpPeerConfigDropWarn to 'warn', and set
                 the value of bgpPeerAfiSafiConfigDropWarn for each address
                 family as needed.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
-- Versa changed default from warn to drop
    DEFVAL { drop }
    ::= { bgpPeerAfiSafiEntry 19 }

  bgpPeerAfiSafiTrapPrefix OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the configuration provided by
                 bgpPeerTrapPrefix.

                 To disable sending of traps for all address families, set
                 bgpPeerTrapPrefix to 'false'.

                 To enable the sending of traps, set bgpPeerTrapPrefix to
                 'true' and set bgpPeerTrapPrefix to 'true' for those address
                 families for which this behavior is required.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { true }
    ::= { bgpPeerAfiSafiEntry 20 }

  bgpPeerAfiSafiConfigThreshold OBJECT-TYPE
    SYNTAX      Unsigned32 (0..100)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the threshold configuration
                 provided by bgpPeerConfigThreshold.  When the number of
                 prefixes received from this peer for this address family
                 reaches this threshold, BGP issues a warning.  The action
                 carried out by BGP depends on the value of
                 bgpPeerTrapPrefix and bgpPeerAfiSafiTrapPrefix.

                 This field is not used if bgpPeerConfigMaxPrfx and
                 bgpPeerAfiSafiConfigMaxPrfx are set to zero.

                 To configure a threshold for individual families, set
                 bgpPeerConfigThreshold to zero and set
                 bgpPeerAfiSafiConfigThreshold to the required threshold for
                 each address family.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { 75 }
    ::= { bgpPeerAfiSafiEntry 21 }

  bgpPeerAfiSafiMaxPrfxHold OBJECT-TYPE
    SYNTAX      Unsigned32 (0..86400)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the configuration provided by
                 bgpPeerMaxPrfxHold, which determines the time interval in
                 seconds between when this BGP session is torn down due to
                 the number of prefixes received from this peer exceeding the
                 maximum in bgpPeerConfigMaxPrfx(AfiSafi) and when BGP
                 attempts to reestablish the session.

                 To configure a time interval for individual families, set
                 bgpPeerMaxPrfxHold to zero and set bgpPeerAfiSafiMaxPrfxHold
                 to the required time interval for each address family.

                 If both bgpPeerMaxPrfxHold and bgpPeerAfiSafiMaxPrfxHold are
                 set to zero for an address family, the session is not
                 reestablished.  An attempt to configure a non-zero value
                 less than 30 seconds is rejected.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { 90 }
    ::= { bgpPeerAfiSafiEntry 22 }

  bgpPeerAfiSafiMaxOrfEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the maximum number of ORF entries
                 configuration provided by bgpPeerMaxOrfEntries.

                 To configure address family specific values for the maximum
                 number of ORF entries that can be accepted from the peer,
                 set bgpPeerMaxOrfEntries to zero, and set
                 bgpPeerAfiSafiMaxOrfEntries to the limit for this address
                 family.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 23 }

  bgpPeerAfiSafiAddPathCapCfg OBJECT-TYPE
    SYNTAX      BgpAddPathSrCap
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The configured BGP additional path capability for this
                 peer and AFI/SAFI.

                 Valid values are:
                 -  AMB_BGP_ADD_PATH_SR_INHERIT Inherit configuration from
                 the entity AFI/SAFI level (bgpRmAfiSafiAddPathCapCfg)
                 -  AMB_BGP_ADD_PATH_SR_DISABLE Disable sending and
                 receiving additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_RECEIVE Receive but do not send
                 additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_SEND Send but do not receive
                 additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_BOTH Send and receive additional
                 BGP paths.

                 The effective BGP additional path capabilities for the
                 session are negotiated with the peer and are reported by
                 the bgpPeerAfiSafiAddPathCapNeg field.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description.

                 Any update to this object will take effect the next time
                 that the bgpPeerTable entry is activated
                 (bgpPeerAdminStatus is changed to 'adminStatusUp')."
    DEFVAL { inherit }
    ::= { bgpPeerAfiSafiEntry 25 }

  bgpPeerAfiSafiAddPathCapNeg OBJECT-TYPE
    SYNTAX      BgpAddPathSrCap
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is now deprecated - use
                 bgpPeerAfiSafiStAddPathCapNeg instead.

                 The BGP additional path capability negotiated with this peer
                 for this AFI/SAFI.

                 Valid values are:
                 -  AMB_BGP_ADD_PATH_SR_DISABLE
                 Disable sending and receiving additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_RECEIVE
                 Receive but do not send additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_SEND
                 Send but do not receive additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_BOTH
                 Send and receive additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_UNKNOWN
                 Unknown because there is no peer session."
    ::= { bgpPeerAfiSafiEntry 26 }

  bgpPeerAfiSafiAddPathBestN OBJECT-TYPE
    SYNTAX      Unsigned32 (1..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of best paths to advertise to this peer as
                 additional paths for this AFI/SAFI.

                 The number of candidate paths available to advertise to
                 the peer depends on the value of the
                 bgpRmAfiSafiAddPathBestN field.  This field specifies how
                 many of the candidate paths to advertise to this peer.

                 For the default value of 1 only the best path for each
                 destination is advertised.

                 A value of 2 is sufficient to advertise the best path and
                 2nd best path for each destination.

                 Any additional paths are advertised to peers subject to
                 split horizon rules, export policy, and BGP ADD-PATH
                 capability negotiation.  These filters apply after
                 selecting the best N paths to advertise, so the actual
                 number of paths advertised may be smaller.

                 The peer may be configured to ignore this field and instead
                 obtain the value from a peer-group as explained in the table
                 description.

                 Changing the value of this field while the peer is active
                 triggers DC-BGP to advertise additional paths according to
                 the new configuration."
    DEFVAL { 1 }
    ::= { bgpPeerAfiSafiEntry 27 }

  bgpPeerAfiSafiImportMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map to use for route imports from
                 the peer for this AFI/SAFI.

                 The peer may be configured to ignore this field and instead
                 obtain the value from a peer-group as explained in the table
                 description.

                 Route import uses a single import route map chosen as
                 follows.

                 -  If using the peer group value and it is non-zero, then
                    use that (even if the route map does not exist).
                 -  If using the peer value and it is non-zero, then use
                    that (even if the route map does not exist).
                 -  Otherwise use configuration from the Policy Configuration
                    Table."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 28 }

  bgpPeerAfiSafiExportMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map to use for route exports to the
                 peer for this AFI/SAFI.

                 The peer may be configured to ignore this field and instead
                 obtain the value from a peer-group as explained in the table
                 description.

                 If the peer is a member of a peer group then using the peer
                 group export policy allows DC-BGP to take advantage of the
                 economies of using peer groups.

                 Route export uses a single export route map chosen as
                 follows.

                 -  If using the peer group value and it is non-zero, then
                    use that (even if the route map does not exist).
                 -  If using the peer value and it is non-zero, then use
                    that (even if the route map does not exist).
                 -  Otherwise use configuration from the Policy Configuration
                    Table."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 29 }

  bgpPeerAfiSafiImportIpPre OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is deprecated.  It is retained for back
                 compatibility.  Use the bgpPeerAfiSafiImportIpAallPre
                 field instead.

                 The index of the IP prefix list to use for route imports
                 from the peer for this AFI/SAFI.

                 Route import policy applies any import IP prefix list
                 before any import route map, and the route must be permitted
                 by both to be imported.  The import route map can apply its
                 own prefix lists in addition to any import IP prefix list.

                 If the peer is a member of a peer group then DC-BGP uses
                 peer import policy in preference to peer group policy.

                 Route import uses a single import IP prefix list chosen as
                 follows.
                 -  If bgpPeerAfiSafiImportIpPre is non-zero then use that
                    (even if the IP prefix list does not exist).
                 -  Otherwise if the peer is a member of a peer group and
                    bgpPeergrAfiSafiImportIpPre is non-zero then use that
                    (even if the IP prefix list does not exist)."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 30 }

  bgpPeerAfiSafiExportIpPre OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is deprecated.  It is retained for back
                 compatibility.  Use the bgpPeerAfiSafiExportIpAallPre
                 field instead.

                 The index of the IP prefix list to use for route exports
                 to the peer for this AFI/SAFI.

                 Route export policy applies any export IP prefix list
                 before any export route map, and the route must be permitted
                 by both to be exported.  The export route map can apply its
                 own prefix lists in addition to any export IP prefix list.

                 If the peer is a member of a peer group then DC-BGP always
                 uses peer group export policy in order to take advantage of
                 the economies of using peer groups.

                 Route export uses a single export IP prefix list chosen as
                 follows.
                 -  If bgpPeerAfiSafiExportIpPre is non-zero then use that
                    (even if the IP prefix list does not exist).
                 -  Otherwise if the peer is a member of a peer group and
                    bgpPeergrAfiSafiExportIpPre is non-zero then use that
                    (even if the IP prefix list does not exist)."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 31 }

  bgpPeerAfiSafiImportIpAallPre OBJECT-TYPE
    SYNTAX      PreAccessListListIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the AALL IP prefix access list to use for
                 route imports from the peer for this AFI/SAFI.

                 Route import policy applies any import IP prefix access
                 list before any import route map, and the route must be
                 permitted by both to be imported.  The import route map
                 can apply its own prefix lists in addition to any import
                 IP prefix access list.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description.

                 Route import uses a single import IP prefix access list
                 chosen as follows.

                 -  If using the peer group value, then use that.
                 -  If using the peer value and it is non-zero, then use
                 that.
                 -  If using the peer value and it is zero, then fallback
                 on using the peer group value if the peer is a member
                 of a peer group.

                 Once a value has been chosen, then use it even if the IP
                 prefix list does not exist."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 32 }

  bgpPeerAfiSafiExportIpAallPre OBJECT-TYPE
    SYNTAX      PreAccessListListIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the AALL IP prefix access list to use for
                 route exports to the peer for this AFI/SAFI.

                 Route export policy applies any export IP prefix access
                 list before any export route map, and the route must be
                 permitted by both to be exported.  The export route map
                 can apply its own prefix lists in addition to any export
                 IP prefix access list.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description.

                 Once a value has been chosen, then use it even if the IP
                 prefix list does not exist."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 33 }

  bgpPeerAfiSafiReflectorClient OBJECT-TYPE
    SYNTAX      BgpPeerReflectorClientType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the configuration provided by
                 bgpPeerReflectorClient.

                 This value indicates whether the given peer is a reflector
                 client of this router for this AFI/SAFI, or not.  A value
                 of nonClient(0) indicates that this peer is not a
                 reflector client for this AFI/SAFI.  A value of client(1)
                 indicates that this peer is a reflector client for this
                 AFI/SAFI that is not fully meshed with other reflector
                 clients.  A value of meshedClient(2) indicates that the
                 peer is a reflector client for this AFI/SAFI and is fully
                 meshed with all other reflector clients.

                 The peer's reflector-client setting for this AFI/SAFI is
                 chosen as follows.

                 -  If the peer is not a member of a peer group OR the
                    peer group is not used.
                    o  If bgpPeerReflectorClient is NOT non-client then use
                       that
                    o  Otherwise use bgpPeerAfiSafiReflectorClient.

                 -  If the peer is a member of a peer group AND the
                    peer group is used.
                    o  If bgpPeergrReflectorClient is NOT non-client then
                       use that.
                    o  Otherwise use bgpPeergrAfiSafiReflectorClient.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer).

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL      { nonClient }
    ::= { bgpPeerAfiSafiEntry 34 }

  bgpPeerAfiSafiAsOverride OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used in conjunction with bgpPeerAsOverride
                 to indicate whether BGP should perform AS-override on routes
                 advertised to the peer.

                 If AS-override is enabled, then when advertising routes to
                 this peer for this address-family, any instance of the peer's
                 AS number will be replaced in the advertised AS path with the
                 local AS number.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description.

                 AS-override may be enabled independently for each address
                 family.  When bgpPeerAsOverride is set to 'true', set
                 bgpPeerAfiSafiAsOverride to 'true' or 'false' to enable or
                 disable as-override for each address family.

                 This field can be changed at any time, and may cause routes
                 to be re-advertised to or withdrawn from the peer.

                 Note that this field has no effect when set for iBGP peers."
    DEFVAL      { false }
    ::= { bgpPeerAfiSafiEntry 35 }

  bgpPeerAfiSafiMinASOrigInt OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for determining the minimum
                 amount of time that must elapse between successive
                 advertisements of UPDATE messages that report changes to a
                 route within the advertising BGP speaker's own autonomous
                 system.

                 This field has no effect if
                 bgpPeerMinASOriginationInterval is set to a non-zero
                 value.  To configure values independently for each address
                 family, set bgpPeerMinASOriginationInterval to 0 and set
                 the values of bgpPeerAfiSafiMinASOrigInt as required.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL      { 15 }
    ::= { bgpPeerAfiSafiEntry 36 }

 bgpPeerAfiSafiMinRteAdvertInt OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the
                 MinRouteAdvertisementInterval timer.  This determines the
                 minimum time between a BGP UPDATE to a peer advertising or
                 withdrawing a route and a subsequent BGP UPDATE to the
                 peer advertising a route to the same destination.

                 If the bgpPeerAfiSafiUsePeerMinAdInt bit is set in the
                 bgpPeerAfiSafiConfigUsage field then this value is ignored
                 and the peer configuration is used instead.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL      { 30 }
    ::= { bgpPeerAfiSafiEntry 37 }

 bgpPeerAfiSafiMinRteWithdrawInt OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the MinRouteWithdrawInterval
                 timer.  This is the interval which is enforced between
                 advertisement and subsequent withdrawal of a route.

                 This field has no effect if bgpPeerMinRouteWithdrawInterval is
                 set to a non-zero value.  To configure values
                 independently for each address family, set
                 bgpPeerMinRouteWithdrawInterval to 0 and set the values of
                 bgpPeerAfiSafiMinRteWithdrawInt as required.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL      { 0 }
    ::= { bgpPeerAfiSafiEntry 38 }

  bgpPeerAfiSafiSendComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used in conjunction with the bgpPeerSendComm
                 field in the bgpPeerTable to indicate whether BGP will
                 send UPDATE messages to the peer for this address family
                 containing BGP community attributes.

                 When set to 'true', and bgpPeerSendComm is set to 'true',
                 DC-BGP sends UPDATE messages to the peer for this address
                 family including BGP community attributes.

                 Otherwise, DC-BGP sends UPDATE messages to the peer, for
                 this address family omitting BGP community attributes.

                 Changing the value of this field while the peer is active
                 triggers DC-BGP to resend routes with community attributes
                 included or omitted according to the new configuration.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { true }
    ::= { bgpPeerAfiSafiEntry 39 }

  bgpPeerAfiSafiSendExtComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used in conjunction with the bgpPeerSendExtComm
                 field in the bgpPeerTable to indicate whether BGP will
                 send UPDATE messages to the peer for this address family
                 containing BGP extended community attributes.

                 When set to 'true', and bgpPeerSendExtComm is set to 'true',
                 DC-BGP sends UPDATE messages to the peer for this address
                 family including BGP extended community attributes.

                 Otherwise, DC-BGP sends UPDATE messages to the peer, for
                 this address family omitting BGP extended community
                 attributes.

                 Changing the value of this field while the peer is active
                 triggers DC-BGP to resend routes with extended community
                 attributes included or omitted according to the new
                 configuration.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { true }
    ::= { bgpPeerAfiSafiEntry 40 }

  bgpPeerAfiSafiConfigUsage OBJECT-TYPE
    SYNTAX      BgpPeerAfiSafiCfgUsage
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A set of bit flags which controls whether peer AFI/SAFI
                 configuration is taken from this table or from peer
                 configuration.

                 A bit flag exists for a subset of the peer's AFI/SAFI
                 configuration fields that can also be configured on a
                 per-peer basis.

                 For this subset of fields, the peer should use the
                 per-AFI-SAFI configuration value if the bit flag is unset
                 and should use the peer configuration if the bit flag is
                 set."
    DEFVAL { { bgpPeerAfiSafiUsePeerMinAdInt,
               bgpPeerAfiSafiUsePeerNxtHopSlf } }
    ::= { bgpPeerAfiSafiEntry 41 }

  bgpPeerAfiSafiMaxPrfxClear OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control over the configuration provided by
                 bgpPeerMaxPrfxClear.

                 To configure address family specific values, set
                 bgpPeerMaxPrfxClear to zero and set
                 bgpPeerAfiSafiMaxPrfxClear to the level for this address
                 family.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 42 }

  bgpPeerAfiSafiPrfxThrsholdClear OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control over the configuration provided by
                 bgpPeerPrxThresholdClear.

                 To configure address family specific values, set
                 bgpPeerPrfxThresholdClear to zero and set
                 bgpPeerAfiSafiPrfxThrsholdClear to the level for this
                 address family.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { 0 }
    ::= { bgpPeerAfiSafiEntry 43 }

  bgpPeerAfiSafiPreserveNh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used to preserve the BGP next hop when
                 forwarding routes to this eBGP peer.

                 By default, the next hop of a route is preserved when
                 advertising the route to an iBGP peer, but is updated when
                 advertising the route to an eBGP peer.  Setting this to
                 'true' over-rides this behavior and preserves the next hop
                 when routes are advertised to this eBGP peer.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { false }
    ::= { bgpPeerAfiSafiEntry 44 }

  bgpPeerAfiSafiAcceptRmtNxtHop OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If set to false for a directly connected eBGP peer, routes
                 received from the peer with a next-hop that is not the peer's
                 remote address and is not in a subnet shared with the remote
                 device will be rejected, in accordance with RFC 4271 section
                 6.3.

                 If set to true, this check is not performed, and such routes
                 may be accepted.  This is useful when communicating with an
                 eBGP peer that preserves the next-hop of routes that it
                 advertises.

                 The peer may be configured to ignore this field and
                 instead obtain the value from a peer-group as explained in
                 the table description."
    DEFVAL { false }
    ::= { bgpPeerAfiSafiEntry 45 }

  bgpPeerAfiSafiConfigFromGr OBJECT-TYPE
    SYNTAX      BgpPeerAfiSafiCfgFromGrFlags
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A set of bit flags which control whether peer AFI/SAFI
                 configuration is taken from peer group level configuration
                 (bgpPeergrTable or bgpPeergrAfiSafiTable), or from the
                 configuration indicated by bgpPeerConfigUsage (and
                 bgpPeerConfigUsage2 and bgpPeerConfigUsage3).

                 A bit flag exists for each of the peer AFI/SAFI
                 configuration fields that can also be configured at the
                 peer group level.

                 If the bit flag is set, the peer AFI/SAFI should use the
                 use the peer group level configuration.  If the bit flag
                 is clear, the peer AFI/SAFI should use the configuration
                 indicated by bgpPeerConfigUsage (and bgpPeerConfigUsage2
                 and bgpPeerConfigUsage3)."
  DEFVAL { { } }
  ::= { bgpPeerAfiSafiEntry 46 }

-------------------------------------------------------------------------------

  bgpPeerRangeTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_PR
    SYNTAX      SEQUENCE OF BgpPeerRangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Peer range table.

                 This table allows a user to configure BGP dynamic neighbors.
                 Instead of being configured individually in the BGP peer
                 table, BGP dynamic neighbors are configured as ranges of
                 remote addresses with associated peer groups.  Each range
                 is configured as a remote address prefix.  Any BGP peer with
                 a remote address that matches the remote address prefix
                 becomes a member of the associated peer group.

                 Each entry in this table configures a remote address prefix
                 and specifies the associated peer group.

                 DC-BGP handles incoming connections from BGP peers as
                 follows.
                 -  If the connection matches a peer configured in the
                    BGP peer table then the peer is a configured peer.
                 -  Otherwise if the connection matches a remote address
                    prefix in the BGP peer range table then the peer is
                    a dynamic peer.
                -  Otherwise if the listen socket is configured to accept
                   all incoming connections then the connection is accepted
                   and uses the default peer configuration.
                -  Otherwise the connection is rejected.

                For an incoming connection to match an entry in this table
                the following conditions must all be satisfied.
                -  The remote address of the incoming connection must match
                   the remote address prefix of the peer range entry.
                -  The row status of the peer range entry must be 'active'.
                -  The admin status of the peer range entry must be 'up'.
                -  The peer range entry must specify a peer group.
                -  The peer group must exist.
                -  The row status of the peer group must be 'active'.
                -  The admin status of the peer group must be 'up'.

                If an incoming connection doesn't satisfy all these
                conditions for one peer range entry then it can still be
                accepted if it matches another peer range entry or if the
                listen socket is configured to accept all incoming
                connections.

                If an incoming connection matches multiple peer range
                entries then the entry with the longest remote address
                prefix is selected.

                Although it is possible to configure overlapping peer ranges
                with different remote address prefix lengths, this is not
                recommended - peer range configuration is simpler and
                clearer if peer ranges do not overlap.

                Dynamic peers are always passive.  It is not possible to
                initiate outbound connections to dynamic peers because
                their addresses aren't known until they initiate an
                incoming connection.

                Deactivating a peer range entry causes BGP sessions with
                matching dynamic BGP peers to be dropped.  This does not
                apply to configured BGP peers with matching remote
                addresses, nor to dynamic BGP peers with remote addresses
                matching peer range entries with longer remote address
                prefixes."
      ::= { bgpMib 10 }

  bgpPeerRangeEntry OBJECT-TYPE
    SYNTAX          BgpPeerRangeEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "Each entry represents a Peer Range entity."
    INDEX { bgpRmEntIndex,
            bgpPeerRangeRemoteAddrType,
            bgpPeerRangeRemoteAddr,
            bgpPeerRangeRemotePrefixLen,
            bgpPeerRangeRemoteAddrScopeId }
    ::= { bgpPeerRangeTable 1 }

  BgpPeerRangeEntry ::= SEQUENCE {
      bgpPeerRangeRemoteAddrType      InetAddressType,
      bgpPeerRangeRemoteAddr          InetAddress,
      bgpPeerRangeRemotePrefixLen     InetAddressPrefixLength,
      bgpPeerRangeRemoteAddrScopeId   Unsigned32,
      bgpPeerRangeRowStatus           RowStatus,
      bgpPeerRangeAdminStatus         BgpAdminStatus,
      bgpPeerRangeConfigPeergr        Unsigned32,
      bgpPeerRangeNumPeers            Unsigned32,
      bgpPeerRangeMaxPeers            Unsigned32
      }

  bgpPeerRangeRemoteAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The address family of the remote address prefix.

                 Valid values are: ipv4 and ipv6.  Type ipv6 is
                 only accepted if bgpRmEntSupportIpv6 is TRUE."
    ::= { bgpPeerRangeEntry 2 }

  bgpPeerRangeRemoteAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The remote address prefix.

                 The length must be consistent with bgpPeerRangeRemoteAddrType,
                 4 for ipv4 and 16 for ipv6.

                 The prefix length is specified by
                 bgpPeerRangeRemotePrefixLen.  Any bits beyond the specified
                 prefix length must be zero."
    ::= { bgpPeerRangeEntry 3 }

  bgpPeerRangeRemotePrefixLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The remote address prefix length in bits."
    ::= { bgpPeerRangeEntry 4 }

  bgpPeerRangeRemoteAddrScopeId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The scope ID of the remote address prefix.  The scope ID
                 is required if the address is an IPv6 link-local address.
                 Otherwise, this field must be set to zero."
    ::= { bgpPeerRangeEntry 5 }

  bgpPeerRangeRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status for this peer range table entry, used to
                 create and destroy table entries."
    ::= { bgpPeerRangeEntry 6 }

  bgpPeerRangeAdminStatus OBJECT-TYPE
    SYNTAX      BgpAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The administrative status of this table entry, used to
                 activate and deactivate the peer range."
-- Versa changed default
    DEFVAL      { adminStatusUp }
    ::= { bgpPeerRangeEntry 7 }

  bgpPeerRangeConfigPeergr OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the peer group that neighbors in this peer
                 range belongs to.

                 The peer range must be assigned to a peer group so this
                 field cannot be set to zero.

                 If this field is changed while active then all dynamic peers
                 based on the peer range entry are immediately updated."
    ::= { bgpPeerRangeEntry 8 }

  bgpPeerRangeNumPeers OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current number of dynamic BGP peers for this peer
                 range."
    ::= { bgpPeerRangeEntry 9 }

  bgpPeerRangeMaxPeers OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum number of dynamic BGP peers for this peer
                 range, or zero if there is no limit.

                 If this limit is reached then DC-BGP rejects incoming
                 connections from new dynamic BGP peers until BGP session
                 termination causes the number of dynamic BGP peers to fall
                 back below the limit.

                 If this limit is reduced below the current number of
                 dynamic BGP peers then DC-BGP will reject incoming
                 connections from new dynamic BGP peers until the number
                 of dynamic BGP peers falls below the new limit.  DC-BGP
                 does not terminate existing BGP sessions with dynamic BGP
                 peers in this case."
    DEFVAL { 0 }
    ::= { bgpPeerRangeEntry 10 }

-------------------------------------------------------------------------------

  bgpPeerCaps OBJECT IDENTIFIER ::= { bgpPeer 2 }

  --
  -- Received Capabilities
  --
  -- This table contains information about the capabilities received from
  -- peers.  Each row in the table corresponds to a capability received from a
  -- peer.
  --

  bgpPeerCapsRcvdTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_PCP
    SYNTAX      SEQUENCE OF BgpPeerCapsRcvdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains contains the capabilities
                 that are supported for a given peer.
                 It is equivalent to the bgpM2PeerCapsReceivedTable."
    ::= { bgpPeerCaps 1 }

  bgpPeerCapsRcvdEntry OBJECT-TYPE
    SYNTAX      BgpPeerCapsRcvdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "These entries are keyed by a peer index and the BGP
                 Capability Code and index."
    INDEX { bgpRmEntIndex,
            bgpPeerIndex,
            bgpPeerCapRcvdCode,
            bgpPeerCapRcvdIndex }
    ::= { bgpPeerCapsRcvdTable 1 }

  BgpPeerCapsRcvdEntry ::= SEQUENCE {
      bgpPeerCapRcvdCode         Unsigned32,
      bgpPeerCapRcvdIndex        Unsigned32,
      bgpPeerCapRcvdValue        OCTET STRING
      }

  bgpPeerCapRcvdCode OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP Capability Advertisement Capability Code."
    ::= { bgpPeerCapsRcvdEntry 3 }

  bgpPeerCapRcvdIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..128)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Multiple instances of a given capability may be sent
                 by a BGP speaker.  This variable is used to index them."
    ::= { bgpPeerCapsRcvdEntry 4 }

  bgpPeerCapRcvdValue OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The value of the announced capability."
    ::= { bgpPeerCapsRcvdEntry 5 }

-------------------------------------------------------------------------------

  --
  -- Sent Capabilities
  --
  -- This table contains information about the capabilities sent to peers.
  -- Each row in the table corresponds to a capability sent to a peer.
  --

  bgpPeerCapsSentTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_PCP
    SYNTAX      SEQUENCE OF BgpPeerCapsSentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains contains the capabilities
                 that are announced to a given peer.
                 It is equivalent to the bgpM2PeerCapsAnnouncedTable."
    ::= { bgpPeerCaps 2 }

  bgpPeerCapsSentEntry OBJECT-TYPE
    SYNTAX      BgpPeerCapsSentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "These entries are keyed by a peer index and the BGP
                 Capability Code and index."
    INDEX { bgpRmEntIndex,
            bgpPeerIndex,
            bgpPeerCapSentCode,
            bgpPeerCapSentIndex }
    ::= { bgpPeerCapsSentTable 1 }

  BgpPeerCapsSentEntry ::= SEQUENCE {
      bgpPeerCapSentCode         Unsigned32,
      bgpPeerCapSentIndex        Unsigned32,
      bgpPeerCapSentValue        OCTET STRING
      }

  bgpPeerCapSentCode OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP Capability Advertisement Capability Code."
    ::= { bgpPeerCapsSentEntry 3 }

  bgpPeerCapSentIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..128)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Multiple instances of a given capability may be sent
                 by a BGP speaker.  This variable is used to index them."
    ::= { bgpPeerCapsSentEntry 4 }

  bgpPeerCapSentValue OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The value of the announced capability."
    ::= { bgpPeerCapsSentEntry 5 }

-------------------------------------------------------------------------------

  bgpPeerCntrs OBJECT IDENTIFIER ::= { bgpPeer 3 }

  --
  -- Per-Peer Prefix Counters
  --
  -- A statistics table keeping track of the number of prefixes received and
  -- sent on a per peer per AFI/SAFI basis.
  --

  bgpPrfxCntrsTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_PCT
    SYNTAX      SEQUENCE OF BgpPrfxCntrsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Additional per-peer, per AFI/SAFI counters for prefixes.
                 It is equivalent to the bgpM2PrefixCountersTable."
    ::= { bgpPeerCntrs 1 }

  bgpPrfxCntrsEntry OBJECT-TYPE
    SYNTAX      BgpPrfxCntrsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about a bgp-peer's prefix
                 counters."
    INDEX { bgpRmEntIndex,
            bgpPeerIndex,
            bgpPrfxCntrsAfi,
            bgpPrfxCntrsSafi }
    ::= { bgpPrfxCntrsTable 1 }

  BgpPrfxCntrsEntry ::= SEQUENCE {
      bgpPrfxCntrsAfi                 BgpAfi,
      bgpPrfxCntrsSafi                BgpSafi,
      bgpPrfxInPrfxes                 Gauge32,
      bgpPrfxInPrfxesAccepted         Gauge32,
      bgpPrfxInPrfxesRejected         Gauge32,
      bgpPrfxOutPrfxes                Gauge32,
      bgpPrfxOutPrfxesAdvertised      Gauge32,
      bgpPrfxCntrsUserData            OCTET STRING,
      bgpPrfxInPrfxesFlapped          Gauge32,
      bgpPrfxInPrfxesFlapSuppressed   Gauge32,
      bgpPrfxInPrfxesFlapHistory      Gauge32,
      bgpPrfxInPrfxesActive           Gauge32,
      bgpPrfxInPrfxesDeniedByPol      Gauge32,
      bgpPrfxNumLocRibRoutes          Gauge32,
      bgpPrfxNumLocRibBestRoutes      Gauge32,
      bgpPrfxInPrfxesDeniedMartian    Gauge32,
      bgpPrfxInPrfxesDeniedAsLoop     Gauge32,
      bgpPrfxInPrfxesDeniedNextHop    Gauge32,
      bgpPrfxInPrfxesDeniedAsLength   Gauge32,
      bgpPrfxInPrfxesDeniedCommunity  Gauge32,
      bgpPrfxInPrfxesDeniedLocalOrig  Gauge32,
      bgpPrfxInTotalPrfxes            Gauge32,
      bgpPrfxOutTotalPrfxes           Gauge32,
      bgpPrfxPeerState                BgpPeerStates,
      bgpPrfxOutPrfxesDenied          Gauge32,
      bgpPrfxOutPrfxesImpWdr          Gauge32,
      bgpPrfxOutPrfxesExpWdr          Gauge32,
      bgpPrfxInPrfxesImpWdr           Gauge32,
      bgpPrfxInPrfxesExpWdr           Gauge32,
      bgpPrfxCurPrfxesDeniedByPol     Gauge32
      }

  bgpPrfxCntrsAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The AFI index of the per-peer, per prefix counters."
    ::= { bgpPrfxCntrsEntry 3 }

  bgpPrfxCntrsSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The SAFI index of the per-peer, per prefix counters."
    ::= { bgpPrfxCntrsEntry 4 }

  bgpPrfxInPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes received from a peer and are stored
                 in the Adj-RIB-In for that peer.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 5 }

  bgpPrfxInPrfxesAccepted OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for a peer that are installed in
                 the Adj-RIB-In and are eligible to become active in the
                 Loc-Rib.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
::= { bgpPrfxCntrsEntry 6 }

  bgpPrfxInPrfxesRejected OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for a peer that are installed in
                 the Adj-RIB-In and are NOT eligible to become active in the
                 Loc-Rib.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 7 }

  bgpPrfxOutPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for a peer that are installed in
                 that peer's Adj-RIB-Out.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 8 }

  bgpPrfxOutPrfxesAdvertised OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of advertised prefixes currently associated
                 with the peer.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 Note that the value of this field may differ from
                 bgpPrfxOutPrfxes since that field includes recently withdrawn
                 routes which are undergoing suppression procedures."
    ::= { bgpPrfxCntrsEntry 9 }

  bgpPrfxCntrsUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this BGP prefix counters entry."
    ::= { bgpPrfxCntrsEntry 10 }

  bgpPrfxInPrfxesFlapped OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for a peer that are installed in
                 the Adj-RIB-In and for which RIB Manager is tracking a route
                 flap damping penalty.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 11 }

  bgpPrfxInPrfxesFlapSuppressed OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for a peer that are installed in
                 the Adj-RIB-In and that are suppressed as a result of route
                 flapping.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 12 }

  bgpPrfxInPrfxesFlapHistory OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for a peer that are not currently
                 in the Adj-RIB-In, but which have an associated route flap
                 damping penalty.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 13 }

  bgpPrfxInPrfxesActive OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for a peer that are installed in
                 the Adj-RIB-In and are marked as 'active' in the Loc-Rib.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 This field only contains the count of prefixes for AFI/SAFIs
                 for which bgpRmAfiSafiAdvertiseInactive is set to 'true'."
    ::= { bgpPrfxCntrsEntry 14 }

  bgpPrfxInPrfxesDeniedByPol OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times a received prefix has been denied, and
                 therefore not installed in the Adj-RIB-In, because of local
                 filter policy.

                 This does not track whether an individual prefix has
                 previously been rejected, and so the same prefix may be
                 counted multiple times if it is advertised repeatedly.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 15 }

  bgpPrfxNumLocRibRoutes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for a peer that are installed in
                 the Adj-RIB-In and included in the Loc-RIB.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes, so this includes
                 additional paths as well as 'best' routes.

                 This does not include additional next hops on ECMP routes."
    ::= { bgpPrfxCntrsEntry 16 }

  bgpPrfxNumLocRibBestRoutes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for a peer that are installed in
                 the Adj-RIB-In and included in the Loc-RIB as 'best' routes.

                 This does not include additional paths or additional next
                 hops on ECMP routes."
    ::= { bgpPrfxCntrsEntry 17 }

  bgpPrfxInPrfxesDeniedMartian OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times a received Martian prefix has been
                 denied and therefore not installed in the Adj-RIB-In.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 18 }

  bgpPrfxInPrfxesDeniedAsLoop OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times a received prefix has been denied, and
                 therefore not installed in the Adj-RIB-In, due to loops as
                 determined by the AS Path.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 19 }

  bgpPrfxInPrfxesDeniedNextHop OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times a received prefix has been denied, and
                 therefore not installed in the Adj-RIB-In, because the
                 next hop is invalid.

                 The next hop is invalid if it is not on the local subnet.
                 This check only applies to directly-connected eBGP peers.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 20 }

  bgpPrfxInPrfxesDeniedAsLength OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times a received prefix has been denied, and
                 therefore not installed in the Adj-RIB-In, because the AS
                 Path length is too long.

                 The AS Path length is too long if the number of AS numbers
                 in the AS_PATH attribute is greater than the value of
                 bgpRmEntMaxASLimit.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 21 }

  bgpPrfxInPrfxesDeniedCommunity OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times a received prefix has been denied, and
                 therefore not installed in the Adj-RIB-In, due to
                 well-known community checks.

                 This applies to routes learned from a bilateral eBGP peer
                 that contain the NOPEER community.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 22 }

  bgpPrfxInPrfxesDeniedLocalOrig OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times a received prefix has been denied, and
                 therefore not installed in the Adj-RIB-In, because it is
                 locally originated.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 23 }

  bgpPrfxInTotalPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of prefixes learned from all sessions with
                 this peer.

                 When a session fails, the value in this counter persists and
                 will be reported even thought the session is not established.
                 When a new session starts, the number continues to be
                 incremented.

                 This counter is reset to zero when the bgpPeerStatusClearCnts
                 field is set to true."
    ::= { bgpPrfxCntrsEntry 24 }

  bgpPrfxOutTotalPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of prefixes sent on all sessions with this
                 peer.

                 When a session fails, the value in this counter persists and
                 will be reported even thought the session is not established.
                 When a new session starts, the number continues to be
                 incremented.

                 This counter is reset to zero when the bgpPeerStatusClearCnts
                 field is set to true."
    ::= { bgpPrfxCntrsEntry 25 }

  bgpPrfxPeerState OBJECT-TYPE
    SYNTAX      BgpPeerStates
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The BGP peer's FSM state.

                 This allows the user to filter on results for sessions that
                 are active."
    ::= { bgpPrfxCntrsEntry 26 }

  bgpPrfxOutPrfxesDenied OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This is the number of prefixes in the Loc-RIB that have
                have failed export policy checks and so have not been
                installed in the Adj-RIB-Out."
    ::= { bgpPrfxCntrsEntry 27 }

  bgpPrfxOutPrfxesImpWdr OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of routes for which an implicit withdraw
                has been sent to this peer.  A route is implicitly
                withdrawn if a replacement route with the same NLRI is
                advertised."
    ::= { bgpPrfxCntrsEntry 28 }

  bgpPrfxOutPrfxesExpWdr OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of routes for which an explicit withdraw
                has been sent to this peer.  A route is explicitly
                withdrawn if it is advertised in the WITHDRAWN ROUTES
                field in an UPDATE message sent."
    ::= { bgpPrfxCntrsEntry 29 }

  bgpPrfxInPrfxesImpWdr OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of routes that have been implicitly
                withdrawn by this peer.  A route is implicitly withdrawn
                if a replacement route with the same NLRI is received."
    ::= { bgpPrfxCntrsEntry 30 }

  bgpPrfxInPrfxesExpWdr OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of routes that have been explicitly
                withdrawn by this peer.  A route is explicitly withdrawn
                if it is advertised in the WITHDRAWN ROUTES field in an
                UPDATE message received."
    ::= { bgpPrfxCntrsEntry 31 }

  bgpPrfxCurPrfxesDeniedByPol OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "When 'soft reset with stored routing information' is
                 enabled for a peer with the given AFI/SAFI, this is the
                 number of stored prefixes from the peer that have failed
                 import policy checks and so have not been installed in the
                 Adj-RIB-In.

                 Otherwise, this field is set to zero.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpPrfxCntrsEntry 32 }

-------------------------------------------------------------------------------

  bgpRib OBJECT IDENTIFIER ::= { bgpMib 4 }

  --
  -- BGP NLRI Data
  --
  -- This table contains per route information including routes, attributes
  -- and flap statistics if the route is being damped.
  --

  bgpNlriTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_NLR
    SYNTAX      SEQUENCE OF BgpNlriEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Received Path Attribute Table contains information
                 about paths to destination networks received from all BGP4
                 peers and AFMs, along with locally configured aggregate
                 routes.  It is equivalent to the bgpM2NlriTable, with
                 additional fields from the bgpM2PathAttrTable, and fields
                 to monitor the Route Flap damping state of the NLRI.

                 This table reports routes and path attributes after import
                 policy has been applied.  Routes accepted by import
                 policy are reported, along with locally configured aggregate
                 routes.

                 This table must contain an identical set of fields to the
                 bgpNlriPrefixTable.  All non-index fields must be in the same
                 order in this table and the bgpNlriPrefixTable."
    ::= { bgpRib 1 }

  bgpNlriEntry OBJECT-TYPE
    SYNTAX      BgpNlriEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a path to a network."
    INDEX { bgpRmEntIndex,
            bgpNlriPeerOrAfm,
            bgpNlriPeerAfmIndex,
            bgpNlriAfi,
            bgpNlriSafi,
            bgpNlriPrfx,
            bgpNlriPrfxLen,
            bgpNlriPathId }
    ::= { bgpNlriTable 1 }

  BgpNlriEntry ::= SEQUENCE {
      bgpNlriPeerOrAfm                 BgpPeerOrAfm,
      bgpNlriPeerAfmIndex              Unsigned32,
      bgpNlriAfi                       BgpAfi,
      bgpNlriSafi                      BgpSafi,
      bgpNlriPrfx                      InetAddress,
      bgpNlriPrfxLen                   InetAddressPrefixLength,
      bgpNlriBest                      TruthValue,
      bgpNlriAsSize                    BgpAsSize,
      bgpNlriASPathStr                 OCTET STRING,
      bgpPathAttrOrigin                BgpOriginCode,
      bgpPathAttrNextHop               InetAddress,
      bgpPathAttrMultiExitDisc         Unsigned32,
      bgpPathAttrLocalPref             Unsigned32,
      bgpPathAttrAtomicAggregate       BgpPathAttrAtomicAggPresence,
      bgpPathAttrAggregatorAS          BgpAutonomousSystemNumber,
      bgpPathAttrAggregatorAddr        BgpIdentifier,
      bgpPathAttrCalcLocalPref         Unsigned32,
      bgpPathAttrOrigId                BgpIdentifier,
      bgpPathAttrWeight                Unsigned32,
      bgpFlapStatsConfig               Unsigned32,
      bgpFlapStatsPenalty              Unsigned32,
      bgpFlapStatsFlapcnt              Unsigned32,
      bgpFlapStatsSupprsd              TruthValue,
      bgpFlapStatsTimeleft             Unsigned32,
      bgpFlapStatsCleardamp            TruthValue,
      bgpFlapStatsClearstat            TruthValue,
      bgpNlriEcmp                      TruthValue,
      bgpPathAttrAsPathLimAs           BgpAutonomousSystemNumber,
      bgpPathAttrAsPathLimUpper        Unsigned32,
      bgpNlriIsActive                  BgpNlriIsActiveFlag,
      bgpNlriUserData                  OCTET STRING,
      bgpNlriStale                     TruthValue,
      bgpNlriFlapStartTime             TimeStamp,
      bgpNlriLinkLocalNextHop          InetAddress,
      bgpPathAttrMEDPrsnt              TruthValue,
      bgpNlriPathId                    Unsigned32,
      bgpNlriHistory                   TruthValue,
      bgpNlriPmsi                      OCTET STRING,
      bgpNlriPmsiActualLen             Unsigned32,
-- Begin Versa change {
      bgpPathAttrAdminDistance         AdminDistance,
-- endVersa change }
      bgpNlriReasonNotBest             BgpReasonNotBest,
      bgpNlriPeerType                  BgpNlriPeerTypes,
      bgpNlriRemoteAddrType            InetAddressType,
      bgpNlriRemoteAddr                InetAddress,
      bgpNlriRemoteAddrScopeId         Unsigned32,
      bgpNlriAggrType                  INTEGER,
      bgpNlriOutputInterface           Unsigned32,
      bgpNlriCommunities               OCTET STRING,
      bgpNlriExtCommunities            OCTET STRING
-- Begin Versa change {
      , bgpNlriPathAttrAuxData         Counter64
-- endVersa change }
      }

  bgpNlriPeerOrAfm OBJECT-TYPE
    SYNTAX      BgpPeerOrAfm
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Whether this route was learned from a BGP peer or an AFM, or
                 was created by BGP itself."
    ::= { bgpNlriEntry 2 }

  bgpNlriPeerAfmIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of either the BGP peer or AFM this route was
                 learned from.  If bgpNlriPeerOrAfm is peer, this field is
                 equivalent to a bgpPeerStatusPeerIndex.  If bgpNlriPeerOrAfm
                 is afm, this field is equivalent to a bgpRmAfmJoin.  If
                 bgpNlriPeerOrAfm is no-index, this field is set to 0."
    ::= { bgpNlriEntry 3 }

  bgpNlriAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The address family of the prefix for this NLRI."
    ::= { bgpNlriEntry 4 }

  bgpNlriSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The subsequent address family of the prefix for this NLRI."
    ::= { bgpNlriEntry 5 }

  bgpNlriPrfx OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An address prefix in the Network Layer Reachability
                 Information field.

                 The prefix length is specified by bgpNlriPrfxLen.  Any bits
                 beyond the length specified by bgpNlriPrfxLen are zeroed.

                 This field contains the full line format BGP NLRI omitting
                 any NLRI length field.

                 For SAFI 128 the NLRI includes the MPLS label and Route
                 Distinguisher as well as the IPv4 or IPv6 address prefix."
    ::= { bgpNlriEntry 6 }

  bgpNlriPrfxLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Length in bits of the IP address prefix in the Network Layer
                 Reachability Information field."
    ::= { bgpNlriEntry 7 }

  bgpNlriBest OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "An indication of whether or not this route was chosen as the
                 best BGP4 route."
    ::= { bgpNlriEntry 8 }

  bgpNlriAsSize OBJECT-TYPE
    SYNTAX      BgpAsSize
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the bgpNlriASPathStr field contains two or four byte
                 AS numbers."
    ::= { bgpNlriEntry 9 }

  bgpNlriASPathStr OBJECT-TYPE
    SYNTAX      OCTET STRING  (SIZE (0..256))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This is a string depicting the autonomous system path to this
                 network which was received from the peer which advertised it.
                 If bgpRmEntAsSize is four-octet and the peer does not support
                 four octet AS numbers this string represents the AS_PATH
                 formed by combining the AS_PATH and AS4_PATH attributes as
                 detailed in RFC 4893.  Two-octet AS numbers appear as
                 four-octet numbers by adding two bytes of zero padding.  The
                 format of the string is simply the AS_PATH attribute.  It can
                 be converted to a more readable format by the management
                 agent."
    ::= { bgpNlriEntry 10 }

  bgpPathAttrOrigin OBJECT-TYPE
    SYNTAX      BgpOriginCode
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The ultimate origin of the path information."
    ::= { bgpNlriEntry 11 }

  bgpPathAttrNextHop OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address of the border router that should be used to access
                 the destination network.  This address is the nexthop address
                 received in the UPDATE packet.  The address family of this
                 object will be the same as that of the prefix in this row.

                 Note that for RFC 2545 style double nexthops, this object
                 will always contain the global scope nexthop.
                 bgpNlriLinkLocalNextHop will contain the linklocal scope
                 nexthop, if it is present."
    ::= { bgpNlriEntry 12 }

  bgpPathAttrMultiExitDisc OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This metric is used to discriminate between multiple exit
                 points to an adjacent autonomous system.
                 Valid only if bgpPathAttrMEDPrsnt is TRUE."
    ::= { bgpNlriEntry 13 }

  bgpPathAttrLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The originating BGP4 speaker's degree of preference for an
                 advertised route."
    ::= { bgpNlriEntry 14 }

  bgpPathAttrAtomicAggregate OBJECT-TYPE
    SYNTAX      BgpPathAttrAtomicAggPresence
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "When this object is set to AMB_BGP_ATOMIC_AGGR_PRESENT, the
                 ATOMIC_AGGREGATE Path Attribute is present and indicates that
                 the NLRI MUST NOT be made more specific."
    ::= { bgpNlriEntry 15 }

  bgpPathAttrAggregatorAS OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The AS number of the last BGP4 speaker that performed route
                 aggregation."
    ::= { bgpNlriEntry 16 }

  bgpPathAttrAggregatorAddr OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP address of the last BGP4 speaker that performed route
                 aggregation.  A value of zero indicates the absence of this
                 attribute.  Note propagation of AS of zero is illegal in
                 the Internet."
    ::= { bgpNlriEntry 17 }

  bgpPathAttrCalcLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The degree of preference calculated by the receiving BGP4
                 speaker for an advertised route."
    ::= { bgpNlriEntry 18 }

  bgpPathAttrOrigId OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Originator-ID identifying the router that initially
                 advertised this destination to a Route Reflector.  A
                 value of 0.0.0.0 indicates the absence of this attribute."
    ::= { bgpNlriEntry 19 }

  bgpPathAttrWeight OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The local degree of preference assigned to this route."
    ::= { bgpNlriEntry 20 }

  bgpFlapStatsConfig OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the route flap configuration table entry
                 containing the settings being applied to this route for
                 dampening. "
    ::= { bgpNlriEntry 21 }

  bgpFlapStatsPenalty OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The current penalty value of this route.  If it is greater
                 than the cutoff threshold the route is suppressed."
    ::= { bgpNlriEntry 22 }

  bgpFlapStatsFlapcnt OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times this route has flapped since statistics
                 were last cleared."
    ::= { bgpNlriEntry 23 }

  bgpFlapStatsSupprsd OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not this route is suppressed."
    ::= { bgpNlriEntry 24 }

  bgpFlapStatsTimeleft OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The time left until this route is no longer suppressed.  Only
                 valid if the route is suppressed."
    ::= { bgpNlriEntry 25 }

  bgpFlapStatsCleardamp OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value is set to TRUE to clear all the damping
                 information of this route, and unsuppress it if it is
                 suppressed.  Specifically the following fields are
                 cleared

                 -  bgpFlapStatsPenalty
                 -  bgpFlapStatsFlapcnt
                 -  bgpFlapStatsSupprsd
                 -  bgpFlapStatsTimeleft.

                 Reading the value of this field has no meaning."
    ::= { bgpNlriEntry 26 }

  bgpFlapStatsClearstat OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this field to 'true' to clear just the
                 bgpFlapStatsFlapcnt field.  This will not unsuppress a
                 suppressed route.

                 Reading the value of this field has no meaning."
    ::= { bgpNlriEntry 27 }

  bgpNlriEcmp   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not this route was installed into the
                 Forwarding Table as an ECMP route (it may or may not be
                 the best BGP4 route advertised to BGP peers)."
    ::= { bgpNlriEntry 28 }

  bgpPathAttrAsPathLimAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The AS number of the speaker that attached the AS_PATHLIMIT
                 attribute.  A value of 0 indicates the absence of this
                 attribute.  Note that propagation of AS of zero is illegal in
                 the Internet."
    ::= { bgpNlriEntry 29 }

  bgpPathAttrAsPathLimUpper OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The upper bound on the number of ASes in the AS_PATH
                 associated with this route before the route will be filtered.
                 Only valid if bgpPathAttrAsPathLimAs is non-zero."
    ::= { bgpNlriEntry 30 }

  bgpNlriIsActive OBJECT-TYPE
    SYNTAX      BgpNlriIsActiveFlag
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "An indication of whether or not this route is installed in
                 the forwarding table.

                 If bgpRmAfiSafiAdvertiseInactive is set to 'false', then
                 this is set to

                 - 'active' if the route is installed in the forwarding
                   table, or is a route redistributed from another routing
                   protocol instance

                 - 'inactive' otherwise.

                 If bgpRmAfiSafiAdvertiseInactive is set to 'true', BGP does
                 not track active routes.  In this case, bgpNlriIsActive is
                 set to 'notTracked'."
    ::= { bgpNlriEntry 31 }

  bgpNlriUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this BGP NLRI entry."
    ::= { bgpNlriEntry 32 }

  bgpNlriStale OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not this route was last sent by the peer before
                 BGP detected that the peer was restarting.  If the route is
                 not re-advertised by the peer before the restart completes,
                 BGP will remove the route from its database.  This flag is
                 set to 'false' if the peer is not restarting, or if the
                 route has been advertised by the peer since the restart."
    ::= { bgpNlriEntry 33 }

  bgpNlriFlapStartTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The value of sysUpTime when this route first flapped.
                 This field is only valid if bgpFlapStatsPenalty is non-zero."
    ::= { bgpNlriEntry 34 }

  bgpNlriLinkLocalNextHop OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IPv6 link-local address of the border router that
                 should be used to access the destination network.  This
                 object is only valid for a prefix with a received RFC 2545
                 style double nexthop."
    ::= { bgpNlriEntry 35 }

  bgpPathAttrMEDPrsnt OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If true, then the route has an associated MED attribute,
                 whose value is given in bgpPathAttMultiExitDisc.  If false,
                 the route has no MED attribute, and the value of
                 bgpPathAttMultiExitDisc is undefined."
    ::= { bgpNlriEntry 36 }

  bgpNlriPathId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The path ID for this NLRI.

                 If BGP additional path receive capability was negotiated
                 with the peer for this AFI/SAFI then this is the received
                 path ID for this NLRI, otherwise it is zero."
    ::= { bgpNlriEntry 37 }

  bgpNlriHistory OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If true, then the route is a history route.  If false it is
                 current."
    ::= { bgpNlriEntry 38 }

  bgpNlriPmsi OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field contains the full line format of the PMSI
                 attribute value omitting the attribute header.  Note that
                 the value will be truncated if it exceeds the maximum
                 length.

                 Note that only certain AFI/SAFI types may contain this
                 attribute."
    ::= { bgpNlriEntry 39 }

  bgpNlriPmsiActualLen OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field contains the actual length of the PMSI attribute.
                 If the PMSI attribute value has been truncated this gives
                 the true length."
    ::= { bgpNlriEntry 40 }

-- Begin Versa change {
  bgpPathAttrAdminDistance OBJECT-TYPE
    SYNTAX      AdminDistance
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The admin distance of the BGP route used as a tie-breaker in RTM"
    ::= { bgpNlriEntry 41 }
-- end Versa change }

  bgpNlriReasonNotBest OBJECT-TYPE
    SYNTAX      BgpReasonNotBest
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If bgpNlriBest is 'true', then this field is set to
                'routeIsBest'.  Otherwise, it reports the stage in the
                decision process when the route was determined to be
                non-best.

                This is the reason that the route was discarded from the
                decision process.  There may be other reasons why this route
                is less preferred than the best route."
    ::= { bgpNlriEntry 42 }

  bgpNlriPeerType OBJECT-TYPE
    SYNTAX      BgpNlriPeerTypes
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If bgpNlriPeerOrAfm is peer, this field indicates whether
                the source peer is an iBGP or eBGP peer.  If bgpNlriPeerOrAfm
                is afm, this field is set to 'none'."
    ::= { bgpNlriEntry 43 }

  bgpNlriRemoteAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address family of the address of the BGP peer that
                 this route was learned from.

                 This field is only valid if bgpNlriPeerOrAfm is peer.

                 This field is equivalent to bgpPeerRemoteAddrType."
    ::= { bgpNlriEntry 44 }

  bgpNlriRemoteAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address of the BGP peer that this route was learned
                 from.

                 This field is only valid if bgpNlriPeerOrAfm is peer.

                 This field is equivalent to bgpPeerRemoteAddr."
    ::= { bgpNlriEntry 45 }

  bgpNlriRemoteAddrScopeId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The scope ID of the BGP peer address.

                 This field is only valid if bgpNlriPeerOrAfm is peer.

                 This field is equivalent to bgpPeerLocalAddrScopeId."
    ::= { bgpNlriEntry 46 }

  bgpNlriAggrType OBJECT-TYPE
    SYNTAX      INTEGER {
                  noAggregation(1),
                  aggregateRoute(2),
                  unsuppAggregatedRoute(3),
                  suppressedAggregatedRoute(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This object indicates any aggregation processing that
                 has been applied to this route.

                 A value of noAggregation(1) indicates that this route
                 does not aggregate any other routes, and is not
                 aggregated by any route.

                 A value of aggregateRoute(2) indicates that this route
                 is a locally configured aggregating route,
                 corresponding to an entry in the bgpAggregateTable.

                 A value of unsuppAggregatedRoute(3) indicates that this
                 route has been aggregated by a locally configured
                 aggregate route and is not suppressed - the route is
                 still explicitly advertised to peers.

                 A value of suppressedAggregatedRoute(4) indicates that
                 this route has been aggregated by a locally configured
                 aggregate route and is flagged such that it should not be
                 advertised along with the aggregate route."
    ::= { bgpNlriEntry 47 }

  bgpNlriOutputInterface OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The output interface.  This field is only non-zero for
                 routes received with a link-local IPv6 next hop from
                 directly connected peers."
    ::= { bgpNlriEntry 48 }

  bgpNlriCommunities OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..4096))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The community membership associated with the route after
                 import policy has been applied.

                 Each community is four-octets in length and each community
                 follows the previous with no padding."
    ::= { bgpNlriEntry 49 }

  bgpNlriExtCommunities OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..4096))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The extended community membership associated with the route
                 after import policy has been applied.

                 Each extended community is eight-octets in length and each
                 extended community follows the previous with no padding."
    ::= { bgpNlriEntry 50 }

-- Begin Versa change {
  bgpNlriPathAttrAuxData OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The auxilliary data of the route with format specific to AFI/SAFI"
    ::= { bgpNlriEntry 51 }
-- end Versa change }

-------------------------------------------------------------------------------

  --
  -- BGP Unknown Path Attribute table
  --
  -- BGP 4 Path unknown attribute.  There is one row in  this table for each
  -- attribute not known by this BGP implementation (or agent instrumentation),
  -- but provided from a peer.
  --

  bgpPathAttrUnknownTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_UNA
    SYNTAX      SEQUENCE OF BgpPathAttrUnknownEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Path Attribute Unknown Table contains the per
                 network path (NLRI) data on the path attributes advertised
                 with a route but not known to the local BGP implementation
                 or not otherwise capable of being returned from this agent.

                 The absence of row data for a given index value for
                 bgpPathAttrUnknownType indicates a lack of such unknown
                 attribute information for the indicated network path.

                 This table reports received routes and path attributes after
                 import policy has been applied.  Only routes accepted by
                 import policy are reported.

                 It is equivalent to the bgpM2PathAttrUnknownTable."
    ::= { bgpRib 2 }

  bgpPathAttrUnknownEntry OBJECT-TYPE
    SYNTAX      BgpPathAttrUnknownEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about an unknown attribute provided with a path to
                 a network."
    INDEX { bgpRmEntIndex,
            bgpNlriPeerOrAfm,
            bgpNlriPeerAfmIndex,
            bgpNlriAfi,
            bgpNlriSafi,
            bgpNlriPrfx,
            bgpNlriPrfxLen,
            bgpPathAttrUnknownType,
            bgpNlriPathId }
    ::= { bgpPathAttrUnknownTable 1 }

  BgpPathAttrUnknownEntry ::= SEQUENCE {
      bgpPathAttrUnknownType       Unsigned32,
      bgpPathAttrUnknownValue      OCTET STRING,
      bgpPathAttrUnknownUserData   OCTET STRING
      }

  bgpPathAttrUnknownType OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The attribute type advertised with this unknown attribute by
                 the peer.  This is the one octet type code field and does not
                 include the attribute flags.  These are included in the
                 bgpPathAttrUnknownValue field."
    ::= { bgpPathAttrUnknownEntry 8 }

  bgpPathAttrUnknownValue OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Value of path attribute not understood by the base BGP-4
                 document.  This will begin with the flags, code and length.
                 Note that only unknown optional-transitive attributes are
                 stored here.  Optional non-transitive attributes are discarded
                 as they do not need to be kept, while unknown attributes
                 claiming to be well-known will result in a Notification.
                 Octets beyond the maximum size, if any, are not recorded by
                 this row object.  This could lead to some truncation of the
                 recorded attributes."
    ::= { bgpPathAttrUnknownEntry 9 }

  bgpPathAttrUnknownUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpPathAttrUnknownEntry 10 }

-------------------------------------------------------------------------------

  --
  -- Path Attribute Extensions
  --

  bgpPathAttrExtensions OBJECT IDENTIFIER ::= { bgpRib 3 }

  bgpPathAttrNonCapExts OBJECT IDENTIFIER ::= { bgpPathAttrExtensions 1 }

  bgpPathAttrCapExts OBJECT IDENTIFIER ::= { bgpPathAttrExtensions 2 }

  --
  -- Path Attribute Route Reflection Extensions
  --

  bgpPathAttrRouteReflectionExts
  OBJECT IDENTIFIER ::= { bgpPathAttrNonCapExts 1966 }

  --
  -- Cluster table
  --
  -- This table holds the clusters passed through on a given path.
  --

  bgpPathAttrClusterTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_CLU
    SYNTAX      SEQUENCE OF BgpPathAttrClusterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Path Attribute Cluster Table contains the per
                 network path (NLRI) data on the reflection path which a
                 route has traversed.  The absence of row data for a given
                 network path indicates a lack of this attribute information
                 for the indicated network path.

                 This table reports received routes and path attributes after
                 import policy has been applied.  Only routes accepted by
                 import policy are reported.

                 It is equivalent to the bgpM2PathAttrClusterTable."
    ::= { bgpPathAttrRouteReflectionExts 2 }

  bgpPathAttrClusterEntry OBJECT-TYPE
    SYNTAX      BgpPathAttrClusterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a cluster traversal provided with a path to
                 a network."
    INDEX { bgpRmEntIndex,
            bgpNlriPeerOrAfm,
            bgpNlriPeerAfmIndex,
            bgpNlriAfi,
            bgpNlriSafi,
            bgpNlriPrfx,
            bgpNlriPrfxLen,
            bgpPathAttrClusterIndex,
            bgpNlriPathId }
    ::= { bgpPathAttrClusterTable 1 }

  BgpPathAttrClusterEntry ::= SEQUENCE {
      bgpPathAttrClusterIndex      Unsigned32,
      bgpPathAttrClusterValue      Unsigned32,
      bgpPathAttrClusterUserData   OCTET STRING
      }

  bgpPathAttrClusterIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integral index for a row in this table."
    ::= { bgpPathAttrClusterEntry 8 }

  bgpPathAttrClusterValue OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A four octet long value representing a part of the
                 reflection path that the route has passed.  Each such four
                 octet long value represents the ID of a cluster that
                 the route has traversed.  The sequence of this path as
                 received in the route advertisement will be preserved in
                 the sequence of bgpPathAttrClusterTable rows (and the
                 bgpPathAttrClusterValue's in each row) as returned for a given
                 network path, and the monotonically increasing sequence of
                 bgpPathAttrClusterIndex values for that network path."
    ::= { bgpPathAttrClusterEntry 9 }

  bgpPathAttrClusterUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpPathAttrClusterEntry 10 }

-------------------------------------------------------------------------------

  --
  -- BGP Communities
  --
  -- This table holds information on the communities the indexed route belongs
  -- to.
  --

  bgpPathAttrCommunityExts OBJECT IDENTIFIER ::=
    { bgpPathAttrNonCapExts 1997 }

  bgpPathAttrCommTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_CMM
    SYNTAX      SEQUENCE OF BgpPathAttrCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Path Attribute Community Table contains the per
                 network path (NLRI) data on the community membership
                 advertised with a route.  The absence of row data for a given
                 network path indicates a lack of this attribute information
                 for the indicated network path.

                 This table reports received routes and path attributes after
                 import policy has been applied.  Only routes accepted by
                 import policy are reported.

                 It is equivalent to the bgpM2PathAttrCommTable."
    ::= { bgpPathAttrCommunityExts 1 }

  bgpPathAttrCommEntry OBJECT-TYPE
    SYNTAX      BgpPathAttrCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a community association provided with a path
                 to a network."
    INDEX { bgpRmEntIndex,
            bgpNlriPeerOrAfm,
            bgpNlriPeerAfmIndex,
            bgpNlriAfi,
            bgpNlriSafi,
            bgpNlriPrfx,
            bgpNlriPrfxLen,
            bgpPathAttrCommIndex,
            bgpNlriPathId }
    ::= { bgpPathAttrCommTable 1 }

  BgpPathAttrCommEntry ::= SEQUENCE {
      bgpPathAttrCommIndex      Unsigned32,
      bgpPathAttrCommValue      BgpCommunity,
      bgpPathAttrCommUserData   OCTET STRING
      }

  bgpPathAttrCommIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integer index for a row in this table."
    ::= { bgpPathAttrCommEntry 8 }

  bgpPathAttrCommValue  OBJECT-TYPE
    SYNTAX      BgpCommunity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A value representing a community.   There are certain
                 4-octet long values which could be returned in this
                 columnar row data that carry additional semantics."
    ::= { bgpPathAttrCommEntry 9 }

  bgpPathAttrCommUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpPathAttrCommEntry 10 }

-------------------------------------------------------------------------------

  --
  -- BGP Extended Communities
  --
  -- This table holds information on the extended communities the indexed route
  -- belongs to.
  --
  -- Note that the OID used here (2547) should be changed when one is finalised
  -- for the equivalent table in the main BGP MIBv2.
  --

  bgpPathAttrExtCommunityExts OBJECT IDENTIFIER ::=
    { bgpPathAttrNonCapExts 2547 }

  bgpPathAttrExtCommTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_ECM
    SYNTAX      SEQUENCE OF BgpPathAttrExtCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Path Attribute Extended Community Table contains the
                 per network path (NLRI) data on the extended community
                 membership advertised with a route.  The absence of row data
                 for a given network path indicates a lack of this attribute
                 information for the indicated network path.

                 This table reports received routes and path attributes after
                 import policy has been applied.  Only routes accepted by
                 import policy are reported.

                 It is equivalent to the bgpM2PathAttrExtCommTable."
    ::= { bgpPathAttrExtCommunityExts 1 }

  bgpPathAttrExtCommEntry OBJECT-TYPE
    SYNTAX      BgpPathAttrExtCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about an extended community association provided
                 with a path to a network."
    INDEX { bgpRmEntIndex,
            bgpNlriPeerOrAfm,
            bgpNlriPeerAfmIndex,
            bgpNlriAfi,
            bgpNlriSafi,
            bgpNlriPrfx,
            bgpNlriPrfxLen,
            bgpPathAttrExtCommIndex,
            bgpNlriPathId }
    ::= { bgpPathAttrExtCommTable 1 }

  BgpPathAttrExtCommEntry ::= SEQUENCE {
      bgpPathAttrExtCommIndex     Unsigned32,
      bgpPathAttrExtCommValue     BgpExtendedCommunity,
      bgpPathAttrExtCommUserData  OCTET STRING
      }

  bgpPathAttrExtCommIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integer index for a row in this table."
    ::= { bgpPathAttrExtCommEntry 8 }

  bgpPathAttrExtCommValue  OBJECT-TYPE
    SYNTAX      BgpExtendedCommunity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A value representing an extended community.   There are
                 certain 8-octet long values which could be returned in this
                 columnar row data that carry additional semantics."
    ::= { bgpPathAttrExtCommEntry 9 }

  bgpPathAttrExtCommUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpPathAttrExtCommEntry 10 }

-------------------------------------------------------------------------------

  --
  -- BGP Adj-RIB Out Table
  --
  -- This table contains the set of routes advertised to each peer.
  --

  bgpAdjRibOutTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_ARO
    SYNTAX      SEQUENCE OF BgpAdjRibOutEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP Adj-RIB-Out Table contains the set of routes
                 advertised to each peer."
    ::= { bgpRib 4 }

  bgpAdjRibOutEntry OBJECT-TYPE
    SYNTAX      BgpAdjRibOutEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a path to a network that has been
                 advertised to a peer.  The route has been
                 explicitly advertised in an UPDATE message sent to the
                 peer, unless bgpAdjRibOutLocalAggrType has the value
                 suppressedAggregatedRoute(4), in which case the route
                 has only been advertised as part of an aggregate
                 route."
    INDEX { bgpRmEntIndex,
            bgpPeerIndex,
            bgpAdjRibOutAfi,
            bgpAdjRibOutSafi,
            bgpAdjRibOutPrfx,
            bgpAdjRibOutPrfxLen,
            bgpAdjRibOutPathId }
    ::= { bgpAdjRibOutTable 1 }

  BgpAdjRibOutEntry ::= SEQUENCE {
      bgpAdjRibOutAfi                  BgpAfi,
      bgpAdjRibOutSafi                 BgpSafi,
      bgpAdjRibOutPrfx                 InetAddress,
      bgpAdjRibOutPrfxLen              InetAddressPrefixLength,
      bgpAdjRibOutAdvertStatus         INTEGER,
      bgpAdjRibOutLocalAggrType        INTEGER,
      bgpAdjRibOutAsSize               BgpAsSize,
      bgpAdjRibOutASPathStr            OCTET STRING,
      bgpAdjRibOutOrigin               BgpOriginCode,
      bgpAdjRibOutNextHop              InetAddress,
      bgpAdjRibOutMultiExitDisc        Unsigned32,
      bgpAdjRibOutLocalPref            Unsigned32,
      bgpAdjRibOutAtomicAggregate      BgpPathAttrAtomicAggPresence,
      bgpAdjRibOutAggregatorAS         BgpAutonomousSystemNumber,
      bgpAdjRibOutAggregatorAddr       BgpIdentifier,
      bgpAdjRibOutOrigId               BgpIdentifier,
      bgpAdjRibOutAsLimAs              BgpAutonomousSystemNumber,
      bgpAdjRibOutAsLimUpper           Unsigned32,
      bgpAdjRibOutUserData             OCTET STRING,
      bgpAdjRibOutEcmp                 TruthValue,
      bgpAdjRibOutStale                TruthValue,
      bgpAdjRibOutLinkLocalNextHop     InetAddress,
      bgpAdjRibOutMEDPrsnt             TruthValue,
      bgpAdjRibOutPathId               Unsigned32,
-- Begin Versa change {
      bgpAdjRibOutLabel                Unsigned32,
-- End Versa change }
      bgpAdjRibOutRemoteAddrType       InetAddressType,
      bgpAdjRibOutRemoteAddr           InetAddress,
      bgpAdjRibOutRemoteAddrScopeId    Unsigned32,
      bgpAdjRibOutPmsi                 OCTET STRING,
      bgpAdjRibOutPmsiActualLen        Unsigned32,
      bgpAdjRibOutCommunities          OCTET STRING,
      bgpAdjRibOutExtCommunities       OCTET STRING
-- Begin Versa change {
      , bgpAdjRibOutAuxData            Counter64
-- End Versa change }
      }

  bgpAdjRibOutAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The address family of the prefix for this Adj-RIB Out
                 route."
    ::= { bgpAdjRibOutEntry 3 }

  bgpAdjRibOutSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The subsequent address family of the prefix for
                 this Adj-RIB Out route."
    ::= { bgpAdjRibOutEntry 4 }

  bgpAdjRibOutPrfx OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An address prefix in the Network Layer Reachability
                 Information field for this Adj-RIB Out route.

                 The prefix length is specified by bgpAdjRibOutPrfxLen.
                 Any bits beyond the length specified by
                 bgpAdjRibOutPrfxLen are zeroed.

                 This field contains the full line format BGP NLRI omitting
                 any NLRI length field.

                 For SAFI 128 the NLRI includes the MPLS label and Route
                 Distinguisher as well as the IPv4 or IPv6 address prefix."
    ::= { bgpAdjRibOutEntry 5 }

  bgpAdjRibOutPrfxLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Length in bits of the address prefix contained in the
                 bgpAdjRibOutPrfx object."
    ::= { bgpAdjRibOutEntry 6 }

  bgpAdjRibOutAdvertStatus OBJECT-TYPE
    SYNTAX      INTEGER {
                  advertised(1),
                  suppressed(2),
                  pendingWithdrawal(3),
                  withdrawn(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This object indicates the current state of
                 advertisement of the route to the peer.

                 A value of advertised(1) indicates that the route has
                 been advertised to the peer.

                 A value of suppressed(2) indicates that the route is
                 not currently advertised to the peer, but will be
                 advertised when a minimum advertisement interval timer
                 expires (either the bgpPeerMinASOriginationInterval or
                 bgpPeerMinRouteAdvertiseInterval).

                 A value of pendingWithdrawal(3) indicates that the
                 route is currently advertised to the peer, but will be
                 withdrawn when the timer expires.

                 A value of withdrawn(4) indicates that the route has
                 been withdrawn from the peer, and this entry will be
                 removed from the Adj-RIB-Out on the expiry of the
                 timer."
    ::= { bgpAdjRibOutEntry 7 }

  bgpAdjRibOutLocalAggrType OBJECT-TYPE
    SYNTAX      INTEGER {
                  noAggregation(1),
                  aggregateRoute(2),
                  unsuppAggregatedRoute(3),
                  suppressedAggregatedRoute(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This object indicates any aggregation processing that
                 has been applied to this Adj-RIB-Out route.

                 A value of noAggregation(1) indicates that this route
                 does not aggregate any other routes, and is not
                 aggregated by any route.

                 A value of aggregateRoute(2) indicates that this route
                 is a locally configured aggregating route,
                 corresponding to an entry in the bgpAggregateTable.

                 A value of unsuppAggregatedRoute(3) indicates that this
                 route has been aggregated by a locally configured
                 aggregate route and is not suppressed - the route is
                 still explicitly advertised to the peer.

                 A value of suppressedAggregatedRoute(4) indicates that
                 this route has been aggregated by a locally configured
                 aggregate route and is flagged such that it should not be
                 advertised along with the aggregate route.  Typically such
                 routes are not installed on an Adj-RIB-Out.  If however the
                 aggregate route itself is not permitted to be added to the
                 Adj-RIB-Out then suppressed routes are advertised if they
                 themselves are permitted by policy."
    ::= { bgpAdjRibOutEntry 8 }

  bgpAdjRibOutAsSize OBJECT-TYPE
    SYNTAX      BgpAsSize
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the bgpAdjRibOutASPathStr object contains
                 two or four byte AS numbers."
    ::= { bgpAdjRibOutEntry 9 }

  bgpAdjRibOutASPathStr OBJECT-TYPE
    SYNTAX      OCTET STRING  (SIZE (0..256))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This is a string containing the autonomous system path sent to
                 this peer in the AS_PATH attribute for this Adj-RIB-Out route.
                 If this path contains four-octet AS numbers and the peer does
                 not support these a two-octet AS_PATH attribute and associated
                 AS4_PATH attribute will be advertised to the peer instead as
                 detailed in RFC 4893.  However, this field will report the
                 four-octet AS_PATH that would  have been advertised to the
                 peer if it had supported four-byte AS numbers.  Two-octet AS
                 numbers appear as four-octet numbers by adding two bytes of
                 zero padding.  The format of the string is simply the AS_PATH
                 attribute.  This can be converted to a more readable format by
                 the management agent."
    ::= { bgpAdjRibOutEntry 10 }

  bgpAdjRibOutOrigin OBJECT-TYPE
    SYNTAX      BgpOriginCode
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The ultimate origin of the path information."
    ::= { bgpAdjRibOutEntry 11 }

  bgpAdjRibOutNextHop OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The next hop address transmitted in the UPDATE packet.
                 The address family of this object is the same as that
                 of bgpAdjRibOutPrfx.

                 Note that for RFC 2545 style double nexthops, this object
                 will always contain the global scope nexthop.
                 bgpAdjRibOutLinkLocalNextHop will contain the link-local
                 scope nexthop, if it is present."
    ::= { bgpAdjRibOutEntry 12 }

  bgpAdjRibOutMultiExitDisc OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This metric is used to discriminate between multiple
                 exit points to an adjacent autonomous system.
                 Valid only if bgpAdjRibOutMEDPrsnt is TRUE."
    ::= { bgpAdjRibOutEntry 13 }

  bgpAdjRibOutLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The local preference for this Adj-RIB-Out route, as
                 transmitted in the UPDATE message sent to the peer."
    ::= { bgpAdjRibOutEntry 14 }

  bgpAdjRibOutAtomicAggregate OBJECT-TYPE
    SYNTAX      BgpPathAttrAtomicAggPresence
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "When this object is set to atomicAggregatePresent, the
                 ATOMIC_AGGREGATE Path Attribute was included in the
                 UPDATE sent to the peer for this Adj-RIB-Out route."
    ::= { bgpAdjRibOutEntry 15 }

  bgpAdjRibOutAggregatorAS OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The AS number of the last BGP4 speaker that performed
                 route aggregation."
    ::= { bgpAdjRibOutEntry 16 }

  bgpAdjRibOutAggregatorAddr OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP address of the last BGP4 speaker that performed
                 route aggregation.  A value of 0.0.0.0 indicates that
                 this attribute was not included in the UPDATE message
                 sent to the peer."
    ::= { bgpAdjRibOutEntry 17 }

  bgpAdjRibOutOrigId OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Originator-ID identifying the router that initially
                 advertised this destination to a Route Reflector.  A
                 value of 0.0.0.0 indicates the absence of this
                 attribute."
    ::= { bgpAdjRibOutEntry 18 }

  bgpAdjRibOutAsLimAs OBJECT-TYPE
    SYNTAX       BgpAutonomousSystemNumber
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "If non-zero this is the number of the AS that attached the
                  AS_PATHLIMIT attribute."
        ::= { bgpAdjRibOutEntry 19 }

  bgpAdjRibOutAsLimUpper OBJECT-TYPE
    SYNTAX      Unsigned32  (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The upper bound on the number of ASes in the AS_PATH attribute
                 after which the route will be filtered.  Only valid if
                 bgpAdjRibOutAsLimAs is non-zero."
        ::= { bgpAdjRibOutEntry 20 }

  bgpAdjRibOutUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this BGP ARO entry."
    ::= { bgpAdjRibOutEntry 21 }

  bgpAdjRibOutEcmp OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not this route was installed into the
                 Forwarding Table as an ECMP route."
    ::= { bgpAdjRibOutEntry 22 }

  bgpAdjRibOutStale OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not this route was last sent by the peer before
                 BGP detected that the peer was restarting.  If the route is
                 not re-advertised by the peer before the restart completes,
                 BGP will remove the route from its database.  This flag is
                 set to 'false' if the peer is not restarting, or if the
                 route has been advertised by the peer since the restart."
    ::= { bgpAdjRibOutEntry 23 }

  bgpAdjRibOutLinkLocalNextHop OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IPv6 link-local address sent in the UPDATE message.
                 This object is only valid if an RFC 2545 style double
                 nexthop was sent in the UPDATE."
    ::= { bgpAdjRibOutEntry 24 }

  bgpAdjRibOutMEDPrsnt OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If true, then the route has an associated MED attribute,
                 whose value is given in bgpAdjRibOutMultiExitDisc.  If false,
                 the route has no MED attribute, and the value of
                 bgpAdjRibOutMultiExitDisc is undefined."
    ::= { bgpAdjRibOutEntry 25 }

  bgpAdjRibOutPathId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The path ID for this Adj-RIB Out route.

                 If BGP additional path send capability was negotiated with
                 the peer for this AFI/SAFI then this is the path ID sent for
                 this Adj-RIB Out route, otherwise it is zero."
    ::= { bgpAdjRibOutEntry 26 }

-- Begin Versa change {

  bgpAdjRibOutLabel OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Out Label for this Adj-RIB Out route.

                 If Inter-AS Option-B is supported, this is the label sent to
                 upstream peers for this NLRI. Otherwise, the value is zero."
    ::= { bgpAdjRibOutEntry 27 }

-- End Versa change }

  bgpAdjRibOutRemoteAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address family of the address of the BGP peer.

                 This field is equivalent to bgpPeerRemoteAddrType."
    ::= { bgpAdjRibOutEntry 28 }

  bgpAdjRibOutRemoteAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address of the BGP peer.

                 This field is equivalent to bgpPeerRemoteAddr."
    ::= { bgpAdjRibOutEntry 29 }

  bgpAdjRibOutRemoteAddrScopeId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The scope ID of the BGP peer address.

                 This field is equivalent to bgpPeerLocalAddrScopeId."
    ::= { bgpAdjRibOutEntry 30 }

  bgpAdjRibOutPmsi OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field contains the full line format of the PMSI
                 attribute value omitting the attribute header.  Note that
                 the value will be truncated if it exceeds the maximum
                 length.

                 Note that only certain AFI/SAFI types may contain this
                 attribute."
    ::= { bgpAdjRibOutEntry 31 }

  bgpAdjRibOutPmsiActualLen OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field contains the actual length of the PMSI
                 attribute.  If the PMSI attribute value has been truncated
                 this gives the true length."
    ::= { bgpAdjRibOutEntry 32 }

  bgpAdjRibOutCommunities OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..4096))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The community membership associated with the route after
                 export policy has been applied.

                 Each community is four-octets in length and each community
                 follows the previous with no padding. "
    ::= { bgpAdjRibOutEntry 33 }

  bgpAdjRibOutExtCommunities OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..4096))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The extended community membership associated with the route
                 after export policy has been applied.

                 Each extended community is eight-octets in length and each
                 extended community follows the previous with no padding. "
    ::= { bgpAdjRibOutEntry 34 }

-- Begin Versa change {
   bgpAdjRibOutAuxData OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The auxilliary data of the route with format specific to AFI/SAFI"
    ::= { bgpAdjRibOutEntry 35 }
-- end Versa change }

-------------------------------------------------------------------------------

  bgpPib OBJECT IDENTIFIER ::= { bgpMib 5 }

-- All Policy tables are DC-BGP specific.  Some tables have a restriction such
-- that when configuring one row to point to another in a different table (for
-- example when setting a row in the config table to refer to a route map), the
-- referred to row (the route map) must be present and row active.  Similarly
-- in reverse the referred to row cannot be deactivated if it is the last in
-- the map, and the referring row is still present.  Such tables have the
-- further restriction that the referred to row can also not be deactivated if
-- any potential referrer has a SET pending.  (For example, a route map row
-- cannot be de-activated if any config rows have a set pending, as they could
-- then refer to a non-present row).

--
-- DC-BGP Route Map Table
--
-- This table is used to create and manage DC-BGP route maps.  Route Maps are
-- the centre of DC-BGP policy formation and essentially form a filter.  A row
-- in this table cannot be destroyed if there is a SET pending for any of the
-- associated list tables (AS path lists, (extended) community lists, ip prefix
-- lists).
--
-- Certain restrictions apply to an entry in this table if it represents one or
-- more ORFs.  If the ORF association is remote then the entry has been created
-- as a result of advertisements from a peer in which case all fields are
-- read-only.
--
-- If the ORF association is local then the entry represents ORF information to
-- be advertised to peers in which case the following applies:
--
-- The MaAfi and MaSafi fields MUST be assigned.
-- The MaComm, MaExtCom, MaAddr and Continue fields are the only other fields
-- that may be specified.  All other fields are deemed inconsistent.
--

  bgpRouteMapTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_MAP
    SYNTAX      SEQUENCE OF BgpRouteMapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table of DC-BGP Route Maps.  If a particular match or set
                 category does not apply to a route map then do not define the
                 corresponding field in the MIB row."
    ::= { bgpPib 1 }

  bgpRouteMapEntry OBJECT-TYPE
    SYNTAX      BgpRouteMapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a filter consisting of Match and Set
                 entries."
    INDEX { bgpRmEntIndex,
            bgpRouteMapIndex,
            bgpRouteMapNumber }
    ::= { bgpRouteMapTable 1 }

  BgpRouteMapEntry ::= SEQUENCE {
      bgpRouteMapIndex             Unsigned32,
      bgpRouteMapNumber            Unsigned32,
      bgpRouteMapRowStatus         RowStatus,
      bgpRouteMapMaAfi             BgpAfi,
      bgpRouteMapMaAfiDef          TruthValue,
      bgpRouteMapMaSafi            BgpSafi,
      bgpRouteMapMaSafiDef         TruthValue,
      bgpRouteMapMaAs              DisplayString,
      bgpRouteMapMaComm            DisplayString,
      bgpRouteMapMaExtComm         DisplayString,
      bgpRouteMapMaAddr            TruthValue,
      bgpRouteMapMaNext            TruthValue,
      bgpRouteMapMaSource          TruthValue,
      bgpRouteMapMaMed             Unsigned32,
      bgpRouteMapMaMedDef          TruthValue,
      bgpRouteMapMaUser            TruthValue,
      bgpRouteMapSeAs              Integer32,
      bgpRouteMapSeAsAct           BgpAsPathAction,
      bgpRouteMapSeComm            DisplayString,
      bgpRouteMapSeCommAct         BgpCommunityAction,
      bgpRouteMapSeExtComm         DisplayString,
      bgpRouteMapSeExtCommAct      BgpCommunityAction,
      bgpRouteMapSeLocPref         Unsigned32,
      bgpRouteMapSeLocPrefDef      TruthValue,
      bgpRouteMapSeMed             Unsigned32,
      bgpRouteMapSeMedDef          TruthValue,
      bgpRouteMapSeNext            InetAddress,
      bgpRouteMapSeOrigin          BgpOriginCode,
      bgpRouteMapSeOriginDef       TruthValue,
      bgpRouteMapSeWeight          Integer32,
      bgpRouteMapSeWeightDef       TruthValue,
      bgpRouteMapSeFlap            Unsigned32,
      bgpRouteMapSeUser            TruthValue,
      bgpRouteMapHitcnt            Integer32,
      bgpRouteMapClearcnt          TruthValue,
      bgpRouteMapUserInfo          OCTET STRING,
      bgpRouteMapType              BgpPermitOrDeny,
      bgpRouteMapContinue          Unsigned32,
      bgpRouteMapOrfAssoc          BgpOrfAssociation,
      bgpRouteMapSeAsLimUpper      Unsigned32,
      bgpRouteMapSeAsLimDef        TruthValue,
      bgpRouteMapMaOrigin          BgpOriginCode,
      bgpRouteMapMaOriginDef       TruthValue,
      bgpRouteMapSeMedDelta        Unsigned32,
      bgpRouteMapSeMedDeltaTyp     BgpMedDeltaType,
      bgpRouteMapSeMedIgp          TruthValue,
      bgpRouteMapSeAsPrependCount  Unsigned32,
      bgpRouteMapSeAsPrependSize   BgpAsSize,
      bgpRouteMapSeAsPrependAsVals OCTET STRING,
      bgpRouteMapMaAnd             TruthValue,
-- Begin Versa change {
      bgpRouteMapSeSlaveMed        Unsigned32,
      bgpRouteMapSeSlaveMedDef     TruthValue,
      bgpRouteMapSeSlaveLocPref    Unsigned32,
      bgpRouteMapSeSlaveLocPrefDef TruthValue,
      bgpRouteMapSeSlaveMedDelta   Unsigned32,
      bgpRouteMapSeSlaveMedDeltaTyp BgpMedDeltaType,
      bgpRouteMapSeSlaveMedIgp      TruthValue,
      bgpRouteMapSeSlaveAs         Integer32,
      bgpRouteMapSeSlaveAsAct      BgpAsPathAction,
      bgpRouteMapSeSlaveAsPrependCount  Unsigned32,
      bgpRouteMapSeSlaveAsPrependSize   BgpAsSize,
      bgpRouteMapSeSlaveAsPrependAsVals OCTET STRING,
      bgpRouteMapSeAdminDistance AdminDistance,
      bgpRouteMapSeAdminDistanceDef TruthValue,
-- End Versa change }
      bgpRouteMapAsPathList        Unsigned32,
      bgpRouteMapMaCommList        Unsigned32,
      bgpRouteMapCommListExact     TruthValue,
      bgpRouteMapMaExtCommList     Unsigned32,
      bgpRouteMapExtCommListExact  TruthValue,
      bgpRouteMapMaAddrAallPre     PreAccessListListIndexOrZero,
      bgpRouteMapMaNextAallPre     PreAccessListListIndexOrZero,
      bgpRouteMapMaSourceAallPre   PreAccessListListIndexOrZero,
      bgpRouteMapSeCommListDel     Unsigned32,
      bgpRouteMapSeCommListAdd     Unsigned32,
      bgpRouteMapSeXCommListDel    Unsigned32,
      bgpRouteMapSeXCommListAdd    Unsigned32,
      bgpRouteMapMaLocPref         Unsigned32,
      bgpRouteMapMaLocPrefDef      TruthValue,
      bgpRouteMapSeAsRemove        DisplayString,
      bgpRouteMapSeLocalDiscard    TruthValue,
      bgpRouteMapSeNextHopPeer     TruthValue
-- Begin Versa change {
      , bgpRouteMapSeSaasSteering    TruthValue
-- End Versa change }
      }

  bgpRouteMapIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4278190079)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this bgpRouteMapEntry.  This is the Index
                  used to reference the Route Map.

                 Route map indexes 0xFFnnnnnn, are reserved for representing
                 ORFs advertised by peers with bgpPeerIdentifier nnnnnn."
    ::= { bgpRouteMapEntry 2 }

  bgpRouteMapNumber OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this bgpRouteMapEntry.  This is a number used to
                 reference more than one filter per route map index."
    ::= { bgpRouteMapEntry 3 }

  bgpRouteMapRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete a Route Map."
    ::= { bgpRouteMapEntry 4 }

  bgpRouteMapMaAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The AFI index to match the AFI type against.  This value must
                 be set if the bgpRouteMapSeNext field is defined.  This value
                 is only used if bgpRouteMapMaAfiDef is TRUE."
    DEFVAL { ipv4 }
    ::= { bgpRouteMapEntry 5 }

  bgpRouteMapMaAfiDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapMaAfi should be used
                 for matching."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 6 }

  bgpRouteMapMaSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The SAFI index to match the AFI type against.  This value must
                 be set if the bgpRouteMapSeNext field is defined.  This value
                 is only used if bgpRouteMapMaSafiDef is TRUE."
    DEFVAL { unicast }
    ::= { bgpRouteMapEntry 7 }

  bgpRouteMapMaSafiDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapMaSafi should be used
                 for matching."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 8 }

  bgpRouteMapMaAs OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression to use when matching the
                 AS-Path for a route.  This is stored here in ASCII format.
                 AS numbers are matched as decimal numbers.  For example,
                 the AS number '0x0123' should be represented in the
                 regular expression string as '291'.  The string is not
                 NULL-terminated.  A NULL string or a ma_as_exp_len value
                 of zero indicates that the field is not in use."
    ::= { bgpRouteMapEntry 9 }

  bgpRouteMapMaComm OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If not representing one or more ORF entries this contains the
                 regular expression to use when matching elements of the
                 community list for a route.  If representing ORF entries then
                 instead of a regular expression this contains a simple comma
                 separated list of communities which are or-ed together when
                 matching.  In both cases this is stored here in ASCII format.
                 Communities are matched using new-format decimal notation.
                 For example, the community '0x00120101' should be represented
                 in the string as '18:257'.  The string is not NULL-terminated.
                 A NULL string or a ma_comm_exp_len of zero indicates that the
                 field is not in use."
    ::= { bgpRouteMapEntry 10 }

  bgpRouteMapMaExtComm OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If not representing one or more ORF entries this contains
                 the regular expression to use when matching elements of the
                 extended community list for a route.

                 If representing ORF entries then instead of a regular
                 expression this contains a simple comma separated list of
                 extended communities which are or-ed together when matching.
                 In both cases this is stored here in ASCII format.  Extended
                 communities are matched as hexadecimal numbers.  For
                 example, the extended community '0x112233445566ab' should be
                 represented in the string as '00112233445566AB' (leading
                 zeroes are necessary to make the length up to 8 bytes).
                 Alphabetic nibbles 'A' through 'F' must be specified in
                 upper case.  The string is not NULL-terminated.  A NULL
                 string or a match_ext_comm_exp_len value of zero indicates
                 that the field is not in use."
    ::= { bgpRouteMapEntry 11 }

  bgpRouteMapMaAddr OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not there is an IP Address prefix table to match
                 the NLRI attribute against."
    ::= { bgpRouteMapEntry 12 }

  bgpRouteMapMaNext OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not there is an IP Address prefix table to match
                 the Next Hop attribute against."
    ::= { bgpRouteMapEntry 13 }

  bgpRouteMapMaSource OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not there is an IP Address prefix table to match
                 the source address against."
    ::= { bgpRouteMapEntry 14 }

  bgpRouteMapMaMed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to match the Multiple Exit Descriminator attribute
                 against.  A value of 0 indicates a match on no MED or a MED
                 of 0.  This value is only used if bgpRouteMapMaMedDef is
                 TRUE."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 15 }

  bgpRouteMapMaMedDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapMaMed should be used
                 for matching."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 16 }

  bgpRouteMapMaUser OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to TRUE if the user exit for matching is to be called."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 17 }

  bgpRouteMapSeAs OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of times the local AS number is prepended to
                 the AS path if there is a match.  This is only relevant if
                 the route map is being used for exporting routes, or for
                 setting attributes for an aggregate route which does not
                 have the AS_SET option set.  This value is only used if
                 the value of bgpRouteMapSeAsAct is AMB_BGP_PATH_SET or
                 AMB_BGP_REM_MATCH_AND_SET."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 18 }

  bgpRouteMapSeAsAct OBJECT-TYPE
    SYNTAX      BgpAsPathAction
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeAs should be used
                 for updating attributes.  The possible action values are:

                 AMB_BGP_PATH_NONE - Ignore bgpRouteMapSeAs and do nothing.

                 AMB_BGP_PATH_SET - Prepend the local AS number the number
                 of times specified by bgpRouteMapSeAs.

                 AMB_BGP_PATH_REM_MATCH - Remove all AS numbers in the
                 AS-Path matched by the regular expression in
                 bgpRouteMapMaAs.

                 AMB_BGP_PATH_REM_MATCH_AND_SET - Remove all AS numbers in
                 the AS-Path matched by the regular expression in
                 bgpRouteMapMaAs and prepend the local AS number the number
                 of times specified by bgpRouteMapSeAs."
    DEFVAL { none }
    ::= { bgpRouteMapEntry 19 }

  bgpRouteMapSeComm OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression used when executing the
                 action defined by bgpRouteMapSeCommAct.  Allowed values
                 depend on the value of bgpRouteMapSeCommAct - see the
                 comment for bgpRouteMapSeCommAct."
    ::= { bgpRouteMapEntry 20 }

  bgpRouteMapSeCommAct OBJECT-TYPE
    SYNTAX      BgpCommunityAction
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The action to take on the community list if this route map
                 matches the route.  Note that if the action is
                 AMB_BGP_SET_SPECIFIC or AMB_BGP_REMOVE_ALL_AND_SET, the
                 field bgpRouteMapSeComm must only contain a string
                 representation of a single specific community value, which
                 will be added to the route.  If the action is
                 AMB_BGP_REMOVE_SPECIFIC, then the bgpRouteMapSeComm field
                 must contain a regular expression string that matches the
                 community (or communities) to be removed.  The possible
                 action values are:

                 AMB_BGP_NONE - Ignore the value of bgpRouteMapSeComm and
                 do nothing.
                 AMB_BGP_REMOVE_ALL - Ignore the value of bgpRouteMapSeComm
                 and remove all communities from the route.
                 AMB_BGP_REMOVE_SPECIFIC - Remove from the route all
                 communities that match the regular expression in
                 bgpRouteMapSeComm.
                 AMB_BGP_SET_SPECIFIC - Append the community in
                 bgpRouteMapSeComm to the communities list.
                 AMB_BGP_REMOVE_ALL_AND_SET - Remove all communities from
                 the route and replace them with the community in
                 bgpRouteMapSeComm.

                 Note that you can delete or add a list of communities using
                 the bgpRouteMapSeCommListDel and bgpRouteMapSeCommListAdd
                 fields."
    DEFVAL { none }
    ::= { bgpRouteMapEntry 21 }

  bgpRouteMapSeExtComm OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression used when executing the
                 action defined by bgpRouteMapSeExtCommAct.  This field may
                 be ignored depending on the value of
                 bgpRouteMapSeExtCommAct - see the comment for
                 bgpRouteMapSeExtCommAct."
    ::= { bgpRouteMapEntry 22 }

  bgpRouteMapSeExtCommAct OBJECT-TYPE
    SYNTAX      BgpCommunityAction
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The action to take on the extended community list if this
                 route map matches the route.  Note that if the action is
                 AMB_BGP_SET_SPECIFIC or AMB_BGP_REMOVE_ALL_AND_SET, the
                 bgpRouteMapSeExtComm field should only contain a single
                 specific extended community value, which will be added to
                 the route.  If the action is AMB_BGP_REMOVE_SPECIFIC, then
                 the bgpRouteMapSeExtComm field must contain a regular
                 expression string that matches the extended community (or
                 communities) to be removed.  The
                 possible action values are:

                 AMB_BGP_NONE - Ignore the value of bgpRouteMapSeExtComm
                 and do nothing.
                 AMB_BGP_REMOVE_ALL - Ignore the value of
                 bgpRouteMapSeExtComm and remove all extended communities
                 from the route.
                 AMB_BGP_REMOVE_SPECIFIC - Remove from the route all
                 extended communities that match the regular expression in
                 bgpRouteMapSeExtComm.
                 AMB_BGP_SET_SPECIFIC - Append the extended community in
                 bgpRouteMapSeExtComm to the extended communities list.
                 AMB_BGP_REMOVE_ALL_AND_SET - Remove all extended
                 communities from the route and replace them with the
                 extended community in bgpRouteMapSeExtComm.

                 Note that you can delete or add a list of extended communities
                 using the bgpRouteMapSeXCommListDel and
                 bgpRouteMapSeXCommListAdd fields."
    DEFVAL { none }
    ::= { bgpRouteMapEntry 23 }

  bgpRouteMapSeLocPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to set the Local Pref to if there is a match.  This
                 value is only used if bgpRouteMapSeLocPrefDef is TRUE."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 24 }

  bgpRouteMapSeLocPrefDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeLocPref should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 25 }

  bgpRouteMapSeMed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to set the MED to if there is a match.  A value of
                 0 indicates that the MED should be removed.  This value is
                 only used if bgpRouteMapSeMedDef is TRUE."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 26 }

  bgpRouteMapSeMedDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeMed should be
                 used for updating attributes.

                 This field must be set to FALSE if either
                 bgpRouteMapSeMedDelta is non-zero or bgpRouteMapSeMedIgp is
                 set to TRUE."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 27 }

  bgpRouteMapSeNext OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to set the Next Hop to if there is a match.

                 Note that if this is set then the match AFI and SAFI fields
                 (bgpRouteMapMaAfi, bgpRouteMapMaSafi) must also be set to
                 ensure the right address type is being set.

                 The value is a BGP next hop in line format, as encoded in a
                 NEXT_HOP or MP_REACH_NLRI attribute with
                 AFI/SAFI = bgpRouteMapMaAfi/bgpRouteMapMaSafi.

                 Since a value of 0 is not allowed as a next hop, the default
                 value implies this field is not defined."
  -- Begin Versa change {
  --  DEFVAL { ''h }:
  -- End Versa change }
    ::= { bgpRouteMapEntry 28 }

  bgpRouteMapSeOrigin OBJECT-TYPE
    SYNTAX      BgpOriginCode
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to set the Origin to if there is a match.  This
                 value is only used if bgpRouteMapSeOriginDef is TRUE."
    DEFVAL { originIncomplete }
    ::= { bgpRouteMapEntry 29 }

  bgpRouteMapSeOriginDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeOrigin should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 30 }

  bgpRouteMapSeWeight OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to set the Weight to if there is a match.  This
                 value is only used if bgpRouteMapSeWeightDef is TRUE."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 31 }

  bgpRouteMapSeWeightDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeWeight should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 32 }

  bgpRouteMapSeFlap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the route flap configuration table entry to
                 use if there is a match, or zero if route flap dampening is
                 not required.

                 If there is a match and this field is non-zero then it
                 specifies the route flap configuration for the route,
                 otherwise the route flap configuration for the route is
                 unchanged.

                 The route flap configuration is only used when the route
                 map is used for route flap configuration
                (bgpRmAfiSafiFlapConfigMap) or for route import."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 33 }

  bgpRouteMapSeUser OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to TRUE if the user exit for Sets is to be called."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 34 }

  bgpRouteMapHitcnt OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times this row has been matched on."
    ::= { bgpRouteMapEntry 35 }

  bgpRouteMapClearcnt OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to TRUE to clear the counter associated with this row.
                 Reading the value of this field has no meaning."
    ::= { bgpRouteMapEntry 36 }

  bgpRouteMapUserInfo OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A byte array to allow the user to put in information.  This
                 information will be passed to user exits."
    ::= { bgpRouteMapEntry 37 }

  bgpRouteMapType OBJECT-TYPE
    SYNTAX      BgpPermitOrDeny
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The type of route map entry.  This is only relevant for
                 policy filtering route maps.  It indicates the action
                 which should apply to a route which matches the route map
                 entry.  This field is ignored for route maps used for
                 aggregation."
    DEFVAL { permit }
    ::= { bgpRouteMapEntry 38 }

  bgpRouteMapContinue OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Field containing the number of the route map clause to
                 continue processing at.

                 For a series of AMB_BGP_ROUTE_MAP rows that are ANDed
                 together (that is, the bgpRouteMapMaAnd field is set to
                 AMB_TRUE for all of the series except the last),
                 bgpRouteMapContinue can be used irrespective of the
                 bgpRouteMapType.  That is, bgpRouteMapType can be permit
                 or deny for the series.

                 For a series of route attribute changes (that is, a series
                 of AMB_BGP_ROUTE_MAP rows that modify the route attributes
                 of a permitted route, where the rows are linked with the
                 bgpRouteMapContinue field), all of the rows must have
                 bgpRouteMapType permit.

                 If the route map matches, the set commands for the
                 matching clause will be applied, and filtering will then
                 continue from the route map clause specified in this
                 field.

                 If no continue clause is specified (value of 0), or the
                 referenced route map clause does not exist, then
                 processing for the given route will be complete.

                 The continue field references the bgpRouteMapNumber field
                 of the desired clause.  In order to prevent processing
                 loops, the continue clause must have a higher number than
                 the current clause."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 39 }

  bgpRouteMapOrfAssoc OBJECT-TYPE
    SYNTAX      BgpOrfAssociation
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The type of association (if any) this route map has with the
                 ORF protocol.  If set to local then the filtering information
                 contained within this route map will be advertised to peers
                 that advertise the appropriate ORF support.  If remote then
                 this route map was created in response to ORF(s) received
                 from a peer.  Note that there can be a maximum of one local
                 and one remote ORF Route Map per AFI/SAFI, per neighbor.
                 Note that all fields contained within this Route Map are
                 read-only if the value is remote."
    DEFVAL { noAssociation }
    ::= { bgpRouteMapEntry 40 }

  bgpRouteMapSeAsLimUpper OBJECT-TYPE
    SYNTAX       Unsigned32  (0..255)
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION  "If there is a match this will cause the AS_PATHLIMIT
                  attribute to be added if it does not already exist.  If
                  it does exist then it will be replaced.  In either case the
                  specified limit and the local AS will be set.  This can be
                  used for traffic engineering purposes in association with a
                  less specific prefix.  A value of zero is permissible and
                  restricts advertisement of locally generated routes to IBGP
                  peers.  However, an AS_PATHLIMIT with an upper bound value of
                  0 will not be externally visible.  That is, it will not be
                  included in UPDATEs.

                  This value is only used if bgpRouteMapSeAsLimitDef is TRUE."
    DEFVAL { 1 }
    ::= { bgpRouteMapEntry 41 }

  bgpRouteMapSeAsLimDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeAsLimit should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 42 }

  bgpRouteMapMaOrigin OBJECT-TYPE
    SYNTAX      BgpOriginCode
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to match the Origin attribute against.  This
                 value is only used if bgpRouteMapMaOriginDef is TRUE."
    DEFVAL { originIncomplete }
    ::= { bgpRouteMapEntry 43 }

  bgpRouteMapMaOriginDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapMaOrigin should be
                 used for matching."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 44 }

  bgpRouteMapSeMedDelta OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If there is a match this will cause the MED attribute to
                 be incremented (or decremented) by the value specified.  The
                 direction of the value change is defined by
                 bgpRouteMapSeMedDeltaType.

                 The resulting MED value will not wrap, but will take a
                 minimum value of 0 and a maximum value of 4294967295.

                 This field is disabled by setting the value to zero.  The
                 field must be disabled if either bgpRouteMapSeMedDef or
                 bgpRouteMapSeMedIgp is set to TRUE."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 45 }

  bgpRouteMapSeMedDeltaTyp OBJECT-TYPE
    SYNTAX      BgpMedDeltaType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether to increment or decrement the MED attribute by the
                 value in bgpRouteMapSeMedDelta."
    DEFVAL { increment }
    ::= { bgpRouteMapEntry 46 }

  bgpRouteMapSeMedIgp OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If there is a match this will cause the MED attribute to
                 be set to the IGP distance to the next hop.

                 This field must be set to FALSE if either bgpRouteMapSeMedDef
                 is set to TRUE or bgpRouteMapSeMedDelta is non-zero."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 47 }

  bgpRouteMapSeAsPrependCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is deprecated and will always return 0 when
                 read."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 48 }

  bgpRouteMapSeAsPrependSize OBJECT-TYPE
    SYNTAX      BgpAsSize
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The size of AS numbers in the field
                 bgpRouteMapSeAsPrependAsVals to prepend to the AS path if
                 there is a match.

                 This field can be changed at any time."
    DEFVAL { twoOctet }
    ::= { bgpRouteMapEntry 49 }

  bgpRouteMapSeAsPrependAsVals OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..256))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "An array containing the AS numbers to prepend to the AS
                 path if there is a match.  The length of each AS number is
                 given by bgpRouteMapSeAsPrependSize.

                 This field can be changed at any time."
    ::= { bgpRouteMapEntry 50 }

  bgpRouteMapMaAnd OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates that the match statements in this route map
                 should be logically ANDed with the match statements in the
                 route map indicated by bgpRouteMapContinue.  This field is
                 only relevant for policy route maps.

                 If the route map indicated by bgpRouteMapContinue is not
                 found then the match will fail.

                 All route maps in a series must have the same
                 bgpRouteMapType.

                 If this field is set then no set statements can be
                 configured in the row.

                 This field can only be updated if the row is not active."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 51 }

-- Begin Versa change {

  bgpRouteMapSeSlaveMed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to set the MED to if there is a match and we are HA slave.
                 A value of 0 indicates that the MED should be removed.  This value is
                 only used if bgpRouteMapSeSlaveMedDef is TRUE."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 52 }

  bgpRouteMapSeSlaveMedDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeSlaveMed should be
                 used for updating attributes.

                 This field must be set to FALSE if either
                 bgpRouteMapSeSlaveMedDelta is non-zero or bgpRouteMapSeSlaveMedIgp is
                 set to TRUE."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 53 }

  bgpRouteMapSeSlaveLocPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to set the Local Pref to if there is a match and we
                 are HA slave. This value is only used if bgpRouteMapSeLocPrefDef
                 is TRUE."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 54 }

  bgpRouteMapSeSlaveLocPrefDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeSlaveLocPref should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 55 }

  bgpRouteMapSeSlaveMedDelta OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If there is a match this will cause the MED attribute to
                 be incremented (or decremented) by the value specified.  The
                 direction of the value change is defined by
                 bgpRouteMapSeSlaveMedDeltaType.

                 This will be applicable when we are HA slave.

                 The resulting MED value will not wrap, but will take a
                 minimum value of 0 and a maximum value of 4294967295.

                 This field is disabled by setting the value to zero.  The
                 field must be disabled if either bgpRouteMapSeSlaveMedDef or
                 bgpRouteMapSeSlaveMedIgp is set to TRUE."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 56 }

  bgpRouteMapSeSlaveMedDeltaTyp OBJECT-TYPE
    SYNTAX      BgpMedDeltaType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether to increment or decrement the MED attribute by the
                 value in bgpRouteMapSeMedDelta. This will be applicable when
                 we are HA slave."
    DEFVAL { increment }
    ::= { bgpRouteMapEntry 57 }

  bgpRouteMapSeSlaveMedIgp OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If there is a match this will cause the MED attribute to
                 be set to the IGP distance to the next hop.

                 This field must be set to FALSE if either bgpRouteMapSeMedDef
                 is set to TRUE or bgpRouteMapSeMedDelta is non-zero

                 This will be applicable when we are HA slave."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 58 }

  bgpRouteMapSeSlaveAs OBJECT-TYPE
    SYNTAX      Integer32 (0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of times the local AS number is prepended to
                 the AS path if there is a match.  This is only relevant if
                 the route map is being used for exporting routes, or for
                 setting attributes for an aggregate route which does not
                 have the AS_SET option set.  This value is only used if
                 the value of bgpRouteMapSeSlaveAsAct is AMB_BGP_PATH_SET or
                 AMB_BGP_REM_MATCH_AND_SET.

                 This will be applicable when we are HA slave."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 59 }

  bgpRouteMapSeSlaveAsAct OBJECT-TYPE
    SYNTAX      BgpAsPathAction
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeSlaveAs should be used
                 for updating attributes.  The possible action values are:
                 AMB_BGP_PATH_NONE - Ignore bgpRouteMapSeAs and do nothing.
                 AMB_BGP_PATH_SET - Prepend the local AS number the number
                 of times specified by bgpRouteMapSeSlaveAs.
                 AMB_BGP_PATH_REM_MATCH - Remove all AS numbers in the
                 AS-Path matched by the regular expression in
                 bgpRouteMapMaAs.
                 AMB_BGP_PATH_REM_MATCH_AND_SET - Remove all AS numbers in
                 the AS-Path matched by the regular expression in
                 bgpRouteMapMaAs and prepend the local AS number the number
                 of times specified by bgpRouteMapSeSlaveAs.

                 This will be applicable when we are HA slave."
    DEFVAL { none }
    ::= { bgpRouteMapEntry 60 }

  bgpRouteMapSeSlaveAsPrependCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "To prepend AS numbers to the AS-Path, set
                 bgpRouteMapSeSlaveAsPrependCount to the count of the AS numbers
                 to prepend, set bgpRouteMapSeSlaveAsPrependSize to indicate
                 whether the values are 2 or 4 octet AS numbers and fill in
                 bgpRouteMapSeSlaveAsPrependAsVals with the AS numbers themselves.

                 When exporting routes to EBGP, BGP applies the AS-prepend
                 rule before prepending the local AS number as required by
                 the BGP specification.  This ensures that the local AS
                 number is always the first AS number in the AS path in this
                 case.

                 This field can only be updated if the row is not active.

                 This will be applicable when we are HA slave."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 61 }

  bgpRouteMapSeSlaveAsPrependSize OBJECT-TYPE
    SYNTAX      BgpAsSize
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The size of AS numbers in the field
                 bgpRouteMapSeSlaveAsPrependAsVals to prepend to the AS path if
                 there is a match.  This field is only used if
                 bgpRouteMapSeSlaveAsPrependCount is non-zero.

                 This field can only be updated if the row is not active.

                 This will be applicable when we are HA slave."
    DEFVAL { twoOctet }
    ::= { bgpRouteMapEntry 62 }

  bgpRouteMapSeSlaveAsPrependAsVals OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..128))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "An array containing the AS numbers to prepend to the AS
                 path if there is a match.  The length of each AS number is
                 given by bgpRouteMapSeSlaveAsPrependSize.  This field is only
                 used if bgpRouteMapSeSlaveAsPrependCount is non-zero.

                 The count of AS numbers is given by
                 bgpRouteMapSeSlaveAsPrependCount.

                 This field can only be updated if the row is not active.

                 This will be applicable when we are HA slave."
    ::= { bgpRouteMapEntry 63 }

  bgpRouteMapSeAdminDistance OBJECT-TYPE
    SYNTAX      AdminDistance
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to set the Admin Distance if there is a match.  This
                 value is only used if bgpRouteMapSeAdminDistanceDef is TRUE."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 64 }

  bgpRouteMapSeAdminDistanceDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapSeAdminDistance should be
                 used for updating attributes."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 65 }

-- End Versa change }

  bgpRouteMapAsPathList OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the AS Path Access List to use when matching
                 the AS path in a route.

                 A value of zero means that no AS Path Access List is used
                 for matching."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 66 }

  bgpRouteMapMaCommList OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Community List to use when matching
                 communities in a route.

                 The field bgpRouteMapCommListExact is used to define
                 whether the set of communities in the route must match the
                 set of communities in the list exactly or not.

                 A value of zero means that no Community List is used for
                 matching."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 67 }

  bgpRouteMapCommListExact OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether the set of communities in the route must exactly
                 match the set of communities in the community list.

                 If set to true then there must be an exact match of all
                 communities in the route with all communities in the list.

                 If set to false then, for a match on the list, every
                 community in the list must appear in the set of
                 communities in the route."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 68 }

  bgpRouteMapMaExtCommList OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Extended Community List to use when
                 matching extended communities in a route.

                 The field bgpRouteMapExtCommListExact is used to define
                 whether the set of extended communities in the route must
                 match the set of extended communities in the list exactly
                 or not.

                 A value of zero means that no Extended Community List is
                 used for matching."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 69 }

  bgpRouteMapExtCommListExact OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is only used if the extended community list row
                 is of type 'community-group' and determines whether the
                 set of extended communities in the route must exactly
                 match the set of extended communities in at least one row
                 of the extended community list.

                 If set to true then there must be an exact match of all
                 extended communities in the route with all extended
                 communities in the list row.

                 If set to false then, for a match on the list, every
                 extended community in the list row must appear in the set
                 of extended communities in the route."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 70 }

bgpRouteMapMaAddrAallPre OBJECT-TYPE
    SYNTAX      PreAccessListListIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the AALL IP Prefix access list used to match
                 the NLRI attribute against."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 71 }

bgpRouteMapMaNextAallPre OBJECT-TYPE
    SYNTAX      PreAccessListListIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the AALL IP Prefix access list used to match
                 the Next Hop attribute against."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 72 }

bgpRouteMapMaSourceAallPre OBJECT-TYPE
    SYNTAX      PreAccessListListIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the AALL IP Prefix access list used to match
                 the source address against."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 73 }

bgpRouteMapSeCommListDel OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the index of a Community List used to delete
                 communities from routes matching this route-map.

                 A value of zero means that no Community List is used."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 74 }

bgpRouteMapSeCommListAdd OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the index of a Community List used to add
                 communities to routes matching this route-map.

                 A value of zero means that no Community List is used."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 75 }

bgpRouteMapSeXCommListDel OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the index of an Extended Community List used to
                 delete extended communities from routes matching this
                 route-map.

                 A value of zero means that no Extended Community List is
                 used."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 76 }

bgpRouteMapSeXCommListAdd OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the index of an Extended Community List used to add
                 extended communities to routes matching this route-map.

                 A value of zero means that no Extended Community List is
                 used."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 77 }

bgpRouteMapMaLocPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to match the Local Preference attribute against.
                 This value is only used if bgpRouteMapMaLocPrefDef is TRUE.

                 If a route does not contain a local preference attribute, this
                 match rule is ignored."
    DEFVAL { 0 }
    ::= { bgpRouteMapEntry 78 }

bgpRouteMapMaLocPrefDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpRouteMapMaLocPref should be
                 used for matching."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 79 }

  bgpRouteMapSeAsRemove OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..127))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression to use to remove AS
                 numbers from an AS-Path for a route.

                 This is stored here in ASCII format.  AS numbers are
                 matched as decimal numbers.  For example, the AS number
                 '0x0123' should be represented in the regular expression
                 string as '291'.  The string is not NULL-terminated.  A
                 NULL string or an se_as_remove_exp_len value of zero
                 indicates that the field is not in use."
    ::= { bgpRouteMapEntry 80 }

  bgpRouteMapSeLocalDiscard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If set to 'true' then routes matching this route-map will
                 have their action type set locally to DISCARD."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 81 }

  bgpRouteMapSeNextHopPeer OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If set to 'true' in an import route map, then routes matching
                 this route-map will have their Next Hop set to the peer's
                 address.  This field has no effect on route maps used for
                 anything other than import.  This field overrides
                 bgpRouteMapSeNextHop if set to 'true'.  This field is not
                 applied to VPNv4 or VPNv6 routes."
    DEFVAL { false }
    ::= { bgpRouteMapEntry 82 }

-- Begin Versa change {
  bgpRouteMapSeSaasSteering OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If set to 'true' in an import route map, then routes matching
                 this route-map will have saas steering feature enabled. With
                 this routes learnt from l3vpn/ibgp/ebgp routes at routing
                 table manager are considerd ecmp"
    DEFVAL { false }
    ::= { bgpRouteMapEntry 83 }

-- End Versa change }
-------------------------------------------------------------------------------

--
-- DC-BGP IP Prefix List Table
--
-- This table is used to create and manage DC-BGP IP Prefix Lists.  This is
-- tied to a single route map and used when a route attribute (NLRI, Next Hop
-- or source address) is being matched against any one of a list of IP
-- addresses.  Note that when the associated route map is destroyed, this
-- entry will also be destroyed.
--
-- Certain ORF related restrictions apply to entries in this table.  If an
-- entry in this table represents an ORF entry learned from a peer then all
-- fields are read-only.  For locally created entries the bgpIpPreMatchType
-- field is ignored unless the entry is linked to a route map with
-- bgpRouteMapOrfAssoc set to local.
--

  bgpIpPreTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_IPP
    SYNTAX      SEQUENCE OF BgpIpPreEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table is deprecated for user configuration - it is
                 retained for back compatibility and for received ORF
                 prefixes only.  When configuring prefix lists you should use
                 the aallPreAccessListTable instead.

                 The table of DC-BGP IP Prefix Lists.

                 If the IP prefix list is not associated with a specific
                 route map entry then bgpRouteMapIndex is zero and
                 bgpRouteMapNumber is used to reference the IP prefix list."
    ::= { bgpPib 2 }

  bgpIpPreEntry OBJECT-TYPE
    SYNTAX      BgpIpPreEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents an IP Prefix."
    INDEX { bgpRmEntIndex,
            bgpRouteMapIndex,
            bgpRouteMapNumber,
            bgpIpPreMatch,
            bgpIpPreNumber }
    ::= { bgpIpPreTable 1 }

  BgpIpPreEntry ::= SEQUENCE {
      bgpIpPreMatch       BgpIpMatchType,
      bgpIpPreNumber      Unsigned32,
      bgpIpPreRowStatus   RowStatus,
      bgpIpPreAfi         BgpAfi,
      bgpIpPreSafi        BgpSafi,
      bgpIpPreAddr        InetAddress,
      bgpIpPreLen         InetAddressPrefixLength,
      bgpIpPreGe          Integer32,
      bgpIpPreLe          Integer32,
      bgpIpPreType        BgpPermitOrDeny
      }

  bgpIpPreMatch OBJECT-TYPE
    SYNTAX      BgpIpMatchType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this bgpIpPreEntry.  This decides what match
                 command is used by the route map this list is tied to.

                 If the IP prefix list is not associated with a specific
                 route map entry then the only valid value is
                 AMB_BGP_NLRI_ADDR."
    ::= { bgpIpPreEntry 4 }

  bgpIpPreNumber OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this bgpIpPreEntry.  This number is used to
                 reference more than one filter per route map index."
    ::= { bgpIpPreEntry 5 }

  bgpIpPreRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete a Prefix."
    ::= { bgpIpPreEntry 6 }

  bgpIpPreAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The AFI of the address prefix.

                 This MIB is intended for IP prefix matching, so AFI = IPv4
                 and IPv6 are supported but AFI = L2VPN is not supported."
    DEFVAL { ipv4 }
    ::= { bgpIpPreEntry 7 }

  bgpIpPreSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The SAFI of the address prefix.

                 This MIB is intended for IP prefix matching, so AFI/SAFI =
                 L2VPN/VPLS or L2VPN/EVPN is not supported."
    DEFVAL { unicast }
    ::= { bgpIpPreEntry 8 }

  bgpIpPreAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Address part of the prefix.

                 This is matched against the line format BGP NLRI omitting
                 any NLRI length field and any leading MPLS labels.

                 For SAFI 128 this includes the Route Distinguisher as well
                 as the IPv4 or IPv6 address prefix."
    DEFVAL { '00'h }
    ::= { bgpIpPreEntry 9 }

  bgpIpPreLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Length (in bits) part of the prefix (as in the 16 in a
                 128.128/16 prefix).  When attempting to match a prefix to this
                 address, only the first len bits of the match prefix are
                 checked.  This allows for wildcard matching when combined with
                 le and/or ge."
    DEFVAL { 0 }
    ::= { bgpIpPreEntry 10 }

  bgpIpPreGe OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The GE value of the prefix.  GE and LE allow the range of the
                 prefix length to be matched on to be varied.  The range is
                 assumed to be from ge-value to the address length of the
                 family if only the ge attribute is specified, and from len to
                 le-value if only the le attribute is specified.

                 A specified ge-value and/or le-value must satisfy the
                 following condition:

                 len <= ge-value <= le-value <= address length of family."
    DEFVAL { 0 }
    ::= { bgpIpPreEntry 11 }

  bgpIpPreLe OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The LE value of the prefix.  GE and LE allow the range of the
                 prefix length to be matched on to be varied.  The range is
                 assumed to be from ge-value to the address length of the
                 family if only the ge attribute is specified, and from len to
                 le-value if only the le attribute is specified.

                 A specified ge-value and/or le-value must satisfy the
                 following condition:

                 len <= ge-value <= le-value <= address length of family."
    DEFVAL { 0 }
    ::= { bgpIpPreEntry 12 }

  bgpIpPreType OBJECT-TYPE
    SYNTAX       BgpPermitOrDeny
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION  "The type of this prefix.  The behavior is as follows.

                   - If this prefix is not associated with a route map then
                     setting this to DENY will deny any matching routes.

                   - If this prefix is linked to a normal route map (one with
                     no ORF association) then this field has no effect.

                   - If this prefix is linked to a route map with an ORF
                     association it will override the action of the
                     route map for matching routes."

    DEFVAL { permit }
    ::= { bgpIpPreEntry 13 }

-------------------------------------------------------------------------------

--
-- DC-BGP Peer Group Table
--
-- This table is used to create and manage Peer Groups.
--

  bgpPeergrTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_PGR
    SYNTAX      SEQUENCE OF BgpPeergrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table of peer groups.

                 A peer group is a set of peers that share a common peer
                 group configuration.

                 Using peer groups simplifies peer configuration.  Instead of
                 configuring many peers with the same set of configuration
                 values, you can configure a single peer group and then
                 assign peers to the peer group.

                 Each peer in a peer group has its bgpPeerConfigPeergr value
                 set to the peer group index (bgpPeergrIndex).  If a peer is
                 not in a peer group then its bgpPeerConfigPeergr value is 0.

                 The configuration fields for a peer group mirror
                 configuration fields for individual peers.

                 If a peer belongs to a peer group, then the peer's
                 configuration values may be taken from either the
                 AMB_BGP_PEER MIB or the AMB_BGP_PEERGR MIB.  Which values
                 are used is controlled by configuration usage fields in the
                 AMB_BGP_PEER MIB."
    ::= { bgpPib 7 }

  bgpPeergrEntry OBJECT-TYPE
    SYNTAX      BgpPeergrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a peer group."
    INDEX { bgpRmEntIndex,
            bgpPeergrIndex }
    ::= { bgpPeergrTable 1 }

  BgpPeergrEntry ::= SEQUENCE {
      bgpPeergrIndex                   Unsigned32,
      bgpPeergrRowStatus               RowStatus,
      bgpPeergrConfig                  Unsigned32,
      bgpPeergrArea                    BgpIbgpOrEbgp,
      bgpPeergrAggrConfedAS            TruthValue,
      bgpPeergrSoftResetWithStoredInfo TruthValue,
      bgpPeergrAllowLocalAs            Unsigned32,
      bgpPeergrDisableSenderLoopDetect TruthValue,
      bgpPeergrNxtHopSlf               BgpNextHopSelf,
      bgpPeergrThirdPtyNxtHop          TruthValue,
      bgpPeergrNxtHopPeer              TruthValue,
      bgpPeergrEnableAttributeDiscard  TruthValue,
      bgpPeergrSendComm                TruthValue,
      bgpPeergrSendExtComm             TruthValue,
      bgpPeergrPassword                OCTET STRING,
      bgpPeergrReflectorClient         BgpPeerReflectorClientType,
      bgpPeergrHoldTimeConfigd         Unsigned32,
      bgpPeergrKeepAliveConfigd        Unsigned32,
      bgpPeergrTtl                     Integer32,
      bgpPeergrMinRteAdvertiseInterval Unsigned32,
      bgpPeergrMinRteWithdrawInterval  Unsigned32,
      bgpPeergrConfigMaxPrfx           Integer32,
      bgpPeergrConfAltLocalAs          BgpAutonomousSystemNumber,
      bgpPeergrWeight                  Integer32,
      bgpPeergrFallover                BgpTrueFalseOrInherit,
      bgpPeergrRemoteAs                BgpAutonomousSystemNumber,
      bgpPeergrCheckFirstAsNum         BgpTrueFalseOrInherit,
      bgpPeergrConfedMember            TruthValue,
      bgpPeergrTrapEstab               TruthValue,
      bgpPeergrTrapBackw               TruthValue,
      bgpPeergrConnectRetryInterval    Unsigned32,
      bgpPeergrMinASOriginationInt     Unsigned32,
      bgpPeergrConfigDropWarn          BgpDropOrWarn,
      bgpPeergrConfigPassive           TruthValue,
      bgpPeergrConfigOpenDelay         Unsigned32,
      bgpPeergrConfigIdleHold          Unsigned32,
      bgpPeergrCheckNextHop            TruthValue,
      bgpPeergrMaxOrfEntries           Unsigned32,
      bgpPeergrPeeringType             BgpPeeringType,
      bgpPeergrDisableRouteRefresh     TruthValue,
      bgpPeergrTrapPrefix              TruthValue,
      bgpPeergrConfigThreshold         Unsigned32,
      bgpPeergrMaxPrfxHold             Unsigned32,
      bgpPeergrTrapGrHelperState       TruthValue,
      bgpPeergrConfAltLocalAsMode      INTEGER,
      bgpPeergrBfdDesired              TruthValue,
      bgpPeergrDmzLink                 TruthValue,
-- Begin Versa change {
      bgpPeergrRemovePrivate           TruthValue,
      bgpPeergrAsOverride              TruthValue,
      bgpPeergrUpdateGroup             TruthValue,
-- End Versa change }
      bgpPeergrDistListAclIn           Integer32,
      bgpPeergrDistListAclOut          Integer32,
      bgpPeergrDistListPlIn            Integer32,
      bgpPeergrDistListPlOut           Integer32,
      bgpPeergrFilterListIn            Unsigned32,
      bgpPeergrFilterListOut           Unsigned32,
--      bgpPeergrAsOverride              TruthValue,
      bgpPeergrAddrSourceIf            Unsigned32,
      bgpPeergrUseImportLocalPref      TruthValue,
      bgpPeergrImportLocalPref         Unsigned32,
      bgpPeergrUseExportLocalPref      TruthValue,
      bgpPeergrExportLocalPref         Unsigned32,
      bgpPeergrSlowPeer                TruthValue,
      bgpPeergrAddrSourceType          InetAddressType,
      bgpPeergrAddrSource              InetAddress,
      bgpPeergrMaxPrfxClear            Unsigned32,
      bgpPeergrPrfxThresholdClear      Unsigned32,
      bgpPeergrTtlSecurityMinTtl       Integer32,
      bgpPeergrRemovePrivateAs         BgpPrivAsActs,
      bgpPeergrResetPeerOnCfgChange    TruthValue
-- Begin Versa change {
      ,bgpPeergrAdminStatus             BgpAdminStatus          
-- End Versa change }
      }

  bgpPeergrIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this bgpPeergrEntry.  This is the index of the
                 peer group."
    ::= { bgpPeergrEntry 2 }

  bgpPeergrRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete a peer group."
    ::= { bgpPeergrEntry 3 }

  bgpPeergrConfig OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Policy Configuration Table this peer
                 group uses for its policy setup.  A value of zero indicates
                 that the peer group is not associated with any config row.

                 This field overrides the peer bgpPeerConfigIndex field for
                 export policy but not for import policy."
    ::= { bgpPeergrEntry 4 }

  bgpPeergrArea OBJECT-TYPE
    SYNTAX      BgpIbgpOrEbgp
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether this peer group is for IBGP, confederation EBGP,
                 or EBGP peers.  This field can only be changed when the
                 row is not active."
    DEFVAL { ibgp }
    ::= { bgpPeergrEntry 5 }

  bgpPeergrAggrConfedAS OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the neighbors in the
                 peer group understand aggregated confederation AS_PATH
                 information.  If set to FALSE, no confederation AS_PATH
                 information is included in aggregate AS_PATHs to any of the
                 peers in the peer group.  This field can only be changed
                 when the row is not active.

                 This field overrides the peer bgpPeerAggrInclConfedAS field."
    DEFVAL { true }
    ::= { bgpPeergrEntry 6 }

  bgpPeergrSoftResetWithStoredInfo OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with
                 bgpPeergrAfiSafiSoftResetStore to configure 'soft reset
                 with stored routing information'.  This option causes all
                 routes learned from peers in the peer group to be stored
                 so that the ARI can be recalculated (for example, due to a
                 change in import policy) without performing a route
                 refresh or restarting the peer session.

                 When bgpPeergrSoftResetWithStoredInfo is 'false', BGP does
                 not perform soft reset for any address family.

                 When bgpPeergrSoftResetWithStoredInfo is 'true', BGP
                 performs soft reset for those address families for which
                 bgpPeergrAfiSafiSoftResetStore is 'true'.

                 There is a significant occupancy impact associated with
                 this option.

                 IMPORTANT - Note that a change to this field does not affect
                 peer sessions that are already underway.  Restarting such
                 sessions will cause the new value to take effect.

                 Note that this option overlaps with route refresh (RR) and
                 Outbound Route Filter (ORF) behavior: To clarify, when
                 this option is enabled, the following also occur for
                 sessions to peers associated with the peer group.

                 -  Routes are stored in this way, even if the peer
                    advertizes support for RR or ORF.
                 -  Route refresh and ORF capabilities continue to be
                    advertized (if configured).
                 -  A route refresh will never be sent to this peer, apart
                    from one (containing no ORFs) at the start of the session
                    if both peers support ORF.
                 -  ORFs are never sent to the peer.
                 -  DC-BGP still responds to RR requests from the peer (if it
                    advertizes the RR capability).
                 -  DC-BGP still accepts ORF requests from the peer (if it
                    advertizes the ORF capability).

                 This field overrides the peer bgpPeerSoftResetWithStoredInfo
                 field."
    DEFVAL { false }
    ::= { bgpPeergrEntry 7 }

   bgpPeergrAllowLocalAs OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of instances of the local AS identifier that
                 may be contained in the route's AS-Path without rejecting
                 the route.

                 The AS-Path attribute of a BGP route contains the
                 identifiers of the Autonomous Systems traversed by the
                 route.  When a route is received with an AS-Path
                 containing the local AS identifier, it normally indicates
                 a routing loop, and the default behavior is to reject the
                 route.  This object allows this behavior to be
                 over-ridden.

                 This is useful, for example, for VPN routes, where routes
                 from one CE router are advertised to other CE routers
                 through a provider's BGP network.  Two CE routers in the
                 same AS can enable this feature to prevent routes from the
                 other CE from being discarded.

                 When bgpPeergrAllowLocalAs is set to a non-zero value,
                 that value is used for all address families, and the value
                 of bgpPeergrAfiSafiAllowLocalAs is ignored.

                 Alternatively, the value may be configured independently
                 for each address family.  To do this, set
                 bgpPeergrAllowLocalAs to 0 and set the value of
                 bgpPeergrAfiSafiAllowLocalAs for each address family.

                 Changing the value of this object while the peer is active
                 triggers BGP to refresh its routes from the peer.

                 This field overrides the peer bgpPeerAllowLocalAs field."
    DEFVAL { 0 }
    ::= { bgpPeergrEntry 8 }

  bgpPeergrDisableSenderLoopDetect OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used in conjunction with
                 bgpPeergrAfiSafiDisSndLpDetect to indicate whether BGP
                 should disable sender-side loop detection when sending
                 routes to the peer.

                 By default, BGP performs sender side loop detection.  That
                 is, it will not advertise a route to a peer if the AS-Path
                 of the route already contains the peer's AS number.  A
                 peer would typically discard such routes, so this is
                 normally a useful optimization.

                 However, the peer may be configured to accept such routes
                 (see bgpPeergrAllowLocalAs).  In this case it is necessary
                 to disable sender-side loop detection, by setting
                 bgpPeergrDisableSndLpDetect to 'true'.

                 Sender-side loop detection may be disabled independently
                 for each address family.  When bgpPeergrDisableSndLpDetect
                 is set to 'true', set bgpPeergrAfiSafiDisSndLpDetect to
                 'true' or 'false' to disable or enable sender-side loop
                 detection for each address family.

                 If the value is changed while the peer session is active,
                 BGP will check for any routes that need to be advertised
                 or withdrawn as a result of the change.

                 This field overrides the peer
                 bgpPeerDisableSenderLoopDetect field.

                 Note that sender-side loop detection does not operate on
                 peers in an update group."
-- Versa changed default
    DEFVAL { true }
    ::= { bgpPeergrEntry 9 }

  bgpPeergrNxtHopSlf OBJECT-TYPE
    SYNTAX      BgpNextHopSelf
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the peer group has next hop self
                 configured.

                 This field overrides the peer bgpPeerNxtHopSlf field.

                 For an individual AFI-SAFI, if the
                 bgpPeerAfiSafiUsePeerNxtHopSlf flag is unset in the
                 bgpPeergrAfiSafiConfigUsage of the bgpPeergrAfiSafiTable,
                 this value is ignored, and the bgpPeergrAfiSafiNxtHopSlf
                 value in the bgpPeergrAfiSafiTable is used instead."
    DEFVAL { false }
    ::= { bgpPeergrEntry 10 }

  bgpPeergrThirdPtyNxtHop OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the local BGP speaker should advertise
                 routes received from this peer group using third party
                 next hop (this is optional behaviour described in the BGP
                 specification).

                 This field is only used when exporting routes to other
                 EBGP peers, and when bgpPeergrNxtHopSlf is 'false'.

                 This field overrides the peer bgpPeerThirdPtyNxtHop field."
    DEFVAL { true }
    ::= { bgpPeergrEntry 11 }

  bgpPeergrNxtHopPeer OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the local BGP speaker should override the
                 use of third party next hop by an EBGP peer.  If an EBGP
                 peer speaker uses third party next hop, routes learnt from
                 the peer may specify a next hop belonging to a router that
                 the local BGP speaker does not peer with.

                 If this field is set to 'true', then all data forwarded
                 along a route learnt from an EBGP peer will be sent to the
                 EBGP peer.  The peer's address is put into the BGP next
                 hop field when the route is advertised to IBGP peers.

                 If set to 'false', then data is sent to the next hop
                 specified by the peer.  The field is only used when
                 importing routes from EBGP.

                 This field overrides the peer bgpPeerNxtHopPeer field."
    DEFVAL { false }
    ::= { bgpPeergrEntry 12 }

  bgpPeergrEnableAttributeDiscard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the 'attribute
                 discard' error handling mechanism is used for BGP UPDATE
                 messages received from peers in this peer group.  This
                 mechanism applies when a BGP UPDATE message is received
                 containig a malformed AGGREGATOR, AS4_AGGREGATOR, AS4_PATH
                 or ATOMIC_AGGREGATE attribute.

                 When set to 'false', the error handling mechanism defined
                 in the original BGP specification is used, and the BGP
                 session is reset.  This can lead to session flapping and
                 network instability, even though routing is not adversely
                 affected by the presence of these malformed attributes.

                 When set to 'true', the alternative error handling
                 mechanism of 'attribute discard' is used, where the
                 attribute is dropped and the rest of the BGP UPDATE
                 message is processed as normal.

                 Use of 'attribute discard' error handling is fixed at the
                 start of a BGP session, so changes to this field take
                 effect at the start of the next session.

                 This field overrides the peer
                 bgpPeerEnableAttributeDiscard field."
    DEFVAL { true }
    ::= { bgpPeergrEntry 13 }

  bgpPeergrSendComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not to send BGP community
                 attributes to peers in this peer group.

                 When set to 'true', and bgpPeergrAfiSafiSendComm for the
                 relevant address family is set to 'true', DC-BGP sends
                 UPDATE messages to the peer including BGP community
                 attributes.

                 Otherwise, DC-BGP sends UPDATE messages to the peer
                 omitting BGP community attributes.

                 This field overrides the peer bgpPeerSendComm field for
                 members with the bgpPeerUseGrpSendComm bit set in the
                 bgpPeerConfigUsage field.

                 Changing the value of this field while the peer is active
                 triggers DC-BGP to resend routes with community attributes
                 included or omitted according to the new configuration."
    DEFVAL { true }
    ::= { bgpPeergrEntry 14 }

  bgpPeergrSendExtComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not to send BGP extended
                 community attributes to peers in this peer group.

                 When set to 'true', and bgpPeergrAfiSafiSendExtComm for
                 the relevant address family is set to 'true', DC-BGP sends
                 UPDATE messages to the peer including BGP extended
                 community attributes.

                 Otherwise, DC-BGP sends UPDATE messages to the peer
                 omitting BGP extended community attributes.

                 This field overrides the peer bgpPeerSendExtComm field for
                 members with the bgpPeerUseGrpSendExtComm bit set in the
                 bgpPeerConfigUsage field.

                 Changing the value of this field while the peer is active
                 triggers DC-BGP to resend routes with extended community
                 attributes included or omitted according to the new
                 configuration."
    DEFVAL { true }
    ::= { bgpPeergrEntry 15 }

  bgpPeergrPassword OBJECT-TYPE
-- Versa changed max size to 512
    SYNTAX      OCTET STRING (SIZE (0..512))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The MD5 password used by peers in this peer group.

                 For individual peers, this can be configured using
                 bgpPeerPassword.

                 This value is passed to the sockets stub at peer creation.
                 The password length must be set to the length of the
                 password string.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is row_status ACTIVE, the change
                 will only take effect after the peer has been cycled
                 row_status NOT_IN_SERVICE and then ACTIVE, thus forcing
                 the peer session to be recreated.  In this case, until the
                 peer is set row_status NOT_IN_SERVICE, the peer will be
                 marked as out of date (as reported by the config_state
                 field in the AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { '0000'h }
    ::= { bgpPeergrEntry 16 }

  bgpPeergrReflectorClient OBJECT-TYPE
    SYNTAX      BgpPeerReflectorClientType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether peers in this peer group are
                 reflector clients of this router, or not.

                 For individual peers, this can be configured using
                 bgpPeerReflectorClient.

                 For specific AFI/SAFI, this can be configured using
                 bgpPeergrAfiSafiReflectorClient.

                 A value of nonClient(0) indicates that a peer is not a
                 reflector client.  A value of client(1) indicates that a
                 peer is a reflector client that is not fully meshed with
                 other reflector clients.  A value of meshedClient(2)
                 indicates that a peer is a reflector client and is fully
                 meshed with all other reflector clients.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { nonClient }
    ::= { bgpPeergrEntry 17 }

  bgpPeergrHoldTimeConfigd OBJECT-TYPE
    SYNTAX      Unsigned32 ( 0 | 3..65535 )
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the Hold Time configured for
                 this BGP speaker with peers in this peer group.

                 For individual peers, this can be configured using
                 bgpPeerHoldTimeConfigd.

                 This value is placed in an OPEN message sent to peers in
                 this peer group by this BGP speaker, and is compared with
                 the Hold Time field in an OPEN message received from the
                 peer when determining the Hold Time (bgpPeerHoldTime) with
                 the peer.  This value must not be less than three seconds
                 if it is not zero (0) in which case the Hold Time is NOT
                 to be established with the peer.  The value of this object
                 is only allowed to be zero (0) if the value of
                 bgpPeergrKeepAliveConfigd is also zero (0).  The suggested
                 value for this timer is 90 seconds.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { 90 }
    ::= { bgpPeergrEntry 18 }

  bgpPeergrKeepAliveConfigd OBJECT-TYPE
    SYNTAX      Unsigned32 ( 0 | 1..21845 )
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the KeepAlive configured for
                 this BGP speaker with peers in this peer group.

                 For individual peers, this can be configured using
                 bgpPeerKeepAliveConfigd.

                 The value of this object will only determine the KEEPALIVE
                 messages' frequency relative to the value specified in
                 bgpPeergrHoldTimeConfigd; the actual time interval for the
                 KEEPALIVE messages is indicated by bgpPeergrKeepAlive.  A
                 reasonable maximum value for this timer would be
                 configured to be one third of that of
                 bgpPeergrHoldTimeConfigd.

                 The value of this object is only allowed to be zero (0) if
                 the value of bgpPeergrHoldTimeConfigd is also zero (0).
                 If the value of this object is zero (0), no periodical
                 KEEPALIVE messages are sent to peers in this peer group
                 after the BGP connection has been established.  The
                 suggested value for this timer is 30 seconds.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { 30 }
    ::= { bgpPeergrEntry 19 }

  bgpPeergrTtl OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Time To Live used by the connection on peers in this
                 peer group.

                 For individual peers, this can be configured using
                 bgpPeerTtl.

                 Directly connected peers should have this set to one.  A
                 value of zero indicates the TTL socket option will not be
                 set for peers in this peer group.  The sockets layer will
                 therefore insert its default value of TTL into all
                 packets.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { 0 }
    ::= { bgpPeergrEntry 20 }

  bgpPeergrMinRteAdvertiseInterval OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the
                 MinRouteAdvertisementInterval timer for peers in this peer
                 group.

                 For individual peers, this can be configured using
                 bgpPeerMinRouteAdvertiseInterval.

                 This determines the minimum time between a BGP UPDATE to a
                 peer advertising or withdrawing a route and a subsequent
                 BGP UPDATE to the peer advertising a route to the same
                 destination.

                 The default value for this timer is 30 seconds.  Its value
                 must not be less than bgpPeergrMinRteWithdrawInterval.

                 For an individual AFI-SAFI, if the
                 bgpPeergrAfiSafiUsePeerMinAdInt flag is unset in the
                 bgpPeergrAfiSafiConfigUsage of the bgpPeergrAfiSafiTable, this
                 value is ignored, and the bgpPeergrAfiSafiMinRteAdvertInt
                 value in the bgpPeergrAfiSafiTable is used instead."
-- Versa changed default
    DEFVAL { 1 }
    ::= { bgpPeergrEntry 21 }

  bgpPeergrMinRteWithdrawInterval OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the MinRouteWithdrawInterval
                 timer for peers in this peer group.

                 For individual peers, this can be configured using
                 bgpPeerMinRouteWithdrawInterval.

                 This is the interval which is enforced between
                 advertisement and subsequent withdrawal of a route.

                 The default value for this timer is 30 seconds.  Its value
                 must not exceed bgpPeergrMinRteAdvertiseInterval.

                 If this field is set to zero, the
                 bgpPeergrAfiSafiMinRteWthdrawInt field for the relevant
                 address family is used instead."
-- Versa changed default
    DEFVAL { 0 }
    ::= { bgpPeergrEntry 22 }

  bgpPeergrConfigMaxPrfx OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with the address-family
                 specific bgpPeergrAfiSafiConfigMaxPrfx to limit the number
                 of prefixes that can be accepted from peers in this peer
                 group.

                 For individual peers, this can be configured using
                 bgpPeerConfigMaxPrfx.

                 Setting bgpPeergrConfigMaxPrfx to a non-zero value sets
                 the maximum number of prefixes (totalled across all
                 supported address families) that can be accepted from a
                 peer.

                 Alternatively, separate values for the maximum prefix
                 limit can be specified for each address family.  To
                 configure this, set bgpPeergrConfigMaxPrfx to zero, and
                 set bgpPeergrAfiSafiConfigMaxPrfx for each address family
                 for which a limit is required."
    DEFVAL { 0 }
    ::= { bgpPeergrEntry 23 }

  bgpPeergrConfAltLocalAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "An alternative local AS number that can be used to
                 establish a session with peers in this peer group.  This
                 is used when merging two ASs into a single AS.

                 For individual peers, this can be configured using
                 bgpPeerConfAltLocalAs.

                 A value of zero means 'not configured'.

                 If an alternative local AS number is configured then the
                 peering session can be established using the alternative
                 local AS instead of the primary local AS number specified
                 by bgpRmEntLocalAs.

                 Setting an alternative local AS number allows the primary
                 local AS number to be changed without reconfiguring the
                 peers in this peer group at the same time.  Later the
                 peers can be reconfigured to establish the session using
                 the new remote AS number and the alternative local AS
                 number can be reset to zero.

                 An alternative local AS number should only be used as an
                 intermediate step on one side of a BGP session.  Do not
                 configure an alternative local AS number on both sides of
                 a BGP session - configure the correct remote AS numbers
                 instead.

                 Use of alternative local AS numbers is not supported if
                 the router is a member of a confederation.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { 0 }
    ::= { bgpPeergrEntry 24 }

  bgpPeergrWeight OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value defines the weight to be applied to routes
                 received from neighbors in this group.

                 All routes learned from neighbors in this group will have
                 the assigned weight initially.  The weight assigned using
                 this field may be overridden by weights set by a route
                 map.

                 Changing the value of this object while a peer in the
                 group is active triggers BGP to refresh its routes from
                 the peer."
    DEFVAL { 0 }
    ::= { bgpPeergrEntry 25 }

  bgpPeergrFallover OBJECT-TYPE
    SYNTAX      BgpTrueFalseOrInherit
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not to monitor the route to
                 the peers in this group so that the session can be
                 deactivated if the route fails.  Monitoring the route means
                 DC-BGP will react to failure more quickly.

                 For individual peers, this can be configured using
                 bgpPeerFallover.

                 When set to 'true', DC-BGP monitors the route to the
                 peer and removes the session if the route fails.

                 When set to 'false', DC-BGP does not monitor the
                 route to the peer.

                 When set to 'inherit', the fallover behavior for this peer
                 is determined by the setting of the bgpRmEntFastExtFallover
                 field.

                 This field can be changed at any time.  The change takes
                 immediate effect."
    DEFVAL       { inherit }
    ::= { bgpPeergrEntry 26 }

  bgpPeergrRemoteAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The remote autonomous system number.

                 For individual peers, this can be configured using
                 bgpPeerRemoteAs.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { 0 }
    ::= { bgpPeergrEntry 27 }

  bgpPeergrCheckFirstAsNum OBJECT-TYPE
    SYNTAX      BgpTrueFalseOrInherit
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the first AS number in the AS_PATH
                 attribute in an UPDATE received from this peer should be
                 checked to make sure it is the same as the AS number of
                 the peer.  This flag only applies to EBGP peers.  It
                 should be set to True unless the peer has a specific
                 policy that means it does not prepend its AS number so
                 that it is the first in the path.

                 When set to 'true', DC-BGP checks the first AS number in
                 UDPATES received from the peer.

                 When set to 'false', DC-BGP does not check the first AS
                 number in UDPATES received from the peer.

                 When set to 'inherit', the behavior for is determined by the
                 setting of the bgpRmEntCheckFirstAsNum field.

                 If a peer belongs to the peer group, then the peer's
                 configuration is taken from either this field or the
                 equivalent peer field, depending on the setting of the bit
                 in the bgpPeerConfigUsage field.  The value for the peer
                 or peer group is determined and, if this is 'inherit',
                 then the bgpRmEntCheckFirstAsNum value is used.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { true }
    ::= { bgpPeergrEntry 28 }

  bgpPeergrConfedMember OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the peers in this peer
                 group are members of the same confederation that this
                 router is in.  This field can only be set to true if the
                 field bgpRmEntConfederationId is non-zero.  Note that the
                 value should be set to true even if the peers in this peer
                 group are in the same member AS that this router is in.

                 Member AS numbers are kept internal to the confederation,
                 so it is possible for a member AS number to be the same as
                 the AS number of a neighbor outside the confederation, and
                 so it is not possible to determine whether a peer is in
                 this confederation just by examining the peer's AS number.
                 The value of this field resolves any ambiguity.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { false }
    ::= { bgpPeergrEntry 29 }

  bgpPeergrTrapEstab OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the Established trap
                 is used for peers in this peer group.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
-- Versa changed default
    DEFVAL { true }
    ::= { bgpPeergrEntry 30 }

  bgpPeergrTrapBackw OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the Backward
                 Transition trap is used for peers in this peer group.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
-- Versa changed default
    DEFVAL { true }
    ::= { bgpPeergrEntry 31 }

  bgpPeergrConnectRetryInterval OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval for the ConnectRetry timer for peers in this
                 peer group.  The suggested value for this timer is 120
                 seconds.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
-- Versa changed default
    DEFVAL { 5 }
    ::= { bgpPeergrEntry 32 }

  bgpPeergrMinASOriginationInt OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for determining the minimum
                 amount of time that must elapse between successive
                 advertisements of UPDATE messages that report changes to a
                 route within the advertising BGP speaker's own autonomous
                 system.  The suggested value for this timer is 15 seconds.

                 This can be configured for individual peers using the
                 bgpPeerMinASOriginationInterval field.

                 If this field is set to zero, the
                 bgpPeergrAfiSafiMinASOrigInt field for the relevant
                 address family is used instead."
    DEFVAL { 15 }
    ::= { bgpPeergrEntry 33 }

  bgpPeergrConfigDropWarn OBJECT-TYPE
    SYNTAX      BgpDropOrWarn
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with the address-family
                 specific bgpPeergrAfiSafiConfigDropWarn to determine
                 whether the session is dropped or a warning is generated
                 when the maximum number of prefixes set is exceeded.

                 Setting bgpPeergrConfigDropWarn to 'drop' will cause the
                 session to be dropped when the prefix limit is reached.

                 To configure this behavior independently for different
                 address families, set bgpPeergrConfigDropWarn to 'warn',
                 and set the value of bgpPeergrAfiSafiConfigDropWarn for
                 each address family as needed."
-- Versa changed default from warn to drop
    DEFVAL { drop }
    ::= { bgpPeergrEntry 34 }

  bgpPeergrConfigPassive OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If TRUE, then no outbound connections will be initiated,
                 and only incoming connections will be accepted.  If FALSE,
                 then outbound connections will be attempted to peers in
                 this peer group, and incoming connections will be accepted
                 from peers in this peer group.

                 Note that receipt of incoming connections requires a
                 listening socket to be active in the Neighbor Manager
                 instance responsible for the peer.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { false }
    ::= { bgpPeergrEntry 35 }

  bgpPeergrConfigOpenDelay OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The delay to enforce in between a TCP connection with
                 peers in this peer group becoming established and a BGP
                 Open message being sent.  If this delay is zero, then no
                 delay will be injected, and a BGP Open message will be
                 sent as soon as the TCP connection allows it.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { 0 }
    ::= { bgpPeergrEntry 36 }

  bgpPeergrConfigIdleHold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The time to hold peers in this peer group in Idle state
                 after a BGP session has progressed beyond Idle state
                 initially and then returned to it.  No new connections
                 will be initiated or accepted until the peer comes out of
                 Idle state.  By setting this field to a large value, this
                 timer can be used to provide some level of peer
                 oscillation damping, if desired.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { 15 }
    ::= { bgpPeergrEntry 37 }

  bgpPeergrCheckNextHop OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not to check the BGP next-hop of routes sent to
                 peers in this peer group.  If set to TRUE, which is the
                 default, then routes with a BGP next-hop which is the same
                 as the peer's address will not be sent to the peer.  If
                 set to FALSE, then this filtering will not be performed.
                 In this case, the receiving peer should discard any such
                 routes itself."
    DEFVAL { true }
    ::= { bgpPeergrEntry 38 }

  bgpPeergrMaxOrfEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with the address-family
                 specific bgpPeergrAfiSafiMaxOrfEntries to limit the number
                 of ORF entries of all types that can be accepted from
                 peers in this peer group.

                 Setting bgpPeergrMaxOrfEntries to a non-zero value sets
                 the maximum number of ORF entries (totalled across all
                 supported address families) that can be accepted from the
                 peer.

                 If this limit is exceeded then the connection will be
                 closed.

                 Alternatively, separate values for the maximum number of
                 ORF entries can be specified for each address family.  To
                 configure this, set bgpPeergrMaxOrfEntries to zero, and
                 set bgpPeergrAfiSafiMaxOrfEntries for each address family
                 for which a limit is required.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is admin_status UP, the change will
                 only take effect after the peer has been cycled
                 admin_status DOWN and then UP, thus forcing the peer
                 session to be restarted.  In this case, until the peer is
                 set admin_status DOWN, the peer will be marked as out of
                 date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { 100000 }
    ::= { bgpPeergrEntry 39 }

  bgpPeergrPeeringType OBJECT-TYPE
    SYNTAX      BgpPeeringType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The type of peering relationship associated with peers in
                 this peer group.  Setting this to 'biLateral' will stop
                 the advertisement of routes with the NOPEER community to
                 the peer, and also filter out routes with the NOPEER
                 community received from the peer.  Setting the field to
                 other values is currently only for information.  This
                 field only applies to EBGP peer groups.  If this field is
                 set for an IBGP peer group, the setting will have no
                 effect and will still return 'unspecified'."
    DEFVAL      { unspecified }
    ::= { bgpPeergrEntry 40 }

  bgpPeergrDisableRouteRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates that DC-BGP should not advertise support for
                 Route Refresh messages to peers in this peer group.

                 When this flag is set, DC-BGP will not advertise support
                 for Route Refresh messages to the peer.  When this flag is
                 not set, DC-BGP will advertise support for Route Refresh
                 messages to the peer.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
    DEFVAL { false }
    ::= { bgpPeergrEntry 41 }

  bgpPeergrTrapPrefix OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used in conjunction with bgpPeergrAfiSafiTrapPrefix to
                 determine whether BGP issues an SNMP trap when the number
                 of prefixes received from peers in this peer group reaches
                 the maximum number of prefixes allowed, set by
                 bgpPeergrConfigMaxPrfx and bgpPeergrAfiSafiConfigMaxPrfx,
                 or the warning threshold set by bgpPeergrConfigThreshold
                 and bgpPeergrAfiSafiConfigThreshold.

                 To disable sending of traps for all address families, set
                 bgpPeergrTrapPrefix to 'false'.

                 To enable the sending of traps, set bgpPeergrTrapPrefix to
                 'true' and set bgpPeergrAfiSafiTrapPrefix to 'true' for
                 those address families for which this behavior is
                 required."
-- Versa changed default from false to true
    DEFVAL { true }
    ::= { bgpPeergrEntry 42 }

  bgpPeergrConfigThreshold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A percentage of the limit set by bgpPeergrConfigMaxPrfx.
                 When the number of prefixes received from peers in this
                 peer group reaches this threshold, BGP issues a warning.
                 The action carried out by DC-BGP depends on the value of
                 bgpPeergrTrapPrefix and bgpPeergrAfiSafiTrapPrefix.

                 This field is not used if bgpPeergrConfigMaxPrfx is set to
                 zero.  This field sets a threshold for all address
                 families received from a peer.

                 To configure a threshold for individual families, set
                 bgpPeergrConfigThreshold to zero and set
                 bgpPeergrAfiSafiConfigThreshold to the required threshold
                 for each address family."
    DEFVAL { 75 }
    ::= { bgpPeergrEntry 43 }

  bgpPeergrMaxPrfxHold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The time interval in seconds between when this BGP session
                 is torn down due to the number of prefixes received from
                 peers in this peer group exceeding the maximum in
                 bgpPeergrConfigMaxPrfx(AfiSafi) and when BGP attempts to
                 reestablish the session.

                 To configure a time interval for individual families, set
                 bgpPeergrMaxPrfxHold to zero and set
                 bgpPeergrAfiSafiMaxPrfxHold to the required time interval
                 for each address family.

                 If both bgpPeergrMaxPrfxHold and
                 bgpPeergrAfiSafiMaxPrfxHold are set to zero for an address
                 family, the session is not reestablished.  An attempt to
                 configure a non-zero value less than 30 seconds is
                 rejected."
    DEFVAL { 90 }
    ::= { bgpPeergrEntry 44 }

  bgpPeergrTrapGrHelperState OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether or not the Graceful Restart
                 helper trap is used.

                 If in use for peers in this peer group, DC-BGP will send a
                 trap whenever the peer restart status changes - in other
                 words, whenever the value of bgpPeergrRstrStatus for the
                 peer changes."
    DEFVAL { false }
    ::= { bgpPeergrEntry 45 }

  bgpPeergrConfAltLocalAsMode OBJECT-TYPE
    SYNTAX      INTEGER {
                  mode1(1),
                  mode2(2),
                  mode3(3),
                  mode4(4)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field controls the operation of the alternative local
                 AS number specified by the bgpPeergrConfAltLocalAs field
                 for peers in this peer group.  It has no effect unless
                 bgpPeergrConfAltLocalAs specifies a valid non-zero value.

                 This field controls the use of the alternative local AS
                 number in the following BGP operations:
                 -  establishing the peering session
                 -  updating the AS_PATH when importing a route received
                 from the peer (EBGP only)
                 -  updating the AS_PATH when exporting a route to the peer
                 (EBGP only).

                 These operations are described in full in the BGP
                 Configuration and Management Guide (bgp_config_mgmt.doc)
                 and summarized in the following table.

                 Mode        |Session   |AS_PATH In|AS_PATH Out
                 ============+==========+==========+==================
                 Standard BGP|Primary AS|-         |Primary AS
                 Mode 1      |Either    |-         |Selected As
                 Mode 2      |Alt AS    |Alt AS    |Alt AS, Primary AS
                 Mode 3      |Alt AS    |-         |Alt AS, Primary AS
                 Mode 4      |Alt AS    |-         |Alt AS.

                 This field can be changed at any time.  However, if a peer
                 is configured to use the peer group field and the field is
                 changed while the peer is active, depending on the setting
                 of the bgpPeergrResetPeerOnCfgChange field, the peer
                 session may either be immediately reset, or the
                 configuration change is not applied until the peer session
                 is restarted."
-- Versa changed default
    DEFVAL { mode2 }
    ::= { bgpPeergrEntry 46 }

  bgpPeergrBfdDesired OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether Bidirectional Forwarding Detection (BFD)
                 is desired for peers in this peer group.

                 If the NM entity managing the peer session (configured
                 using bgpPeergrLocalNm) does not have an active join to a
                 BFD provider (configured using bgpNmEntBfdEntityIndex),
                 then BFD will not be used on this interface regardless of
                 the value of this field.

                 This field can be changed at any time."
    DEFVAL { false }
    ::= { bgpPeergrEntry 47 }

  bgpPeergrDmzLink OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the peer group is for eBGP (as dictated by
                 bgpPeergrArea), this field indicates that all routes
                 with IPv4 address family received from peers in this peer
                 group should have an extended community attached
                 containing the bandwidth of the link to the eBGP peer when
                 the routes are propagated to iBGP peers, as per
                 draft-ietf-idr-link-bandwidth (subject to send_ext_comm
                 configuration).

                 Changing the value of this object while peers in the peer
                 group are active, causes DC-BGP to review whether the
                 extended community should be added to or removed from
                 routes received from those peers (as appropriate) and
                 propagates any changes to its iBGP peers.

                 This setting has no effect on routes with address family
                 other than IPv4."
    DEFVAL       { false }
    ::= { bgpPeergrEntry 48 }

-- Begin Versa change {

  bgpPeergrRemovePrivate OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether private AS numbers are removed from the AS path before
                 sending an update to this peer.  This is only relevant for an
                 eBGP peer."
    DEFVAL { false }
    ::= { bgpPeergrEntry 49 }

  bgpPeergrAsOverride OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether NBR AS numbers are replaced with Local AS number from
                 the AS path before sending an update to this peer.  This is
                 only relevant for an eBGP peer."
    DEFVAL { false }
    ::= { bgpPeergrEntry 50 }

  bgpPeergrUpdateGroup OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field indicates that DC-BGP should treat each
                 configured peer group for IBGP peers as an update group.
                 This means that all the peers in the peer group will share
                 a single Adj-RIB-Out and will receive the same set of
                 updates.

                 Note that setting bgpPeergrUpdateGroup to 'true' requires
                 that all of the peers in each IBGP peer group are
                 configured such that they require the same set of routes.
                 This imposes a number of configuration restrictions.

                 Inconsistent entity MIB settings will be rejected.

                 -  Split-horizon aggregates must be disabled
                    (bgpRmEntAggSplitHorizon must be 'false').

                 -  Non-persistent AROs (NPA) must be disabled
                    (bgpRmEntNonPersistentAros must be 'false').

                 The value of bgpPeerCheckNextHop is ignored (assumed to be
                 'false') for peers in an IBGP peer group when update
                 groups are enabled.

                 If a peer session starts and one of the following values
                 does not match the value for a peer in the peer group's
                 update group, then the new peer will not be added to the
                 update group.

                 -  The negotiated AS number size for the session.
                 -  The configured value for bgpPeerConfedMember.
                 -  The configured value for bgpPeerReflectorClient.

                 The following timer values will be taken from an arbitrary
                 member of the update group and will be applied to the
                 whole update group.  The timer values will therefore be
                 deterministic only if the same values are used for all
                 peers in a peer group.

                 -  bgpPeerMinASOriginationInterval.
                 -  bgpPeerMinRouteAdvertiseInterval.
                 -  bgpPeerMinRouteWithdrawInterval.

                 The local IP address used for next-hop-self will be taken
                 from an arbitrary member of the update group and will be
                 applied to the whole update group.  The local IP address
                 used will therefore be deterministic only if the same
                 values are used for all peers in a peer group.

                 Note also that setting bgpPeergrUpdateGroup to 'true'
                 limits the use of ORF (Outbound Route Filtering) for the
                 peers in an update group.  In particular, DC-BGP will
                 continue to send outbound route filters to peers, but
                 received filters are ignored.

                 In addition, when bgpPeergrUpdateGroup is 'true', the
                 value of bgpPeerConfigPeergr for a peer can only be
                 changed while the peer MIB row admin status is 'down'.
                 Similarly, when bgpPeergrUpdateGroup is 'true', the value
                 of bgpPeerRangeConfigPeergr for a peer range can only be
                 changed while the peer range MIB row admin status is
                 'down'.

                 This field can only be changed when the Admin Status is
                 down."
    DEFVAL       { false }
    ::= { bgpPeergrEntry 51 }
-- End Versa change }

 bgpPeergrDistListAclIn OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Access List index identifying the Access List to use
                 to filter routes received from peers in this peer group.

                 If this index is non-zero and the Access List with this
                 index is defined, then routes received from peers
                 are matched against this access list and permitted or
                 denied as defined by the access list."
    DEFVAL       { 0 }
    ::= { bgpPeergrEntry 52 }

  bgpPeergrDistListAclOut OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Access List index identifying the Access List to use
                 to filter routes advertised to peers in this peer group.

                 If this index is non-zero and the Access List with this
                 index is defined, then routes to be advertised to
                 peers are matched against this access list and advertised
                 or not as defined by the access list."
    DEFVAL       { 0 }
    ::= { bgpPeergrEntry 53 }

  bgpPeergrDistListPlIn OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Prefix List index identifying the Prefix List to use
                 to filter routes received from peers in this peer group.

                 If this index is non-zero and the Prefix List with this
                 index is defined, then routes received from peers
                 are matched against this prefix list and permitted or
                 denied as defined by the prefix list."
    DEFVAL       { 0 }
    ::= { bgpPeergrEntry 54 }

  bgpPeergrDistListPlOut OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Prefix List index identifying the Prefix List to use
                 to filter routes advertised to peers in this peer group.

                 If this index is non-zero and the Prefix List with this
                 index is defined, then routes to be advertised to
                 peers are matched against this prefix list and advertised
                 or not as defined by the prefix list."
    DEFVAL       { 0 }
    ::= { bgpPeergrEntry 55 }

  bgpPeergrFilterListIn OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Filter List index identifying the Filter List to use
                 to filter routes received from peers in this peer group.

                 If this index is non-zero and the Filter List with this
                 index is defined, then routes received from peers
                 are matched against this filter list and permitted or
                 denied as defined by the filter list."
    DEFVAL       { 0 }
    ::= { bgpPeergrEntry 56 }

  bgpPeergrFilterListOut OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Filter List index identifying the Filter List to use
                 to filter routes advertised to peers in this peer group.

                 If this index is non-zero and the Filter List with this
                 index is defined, then routes to be advertised to peers
                 are matched against this filter list and advertised or
                 not as defined by the filter list."
    DEFVAL       { 0 }
    ::= { bgpPeergrEntry 57 }

--  bgpPeergrAsOverride OBJECT-TYPE
--    SYNTAX      TruthValue
--    MAX-ACCESS  read-write
--    STATUS      current
--    DESCRIPTION "This field is used in conjunction with
--                 bgpPeergrAfiSafiAsOverride to indicate whether BGP should
--                 perform AS-override on routes advertised to the peers in this
--                 peer-group.
--
--                 If AS-override is enabled, then when advertising routes to
--                 this peer for this address-family, any instance of the peer's
--                 AS number will be replaced in the advertised AS path with the
--                 local AS number.
--
--                 This field is only taken into account for peer-group members
--                 with the AMB_BGP_PEER_CU2_AS_OVERRIDE bit set in the
--                 bgpPeerConfigUsage2 field.
--
--                 AS-override may be enabled independently for each address
--                 family.  When bgpPeergrAsOverride is set to 'true', set
--                 bgpPeergrAfiSafiAsOverride to 'true' or 'false' to enable or
--                 disable as-override for each address family.

--                 If the value of this object is changed while the peer session
--                 is active, BGP will check for any routes that need to be
--                 advertised or withdrawn as a result of the change.
--
--                 Note that this field has no effect when set for iBGP peers."
--    DEFVAL       { false }
--    ::= { bgpPeergrEntry 58 }

  bgpPeergrAddrSourceIf OBJECT-TYPE
    SYNTAX      Unsigned32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Interface index for the interface from which the source
                address for peer sessions in this group is chosen.  If
                non-zero, BGP will look for the first address on this
                interface with a type matching bgpPeerRemoteAddrType, and
                use that as the source address.  If no matching address or
                interface exists, or this field is set to zero, the source
                address is chosen as described in bgpPeerLocalAddr.

                This field is ignored for peers identified only by
                interface (bgpPeerLocalAddr and bgpPeerRemoteAddr are both
                zero).

                If non-zero, for dynamic peers, the local address of the
                incoming TCP connection must match an address on this
                interface, or else the connection is rejected.

                This field is only taken into account for peer-group
                members if the conditions described in the bgpPeerTable
                description are met.

                This field can be changed at any time.  However, if a peer
                is configured to use the peer group field and the field is
                changed while the peer is row_status ACTIVE, the change
                will only take effect after the peer has been cycled
                row_status NOT_IN_SERVICE and then ACTIVE, thus forcing
                the peer session to be recreated.  In this case, until the
                peer is set row_status NOT_IN_SERVICE, the peer will be
                marked as out of date (as reported by the config_state
                field in the AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL { 0 }
    ::= { bgpPeergrEntry 58 }

  bgpPeergrUseImportLocalPref OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field defines whether the value in
                bgpPeergrImportLocalPref should be used to configure the
                local preference value assigned to routes received from
                the peers in this group.

                This field is only taken into account for peer-group
                members if the conditions described in the bgpPeerTable
                description are met.

                This field can be changed at any time."
    DEFVAL       { false }
    ::= { bgpPeergrEntry 59 }

  bgpPeergrImportLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures the local preference value assigned to routes
                received from the peers in this group.  This overrides the
                value received from the peer.

                This field is only used if bgpPeergrUseImportLocalPref is
                set to AMB_TRUE.

                This field is only taken into account for peer-group
                members if the conditions described in the bgpPeerTable
                description are met.

                This field can be changed at any time."
    DEFVAL       { 0 }
    ::= { bgpPeergrEntry 60 }

  bgpPeergrUseExportLocalPref OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field defines whether the value in
                bgpPeergrExportLocalPref should be used to configure the
                local preference value assigned to routes sent to the
                peers in this group.

                This field is only taken into account for peer-group
                members if the conditions described in the bgpPeerTable
                description are met.

                This field can be changed at any time."
    DEFVAL       { false }
    ::= { bgpPeergrEntry 61 }

  bgpPeergrExportLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures the local preference value assigned to routes
                being sent to the peers in this group.  This overrides the
                value already set for the local preference of a route.

                This field is only used if bgpPeergrUseExportLocalPref is
                set to AMB_TRUE.

                This field is only taken into account for peer-group
                members if the conditions described in the bgpPeerTable
                description are met.

                This field can be changed at any time."
    DEFVAL       { 0 }
    ::= { bgpPeergrEntry 62 }

  bgpPeergrSlowPeer OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Marks the peers as slow peers.

                When update groups are in use, slow peers are kept
                separate from other peers to prevent backpressure from the
                slow peers slowing down updates sent to the other peers.

                This field is only taken into account for peer-group
                members if the conditions described in the bgpPeerTable
                description are met.

                This field can be changed at any time."
    DEFVAL       { false }
    ::= { bgpPeergrEntry 63 }

  bgpPeergrAddrSourceType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The address type of the bgpPeergrAddrSource field.  Setting
                this field to the default value means that bgpPeergrAddrSource
                is unspecified.

                This field is ignored for peers identified only by
                interface (bgpPeerLocalAddr and bgpPeerRemoteAddr are both
                zero).

                An AMB_INETWK_ADDR_TYPE_IPV6 must always be global.

                This field can be changed at any time.  However, if a peer
                is configured to use the peer group field and the field is
                changed while the peer is row_status ACTIVE, the change
                will only take effect after the peer has been cycled
                row_status NOT_IN_SERVICE and then ACTIVE, thus forcing
                the peer session to be recreated.  In this case, until the
                peer is set row_status NOT_IN_SERVICE, the peer will be
                marked as out of date (as reported by the config_state
                field in the AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL       { unknown }
    ::= {bgpPeergrEntry 64 }

  bgpPeergrAddrSource OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If an address is specified with a type matching
                bgpPeergrRemoteAddrType, and bgpPeergrAddrSourceIf is NOT
                specified, then BGP will use this address as the source
                address for the BGP session to this peer.

                This field is ignored for peers identified only by
                interface (bgpPeerLocalAddr and bgpPeerRemoteAddr are both
                zero).

                If the type does not match bgpPeergrRemoteAddrType, or
                bgpPeergrAddrSourceIf is specified, then the source address
                is chosen as described in bgpPeergrAddrSourceIf.

                If this address is used for peer sessions in this group
                then, for dynamic peers, the local address of the incoming
                TCP connection must match the address, or else the
                connection is rejected.

                This field is only taken into account for peer-group members
                if the conditions described in the bgpPeerTable description
                are met.

                This field can be changed at any time.  However, if a peer
                is configured to use the peer group field and the field is
                changed while the peer is row_status ACTIVE, the change
                will only take effect after the peer has been cycled
                row_status NOT_IN_SERVICE and then ACTIVE, thus forcing
                the peer session to be recreated.  In this case, until the
                peer is set row_status NOT_IN_SERVICE, the peer will be
                marked as out of date (as reported by the config_state
                field in the AMB_BGP_PEER_STATUS row for the peer)."
    ::= {bgpPeergrEntry 65 }

  bgpPeergrMaxPrfxClear OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with the address-family
                specific bgpPeergrAfiSafiMaxPrfxClear to control when a
                bgpPeerAfiSafiMaxPrefixClear trap is sent.  This trap will
                only be sent if the number of prefixes associated with a
                peer in this peer group drops to this level AND a
                bgpPeerAfiSafiMaxPrefix trap has been previously sent.

                In the case where bgpPeergrConfigMaxPrfx is non-zero, a
                non-zero value of bgpPeergrMaxPrfxClear is applied to the
                number of prefixes (totalled across all supported address
                families).

                Alternatively, in the case where bgpPeergrConfigMaxPrfx is
                zero and per-AFI/SAFI configuration is being applied,
                separate values can be specified for each address family.
                To configure this, set bgpPeergrMaxPrfxClear to zero and
                set bgpPeergrAfiSafiMaxPrfxClear for each address family for
                which a clear level is required."
    DEFVAL      { 0 }
    ::= {bgpPeergrEntry 66 }

  bgpPeergrPrfxThresholdClear OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used in conjunction with the address-family
                specific bgpPeergrAfiSafiPrfxThreshClear to control when a
                bgpPeerAfiSafiPrfxThrshldClear trap is sent.
                This trap will only be sent if the number of prefixes
                associated with a peer in this peer group drops to this
                level AND a bgpPeerAfiSafiPrefixThreshold trap has
                previously been sent.

                In the case where bgpPeergrConfigThreshold is non-zero, a
                non-zero value of bgpPeergrPrfxThresholdClear is applied
                to the number of prefixes (totalled across all supported
                address families).

                Alternatively,  in the case where bgpPeergrConfigThreshold
                is zero and per-AFI/SAFI configuration is being applied,
                separate values can be specified for each address family.
                To configure this, set bgpPeergrPrfxThresholdClear to zero
                and set bgpPeergrAfiSafiPrfxThreshClear for each address
                family for which a clear level is required."
    DEFVAL      { 0 }
    ::= {bgpPeergrEntry 67 }

  bgpPeergrTtlSecurityMinTtl OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The minimum TTL (for IPv4) or Hop Limit (for IPv6) that
                must be set in a BGP packet received from this peer.  This
                field is used to enable the Generalized TTL Security
                Mechanism (GTSM), as defined in RFC 5082.

                If set to 0, then no restriction is applied to received
                packets (that is, GTSM is not enabled).

                If set to any other value, then packets received from a
                peer with a TTL or Hop Limit less than the specified value
                will be dropped.  A non-zero value also means that DC-BGP
                will send packets to this peer with TTL set to 255, as
                specified in RFC 5082.  This overrides the TTL value
                specified in bgpPeerTtl or bgpPeergrTtl.

                Note that the typical use case for GTSM is for directly
                connected peers, where this field should be set to 254.
                Non-directly connected peers may still use this feature,
                with a lower value for this field, but the value must be
                chosen such that changes in the network topology do not
                cause packets to be dropped incorrectly.

                This field can be changed at any time.  However, if a peer
                is configured to use the peer group field and the field is
                changed while the peer is active, depending on the setting
                of the bgpPeergrResetPeerOnCfgChange field, the peer
                session may either be immediately reset, or the
                configuration change is not applied until the peer session
                is restarted."
    DEFVAL      { 0 }
    ::= {bgpPeergrEntry 68 }
-- Versa started using this instead of bgpPeerRemovePrivate
  bgpPeergrRemovePrivateAs OBJECT-TYPE
    SYNTAX      BgpPrivAsActs
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether private AS numbers are removed from the AS path or
                 replaced with the local AS number before sending an update to
                 this peer.  This is only relevant for an EBGP peer.

                 DC-BGP chooses whether to use the peer or peer group's
                 configuration based on the flags in bgpPeerConfigUsage2."
-- Versa changed default
    DEFVAL      { 2 }
    ::= {bgpPeergrEntry 69 }

bgpPeergrResetPeerOnCfgChange OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Certain configuration can only be changed while a peer
                 session is not active.  Setting this field to True will
                 cause changes to those fields to reset all peer sessions,
                 so that the new configuration is applied immediately.  If
                 this field is set to False, the configuration will only be
                 applied once the peer session is restarted.

                 The fields that are affected by this are:
                 -  bgpPeergrReflectorClient
                 -  bgpPeergrHoldTimeConfigd
                 -  bgpPeergrKeepAliveConfigd
                 -  bgpPeergrTtl
                 -  bgpPeergrConfAltLocalAs
                 -  bgpPeergrRemoteAs
                 -  bgpPeergrCheckFirstAsNum
                 -  bgpPeergrConfedMember
                 -  bgpPeergrTrapEstab
                 -  bgpPeergrTrapBackw
                 -  bgpPeergrConnectRetryInterval
                 -  bgpPeergrConfigPassive
                 -  bgpPeergrConfigOpenDelay
                 -  bgpPeergrConfigIdleHold
                 -  bgpPeergrDisableRouteRefresh
                 -  bgpPeergrConfAltLocalAsMode
                 -  bgpPeergrTtlSecurityMinTtl."
    DEFVAL { false }
    ::= { bgpPeergrEntry 70 }

-- Begin Versa change {

    bgpPeergrAdminStatus OBJECT-TYPE
        SYNTAX      BgpAdminStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "All the peers configured under the peer can be shutdown."
        ::= { bgpPeergrEntry 71 }

-- End Versa change }    
-------------------------------------------------------------------------------

--
-- DC-BGP Config Table
--
-- This table is used to create and manage Policy Configuration set-ups that
-- are used either by a peer or a peer group.
--
-- Note that in use it is not compulsory to define the Route Map entries.
-- However, it would be unusual not to have any defined unless this is an
-- entry for a neighbor which is in a peer group.
--

  bgpConfigTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_CNF
    SYNTAX      SEQUENCE OF BgpConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table of Policy Configuration."
    ::= { bgpPib 8 }

  bgpConfigEntry OBJECT-TYPE
    SYNTAX      BgpConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a policy configuration."
    INDEX { bgpRmEntIndex,
            bgpConfigIndex }
    ::= { bgpConfigTable 1 }

  BgpConfigEntry ::= SEQUENCE {
      bgpConfigIndex            Unsigned32,
      bgpConfigRowStatus        RowStatus,
      bgpConfigRtgrimpe         Unsigned32,
      bgpConfigRtgrimde         Unsigned32,
      bgpConfigRtgrexpe         Unsigned32,
      bgpConfigRtgrexde         Unsigned32,
      bgpConfigDefImport        BgpPermitOrDeny,
      bgpConfigDefExport        BgpPermitOrDeny,
      bgpConfigNxtHopSlf        TruthValue,
      bgpConfigRemove           TruthValue,
      bgpConfigImportMap        Unsigned32,
      bgpConfigExportMap        Unsigned32,
      bgpConfigAdvertiseMap     Unsigned32,
      bgpConfigNonExistMap      Unsigned32,
      bgpConfigBlockCondAdv     TruthValue,
      bgpConfigThirdPtyNxtHop   TruthValue,
      bgpConfigNxtHopPeer       TruthValue,
      bgpConfigCondAdvOn        TruthValue
      }

  bgpConfigIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this bgpConfigEntry.  This is the Index of the
                 Policy Configuration."
    ::= { bgpConfigEntry 2 }

  bgpConfigRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete a Policy Configuration."
    ::= { bgpConfigEntry 3 }

  bgpConfigRtgrimpe OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "The index of the Route Map Group this configuration uses for
                 permitted route imports.  The default value of 0 means no
                 route map group is defined."
    DEFVAL { 0 }
    ::= { bgpConfigEntry 4 }

  bgpConfigRtgrimde OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "The index of the Route Map Group this configuration uses for
                 denied route imports.  The default value of 0 means no
                 route map group is defined."
    DEFVAL { 0 }
    ::= { bgpConfigEntry 5 }

  bgpConfigRtgrexpe OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "The index of the Route Map Group this configuration uses for
                 permitted route exports.  The default value of 0 means no
                 route map group is defined."
    DEFVAL { 0 }
    ::= { bgpConfigEntry 6 }

  bgpConfigRtgrexde OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "The index of the Route Map Group this configuration uses for
                 denied route exports.  The default value of 0 means no
                 route map group is defined."
    DEFVAL { 0 }
    ::= { bgpConfigEntry 7 }

  bgpConfigDefImport OBJECT-TYPE
    SYNTAX      BgpPermitOrDeny
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "Whether routes not covered by the two import route map groups
                 are permitted or denied by default."
    DEFVAL { permit }
    ::= { bgpConfigEntry 8 }

  bgpConfigDefExport OBJECT-TYPE
    SYNTAX      BgpPermitOrDeny
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "Whether routes not covered by the two export route map groups
                 are permitted or denied by default."
    DEFVAL { permit }
    ::= { bgpConfigEntry 9 }

  bgpConfigNxtHopSlf OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "This field is now retired.  The function is provided by
                 bgpPeerNxtHopSlf and bgpPeergrNxtHopSlf."
    DEFVAL { false }
    ::= { bgpConfigEntry 10 }

  bgpConfigRemove OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is now retired.  The function is provided by
                 bgpPeerRemovePrivateAs and bgpPeergrRemovePrivateAs."
    DEFVAL { true }
    ::= { bgpConfigEntry 11 }

  bgpConfigImportMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map this configuration uses for
                 route imports.

                 The default value of 0 means no route map is defined, and all
                 routes will be imported.

                 If the peer is a member of a peer group then DC-BGP chooses
                 whether to use the peer or peer group's import policy based
                 on the flags in bgpPeerConfigUsage2.

                 This field isn't used if the import route map is configured
                 at the peer AFI/SAFI or peer group AFI/SAFI level - see the
                 description of the bgpPeerAfiSafiImportMap field for details."
    DEFVAL { 0 }
    ::= { bgpConfigEntry 12 }

  bgpConfigExportMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map this configuration uses for
                 route exports.

                 The default value of 0 means no route map is defined, and all
                 routes will be exported.

                 If the peer is a member of a peer group then DC-BGP chooses
                 whether to use the peer or peer group's export policy based
                 on the flags in bgpPeerConfigUsage2.

                 This field isn't used if the export route map is configured
                 at the peer AFI/SAFI or peer group AFI/SAFI level - see the
                 description of the bgpPeerAfiSafiExportMap field for details."
    DEFVAL { 0 }
    ::= { bgpConfigEntry 13 }

  bgpConfigAdvertiseMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map to use as an advertise map.
                 This is only applicable to conditional advertisement.

                 In order for the policy configuration to be valid, both
                 advertise_map and non_exist_map must be specified.  Both
                 of these maps must be of type AMB_BGP_PERMIT and at least
                 specify an exact NLRI prefix match, although they may
                 specify additional match fields.  Routes matching the
                 advertise map will only be advertised to neighbors or peer
                 groups assigned this policy configuration if there are no
                 routes in the LocRIB which match the non-exist map."
    DEFVAL { 0 }
    ::= { bgpConfigEntry 14 }

  bgpConfigNonExistMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map to use as a non-exist map.
                 This is only applicable to conditional advertisement - see
                 the description of the bgpConfigAdvertiseMap field above."
    DEFVAL { 0 }
    ::= { bgpConfigEntry 15 }

  bgpConfigBlockCondAdv OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Flag to indicate whether the route(s) that match the
                 advertise route-map are currently being blocked from
                 advertisement."
    ::= { bgpConfigEntry 16 }

  bgpConfigThirdPtyNxtHop OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "This field is now retired.  The function is provided by
                 bgpPeerThirdPtyNxtHop and bgpPeergrThirdPtyNxtHop."
    DEFVAL { true }
    ::= { bgpConfigEntry 17 }

  bgpConfigNxtHopPeer OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      obsolete
    DESCRIPTION "This field is now retired.  The function is provided by
                 bgpPeerNxtHopPeer and bgpPeergrNxtHopPeer."
    DEFVAL { false }
    ::= { bgpConfigEntry 18 }

  bgpConfigCondAdvOn OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not Conditional Advertisement is enabled.  Set
                 this to AMB_FALSE before changing the conditional
                 advertisement configuration, as certain intermediate
                 configurations (eg.  advertise map defined without
                 non-exist map) are illegal.  Set to AMB_TRUE when
                 configuration is complete."
    DEFVAL { false }
    ::= { bgpConfigEntry 19 }

-------------------------------------------------------------------------------

--
-- DC-BGP Flap Config Table
--
-- This table is used to create and manage Route Flap Damping Configuration
-- parameters.
--

  bgpFlapConfigTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_FLP
    SYNTAX      SEQUENCE OF BgpFlapConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table of Route Flap Damping configuration parameters."
    ::= { bgpPib 9 }

  bgpFlapConfigEntry OBJECT-TYPE
    SYNTAX      BgpFlapConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a set of configuration parameters used
                 when damping a route.  It is expected there will not be many
                 entries in this table but no limit is put on this.  Note that
                 if a field is changed from using old parameters to new ones,
                 the new parameters do not take effect those routes that were
                 already damped using the old parameters.  This will work
                 itself out over time, and the operator has the option of
                 undamping a damped route if they desire."
    INDEX { bgpRmEntIndex,
            bgpFlapConfigIndex }
    ::= { bgpFlapConfigTable 1 }

  BgpFlapConfigEntry ::= SEQUENCE {
      bgpFlapConfigIndex       Unsigned32,
      bgpFlapConfigRowStatus   RowStatus,
      bgpFlapConfigCut         Integer32,
      bgpFlapConfigReuse       Integer32,
      bgpFlapConfigThold       Integer32,
      bgpFlapConfigDecayok     Integer32,
      bgpFlapConfigDecayng     Integer32,
      bgpFlapConfigTmaxok      Integer32,
      bgpFlapConfigTmaxng      Integer32
      }

  bgpFlapConfigIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this route flap configuration table entry.
                 This is the index used to reference this route flap
                 configuration from the BGP RIB Manager entity configuration
                 or route map."
    ::= { bgpFlapConfigEntry 2 }

  bgpFlapConfigRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete a flap config set."
    ::= { bgpFlapConfigEntry 3 }

  bgpFlapConfigCut OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The cutoff threshold expressed as a number of route
                 withdrawals.  Above this level, the route will be suppressed.
                 This value must be greater than or equal to
                 bgpFlapConfigReuse.  The scale used is 100 times that used in
                 RFC2439 so the suggested value is 125, not 1.25 as suggested
                 in the RFC."
    DEFVAL { 125 }
    ::= { bgpFlapConfigEntry 4 }

  bgpFlapConfigReuse OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The reuse threshold expressed as a number of route
                 withdrawals.  Below this level the route will be reused.  The
                 scale used is 100 times that used in RFC2439 so the suggested
                 value is 50, not 0.5 as suggested in the RFC."
    DEFVAL { 50 }
    ::= { bgpFlapConfigEntry 5 }

  bgpFlapConfigThold OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum time a route can be suppressed for (held).  This
                 value must be less than or equal to bgpRmEntFlapReusemax in
                 the bgpRmEntTable."
    DEFVAL { 900 }
    ::= { bgpFlapConfigEntry 6 }

  bgpFlapConfigDecayok OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The decay half life of the stability figure while the route is
                 still reachable (whether suppressed or not).  This value must
                 be less than bgpFlapConfigTmaxok."
    DEFVAL { 300 }
    ::= { bgpFlapConfigEntry 7 }

  bgpFlapConfigDecayng OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The decay half life of the stability figure while the route is
                 not reachable (whether suppressed or not).  If it is not
                 defined or set to zero, no decay occurs if the route is
                 unreachable.  This value must be less than
                 bgpFlapConfigTmaxng."
    DEFVAL { 900 }
    ::= { bgpFlapConfigEntry 8 }

  bgpFlapConfigTmaxok OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The decay memory limit.  The maximum time any memory of a
                 previous instability is retained given the route state is
                 unchanged and reachable.  This is generally used to
                 determine array sizes."
    DEFVAL { 900 }
    ::= { bgpFlapConfigEntry 9 }

  bgpFlapConfigTmaxng OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The decay memory limit.  The maximum time any memory of a
                 previous instability is retained given the route state is
                 unchanged and unreachable.  This is generally used to
                 determine array sizes.  This value must be less than or equal
                 to bgpRmEntFlapFreemax in the bgpRmEntTable."
    DEFVAL { 1800 }
    ::= { bgpFlapConfigEntry 10 }

-------------------------------------------------------------------------------

--
-- DC-BGP Aggregate Address Table
--
-- This table is used to control how DC-BGP aggregates addresses.
--

  bgpAggregateTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_AGA
    SYNTAX      SEQUENCE OF BgpAggregateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table is used to control how DC-BGP aggregates
                 addresses.  Each entry in the table results in one aggregate
                 address being created.  This will result in an aggregate
                 entry in the routing table when at least one more specific
                 route matching the address specified is learnt.  If the
                 aggregate is marked as 'permanent', then an aggregate entry
                 is created in the routing table even if no more specific
                 matching routes are known.

                 The options allow configuration as to whether the AS_PATH
                 attribute keeps full information or not, and whether the more
                 specfic route is also entered in the routing table (the
                 summary only option).  These options can also be chosen on
                 a per route basis by matching on the advertise and suppress
                 route maps.

                 The attribute route map is used to set attributes of the
                 aggregated route if required.

                 It is possible to create overlapping entries in the table.
                 This can result in routes that match more than one
                 table entry.

                 -  If a route matches multiple aggregate addresses,
                 then it is suppressed any of the matching aggregates would
                 cause the route to be suppressed.

                 -  If a route matches the advertise map of an aggregate
                 address, then it is not aggregated by that aggregate address.
                 However, it may still be aggregated by other overlapping
                 aggregate addresses."
    ::= { bgpPib 10 }

  bgpAggregateEntry OBJECT-TYPE
    SYNTAX      BgpAggregateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a member of an aggregate address option
                 set."
    INDEX { bgpRmEntIndex,
            bgpAggrAfi,
            bgpAggrSafi,
            bgpAggrPrefix,
            bgpAggrPrefixLength }
    ::= { bgpAggregateTable 1 }

  BgpAggregateEntry ::= SEQUENCE {
      bgpAggrAfi                       BgpAfi,
      bgpAggrSafi                      BgpSafi,
      bgpAggrPrefix                    InetAddress,
      bgpAggrPrefixLength              InetAddressPrefixLength,
      bgpAggrRowStatus                 RowStatus,
      bgpAggrOptions                   BgpAggregateOptions,
      bgpAggrSuppressMap               Unsigned32,
      bgpAggrExcludeMap                Unsigned32,
      bgpAggrAttributeMap              Unsigned32,
      bgpAggrPermanent                 TruthValue,
      bgpAggrProgramRejectRoute        TruthValue,
      bgpAggrInheritMap                Unsigned32
      }

  bgpAggrAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The AFI of the aggregating address."
    ::= { bgpAggregateEntry 2 }

  bgpAggrSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The SAFI of the aggregating address."
    ::= { bgpAggregateEntry 3 }

  bgpAggrPrefix OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this bgpAggregateEntry.  This is the prefix of
                 the configured aggregating address."
    ::= { bgpAggregateEntry 4 }

  bgpAggrPrefixLength OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this bgpAggregateEntry.  This is the length of
                 the prefix (in bits) of the configured aggregating address."
    ::= { bgpAggregateEntry 5 }

  bgpAggrRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete an aggregate address option set."
    ::= { bgpAggregateEntry 6 }

  bgpAggrOptions OBJECT-TYPE
    SYNTAX      BgpAggregateOptions
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Options applied to this set of aggregate addresses.  Note with
                 no options, more specific routes are installed in the routing
                 table, but the AS_PATH will lose information as it will not
                 contain AS-SETs.  This is normally OK as it reduces route
                 flap.

                 Note that a route may be aggregated by multiple overlapping
                 aggregate addresses.  In this case, the route is suppressed
                 if any of the matching aggregates would cause the route to
                 be suppressed."
    DEFVAL { none }
    ::= { bgpAggregateEntry 7 }

  bgpAggrSuppressMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map used to suppress routes. The match
                 clauses of this route map are used to selectively suppress
                 more specific routes from being advertised.  No route map
                 should be defined here if a suppress option ('summary',
                 'summaryAsSet' or 'summaryAsAppend') is configured in the
                 bgpAggrOptions field."
    DEFVAL { 0 }
    ::= { bgpAggregateEntry 8 }

  bgpAggrExcludeMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of a Route Map used to exclude aggregatable
                 routes from this aggregate.  The match clauses of this
                 route map are used to select routes which, although they
                 match the aggregate address, should not be aggregated.
                 The aggregate will not inherit attributes from matching
                 routes.  The matching routes will not be suppressed by the
                 aggregate and so will be advertised to peers."
    DEFVAL { 0 }
    ::= { bgpAggregateEntry 9 }

  bgpAggrAttributeMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map used to set aggregated routes
                 attributes.  The set clauses of this route map are used to set
                 path attributes of the aggregated route."
    DEFVAL { 0 }
    ::= { bgpAggregateEntry 10 }

  bgpAggrPermanent OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If this field is set to TRUE, an aggregate entry is created in
                 the routing table and advertised to peers even if no
                 more-specific matching routes are known."
    DEFVAL { false }
    ::= { bgpAggregateEntry 11 }

  bgpAggrProgramRejectRoute OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If this field is set to TRUE, a REJECT route is configured
                 in the AFM for this aggregate to catch any traffic that is
                 not routed by the more specific routes.

                 If there is traffic in your network that uses the default
                 route and would be aggregated by this aggregate prefix
                 then you should set this field to FALSE to prevent the
                 traffic being unexpectedly black-holed."
    DEFVAL { true }
    ::= { bgpAggregateEntry 12 }

  bgpAggrInheritMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the aggregate is configured to inherit attributes from
                 its aggregated routes (that is, if the asSet,
                 summaryAsSet, asPrepend or summaryAsPrepend option is
                 set), this field can be used to specify the subset of
                 aggregated routes from which the aggregate will inhert its
                 attributes.  It specifies the index of a Route Map, the
                 match clauses of which define this subset.

                 This is equivalent to the 'advertise-map' feature
                 available in other BGP implementations."
    DEFVAL { 0 }
    ::= { bgpAggregateEntry 13 }

-------------------------------------------------------------------------------

--
-- Cooperative Outbound Route Filtering Capability Table.
--
-- This table defines the Cooperative Route Filtering Capabilities.
-- Given a suitably configured corresponding entry in the bgpPeerOrfCapability
-- table these will be advertised to peers.

  bgpOrfCapabilityTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_ORF_CAP
    SYNTAX      SEQUENCE OF BgpOrfCapabilityEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "DC-BGP ORF Capability Table."
    ::= { bgpPib 11 }

  bgpOrfCapabilityEntry OBJECT-TYPE
    SYNTAX      BgpOrfCapabilityEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about support for an ORF
                 defined by <AFI, SAFI, ORF Type>."
    INDEX { bgpRmEntIndex,
            bgpOrfCapabilityAfi,
            bgpOrfCapabilitySafi,
            bgpOrfCapabilityOrfType }
    ::= { bgpOrfCapabilityTable 1 }

  BgpOrfCapabilityEntry ::= SEQUENCE {
      bgpOrfCapabilityAfi               BgpAfi,
      bgpOrfCapabilitySafi              BgpSafi,
      bgpOrfCapabilityOrfType           BgpOrfType,
      bgpOrfCapabilityAdminStatus       BgpAdminStatus,
      bgpOrfCapabilitySendReceive       BgpOrfSendReceive
      }

  bgpOrfCapabilityAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the address family with which this ORF is
                 associated."
    ::= { bgpOrfCapabilityEntry 2 }

  bgpOrfCapabilitySafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the Subsequent Address Family Identifier with
                 which this ORF is associated."
    ::= { bgpOrfCapabilityEntry 3 }

  bgpOrfCapabilityOrfType OBJECT-TYPE
    SYNTAX      BgpOrfType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Indicates the type of this ORF."
    ::= { bgpOrfCapabilityEntry 4 }

  bgpOrfCapabilityAdminStatus OBJECT-TYPE
    SYNTAX      BgpAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The administrative status for this ORF entry."
    DEFVAL { adminStatusDown }
    ::= { bgpOrfCapabilityEntry 5 }

  bgpOrfCapabilitySendReceive OBJECT-TYPE
    SYNTAX      BgpOrfSendReceive
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether the sender is (a) willing to receive ORF
                 entries from its peer, (b) would like to send ORF entries
                 to its peer, or (c) both."
    DEFVAL { both }
    ::= { bgpOrfCapabilityEntry 6 }

-------------------------------------------------------------------------------

--
-- Cooperative Outbound Route Filtering Per Peer Capability Table.
--
-- This table defines the Cooperative Route Filtering Capabilities for a peer.
-- These will be advertised to the specified peer if, and only if, there is
-- a suitably configured corresponding entry in the bgpOrfCapabilityTable.

  bgpPeerOrfCapabilityTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_PEER_ORF_CAP
    SYNTAX      SEQUENCE OF BgpPeerOrfCapabilityEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "DC-BGP Peer ORF Capability Table.

                 This table allows a user to configure ORF on a per peer basis.

                 Rows in this table cannot be created or destroyed manually.
                 A table entry is created for each supported address family and
                 ORF type when an entry in the bgpPeerTable is created.
                 The entries are destroyed when the bgpPeerTable entry
                 is destroyed."
    ::= { bgpPeerData 3 }

  bgpPeerOrfCapabilityEntry OBJECT-TYPE
    SYNTAX      BgpPeerOrfCapabilityEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing peer specific information about support for
                 an ORF defined by <AFI, SAFI, ORF Type>."
    INDEX { bgpRmEntIndex,
            bgpPeerLocalAddrType,
            bgpPeerLocalAddr,
            bgpPeerLocalPort,
            bgpPeerRemoteAddrType,
            bgpPeerRemoteAddr,
            bgpPeerRemotePort,
            bgpPeerLocalAddrScopeId,
            bgpPeerOrfCapabilityAfi,
            bgpPeerOrfCapabilitySafi,
            bgpPeerOrfCapabilityOrfType }
    ::= { bgpPeerOrfCapabilityTable 1 }

  BgpPeerOrfCapabilityEntry ::= SEQUENCE {
      bgpPeerOrfCapabilityAfi               BgpAfi,
      bgpPeerOrfCapabilitySafi              BgpSafi,
      bgpPeerOrfCapabilityOrfType           BgpOrfType,
      bgpPeerOrfCapabilityAdminStatus       BgpAdminStatus,
      bgpPeerOrfCapabilitySendReceive       BgpOrfSendReceive
      }

  bgpPeerOrfCapabilityAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the address family with which this ORF is
                 associated."
    ::= { bgpPeerOrfCapabilityEntry 8 }

  bgpPeerOrfCapabilitySafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the Subsequent Address Family Indentifier with
                 which this ORF is associated."
    ::= { bgpPeerOrfCapabilityEntry 9 }

  bgpPeerOrfCapabilityOrfType OBJECT-TYPE
    SYNTAX      BgpOrfType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Indicates the type of this ORF."
    ::= { bgpPeerOrfCapabilityEntry 10 }

  bgpPeerOrfCapabilityAdminStatus OBJECT-TYPE
    SYNTAX      BgpAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The administrative status for this ORF entry."
    DEFVAL { adminStatusDown }
    ::= { bgpPeerOrfCapabilityEntry 11 }

  bgpPeerOrfCapabilitySendReceive OBJECT-TYPE
    SYNTAX      BgpOrfSendReceive
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether the sender is (a) willing to receive ORF
                 entries from its peer, (b) would like to send ORF entries
                 to its peer, or (c) both.  This field will be logical-ANDed
                 with the bgpOrfCapabilitySendReceive field of the
                 corresponding entry in the bgpOrfCapabilityTable if one
                 exists.  Only if a corresponding entry exists AND
                 both entries indicate support will this be advertised to the
                 peer."
    DEFVAL { both }
    ::= { bgpPeerOrfCapabilityEntry 12 }

-------------------------------------------------------------------------------

  --
  -- Peer group <AFI, SAFI> configuration table.
  --

  bgpPeergrAfiSafiTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_AFI
    SYNTAX      SEQUENCE OF BgpPeergrAfiSafiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Peer group <AFI, SAFI> configuration table.

                 This table allows a user to configure peer group
                 characteristics on a per AFI/SAFI basis.

                 Rows in this table cannot be created or destroyed manually.
                 A table entry for each supported address family is created
                 automatically when an entry in the bgpPeergrTable is
                 created.  The entries are destroyed when the bgpPeergrTable
                 entry is destroyed.

                 The configuration fields for a peer group AFI/SAFI mirror
                 configuration fields for individual peer AFI/SAFIs.

                 If a peer belongs to a peer group, then the peer's
                 per-afi-safi configuration values may be taken from either
                 the AMB_BGP_PEER_AFI_SAFI MIB or the AMB_BGP_PEERGR_AFI_SAFI
                 MIB.  Which values are used is controlled by the
                 configuration usage fields in the AMB_BGP_PEER MIB.  These
                 fields contains a set of bit flags.

                 -  If a configuration field exists in both the AMB_BGP_PEER
                 and AMB_BGP_PEER_AFI_SAFI MIBs, then a corresponding bit
                 flag will be defined.

                 -  If the bit flag is set, then the value in the
                 AMB_BGP_PEERGR_AFI_SAFI MIB is used (provided the
                 AMB_BGP_PEERGR row is active).  Otherwise, the value in
                 the AMB_BGP_PEER_AFI_SAFI MIB is used."
    ::= { bgpPib 12 }

  bgpPeergrAfiSafiEntry OBJECT-TYPE
    SYNTAX      BgpPeergrAfiSafiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Peer group <AFI, SAFI> configuration table entry."
    INDEX { bgpRmEntIndex,
            bgpPeergrIndex,
            bgpPeergrAfiSafiAfi,
            bgpPeergrAfiSafiSafi }
    ::= { bgpPeergrAfiSafiTable 1 }

  BgpPeergrAfiSafiEntry ::= SEQUENCE {
      bgpPeergrAfiSafiAfi                BgpAfi,
      bgpPeergrAfiSafiSafi               BgpSafi,
      bgpPeergrAfiSafiAllowLocalAs       Unsigned32,
      bgpPeergrAfiSafiDisSndLpDetect     TruthValue,
      bgpPeergrAfiSafiNxtHopSlf          BgpNextHopSelf,
      bgpPeergrAfiSafiOrigDefault        TruthValue,
      bgpPeergrAfiSafiOrigDefaultRtMap   Unsigned32,
      bgpPeergrAfiSafiSoftResetStore     TruthValue,
      bgpPeergrAfiSafiAddPathCapCfg      BgpAddPathSrCap,
      bgpPeergrAfiSafiAddPathBestN       Unsigned32,
      bgpPeergrAfiSafiConfigMaxPrfx      Integer32,
      bgpPeergrAfiSafiImportMap          Unsigned32,
      bgpPeergrAfiSafiExportMap          Unsigned32,
      bgpPeergrAfiSafiImportIpPre        Unsigned32,
      bgpPeergrAfiSafiExportIpPre        Unsigned32,
      bgpPeergrAfiSafiConfigDropWarn     BgpDropOrWarn,
      bgpPeergrAfiSafiMaxOrfEntries      Unsigned32,
      bgpPeergrAfiSafiTrapPrefix         TruthValue,
      bgpPeergrAfiSafiConfigThreshold    Unsigned32,
      bgpPeergrAfiSafiMaxPrfxHold        Unsigned32,
      bgpPeergrAfiSafiImportIpAallPre    PreAccessListListIndexOrZero,
      bgpPeergrAfiSafiExportIpAallPre    PreAccessListListIndexOrZero,
      bgpPeergrAfiSafiReflectorClient    BgpPeerReflectorClientType,
      bgpPeergrAfiSafiAsOverride         TruthValue,
      bgpPeergrAfiSafiDisable            TruthValue,
      bgpPeergrAfiSafiMinASOrigInt       Unsigned32,
      bgpPeergrAfiSafiMinRteAdvertInt    Unsigned32,
      bgpPeergrAfiSafiMinRteWthdrawInt   Unsigned32,
      bgpPeergrAfiSafiSendComm           TruthValue,
      bgpPeergrAfiSafiSendExtComm        TruthValue,
      bgpPeergrAfiSafiConfigUsage        BgpPeerAfiSafiCfgUsage,
      bgpPeergrAfiSafiMaxPrfxClear       Unsigned32,
      bgpPeergrAfiSafiPrfxThreshClear    Unsigned32,
      bgpPeergrAfiSafiPreserveNh         TruthValue,
      bgpPeergrAfiSafiAcceptRmtNxtHop    TruthValue
      }

  bgpPeergrAfiSafiAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The AFI index into the peer group <AFI, SAFI> table."
    ::= { bgpPeergrAfiSafiEntry 3 }

  bgpPeergrAfiSafiSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The SAFI index into the peer group <AFI, SAFI> table."
    ::= { bgpPeergrAfiSafiEntry 4 }

  bgpPeergrAfiSafiAllowLocalAs OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of instances of the local AS identifier that
                 may be contained in the route's AS-Path without rejecting
                 the route.

                 The AS-Path attribute of a BGP route contains the
                 identifiers of the Autonomous Systems traversed by the
                 route.  When a route is received with an AS-Path
                 containing the local AS identifier, it normally indicates
                 a routing loop, and the default behavior is to reject the
                 route.  This object allows this behavior to be
                 over-ridden.

                 This is useful, for example, for VPN routes, where routes
                 from one CE router are advertised to other CE routers
                 sites through a provider's BGP network.  Two CE routers in
                 the same AS can enable this feature to prevent routes from
                 the other CE from being discarded.

                 Changing the value of this object triggers BGP to refresh
                 its routes from each active peer in the peer group."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 5 }

  bgpPeergrAfiSafiDisSndLpDetect OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the sender-side loop detection
                 configuration provided by
                 bgpPeergrDisableSenderLoopDetect.

                 By default, BGP performs sender side loop detection.  That
                 is, it will not advertise a route to a peer if the AS-Path
                 of the route already contains the peer's AS number.  A
                 peer would typically discard such routes, so this is
                 normally a useful optimization.

                 However, the peer may be configured to accept such routes
                 (see bgpPeergrAfiSafiAllowLocalAs).  In this case it is
                 necessary to disable sender-side loop detection.

                 When bgpPeergrDisableSenderLoopDetect is 'true', BGP
                 disables sender-side loop detection for those address
                 families for which bgpPeergrAfiSafiDisSndLpDetect is
                 'true'.

                 When bgpPeergrDisableSenderLoopDetect is 'false',
                 sender-side loop detection is not disabled for any address
                 families.

                 If the value of this object is changed while a peer in the
                 peer group is active, BGP will check for any routes that
                 need to be advertised or withdrawn as a result of the
                 change.

                 Note that sender-side loop detection does not operate on
                 peers in an update group."
    DEFVAL { true }
    ::= { bgpPeergrAfiSafiEntry 6 }

  bgpPeergrAfiSafiNxtHopSlf OBJECT-TYPE
    SYNTAX      BgpNextHopSelf
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the next-hop-self configuration
                 provided by bgpPeergrNxtHopSlf.

                 If the bgpPeerAfiSafiUsePeerNxtHopSlf bit is set in the
                 bgpPeergrAfiSafiConfigUsage field then this value is ignored
                 and the peer group configuration is used instead.

                 If the value of this object is changed while a peer
                 session is active, BGP will check for any routes that need
                 to be advertised or withdrawn as a result of the change."
-- Versa changed default
    DEFVAL { true }
    ::= { bgpPeergrAfiSafiEntry 7 }

  bgpPeergrAfiSafiOrigDefault OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates whether BGP should originate a default route to
                 the peer group for this address family.

                 BGP cannot originate default VPN routes and so
                 bgpPeergrAfiSafiOrigDefault cannot be set to 'true' if
                 bgpPeerAfiSafiSafi is 'mplsBgpVpn'.

                 This is because there is no single default route for a VPN
                 address family - there may be one for each VRF.  If a
                 default VPN route is required, it should should be
                 redistributed from the corresponding VRF.  This ensures
                 that the default VPN route is advertised by BGP along with
                 the associated label, route distinguisher and route
                 targets.

                 Similarly, BGP does not support the allocation of a label
                 for a default route, and so bgpPeergrAfiSafiOrigDefault
                 cannot be set to 'true' if bgpPeergrAfiSafiSafi is
                 'labeled'.

                 Default routes are meaningless for L2VPN, so
                 bgpPeergrAfiSafiOrigDefault cannot be set to 'true' if
                 bgpPeergrAfiSafiAfi is 'l2vpn'.

                 The origination of default routes may optionally be
                 conditional based on policy.  If this is required, then
                 set bgpPeergrAfiSafiOrigDefaultRtMap to specify a route
                 map.

                 If no route map is specified
                 (bgpPeergrAfiSafiOrigDefaultRtMap is zero), then default
                 route origination is based solely on the setting of
                 bgpPeergrAfiSafiOrigDefault.

                 This field is used for dynamic and configured peers.  For
                 a description of how this field is used for the latter,
                 see the description of bgpPeerTable."
    DEFVAL { false }
    ::= { bgpPeergrAfiSafiEntry 8 }

  bgpPeergrAfiSafiOrigDefaultRtMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configured policy for origination of default routes.

                 The value of bgpPeergrAfiSafiOrigDefaultRtMap is only
                 examined if bgpPeergrAfiSafiOrigDefault is 'true'.

                 It identifies a route map consisting of all rows in the
                 bgpRouteMapTable with bgpRouteMapIndex set to
                 bgpPeergrAfiSafiOrigDefaultRtMap.

                 The route map has two purposes.

                 -  The match clauses are used for conditional
                 advertisement of the default route.  A default route is
                 only originated for an address family if
                 bgpPeergrAfiSafiOrigDefault is 'true' and if there is
                 at least one route in the loc-RIB matching the route
                 map.

                 -  The set clauses of the route map determine the
                 attributes of the originated default route.

                 Note that route maps may consist of multiple
                 bgpRouteMapTable entries.  These bgpRouteMapTable entries
                 can be configured to match a specific address family.  Any
                 such bgpRouteMapTable entry that does not match the
                 address family for this bgpPeergrAfiSafiTable entry is
                 ignored.

                 These route maps should be configured as follows.

                 -  To restrict a route map to a particular AFI/SAFI,
                 specify bgpRouteMapMaAfi and bgpRouteMapMaSafi.

                 -  Each route map should specify an IP prefix list to
                 match on.  This is not mandated by DC-BGP, but other
                 types of matches may have a performance impact.

                 -  Each IP prefix match is assumed to be an exact match.
                 In other words, DC-BGP treats each bgpIpPreTable entry
                 as having bgpIpPreLe = bgpIpPreLen, and bgpIpPreGe = 0.

                 This field is used for dynamic and configured peers.  For
                 a description of how this field is used for the latter,
                 see the description of bgpPeerTable."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 9 }

  bgpPeergrAfiSafiSoftResetStore OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the soft reset configuration
                 provided by bgpPeergrSoftResetWithStoredInfo.

                 When bgpPeergrSoftResetWithStoredInfo is 'false', BGP does
                 not perform soft reset for any address family.

                 When bgpPeergrSoftResetWithStoredInfo is 'true', BGP
                 performs soft reset for those address families for which
                 bgpPeergrAfiSafiSoftResetStore is 'true'.

                 Any update to this object will take effect on each peer
                 the next time that the peer session reactivates."
    DEFVAL { true }
    ::= { bgpPeergrAfiSafiEntry 10 }

  bgpPeergrAfiSafiAddPathCapCfg OBJECT-TYPE
    SYNTAX      BgpAddPathSrCap
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The configured BGP additional path capability for this
                 peer group and address family.

                 Valid values are:
                 -  AMB_BGP_ADD_PATH_SR_INHERIT
                 Inherit configuration from the entity AFI/SAFI level
                 (bgpRmAfiSafiAddPathCapConfig)
                 -  AMB_BGP_ADD_PATH_SR_DISABLE
                 Disable sending and receiving additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_RECEIVE
                 Receive but do not send additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_SEND
                 Send but do not receive additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_BOTH
                 Send and receive additional BGP paths.

                 The effective BGP additional path capabilities for the
                 session are negotiated with the peer and are reported by
                 the bgpPeerAfiSafiAddPathCapNeg field.

                 This field is used for dynamic and configured peers.  For
                 a description of how this field is used for the latter,
                 see the description of bgpPeerTable.

                 Any update to this object will take effect the next time
                 that the bgpPeerTable entry is activated
                 (bgpPeerAdminStatus is changed to 'adminStatusUp')."
    DEFVAL { inherit }
    ::= { bgpPeergrAfiSafiEntry 11 }

  bgpPeergrAfiSafiAddPathBestN OBJECT-TYPE
    SYNTAX      Unsigned32 (1..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of best paths to advertise to this peer group
                 as additional paths for this AFI/SAFI.

                 The number of candidate paths available to advertise to
                 the peer group depends on the value of the
                 bgpRmAfiSafiAddPathBestN field.  This field specifies how
                 many of the candidate paths to advertise to this peer
                 group.

                 For the default value of 1 only the best path for each
                 destination is advertised.

                 A value of 2 is sufficient to advertise the best path and
                 2nd best path for each destination.

                 Any additional paths are advertised to peers subject to
                 split horizon rules, export policy, and BGP ADD-PATH
                 capability negotiation.  These filters apply after
                 selecting the best N paths to advertise, so the actual
                 number of paths advertised may be smaller.

                 This field is used for dynamic and configured peers.  For
                 a description of how this field is used for the latter,
                 see the description of bgpPeerTable.

                 Changing the value of this field while the peer is active
                 triggers DC-BGP to advertise additional paths according to
                 the new configuration."
    DEFVAL { 1 }
    ::= { bgpPeergrAfiSafiEntry 12 }

  bgpPeergrAfiSafiConfigMaxPrfx OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the maximum prefix configuration
                 provided by bgpPeergrConfigMaxPrfx.

                 To configure address family specific values for the
                 maximum number of prefixes that can be accepted from the
                 peer, set bgpPeergrConfigMaxPrfx to zero, and set
                 bgpPeergrAfiSafiConfigMaxPrfx to the limit for this
                 address family."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 13 }

  bgpPeergrAfiSafiImportMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map to use for route imports from
                 the peer group for this AFI/SAFI.

                 Route import uses a single import route map - see the
                 description of the bgpPeerAfiSafiImportMap field for
                 details."
   DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 14 }

  bgpPeergrAfiSafiExportMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map to use for route exports to the
                 peer group for this AFI/SAFI.

                 Route export uses a single export route map - see the
                 description of the bgpPeerAfiSafiExportMap field for
                 details."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 15 }

  bgpPeergrAfiSafiImportIpPre OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is deprecated.  It is retained for back
                 compatibility.  Use the bgpPeergrAfiSafiImportIpAallPre
                 field instead.

                 The index of the IP prefix list to use for route imports
                 from the peer group for this AFI/SAFI.

                 Route import policy applies any import IP prefix list
                 before any import route map, and the route must be permitted
                 by both to be imported.  The import route map can apply its
                 own prefix lists in addition to any import IP prefix list.

                 Route import uses a single import IP prefix list - see the
                 description of the bgpPeerAfiSafiImportIpPre field for
                 details."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 16 }

  bgpPeergrAfiSafiExportIpPre OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is deprecated.  It is retained for back
                 compatibility.  Use the bgpPeergrAfiSafiExportIpAallPre
                 field instead.

                 The index of the IP prefix list to use for route exports
                 to the peer group for this AFI/SAFI.

                 Route export policy applies any export IP prefix list
                 before any export route map, and the route must be permitted
                 by both to be exported.  The export route map can apply its
                 own prefix lists in addition to any export IP prefix list.

                 Route export uses a single export IP prefix list - see the
                 description of the bgpPeerAfiSafiExportIpPre field for
                 details."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 17 }

  bgpPeergrAfiSafiConfigDropWarn OBJECT-TYPE
    SYNTAX      BgpDropOrWarn
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the configuration provided by
                 bgpPeergrConfigDropWarn, which determines the behavior
                 when the maximum prefix limit is reached.

                 To configure whether the session is dropped or a warning
                 is behavior independently for different address families,
                 set bgpPeergrConfigDropWarn to 'warn', and set the value
                 of bgpPeergrAfiSafiConfigDropWarn for each address family
                 as needed."
-- Versa changed default from warn to drop
    DEFVAL { drop }
    ::= { bgpPeergrAfiSafiEntry 18 }

  bgpPeergrAfiSafiMaxOrfEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the maximum number of ORF entries
                 configuration provided by bgpPeergrMaxOrfEntries.

                 To configure address family specific values for the
                 maximum number of ORF entries that can be accepted from
                 peers in this peer group, set bgpPeergrMaxOrfEntries to
                 zero, and set bgpPeergrAfiSafiMaxOrfEntries to the limit
                 for this address family."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 19 }

  bgpPeergrAfiSafiTrapPrefix OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the configuration provided by
                 bgpPeergrTrapPrefix, which determines whether BGP issues
                 an SNMP trap when the number of prefixes received from
                 peers in this peer group for this address family reaches
                 the maximum number of prefixes allowed, set by
                 bgpPeergrConfigThreshold or bgpPeergrAfiSafiConfigMaxPrfx,
                 or the warning threshold set by bgpPeergrConfigMaxPrfx or
                 bgpPeergrAfiSafiConfigThreshold.

                 To disable sending of traps for all address families, set
                 bgpPeergrTrapPrefix to 'false'.

                 To enable the sending of traps, set bgpPeergrTrapPrefix to
                 'true' and set bgpPeergrTrapPrefix to 'true' for those
                 address families for which this behavior is required."
    DEFVAL { true }
    ::= { bgpPeergrAfiSafiEntry 20 }

  bgpPeergrAfiSafiConfigThreshold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the threshold configuration
                 provided by bgpPeergrConfigThreshold.  When the number of
                 prefixes received from peers in this peer group for this
                 address family reaches this threshold, BGP issues a
                 warning.  The action carried out by BGP depends on the
                 value of bgpPeergrTrapPrefix and
                 bgpPeergrAfiSafiTrapPrefix.

                 This field is not used if bgpPeergrConfigMaxPrfx and
                 bgpPeergrAfiSafiConfigMaxPrfx are set to zero.

                 To configure a threshold for individual families, set
                 bgpPeergrConfigThreshold to zero and set
                 bgpPeergrAfiSafiConfigThreshold to the required threshold
                 for each address family."
    DEFVAL { 75 }
    ::= { bgpPeergrAfiSafiEntry 21 }

  bgpPeergrAfiSafiMaxPrfxHold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control of the configuration provided by
                 bgpPeergrMaxPrfxHold, which determines the time interval
                 in seconds between when this BGP session is torn down due
                 to the number of prefixes received from peers in this peer
                 group exceeding the maximum in
                 bgpPeergrConfigMaxPrfx(AfiSafi) and when BGP attempts to
                 reestablish the session.

                 To configure a time interval for individual families, set
                 bgpPeergrMaxPrfxHold to zero and set
                 bgpPeergrAfiSafiMaxPrfxHold to the required time interval
                 for each address family.

                 If both bgpPeergrMaxPrfxHold and
                 bgpPeergrAfiSafiMaxPrfxHold are set to zero for an address
                 family, the session is not reestablished.  An attempt to
                 configure a non-zero value less than 30 seconds is
                 rejected."
    DEFVAL { 90 }
    ::= { bgpPeergrAfiSafiEntry 22 }

  bgpPeergrAfiSafiImportIpAallPre OBJECT-TYPE
    SYNTAX      PreAccessListListIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the AALL IP prefix access list to use for
                 route imports from the peer group for this AFI/SAFI.

                 Route import policy applies any import IP prefix access
                 list before any import route map, and the route must be
                 permitted by both to be imported.  The import route map
                 can apply its own prefix lists in addition to any import
                 IP prefix access list.

                 Route import uses a single import IP prefix access list -
                 see the description of the bgpPeerAfiSafiImportIpAallPre
                 field for details.

                 This field is used for dynamic and configured peers.  For
                 a description of how this field is used for the latter,
                 see the description of bgpPeerTable.  In addition this
                 field is also used where the peer's configured AALL IP
                 prefix access list index is zero."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 23 }

  bgpPeergrAfiSafiExportIpAallPre OBJECT-TYPE
    SYNTAX      PreAccessListListIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the AALL IP prefix access list to use for
                 route exports to the peer group for this AFI/SAFI.

                 Route export policy applies any export IP prefix access
                 list before any export route map, and the route must be
                 permitted by both to be exported.  The export route map
                 can apply its own prefix lists in addition to any export
                 IP prefix access list.

                 Route export uses a single export IP prefix access list -
                 see the description of the bgpPeerAfiSafiExportIpAallPre
                 field for details.

                 This field is used for dynamic and configured peers.  For
                 a description of how this field is used for the latter,
                 see the description of bgpPeerTable."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 24 }

  bgpPeergrAfiSafiReflectorClient OBJECT-TYPE
    SYNTAX      BgpPeerReflectorClientType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value indicates whether the given peer is a reflector
                 client of this router for this AFI/SAFI, or not.  A value
                 of nonClient(0) indicates that this peer is not a
                 reflector client for this AFI/SAFI.  A value of client(1)
                 indicates that this peer is a reflector client for this
                 AFI/SAFI that is not fully meshed with other reflector
                 clients.  A value of meshedClient(2) indicates that the
                 peer is a reflector client for this AFI/SAFI and is fully
                 meshed with all other reflector clients.

                 This field can be changed at any time.  However, if the
                 field is changed while the peer is admin_status UP, the
                 change will only take effect after the peer has been
                 cycled admin_status DOWN and then UP, thus forcing the
                 peer session to be restarted.  In this case, until the
                 peer is set admin_status DOWN, the peer will be marked as
                 out of date (as reported by the config_state field in the
                 AMB_BGP_PEER_STATUS row for the peer)."
    DEFVAL      { nonClient }
    ::= { bgpPeergrAfiSafiEntry 25 }

  bgpPeergrAfiSafiAsOverride OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used in conjunction with bgpPeergrAsOverride
                 to indicate whether BGP should perform AS-override on routes
                 advertised to the peers in this peer-group for this
                 address-family.

                 If AS-override is enabled, then when advertising routes to
                 this peer for this address-family, any instance of the peer's
                 AS number will be replaced in the advertised AS path with the
                 local AS number.

                 This field is only taken into account for peer-group members
                 with the AMB_BGP_PEER_CU2_AS_OVERRIDE bit set in the
                 bgpPeerConfigUsage2 field.

                 AS-override may be enabled independently for each address
                 family.  When bgpPeergrAsOverride is set to 'true', set
                 bgpPeergrAfiSafiAsOverride to 'true' or 'false' to enable or
                 disable as-override for each address family.

                 This field can be changed at any time, and may cause routes
                 to be re-advertised to or withdrawn from peers in the
                 peer-group.

                 Note that this field has no effect when set for iBGP peers."
    DEFVAL      { false }
    ::= { bgpPeergrAfiSafiEntry 26 }

  bgpPeergrAfiSafiDisable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The meaning of this field is the same as
                 bgpPeerAfiSafiDisable.

                 This field is used for dynamic and configured peers.  For
                 a description of how this field is used for the latter,
                 see the description of bgpPeerTable.

                 Any update to this object will take effect the next time a
                 member Peer is restarted (that is, a dynamic peer reconnects
                 or a configured peer bgpPeerAdminStatus is changed to
                 'adminStatusUp').  Until the update takes effect the peer
                 will be marked as out of date (as reported by the
                 bgpPeerStatusConfigState field in the bgpPeerStatusTable row
                 for the peer)."
    DEFVAL       {false}
    ::= { bgpPeergrAfiSafiEntry 27 }

  bgpPeergrAfiSafiMinASOrigInt OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for determining the minimum
                 amount of time that must elapse between successive
                 advertisements of UPDATE messages that report changes to a
                 route within the advertising BGP speaker's own autonomous
                 system.

                 This field has no effect if bgpPeergrMinASOriginationInt
                 is set to a non-zero value.  To configure values
                 independently for each address family, set
                 bgpPeergrMinASOriginationInt to 0 and set the values of
                 bgpPeergrAfiSafiMinASOrigInt as required."
    DEFVAL       { 15 }
    ::= { bgpPeergrAfiSafiEntry 28 }

  bgpPeergrAfiSafiMinRteAdvertInt OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the
                 MinRouteAdvertisementInterval timer.  This determines the
                 minimum time between a BGP UPDATE to a peer advertising or
                 withdrawing a route and a subsequent BGP UPDATE to the
                 peer advertising a route to the same destination.

                 If the bgpPeerAfiSafiUsePeerMinAdInt bit is set in the
                 bgpPeergrAfiSafiConfigUsage field then this value is
                 ignored and the peer group configuration is used instead."
    DEFVAL       { 30 }
    ::= { bgpPeergrAfiSafiEntry 29 }

 bgpPeergrAfiSafiMinRteWthdrawInt OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Time interval in seconds for the MinRouteWithdrawInterval
                 timer.  This is the interval which is enforced between
                 advertisement and subsequent withdrawal of a route.

                 This field has no effect if
                 bgpPeergrMinRteWithdrawInterval is set to a non-zero
                 value.  To configure values independently for each address
                 family, set bgpPeergrMinRteWithdrawInterval to 0 and set
                 the values of bgpPeergrAfiSafiMinRteWthdrawInt as
                 required. "
    DEFVAL       { 0 }
    ::= { bgpPeergrAfiSafiEntry 30 }

  bgpPeergrAfiSafiSendComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used in conjunction with the bgpPeergrSendComm
                 field in the bgpPeergrTable to indicate whether BGP will
                 send UPDATE messages to the peer group members for this
                 address family containing BGP community attributes.

                 When set to 'true', and bgpPeergrSendComm is set to 'true',
                 DC-BGP sends UPDATE messages to the peer group members for
                 this address family including BGP community attributes.

                 Otherwise, DC-BGP sends UPDATE messages to the peer group
                 members, for this address family omitting BGP community
                 attributes.

                 Changing the value of this field while the peer is active
                 triggers DC-BGP to resend routes with community attributes
                 included or omitted according to the new configuration."
    DEFVAL { true }
    ::= { bgpPeergrAfiSafiEntry 31 }

  bgpPeergrAfiSafiSendExtComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used in conjunction with the
                 bgpPeergrSendExtComm
                 field in the bgpPeergrTable to indicate whether BGP will
                 send UPDATE messages to the peer group members for this
                 address family containing BGP extended community attributes.

                 When set to 'true', and bgpPeergrSendExtComm is set to 'true',
                 DC-BGP sends UPDATE messages to the peer group members for
                 this address family including BGP extended community
                 attributes.

                 Otherwise, DC-BGP sends UPDATE messages to the peer group
                 members, for this address family omitting BGP extended
                 community attributes.

                 Changing the value of this field while the peer is active
                 triggers DC-BGP to resend routes with extended community
                 attributes included or omitted according to the new
                 configuration."
    DEFVAL { true }
    ::= { bgpPeergrAfiSafiEntry 32 }

  bgpPeergrAfiSafiConfigUsage OBJECT-TYPE
    SYNTAX      BgpPeerAfiSafiCfgUsage
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "A set of bit flags which controls whether peer group AFI/SAFI
                 configuration is taken from this table or from peer group
                 configuration.

                 A bit flag exists for a subset of the peer group's AFI/SAFI
                 configuration fields that can also be configured on a
                 per-peer-group basis.

                 For this subset of fields, the peer group should use the
                 per-AFI-SAFI configuration value if the bit flag is unset
                 and should use the peer group configuration if the bit flag
                 is set."
    DEFVAL { { bgpPeerAfiSafiUsePeerMinAdInt,
              bgpPeerAfiSafiUsePeerNxtHopSlf } }
    ::= { bgpPeergrAfiSafiEntry 33 }

  bgpPeergrAfiSafiMaxPrfxClear OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control over the configuration provided by
                 bgpPeergrMaxPrfxClear.

                 To configure address family specific values, set
                 bgpPeergrMaxPrfxClear to zero and set
                 bgpPeergrAfiSafiMaxPrfxClear to the level for this address
                 family."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 34 }

  bgpPeergrAfiSafiPrfxThreshClear OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Gives finer control over the configuration provided by
                 bgpPeergrPfrxThresholdClear.

                 To configure address family specific values set
                 bgpPeergrPrfxThresholdClear to zero and set
                 bgpPeerAfiSafiPrfxThreshClear to the level for this
                 address family."
    DEFVAL { 0 }
    ::= { bgpPeergrAfiSafiEntry 35 }

  bgpPeergrAfiSafiPreserveNh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is used to preserve the BGP next hop when
                 forwarding routes to eBGP peers in this peer group.

                 By default, the next hop of a route is preserved when
                 advertising the route to an iBGP peer, but is updated when
                 advertising the route to an eBGP peer.  Setting this to
                 'true' over-rides this behavior and preserves the next hop
                 when routes are advertised to eBGP peers in this peer
                 group."
    DEFVAL { false }
    ::= { bgpPeergrAfiSafiEntry 36 }

  bgpPeergrAfiSafiAcceptRmtNxtHop OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If set to false, then for any directly connected eBGP peers in
                 the peer group, routes received from the peer with a next-hop
                 that is not the peer's remote address and is not in a subnet
                 shared with the remote device will be rejected, in accordance
                 with RFC 4271 section 6.3.

                 If set to true, this check is not performed, and such routes
                 may be accepted.  This is useful when communicating with an
                 eBGP peer that preserves the next-hop of routes that it
                 advertises.

                 This field is used for dynamic and configured peers.  For
                 a description of how this field is used for the latter,
                 see the description of bgpPeerTable."
    DEFVAL { false }
    ::= { bgpPeergrAfiSafiEntry 37 }

-------------------------------------------------------------------------------

  --
  -- BGP NLRI Prefix Data
  --
  -- This table contains per route information including routes, attributes
  -- and flap statistics if the route is being damped.  It is ordered by route
  -- prefix.
  --

  bgpNlriPrefixTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_NLR_PRFX
    SYNTAX      SEQUENCE OF BgpNlriPrefixEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains information about paths to destination
                 networks received from all BGP4 peers, along with locally
                 configured aggregate routes.  It provides the same
                 information as the bgpNlriTable, but is ordered by route
                 prefix.

                 This table must contain an identical set of fields to the
                 bgpNlriTable.  All fields must be in the same order in this
                 table and the bgpNlriTable."
    ::= { bgpRib 5 }

  bgpNlriPrefixEntry OBJECT-TYPE
    SYNTAX      BgpNlriPrefixEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a path to a network."
    INDEX { bgpRmEntIndex,
            bgpNlriPrefixAfi,
            bgpNlriPrefixSafi,
            bgpNlriPrefixPrfx,
            bgpNlriPrefixPrfxLen,
            bgpNlriPrefixPeerOrAfm,
            bgpNlriPrefixPeerAfmIndex,
            bgpNlriPrefixPathId }
    ::= { bgpNlriPrefixTable 1 }

  BgpNlriPrefixEntry ::= SEQUENCE {
      bgpNlriPrefixPeerOrAfm           BgpPeerOrAfm,
      bgpNlriPrefixPeerAfmIndex        Unsigned32,
      bgpNlriPrefixAfi                 BgpAfi,
      bgpNlriPrefixSafi                BgpSafi,
      bgpNlriPrefixPrfx                InetAddress,
      bgpNlriPrefixPrfxLen             InetAddressPrefixLength,
      bgpNlriPrefixBest                TruthValue,
      bgpNlriPrefixAsSize              BgpAsSize,
      bgpNlriPrefixASPathStr           OCTET STRING,
      bgpNlriPrefixPathAttrOrigin      BgpOriginCode,
      bgpNlriPrefixPathAttrNextHop     InetAddress,
      bgpNlriPrefixPathAttrMultExtDisc Unsigned32,
      bgpNlriPrefixPathAttrLocalPref   Unsigned32,
      bgpNlriPrefixPathAttrAtomicAgg   BgpPathAttrAtomicAggPresence,
      bgpNlriPrefixPathAttrAggAS       BgpAutonomousSystemNumber,
      bgpNlriPrefixPathAttrAggAddr     BgpIdentifier,
      bgpNlriPrefixPathAttrCalcLclPref Unsigned32,
      bgpNlriPrefixPathAttrOrigId      BgpIdentifier,
      bgpNlriPrefixPathAttrWeight      Unsigned32,
      bgpNlriPrefixFlapStatsConfig     Unsigned32,
      bgpNlriPrefixFlapStatsPenalty    Unsigned32,
      bgpNlriPrefixFlapStatsFlapcnt    Unsigned32,
      bgpNlriPrefixFlapStatsSupprsd    TruthValue,
      bgpNlriPrefixFlapStatsTimeleft   Unsigned32,
      bgpNlriPrefixFlapStatsCleardamp  TruthValue,
      bgpNlriPrefixFlapStatsClearstat  TruthValue,
      bgpNlriPrefixEcmp                TruthValue,
      bgpNlriPrefixPathAttrAsPathLimAs BgpAutonomousSystemNumber,
      bgpNlriPrefixPthAttAsPthLimUpper Unsigned32,
      bgpNlriPrefixIsActive            BgpNlriIsActiveFlag,
      bgpNlriPrefixUserData            OCTET STRING,
      bgpNlriPrefixStale               TruthValue,
      bgpNlriPrefixFlapStartTime       TimeStamp,
      bgpNlriPrefixLinkLocalNextHop    InetAddress,
      bgpNlriPrefixPathAttrMEDPrsnt    TruthValue,
      bgpNlriPrefixPathId              Unsigned32,
      bgpNlriPrefixHistory             TruthValue,
      bgpNlriPrefixPmsi                OCTET STRING,
      bgpNlriPrefixPmsiActualLen       Unsigned32,
-- Begin Versa change {
      bgpNlriPrefixPathAttrAdminDistance AdminDistance,
-- endVersa change }
      bgpNlriPrefixReasonNotBest       BgpReasonNotBest,
      bgpNlriPrefixPeerType            BgpNlriPeerTypes,
      bgpNlriPrefixRemoteAddrType      InetAddressType,
      bgpNlriPrefixRemoteAddr          InetAddress,
      bgpNlriPrefixRemoteAddrScopeId   Unsigned32,
      bgpNlriPrefixAggrType            INTEGER,
      bgpNlriPrefixOutputInterface     Unsigned32,
      bgpNlriPrefixCommunities         OCTET STRING,
      bgpNlriPrefixExtCommunities      OCTET STRING
-- Begin Versa change {
      , bgpNlriPrefixPathAttrAuxData   Counter64
-- endVersa change }
      }

  bgpNlriPrefixPeerOrAfm OBJECT-TYPE
    SYNTAX      BgpPeerOrAfm
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Whether this route was learned from a BGP peer or an AFM, or
                 was created by BGP itself."
    ::= { bgpNlriPrefixEntry 2 }

  bgpNlriPrefixPeerAfmIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of either the BGP peer or AFM this route was
                 learned from.  If bgpNlriPrefixPeerOrAfm is peer, this field
                 is equivalent to a bgpPeerStatusPeerIndex.  If
                 bgpNlriPrefixPeerOrAfm is afm, this field is equivalent to a
                 bgpRmAfmJoin.  If bgpNlriPrefixPeerOrAfm is no-index, this
                 field is set to 0."
    ::= { bgpNlriPrefixEntry 3 }

  bgpNlriPrefixAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The address family of the prefix for this NLRI."
    ::= { bgpNlriPrefixEntry 4 }

  bgpNlriPrefixSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The subsequent address family of the prefix for this NLRI."
    ::= { bgpNlriPrefixEntry 5 }

  bgpNlriPrefixPrfx OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An address prefix in the Network Layer Reachability
                 Information field.

                 The prefix length is specified by bgpNlriPrefixPrfxLen.  Any
                 bits beyond the length specified by bgpNlriPrefixPrfxLen are
                 zeroed.

                 This field contains the full line format BGP NLRI omitting
                 any NLRI length field.

                 For SAFI 128 the NLRI includes the MPLS label and Route
                 Distinguisher as well as the IPv4 or IPv6 address prefix."
    ::= { bgpNlriPrefixEntry 6 }

  bgpNlriPrefixPrfxLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Length in bits of the IP address prefix in the Network Layer
                 Reachability Information field."
    ::= { bgpNlriPrefixEntry 7 }

  bgpNlriPrefixBest OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "An indication of whether or not this route was chosen as the
                 best BGP4 route."
    ::= { bgpNlriPrefixEntry 8 }

  bgpNlriPrefixAsSize OBJECT-TYPE
    SYNTAX      BgpAsSize
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the bgpNlriPrefixASPathStr field contains two or
                 four byte AS numbers."
    ::= { bgpNlriPrefixEntry 9 }

  bgpNlriPrefixASPathStr OBJECT-TYPE
    SYNTAX      OCTET STRING  (SIZE (0..256))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This is a string depicting the autonomous system path to this
                 network which was received from the peer which advertised it.
                 If bgpRmEntAsSize is four-octet and the peer does not support
                 four octet AS numbers this string represents the AS_PATH
                 formed by combining the AS_PATH and AS4_PATH attributes as
                 detailed in RFC 4893.  Two-octet AS numbers appear as
                 four-octet numbers by adding two bytes of zero padding.  The
                 format of the string is simply the AS_PATH attribute.  It can
                 be converted to a more readable format by the management
                 agent."
    ::= { bgpNlriPrefixEntry 10 }

  bgpNlriPrefixPathAttrOrigin OBJECT-TYPE
    SYNTAX      BgpOriginCode
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The ultimate origin of the path information."
    ::= { bgpNlriPrefixEntry 11 }

  bgpNlriPrefixPathAttrNextHop OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address of the border router that should be used to access
                 the destination network.  This address is the nexthop address
                 received in the UPDATE packet.  The address family of this
                 object will be the same as that of the prefix in this row.

                 Note that for RFC 2545 style double nexthops, this object
                 will always contain the global scope nexthop.
                 bgpNlriPrefixLinkLocalNextHop will contain the linklocal
                 scope nexthop, if it is present."
    ::= { bgpNlriPrefixEntry 12 }

  bgpNlriPrefixPathAttrMultExtDisc OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This metric is used to discriminate between multiple exit
                 points to an adjacent autonomous system.
                 Valid only if bgpNlriPrefixPathAttrMEDPrsnt is TRUE."
    ::= { bgpNlriPrefixEntry 13 }

  bgpNlriPrefixPathAttrLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The originating BGP4 speaker's degree of preference for an
                 advertised route."
    ::= { bgpNlriPrefixEntry 14 }

  bgpNlriPrefixPathAttrAtomicAgg OBJECT-TYPE
    SYNTAX      BgpPathAttrAtomicAggPresence
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "When this object is set to AMB_BGP_ATOMIC_AGGR_PRESENT, the
                 ATOMIC_AGGREGATE Path Attribute is present and indicates that
                 the NLRI MUST NOT be made more specific."
    ::= { bgpNlriPrefixEntry 15 }

  bgpNlriPrefixPathAttrAggAS OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The AS number of the last BGP4 speaker that performed route
                 aggregation."
    ::= { bgpNlriPrefixEntry 16 }

  bgpNlriPrefixPathAttrAggAddr OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP address of the last BGP4 speaker that performed route
                 aggregation.  A value of zero indicates the absence of this
                 attribute.  Note propagation of AS of zero is illegal in
                 the Internet."
    ::= { bgpNlriPrefixEntry 17 }

  bgpNlriPrefixPathAttrCalcLclPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The degree of preference calculated by the receiving BGP4
                 speaker for an advertised route."
    ::= { bgpNlriPrefixEntry 18 }

  bgpNlriPrefixPathAttrOrigId OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Originator-ID identifying the router that initially
                 advertised this destination to a Route Reflector.  A
                 value of 0.0.0.0 indicates the absence of this attribute."
    ::= { bgpNlriPrefixEntry 19 }

  bgpNlriPrefixPathAttrWeight OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The local degree of preference assigned to this route."
    ::= { bgpNlriPrefixEntry 20 }

  bgpNlriPrefixFlapStatsConfig OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the route flap configuration table entry
                 containing the settings being applied to this route for
                 dampening."
    ::= { bgpNlriPrefixEntry 21 }

  bgpNlriPrefixFlapStatsPenalty OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The current penalty value of this route.  If it is greater
                 than the cutoff threshold the route is suppressed."
    ::= { bgpNlriPrefixEntry 22 }

  bgpNlriPrefixFlapStatsFlapcnt OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of times this route has flapped since statistics
                 were last cleared."
    ::= { bgpNlriPrefixEntry 23 }

  bgpNlriPrefixFlapStatsSupprsd OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not this route is suppressed."
    ::= { bgpNlriPrefixEntry 24 }

  bgpNlriPrefixFlapStatsTimeleft OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The time left until this route is no longer suppressed.  Only
                 valid if the route is suppressed."
    ::= { bgpNlriPrefixEntry 25 }

  bgpNlriPrefixFlapStatsCleardamp OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is present to ensure that fields in the
                 bgpNlriPrefixTable correspond to fields in the bgpNlriTable.
                 It has no meaning when read."
    ::= { bgpNlriPrefixEntry 26 }

  bgpNlriPrefixFlapStatsClearstat OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field is present to ensure that fields in the
                 bgpNlriPrefixTable correspond to fields in the bgpNlriTable.
                 It has no meaning when read."
    ::= { bgpNlriPrefixEntry 27 }

  bgpNlriPrefixEcmp   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not this route was installed into the
                 Forwarding Table as an ECMP route (it may or may not be
                 the best BGP4 route advertised to BGP peers)."
    ::= { bgpNlriPrefixEntry 28 }

  bgpNlriPrefixPathAttrAsPathLimAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The AS number of the speaker that attached the AS_PATHLIMIT
                 attribute.  A value of 0 indicates the absence of this
                 attribute.  Note that propagation of AS of zero is illegal in
                 the Internet."
    ::= { bgpNlriPrefixEntry 29 }

  bgpNlriPrefixPthAttAsPthLimUpper OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The upper bound on the number of ASes in the AS_PATH
                 associated with this route before the route will be filtered.
                 Only valid if bgpPathAttrAsPathLimAs is non-zero."
    ::= { bgpNlriPrefixEntry 30 }

  bgpNlriPrefixIsActive OBJECT-TYPE
    SYNTAX      BgpNlriIsActiveFlag
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "An indication of whether or not this route is installed in
                 the forwarding table.

                 If bgpRmAfiSafiAdvertiseInactive is set to 'false', then
                 this is set to

                 - 'active' if the route is installed in the forwarding
                   table, or is a route redistributed from another routing
                   protocol instance

                 - 'inactive' otherwise.

                 If bgpRmAfiSafiAdvertiseInactive is set to 'true', BGP does
                 not track active routes.  In this case, bgpNlriIsActive is
                 set to 'notTracked'."
    ::= { bgpNlriPrefixEntry 31 }

  bgpNlriPrefixUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this BGP NLRI prefix entry."
    ::= { bgpNlriPrefixEntry 32 }

  bgpNlriPrefixStale OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not this route was last sent by the peer before
                 BGP detected that the peer was restarting.  If the route is
                 not re-advertised by the peer before the restart completes,
                 BGP will remove the route from its database.  This flag is
                 set to 'false' if the peer is not restarting, or if the
                 route has been advertised by the peer since the restart."
    ::= { bgpNlriPrefixEntry 33 }

  bgpNlriPrefixFlapStartTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The value of sysUpTime when this route flapped.  If RIB
                 Manager is not tracking a penalty for this route, this field
                 is set to zero."
    ::= { bgpNlriPrefixEntry 34 }

  bgpNlriPrefixLinkLocalNextHop OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IPv6 link-local address of the border router that
                 should be used to access the destination network.  This
                 object is only valid for a prefix with a received RFC 2545
                 style double nexthop."
    ::= { bgpNlriPrefixEntry 35 }

  bgpNlriPrefixPathAttrMEDPrsnt OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If true, then the route has an associated MED attribute,
                 whose value is given in bgpNlriPrefixPathAttrMultExitDisc.
                 If false, the route has no MED attribute, and the value of
                 bgpNlriPrefixPathAttrMultExitDisc is undefined."
    ::= { bgpNlriPrefixEntry 36 }

  bgpNlriPrefixPathId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The path ID for this NLRI.

                 If BGP additional path receive capability was negotiated
                 with the peer for this AFI/SAFI then this is the received
                 path ID for this NLRI, otherwise it is zero."
    ::= { bgpNlriPrefixEntry 37 }

  bgpNlriPrefixHistory OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If true, then the route is a history route.  If false it is
                 current."
    ::= { bgpNlriPrefixEntry 38 }

  bgpNlriPrefixPmsi OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field contains the full line format of the PMSI
                 attribute value omitting the attribute header.  Note that
                 the value will be truncated if it exceeds the maximum
                 length.

                 Note that only certain AFI/SAFI types may contain this
                 attribute."
    ::= { bgpNlriPrefixEntry 39 }

  bgpNlriPrefixPmsiActualLen OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field contains the actual length of the PMSI attribute.
                 If the PMSI attribute value has been truncated this gives
                 the true length."
    ::= { bgpNlriPrefixEntry 40 }

-- Begin Versa change {
  bgpNlriPrefixPathAttrAdminDistance OBJECT-TYPE
    SYNTAX      AdminDistance
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The admin distance of the BGP route used as a tie-breaker in RTM"
    ::= { bgpNlriPrefixEntry 41 }
-- endVersa change }

  bgpNlriPrefixReasonNotBest OBJECT-TYPE
    SYNTAX      BgpReasonNotBest
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If bgpNlriPrefixBest is 'true', then this field is set to
                'routeIsBest'.  Otherwise, it reports the stage in the
                decision process when the route was determined to be
                non-best.

                This is the reason that the route was discarded from the
                decision process.  There may be other reasons why this route
                is less preferred than the best route."
    ::= { bgpNlriPrefixEntry 42 }

  bgpNlriPrefixPeerType OBJECT-TYPE
    SYNTAX      BgpNlriPeerTypes
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If bgpNlriPrefixPeerOrAfm is peer, this field indicates
                whether the source peer is an iBGP or eBGP peer.  If
                bgpNlriPrefixPeerOrAfm is afm, this field is set to 'none'."
    ::= { bgpNlriPrefixEntry 43 }

  bgpNlriPrefixRemoteAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address family of the address of the BGP peer that
                 this route was learned from.

                 This field is only valid if bgpNlriPrefixPeerOrAfm is peer.

                 This field is equivalent to bgpPeerRemoteAddrType."
    ::= { bgpNlriPrefixEntry 44 }

  bgpNlriPrefixRemoteAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address of the BGP peer that this route was learned
                 from.

                 This field is only valid if bgpNlriPrefixPeerOrAfm is peer.

                 This field is equivalent to bgpPeerRemoteAddr."
    ::= { bgpNlriPrefixEntry 45 }

  bgpNlriPrefixRemoteAddrScopeId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The scope ID of the BGP peer address.

                 This field is only valid if bgpNlriPrefixPeerOrAfm is
                 peer.

                 This field is equivalent to bgpPeerLocalAddrScopeId."
    ::= { bgpNlriPrefixEntry 46 }

  bgpNlriPrefixAggrType OBJECT-TYPE
    SYNTAX      INTEGER {
                  noAggregation(1),
                  aggregateRoute(2),
                  unsuppAggregatedRoute(3),
                  suppressedAggregatedRoute(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This object indicates any aggregation processing that
                 has been applied to this route.

                 A value of noAggregation(1) indicates that this route
                 does not aggregate any other routes, and is not
                 aggregated by any route.

                 A value of aggregateRoute(2) indicates that this route
                 is a locally configured aggregating route,
                 corresponding to an entry in the bgpAggregateTable.

                 A value of unsuppAggregatedRoute(3) indicates that this
                 route has been aggregated by a locally configured
                 aggregate route and is not suppressed - the route is
                 still explicitly advertised to peers.

                 A value of suppressedAggregatedRoute(4) indicates that
                 this route has been aggregated by a locally configured
                 aggregate route and is flagged such that it should not be
                 advertised along with the aggregate route."
    ::= { bgpNlriPrefixEntry 47 }

  bgpNlriPrefixOutputInterface OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The output interface.  This field is only non-zero for
                 routes received with a link-local IPv6 next hop from
                 directly connected peers."
    ::= { bgpNlriPrefixEntry 48 }

  bgpNlriPrefixCommunities OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..4096))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The community membership associated with the route after
                 import policy has been applied.

                 Each community is four-octets in length and each community
                 follows the previous with no padding. "
    ::= { bgpNlriPrefixEntry 49 }

  bgpNlriPrefixExtCommunities OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..4096))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The extended community membership associated with the route
                 after import policy has been applied.

                 Each extended community is eight-octets in length and each
                 extended community follows the previous with no padding. "
    ::= { bgpNlriPrefixEntry 50 }

-- Begin Versa change {
  bgpNlriPrefixPathAttrAuxData OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The auxilliary data of the route with format specific to AFI/SAFI"
    ::= { bgpNlriPrefixEntry 51 }
-- end Versa change }
-------------------------------------------------------------------------------

-- Tables for HAF information

  bgpHaf OBJECT IDENTIFIER ::= { bgpMib 6 }

--
-- RIB Manager AFM Join Table.
--
-- This table records the joins for which the RIB Manager is master.
-- RM currently has two types of MJ to RTM and VPN Manager.  There can be
-- multiple joins to either of these, which are initiated by creating a new row
-- in this table.
--

  bgpRmAfmJoinTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_AFM
    SYNTAX      SEQUENCE OF BgpRmAfmJoinEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry in this table represents a join to an AFM for which
                 a RIB Manager entity is master."
    ::= { bgpHaf 1 }

  bgpRmAfmJoinEntry OBJECT-TYPE
    SYNTAX      BgpRmAfmJoinEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a join to an AFM for which a RIB Manager
                 entity is master."
    INDEX { bgpRmEntIndex,
            bgpRmAfmJoin }
    ::= { bgpRmAfmJoinTable 1 }

  BgpRmAfmJoinEntry ::= SEQUENCE {
      bgpRmAfmJoin                  Unsigned32,
      bgpRmAfmRowStatus             RowStatus,
      bgpRmAfmAdminStatus           BgpAdminStatus,
      bgpRmAfmOperStatus            BgpOperStatus,
      bgpRmAfmPartnerIndex          Unsigned32,
      bgpRmAfmAfi                   BgpAfi,
      bgpRmAfmSafi                  BgpSafi,
      bgpRmAfmJoinStatus            BgpMjStatus,
      bgpRmAfmRestartTime           Unsigned32
    }

  bgpRmAfmJoin OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies a join for which a RIB Manager entity is master."
    ::= { bgpRmAfmJoinEntry 2 }

  bgpRmAfmRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status for this table entry, used to create and
                 destroy table entries."
    ::= { bgpRmAfmJoinEntry 3 }

  bgpRmAfmAdminStatus OBJECT-TYPE
    SYNTAX      BgpAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The administrative status of this table entry, used to
                 activate and deactivate the join."
    DEFVAL      { adminStatusDown }
    ::= { bgpRmAfmJoinEntry 4 }

  bgpRmAfmOperStatus OBJECT-TYPE
    SYNTAX      BgpOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current operational status of this join."
    ::= { bgpRmAfmJoinEntry 5 }

  bgpRmAfmPartnerIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Index that identifies the slave entity for this join."
    DEFVAL      { 0 }
    ::= { bgpRmAfmJoinEntry 6 }

  bgpRmAfmAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Address Family Identifier for this join.  This field can only
                 be changed when the Admin Status is down."
    DEFVAL      { ipv4 }
    ::= { bgpRmAfmJoinEntry 7 }

  bgpRmAfmSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Subsequent Address Family Identifier for this join.  This
                 field can only be changed when the Admin Status is down."
    DEFVAL      { unicast }
    ::= { bgpRmAfmJoinEntry 8 }

  bgpRmAfmJoinStatus OBJECT-TYPE
    SYNTAX      BgpMjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the master join."
    ::= { bgpRmAfmJoinEntry 9 }

  bgpRmAfmRestartTime OBJECT-TYPE
    SYNTAX      Unsigned32 (0..3600)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is the maximum time that DC-BGP will retain routes
                 from this AFM following failure of this join.  DC-BGP
                 will delete all retained stale routes from this AFM once
                 this time has passed.  A value of 0 indicates that routes from
                 this AFM will be discarded as soon as the join fails."
    DEFVAL { 60 }
    ::= { bgpRmAfmJoinEntry 10 }

-------------------------------------------------------------------------------
--
-- RIB Manager Neighbor Manager Join Table.
--
-- This is a read-only table.  It contains information on joins to Neighbor
-- Managers for which RIB Manager entities are acting as slaves.  Each row in
-- this table represents one slave join in a particular RIB Manager entity.
--

  bgpRmNmTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_NMJ
    SYNTAX      SEQUENCE OF BgpRmNmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table contains information on slave joins to Neighbor
                 Manager entities.  Each row in this table represents one
                 slave join in a particular RIB Manager entity."
    ::= { bgpHaf 2 }

  bgpRmNmEntry OBJECT-TYPE
    SYNTAX      BgpRmNmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Represents a join to a Neighbor Manager for which the RIB
                 Manager is slave."
    INDEX { bgpRmEntIndex,
            bgpRmNmMasterIndex}
    ::= { bgpRmNmTable 1 }

  BgpRmNmEntry ::= SEQUENCE {
      bgpRmNmMasterIndex            Unsigned32,
      bgpRmNmJoinStatus             BgpSjStatus
    }

  bgpRmNmMasterIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Index of the master entity.  This is the index received in
                 the join registration info sent from the master to the slave
                 on the join registration IPS."
    ::= { bgpRmNmEntry 2 }

  bgpRmNmJoinStatus OBJECT-TYPE
    SYNTAX      BgpSjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the slave join."
    ::= { bgpRmNmEntry 3 }

-------------------------------------------------------------------------------

--
-- Neighbor Manager Master Join Table.
--
-- This is a read-only table which records the joins for which the Neighbor
-- Manager is master.  Each NM will have exactly two joins, one to an instance
-- of the RIB Manager, and one to the IP Sockets Stub.
--

  bgpNmMjTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_NMJ
    SYNTAX      SEQUENCE OF BgpNmMjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry in this table represents a join for which a
                 Neighbor Manager entity is master.  This table always
                 contains exactly three rows, one each for the joins from NM
                 to RM, the IP Sockets Stub and the BFD stub.

                 If NM is configured not to join to the BFD stub
                 (bgpNmEntBfdEntityIndex is zero), then the row for the BFD
                 join is still present, with bgpNmMjJoinStatus set to
                 mjNotJoined."
    ::= { bgpHaf 3 }

  bgpNmMjEntry OBJECT-TYPE
    SYNTAX      BgpNmMjEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a join for which a Neighbor Manager
                 entity is master."
    INDEX { bgpNmMjEntity,
            bgpNmMjJoin }
    ::= { bgpNmMjTable 1 }

  BgpNmMjEntry ::= SEQUENCE {
      bgpNmMjEntity                   Unsigned32,
      bgpNmMjJoin                     Unsigned32,
      bgpNmMjJoinPartner              BgpComponentId,
      bgpNmMjPartnerIndex             Unsigned32,
      bgpNmMjJoinStatus               BgpMjStatus
    }

  bgpNmMjEntity OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies a Neighbor Manager Entity."
    ::= { bgpNmMjEntry 1 }

  bgpNmMjJoin OBJECT-TYPE
    SYNTAX      Unsigned32 (1..3)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies a join for which a Neighbor Manager entity is
                 master."
    ::= { bgpNmMjEntry 2 }

  bgpNmMjJoinPartner OBJECT-TYPE
    SYNTAX      BgpComponentId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Identifies the type of process acting as slave on this join."
    ::= { bgpNmMjEntry 3 }

  bgpNmMjPartnerIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index assigned to this join by NM.  This index is used by
                 FTI-specific handling code within System Manager to identify
                 the entity index of a slave entity suitable to act as join
                 partner."
    ::= { bgpNmMjEntry 4 }

  bgpNmMjJoinStatus OBJECT-TYPE
    SYNTAX      BgpMjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the master join."
    ::= { bgpNmMjEntry 5 }

-------------------------------------------------------------------------------
--
-- RIB Manager Active Route Interface Join Table.
--
-- This is a read-only table.  It contains information on Active Route
-- Interface joins for which RIB Manager entities are acting as slaves.  Each
-- row in this table represents one slave join in a particular RIB Manager
-- entity.
--

  bgpRmArinhJoinTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_ARIJ
    SYNTAX      SEQUENCE OF BgpRmArinhJoinEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This read-only table contains information on Active Route
                 Interface slave joins used for querying next hops.  Each row
                 in this table represents one slave join in a particular
                 RIB Manager entity."
    ::= { bgpHaf 4 }

  bgpRmArinhJoinEntry OBJECT-TYPE
    SYNTAX      BgpRmArinhJoinEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Represents an ARI join for which the RIB Manager is slave."
    INDEX { bgpRmEntIndex,
            bgpRmArinhAfi,
            bgpRmArinhSafi}
    ::= { bgpRmArinhJoinTable 1 }

  BgpRmArinhJoinEntry ::= SEQUENCE {
      bgpRmArinhAfi                   BgpAfi,
      bgpRmArinhSafi                  BgpSafi,
      bgpRmArinhJoinStatus            BgpSjStatus,
      bgpRmArinhEntIndex              Unsigned32
    }

  bgpRmArinhAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the address family identifier with which this ARI
                 join is associated."
    ::= { bgpRmArinhJoinEntry 2 }

  bgpRmArinhSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the subsequent address family identifier with which
                 this ARI join is associated."
    ::= { bgpRmArinhJoinEntry 3 }

  bgpRmArinhJoinStatus OBJECT-TYPE
    SYNTAX      BgpSjStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the ARI slave join for querying next hops."
    ::= { bgpRmArinhJoinEntry 4 }

  bgpRmArinhEntIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Identifies the ARI provider entity."
    ::= { bgpRmArinhJoinEntry 5 }

-------------------------------------------------------------------------------

-- Tables for NM information

  bgpNm OBJECT IDENTIFIER ::= { bgpMib 7 }

--
-- Neighbor Manager Entity Table.
--
-- This is the top-level MIB for the DC-BGP Neighbor Manager.  It controls
-- creation and global configuration of the Neighbor Manager.
--
-- In distributed systems, the NM entity index in this table is mapped to the
-- physical network interface used by the IP Sockets stub by FTI-Specific
-- Handling code within System Manager.
--

  bgpNmEntTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_NM
    SYNTAX      SEQUENCE OF BgpNmEntEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry in this table represents a Neighbor Manager
                 entity.  Fields in an entry cannot be changed while the admin
                 status is up."
    ::= { bgpNm 1 }

  bgpNmEntEntry OBJECT-TYPE
    SYNTAX      BgpNmEntEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a Neighbor Manager entity."
    INDEX { bgpNmEntIndex }
    ::= { bgpNmEntTable 1 }

  BgpNmEntEntry ::= SEQUENCE {
      bgpNmEntIndex                   Unsigned32,
      bgpNmEntRowStatus               RowStatus,
      bgpNmEntAdminStatus             BgpAdminStatus,
      bgpNmEntOperStatus              BgpOperStatus,
      bgpNmEntRmIndex                 Unsigned32,
      bgpNmEntSckIndex                Unsigned32,
      bgpNmEntBfdEntityIndex          Unsigned32,
-- Begin Versa change {
      bgpNmEntDebug                   BgpDebugFlags,
      bgpNmEntLevel                   Unsigned32,
      bgpNmEntAllFlagsEnabled         TruthValue,
      bgpNmEntRtiName                 OCTET STRING,
      bgpNmEntTenantName              OCTET STRING,
      bgpNmEntTenantId                Unsigned32,
      bgpNmBgpNbrUpCount              Unsigned32,
      bgpNmBgpNbrDownCount            Unsigned32,
      bgpNmEntEnableAlarms            TruthValue,
      bgpNmEntBranchName              OCTET STRING,
-- endVersa change }
      bgpNmEntVrfName                 VrfName
-- Begin Versa change {
      , bgpNmEntCliId                   Unsigned32
-- endVersa change }
    }

  bgpNmEntIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies the Neighbor Manager entity which should handle
                 this listen socket."
    ::= { bgpNmEntEntry 1 }

  bgpNmEntRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status for this Neighbor Manager Entity Table entry,
                 used to create and destroy table entries."
    ::= { bgpNmEntEntry 2 }

  bgpNmEntAdminStatus OBJECT-TYPE
    SYNTAX      BgpAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The administrative status of this Neighbor Manager entity,
                 used to activate and deactivate NM."
    DEFVAL      { adminStatusDown }
    ::= { bgpNmEntEntry 3 }

  bgpNmEntOperStatus OBJECT-TYPE
    SYNTAX      BgpOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current operational status of this Neighbor Manager
                 entity."
    ::= { bgpNmEntEntry 4 }

  bgpNmEntRmIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Identifies a RIB Manager entity to which the Neighbor Manager
                 will join.  This index is mapped to an RM entity index by
                 FTI-Specific Handling code within System Manager.  This field
                 can only be changed when the Admin Status is down."
    ::= { bgpNmEntEntry 5 }

  bgpNmEntSckIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Identifies the SCK stub entity to join with.  This index
                 is used in the join user data, to enable FTI-specific code
                 within System Manager to select a suitable slave SCK stub
                 entity.  The status of the join is given by the row in the
                 bgpNmMjTable with bgpNmMjJoinPartner equal to
                 bgpComponentIpSockets. This field can only be changed when
                 the Admin Status is down."
    DEFVAL { 1 }
     ::= { bgpNmEntEntry 6 }

  bgpNmEntBfdEntityIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Identifies a BFD stub entity to which the Neighbor Manager
                 will join.

                 A value of zero indicates that no BFD provider is
                 available, or that NM should not join to any BFD provider.

                 If a BFD join is requested (bfdNmEntBfdEntityIndex is set
                 to a non-zero value), but the BFD join fails to activate,
                 then NM will also fail to activate.

                 This field can only be changed when the NM entity admin
                 status is down."
    DEFVAL      { 0 }
    ::= { bgpNmEntEntry 7 }

-- Begin Versa change {
  bgpNmEntDebug OBJECT-TYPE
    SYNTAX      BgpDebugFlags
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set debug flags of BGP Instance."
    ::= { bgpNmEntEntry 8 }

  bgpNmEntLevel OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set debug level of BGP Instance."
    DEFVAL       { 1 }
    ::= { bgpNmEntEntry 9 }

  bgpNmEntAllFlagsEnabled OBJECT-TYPE
     SYNTAX               TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to determine  all flags enabled."
    DEFVAL       { false }
    ::= { bgpNmEntEntry 10}

  bgpNmEntRtiName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This value describes routing instance name. This value
                 is passed, while configuring the routing instance."
    ::= { bgpNmEntEntry 11 }

  bgpNmEntTenantName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This value describes org name."
    ::= { bgpNmEntEntry 12 }

  bgpNmEntTenantId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This value describes org id."
    ::= { bgpNmEntEntry 13 }

  bgpNmBgpNbrUpCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of bgp peers in up state per tenant."
    ::= { bgpNmEntEntry 14 }

  bgpNmBgpNbrDownCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of bgp peers in down state per tenant."
    ::= { bgpNmEntEntry 15 }

  bgpNmEntEnableAlarms  OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This value describes alarms enabled or not."
    ::= { bgpNmEntEntry 16 }

  bgpNmEntBranchName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This value describes branch name."
    ::= { bgpNmEntEntry 17 }

-- End Versa change }

    bgpNmEntVrfName OBJECT-TYPE
        SYNTAX VrfName
        MAX-ACCESS read-create
        STATUS  current
        DESCRIPTION
            "The text name of the VRF in which this entity instance is
             running.

             If this field is a zero-length string then it is assumed
             that this entity instance is running in the 'global'
             context.

             This field follows replaceOnlyWhileDisabled behavior and
             cannot be changed when the row is active."
        DEFVAL { "" }
    ::= { bgpNmEntEntry 18}

-- Begin Versa change {

  bgpNmEntCliId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This value describes bgp instance cli id."
    ::= { bgpNmEntEntry 19 }

-- End Versa change }
-------------------------------------------------------------------------------

--
-- Neighbor Manager Listen Table.
--
-- This table controls which addresses the instance of NM listens out for
-- incoming connections on.  To satisfy the requirements BGP, at least one row
-- must be configured per _RM_ entity, although it is expected there will be
-- at least one per NM.
--

  bgpNmListenTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_LIS
    SYNTAX      SEQUENCE OF BgpNmListenEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry in this table represents a listen socket in the
                 Neighbor Manager entity."
    ::= { bgpNm 2 }

  bgpNmListenEntry OBJECT-TYPE
    SYNTAX      BgpNmListenEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Each entry represents a listen socket."
    INDEX { bgpNmEntIndex,
            bgpNmListenIndex }
    ::= { bgpNmListenTable 1 }

  BgpNmListenEntry ::= SEQUENCE {
      bgpNmListenIndex                Unsigned32,
      bgpNmListenRowStatus            RowStatus,
      bgpNmListenAdminStatus          BgpAdminStatus,
      bgpNmListenOperStatus           BgpOperStatus,
      bgpNmListenAddrType             InetAddressType,
      bgpNmListenAddr                 InetAddress,
      bgpNmListenPort                 InetPortNumber,
      bgpNmListenAcceptAll            TruthValue,
      bgpNmListenAddrScopeId          Unsigned32
    }

  bgpNmListenIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies this listen socket since each NM instance can have
                 more than one Listen socket configured."
    ::= { bgpNmListenEntry 2 }

  bgpNmListenRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status for this Neighbor Manager Listen Table entry,
                 used to create and destroy table entries."
    ::= { bgpNmListenEntry 3 }

  bgpNmListenAdminStatus OBJECT-TYPE
    SYNTAX      BgpAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The administrative status of this Listen entry, used to
                 activate and deactivate the Listen socket."
    DEFVAL      { adminStatusDown }
    ::= { bgpNmListenEntry 4 }

  bgpNmListenOperStatus OBJECT-TYPE
    SYNTAX      BgpOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current operational status of this Listen socket."
    ::= { bgpNmListenEntry 5 }

  bgpNmListenAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The address family of the address used to listen on.  This
                 determines the format of the bgpNmListenAddr field.  This
                 field can only be changed when the Admin Status is down.
                 Valid values are: AMB_INETWK_ADDR_TYPE_IPV4 and
                 AMB_INETWK_ADDR_TYPE_IPV6."
    ::= { bgpNmListenEntry 6 }

  bgpNmListenAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The address used to listen on.  This field can only
                 be changed when the Admin Status is down.  If set to a zero
                 length address DC-BGP will listen on all addresses available
                 to this NM instance.
                 For a specific port you cannot listen on a specific address if
                 you are already listening on all addresses.  Similarly, for a
                 specific port you cannot listen on all addresses if you are
                 already listening on a specific address."
    ::= { bgpNmListenEntry 7 }

  bgpNmListenPort OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The port used to listen on.  This field can only
                 be changed when the Admin Status is down."
    DEFVAL      { 179 }
    ::= { bgpNmListenEntry 8 }

  bgpNmListenAcceptAll OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is set to TRUE if this socket will accept incoming
                 connections from any peer.  The recommended value is FALSE.
                 This field can only be changed when the Admin Status is down."
    DEFVAL      { false }
    ::= { bgpNmListenEntry 9 }

  bgpNmListenAddrScopeId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The scope ID of the bgpNmListenAddr.  The scope ID is
                 required if the address is an IPv6 link-local address.
                 Otherwise, this field must be set to zero.  This field can
                 only be changed when the Admin Status is down."
    ::= { bgpNmListenEntry 10 }

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
-- Begin  Versa Change {
  --
  -- BGP peer debug table.
  --
  -- This table allows a user to control BGP peer Debug operations.
  --

   bgpPeerNmDebugTable OBJECT-TYPE
    -- FAMILY-SHORT-NAME BGP_PEER_DEBUG
    SYNTAX      SEQUENCE OF BgpPeerNmDebugEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "BGP peer debug table.

                 This table allows a user to control BGP peer debug
                 operations.

                 This table contains entries for both configured and dynamic
                 peers.

                 Rows in this table can be created or destroyed manually.
                 "
    ::= { bgpNm 3  }

  bgpPeerNmDebugEntry OBJECT-TYPE
    SYNTAX      BgpPeerNmDebugEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about the status of a BGP peer
                 debug flags."

    INDEX { bgpNmEntIndex,
            bgpPeerNmDebugAddrType,
            bgpPeerNmDebugAddr}
    ::= { bgpPeerNmDebugTable 1 }

     BgpPeerNmDebugEntry   ::= SEQUENCE {
         bgpPeerNmDebugAddrType                InetAddressType,
         bgpPeerNmDebugAddr                    InetAddress,
         bgpPeerNmDebugRowStatus               RowStatus,
         bgpPeerNmDebugDebug                   BgpDebugFlags,
         bgpPeerNmDebugLevel                   Unsigned32,
         bgpPeerNmDebugAllFlagsEnabled         TruthValue
     }


  bgpPeerNmDebugAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The address family of the remote address prefix.

                 Valid values are: ipv4 and ipv6.  Type ipv6 is
                 only accepted if bgpRmEntSupportIpv6 is TRUE."
    ::= { bgpPeerNmDebugEntry 2 }

  bgpPeerNmDebugAddr OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This field is used to set peer ip for setting debug flags."
    ::= { bgpPeerNmDebugEntry  3}

  bgpPeerNmDebugRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status for this peer range table entry, used to
                 create and destroy table entries."
    ::= { bgpPeerNmDebugEntry 4}

  bgpPeerNmDebugDebug OBJECT-TYPE
    SYNTAX      BgpDebugFlags
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set debug flags of BGP Peer."
    ::= { bgpPeerNmDebugEntry  5}

  bgpPeerNmDebugLevel OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set debug level of BGP Peer."
    DEFVAL       { 1 }
    ::= { bgpPeerNmDebugEntry  6}

  bgpPeerNmDebugAllFlagsEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to determine all flags enabled."
    DEFVAL       { false }
    ::= { bgpPeerNmDebugEntry 7}

-- End Versa Change   }
-------------------------------------------------------------------------------
  --
  -- <AFI, SAFI> supported table
  --
  -- A table used to enable any of the <AFI, SAFI> combinations
  -- supported by DC-BGP RIB Manager.  This MIB is read-create only.  Rows
  -- cannot be created or destroyed, as support for an <AFI, SAFI> is
  -- determined by presence or otherwise of user-exit code, and is not a
  -- run-time decision.
  --

  bgpRmAfiSafiTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_AFI
    SYNTAX      SEQUENCE OF BgpRmAfiSafiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table of per-<AFI, SAFI> configuration information."
    ::= { bgpRm 2 }

  bgpRmAfiSafiEntry OBJECT-TYPE
    SYNTAX      BgpRmAfiSafiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about support for an
                 <AFI, SAFI>."
    INDEX { bgpRmEntIndex,
            bgpRmAfiSafiAfi,
            bgpRmAfiSafiSafi }
    ::= { bgpRmAfiSafiTable 1 }

  BgpRmAfiSafiEntry ::= SEQUENCE {
      bgpRmAfiSafiAfi                 BgpAfi,
      bgpRmAfiSafiSafi                BgpSafi,
      bgpRmAfiSafiAdminStatus         BgpAdminStatus,
      bgpRmAfiSafiStateKept           TruthValue,
      bgpRmAfiSafiAfmRequired         TruthValue,
      bgpRmAfiSafiLocRibBlocked       TruthValue,
      bgpRmAfiSafiAdvertiseInactive   TruthValue,
      bgpRmAfiSafiUserData            OCTET STRING,
      bgpRmAfiSafiIbgpPrefixes        Gauge32,
      bgpRmAfiSafiEbgpPrefixes        Gauge32,
      bgpRmAfiSafiRedistPrefixes      Gauge32,
      bgpRmAfiSafiInPrfxes            Gauge32,
      bgpRmAfiSafiInPrfxesAccepted    Gauge32,
      bgpRmAfiSafiInPrfxesRejected    Gauge32,
      bgpRmAfiSafiOutPrfxes           Gauge32,
      bgpRmAfiSafiOutPrfxesAdvertised Gauge32,
      bgpRmAfiSafiInPrfxesActive      Gauge32,
      bgpRmAfiSafiInPrfxesFlapped     Gauge32,
      bgpRmAfiSafiInPrfxesFlapSuppr   Gauge32,
      bgpRmAfiSafiInPrfxesFlapHistory Gauge32,
      bgpRmAfiSafiDefaultImportRule   BgpPermitOrDeny,
      bgpRmAfiSafiInPrfxesDeniedByPol Gauge32,
      bgpRmAfiSafiNumLocRibRoutes     Gauge32,
      bgpRmAfiSafiNextHopSafi         BgpSafi,
      bgpRmAfiSafiNumLocRibBestRoutes Gauge32,
      bgpRmAfiSafiAddPathCapCfg       BgpAddPathSrCap,
      bgpRmAfiSafiAddPathBestN        Unsigned32,
      bgpRmAfiSafiCheckMartians       TruthValue,
      bgpRmAfiSafiDefaultMetric       Integer32,
      bgpRmAfiSafiFlapConfigIndex     Unsigned32,
      bgpRmAfiSafiFlapConfigMap       Unsigned32,
      bgpRmAfiSafiIGPMetricIgnore     TruthValue,
      bgpRmAfiSafiNumLocRibNextHops   Gauge32,
      bgpRmAfiSafiNumLocRibECMPRoutes Gauge32,
      bgpRmAfiSafiTotNumPrefixAllocs  Counter32,
      bgpRmAfiSafiTotNumRouteAllocs   Counter32,
      bgpRmAfiSafiTotNumPrefixFrees   Counter32,
      bgpRmAfiSafiTotNumRouteFrees    Counter32,
      bgpRmAfiSafiMaExtCommList       Unsigned32,
      bgpRmAfiSafiMaxIBgpEcmpRoutes   Unsigned32,
      bgpRmAfiSafiMaxEBgpEcmpRoutes   Unsigned32,
      bgpRmAfiSafiInstallBestNPaths   Unsigned32
      }

  bgpRmAfiSafiAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The AFI index into the <AFI, SAFI> table."
    ::= { bgpRmAfiSafiEntry 2 }

  bgpRmAfiSafiSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The SAFI index into the <AFI, SAFI> table."
    ::= { bgpRmAfiSafiEntry 3 }

  bgpRmAfiSafiAdminStatus OBJECT-TYPE
    SYNTAX      BgpAdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The administrative status for this <AFI, SAFI>.  The IPv4
                 Unicast address family defaults to admin-up.  The default for
                 other address families is to be admin-down.  This field can
                 only be set while RM is admin down."
    DEFVAL { adminStatusDown }
    ::= { bgpRmAfiSafiEntry 4 }

  bgpRmAfiSafiStateKept OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This value is used only if Graceful Restart procedures
                 are supported (in other words if bgpRmEntRestartSupported
                 is true).  If set to true at the point at which the RM
                 entity is set to admin status up, then the Restart
                 Capability generated after a local restart will indicate
                 that forwarding state has been maintained for this address
                 family over the restart.  If set to false at the point at
                 which the RM entity is set to admin status up, then the
                 forwarding state flag in the Restart Capability for this
                 address family will be set to indicate that forwarding
                 state has not been maintained."
    DEFVAL { false }
    ::= { bgpRmAfiSafiEntry 5 }

  bgpRmAfiSafiAfmRequired OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If this flag is set, DC-BGP will require an active AFM
                 join to be present before advertising NLRI of this <AFI,
                 SAFI> to peers.  This ensures that routes are not advertised
                 to peers that are not known to the local forwarding table."
    DEFVAL { true }
    ::= { bgpRmAfiSafiEntry 6 }

  bgpRmAfiSafiLocRibBlocked OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This flag is set if the Loc-RIB for this <AFI, SAFI> is
                 currently blocked, in which case DC-BGP will not advertise
                 any routes of this <AFI, SAFI> to peers.  A Loc-RIB is
                 blocked either because RM is undergoing graceful restart, or
                 because bgpRmAfiSafiAfmRequired is set to AMB_TRUE and there
                 are no active AFM joins for this <AFI, SAFI>.  A Loc-RIB is
                 unblocked when graceful restart completes, or when an AFM
                 join becomes active.  This flag is only valid If both RM and
                 this <AFI, SAFI> are active."
    ::= { bgpRmAfiSafiEntry 7 }

  bgpRmAfiSafiAdvertiseInactive OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If set to 'true', the best route will be advertised to
                 peers, whether or not the route has been added to the
                 forwarding table by the AFM.

                 If set to 'false', then BGP will only advertise a route to
                 peers if the route has been installed in the forwarding
                 table, or if the route has been redistributed by the AFM
                 from another routing protocol instance.  It is the
                 responsibility of the AFM to determine whether to only
                 redistribute active routes to BGP.

                 This option requires an AFM to be present, and so
                 bgpRmAfiSafiAdvertiseInactive may only be set to 'false' if
                 bgpRmAfiSafiAfmRequired is set to 'true'.  In addition, this
                 option requires that an AFM be configured to inform BGP
                 whenever a route from BGP is successfully installed in the
                 forwarding table, or is removed from the forwarding table.
                 This is achieved by configuring an AFM to redistribute
                 routes from this instance of BGP back to this instance of
                 BGP.

                 Not all AFMs support this redistribution of routes.  For
                 such address families, an attempt to set
                 bgpRmAfiSafiAdvertiseInactive to 'false' will be rejected.

                 This field can only be modified while RM is admin down."
    DEFVAL { true }
    ::= { bgpRmAfiSafiEntry 8 }

  bgpRmAfiSafiUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this BGP AFI SAFI entry."
    ::= { bgpRmAfiSafiEntry 9 }

  bgpRmAfiSafiIbgpPrefixes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of IBGP routes received for this <AFI,
                 SAFI>.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 10 }

  bgpRmAfiSafiEbgpPrefixes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of EBGP routes received for this <AFI,
                 SAFI>.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 11 }

  bgpRmAfiSafiRedistPrefixes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of routes redistributed for this <AFI,
                 SAFI>.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 12 }

  bgpRmAfiSafiInPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes received for this <AFI, SAFI> that
                 are stored in an Adj-RIB-In.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 13 }

  bgpRmAfiSafiInPrfxesAccepted OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes received for this <AFI, SAFI> that
                 are installed in an Adj-RIB-In and are eligible to become
                 active in the Loc-Rib.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 14 }

  bgpRmAfiSafiInPrfxesRejected OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes received for this <AFI, SAFI> that
                are installed in an Adj-RIB-In and are NOT eligible to
                become active in the Loc-Rib.

                When additional paths are enabled, routes with different
                path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 15 }

  bgpRmAfiSafiOutPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes for this <AFI, SAFI> that are
                 installed in an Adj-RIB-Out.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 16 }

  bgpRmAfiSafiOutPrfxesAdvertised OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of advertised prefixes for this <AFI, SAFI>
                 currently associated with any peer.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 Note that the value of this field may differ from
                 bgpRmAfiSafiOutPrfxes since that field includes recently
                 withdrawn routes which are undergoing suppression procedures."
    ::= { bgpRmAfiSafiEntry 17 }

  bgpRmAfiSafiInPrfxesActive OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes received for this <AFI, SAFI> that
                 are installed in the Adj-RIB-In and are active in the
                 Loc-Rib.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 This field is set to zero if bgpRmAfiSafiAdvertiseInactive
                 is set to 'true'."
    ::= { bgpRmAfiSafiEntry 18 }

  bgpRmAfiSafiInPrfxesFlapped OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes received for this <AFI, SAFI> that
                 are installed in the Adj-RIB-In and for which RIB Manager is
                 tracking a route flap damping penalty.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 19 }

  bgpRmAfiSafiInPrfxesFlapSuppr OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes received for this <AFI, SAFI> that
                 are installed in the Adj-RIB-In and that are suppressed as a
                 result of route flapping.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 20 }

  bgpRmAfiSafiInPrfxesFlapHistory OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes received for this <AFI, SAFI> that
                 are not currently in the Adj-RIB-In, but which have an
                 associated route flap damping penalty.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes."
    ::= { bgpRmAfiSafiEntry 21 }

  bgpRmAfiSafiDefaultImportRule OBJECT-TYPE
    SYNTAX      BgpPermitOrDeny
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The default behavior that BGP applies when it receives a
                 route of this address family for which an import policy has
                 not been configured."
    DEFVAL { permit }
    ::= { bgpRmAfiSafiEntry 22 }

  bgpRmAfiSafiInPrfxesDeniedByPol OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes received for this <AFI, SAFI> that
                 are stored, but failed import policy and so have not been
                 installed in the Adj-RIB-In.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 Note that this count only applies to denied prefixes from
                 peers for which 'soft reset with stored routing information'
                 is enabled for this <AFI, SAFI>."
    ::= { bgpRmAfiSafiEntry 23 }

  bgpRmAfiSafiNumLocRibRoutes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of routes installed in the Loc-RIB for this
                <AFI, SAFI>.

                When additional paths are enabled, routes with different
                path ID values count as different prefixes, so this
                includes additional paths as well as 'best' routes.  It
                does not include ECMP routes, but does include secondary
                paths (since these largely overlap with additional paths)."
    ::= { bgpRmAfiSafiEntry 24 }

  bgpRmAfiSafiNextHopSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the SAFI that will be used to resolve BGP next
                 hops for routes with this <AFI, SAFI>.

                 This may be set to none, unicast or multicast.

                 If set to none, BGP next hops are resolved using the
                 AFI/SAFI of the BGP next hop, subject to the
                 QBDC_USER_EXTRACT_BGP_NEXT_HOP user exit.

                 This field can only be modified while RM is admin down."
    DEFVAL { none  }
    ::= { bgpRmAfiSafiEntry 25 }

  bgpRmAfiSafiNumLocRibBestRoutes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of routes installed in the Loc-RIB as 'best'
                 routes for this <AFI, SAFI>.

                 This does not include additional paths or ECMP routes."
    ::= { bgpRmAfiSafiEntry 26 }

  bgpRmAfiSafiAddPathCapCfg OBJECT-TYPE
    SYNTAX      BgpAddPathSrCap
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The default BGP additional path capability for I-BGP
                 sessions.

                 This can be overridden at the BGP peer AFI/SAFI or peer
                 group AFI/SAFI level (bgpPeerAfiSafiAddPathCapCfg or
                 bgpPeergrAfiSafiAddPathCapCfg).

                 BGP additional path capability is never enabled by default
                 for E-BGP sessions - instead it should be configured for
                 specific E-BGP peers at the peer AFI/SAFI or peer group
                 AFI/SAFI level.

                 This field applies to all configured I-BGP peers including
                 confederation peers in different member ASs.  It does not
                 apply to unconfigured peers that are accepted because
                 bgpNmListenAcceptAll is true.

                 Valid values are:
                 -  AMB_BGP_ADD_PATH_SR_DISABLE
                    Disable sending and receiving additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_RECEIVE
                    Receive but do not send additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_SEND
                    Send but do not receive additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_BOTH
                    Send and receive additional BGP paths.

                 Any update to this object will take effect the next time
                 that the peer session reactivates."
    DEFVAL { disable }
    ::= { bgpRmAfiSafiEntry 27 }

  bgpRmAfiSafiAddPathBestN OBJECT-TYPE
    SYNTAX      Unsigned32 (1..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of best paths to calculate as candidate BGP
                 additional paths.

                 DC-BGP calculates the N best paths for each destination as
                 candidates for advertisement to BGP peers as additional
                 paths.

                 The candidate paths are the N best paths avoiding duplicate
                 BGP next hops.  They include the best path, and alternative
                 lower preference / higher cost paths.

                 For the default value of 1 the only candidate path is the
                 best path for each destination.

                 A value of 2 is sufficient to calculate the best path and
                 a backup path (if available) for each destination.

                 For small values of N the benefit of fast convergence after
                 N-1 failures can outweigh the cost of calculating and
                 advertising the best N routes, but for larger values of N
                 the benefit does not justify the cost.  Therefore this field
                 should only be set to a small value.

                 The number of paths advertised to each BGP peer can be
                 restricted at the BGP peer or peer group level
                 (bgpPeerAfiSafiAddPathBestN or
                 bgpPeergrAfiSafiAddPathBestN), but it is not possible to
                 advertise more paths than are specified here as candidates.

                 This field can only be modified while RM is admin down."
    DEFVAL { 1 }
    ::= { bgpRmAfiSafiEntry 28 }

  bgpRmAfiSafiCheckMartians OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If this flag is set to true, DC-BGP will check received
                 routes for Martian prefixes."
    DEFVAL { false }
    ::= { bgpRmAfiSafiEntry 29 }

  bgpRmAfiSafiDefaultMetric OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field defines the default metric for routes
                 redistributed into BGP.

                 Any route redistributed into BGP without a MED value has
                 its MED value set to this value.

                 This field can be changed at any time and will be applied
                 to all routes redistributed into DC-BGP."
    DEFVAL { 0 }
    ::= { bgpRmAfiSafiEntry 30 }

  bgpRmAfiSafiFlapConfigIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the route flap configuration table entry for
                 this AFI/SAFI, or zero if route flap dampening is not
                 required.

                 This route flap configuration applies to all routes for
                 this AFI/SAFI.  To apply route flap dampening to selected
                 routes or to use different route flap configurations for
                 different routes you can apply route flap configuration
                 using a route map by setting bgpRmAfiSafiFlapConfigMap
                 instead.

                 If bgpRmAfiSafiFlapConfigMap is non-zero then the route
                 map determines the route flap configuration and this field
                 is ignored.

                 Any route flap configuration applied by an import route
                 map overrides the route flap configuration applied by this
                 field.

                 This field can be changed when DC-BGP is active.  Any
                 changes are applied to a flapping route when the route
                 next flaps or when the current route flap penalty
                 expires."
    DEFVAL { 0 }
    ::= { bgpRmAfiSafiEntry 31 }

  bgpRmAfiSafiFlapConfigMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The index of the Route Map used for route flap
                 configuration for this AFI/SAFI, or zero if none.

                 If a route map is used for route flap configuration then
                 the route flap configuration for any route is determined
                 by the bgpRouteMapSeFlap value in the matching route map
                 entry.  If there is no matching route map entry with a
                 non-zero bgpRouteMapSeFlap value then the route is not
                 subject to route flap dampening.

                 If this field is non-zero then it determines the route
                 flap configuration for this AFI/SAFI and
                 bgpRmAfiSafiFlapConfigIndex is ignored, otherwise
                 bgpRmAfiSafiFlapConfigIndex specifies the route flap
                 configuration for all routes for this AFI/SAFI.

                 Any route flap configuration applied by an import route
                 map overrides the route flap configuration applied by this
                 field.

                 This field can be changed when DC-BGP is active.  Any
                 changes are applied to a flapping route when the route
                 next flaps or when the current route flap penalty
                 expires."
            DEFVAL { 0 }
    ::= { bgpRmAfiSafiEntry 32 }

  bgpRmAfiSafiIGPMetricIgnore OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Determines whether DC-BGP considers the IGP metric when
                 comparing routes.  The decision process, as defined by RFC
                 4271, requires that this is set to false.  Setting this
                 field to true can be useful to allow multiple routes to be
                 considered by BGP to be ECMP even though the IGP cost of
                 the routes to the BGP next hop differ.

                 This field can only be modified while RM is admin down."
    DEFVAL { false }
    ::= { bgpRmAfiSafiEntry 33 }

  bgpRmAfiSafiNumLocRibNextHops OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of next hops for all routes installed in
                  the Loc-RIB for this <AFI, SAFI>."
    ::= { bgpRmAfiSafiEntry 34 }

  bgpRmAfiSafiNumLocRibECMPRoutes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of routes installed in the Loc-RIB for this
                 <AFI, SAFI> for which there are multiple ECMP next hops."
    ::= { bgpRmAfiSafiEntry 35 }

  bgpRmAfiSafiTotNumPrefixAllocs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of memory allocations for prefixes
                 (NLRIs) that have been made ever for this <AFI, SAFI>.

                 If the route to a prefix flaps so that memory is freed and
                 re-allocated for the prefix, then that prefix will
                 contribute two memory allocations to this count.

                 This counter can be reset by setting the
                 bgpRmEntClearStats field to true."
    ::= { bgpRmAfiSafiEntry 36 }

  bgpRmAfiSafiTotNumRouteAllocs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of memory allocations for routes that
                 have been made ever for this <AFI, SAFI>.

                 If a route flaps so that memory is freed and re-allocated
                 for the route, then that route will contribute two memory
                 allocations to this count.

                 This counter can be reset by setting the
                 bgpRmEntClearStats field to true."
    ::= { bgpRmAfiSafiEntry 37 }

  bgpRmAfiSafiTotNumPrefixFrees OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of memory frees for prefixes (NLRIs) that
                 have been done ever for this <AFI, SAFI>.

                 This counter can be reset by setting the
                 bgpRmEntClearStats field to true."
    ::= { bgpRmAfiSafiEntry 38 }

  bgpRmAfiSafiTotNumRouteFrees OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of memory frees for routes that have been
                 done ever for this <AFI, SAFI>.

                 This counter can be reset by setting the
                 bgpRmEntClearStats field to true."
    ::= { bgpRmAfiSafiEntry 39 }

  bgpRmAfiSafiMaExtCommList OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Identifies an extended community list that can be used to
                filter routes based on their extended communities
                (including route-targets).

                This filter is applied before any other import policy, and
                any routes that don't match this list will be denied.
                This filter applies to routes of this <AFI, SAFI> learned
                from any peer.

                If set to a non-zero value, the list comprises the entries
                in the bgpExtCommListTable with bgpExtCommListIndex set to
                this value.

                Setting this field to zero means that no Extended
                Community List filter is applied, and so no routes will be
                denied."
    DEFVAL { 0 }
    ::= { bgpRmAfiSafiEntry 40 }

  bgpRmAfiSafiMaxIBgpEcmpRoutes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum number of Equal Cost BGP next-hops stored by
                DC-BGP for a route of this <AFI, SAFI> learnt via internal
                BGP.  This is also the maximum number of network next-hops
                sent to the routing table manager by DC-BGP for such a route.

                If set to zero, then this field is ignored, and the value of
                bgpRmEntMaxIBgpEcmpRoutes is used instead.

                Changing this field when the Admin Status is up will cause
                all current Loc-RIB routes for this <AFI, SAFI> to be
                recalculated."
    DEFVAL { 0 }
    ::= { bgpRmAfiSafiEntry 41 }

  bgpRmAfiSafiMaxEBgpEcmpRoutes OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum number of Equal Cost BGP next-hops stored by
                DC-BGP for a route of this <AFI, SAFI> learnt via external
                BGP.  This is also the maximum number of network next-hops
                sent to the routing table manager by DC-BGP for such a route.

                If set to zero, then this field is ignored, and the value of
                bgpRmEntMaxEBgpEcmpRoutes is used instead.

                Changing this field when the Admin Status is up will cause
                all current Loc-RIB routes for this <AFI, SAFI> to be
                recalculated."
    DEFVAL { 0 }
    ::= { bgpRmAfiSafiEntry 42 }

  bgpRmAfiSafiInstallBestNPaths OBJECT-TYPE
    SYNTAX      Unsigned32 (1..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The number of paths to install into the AFM for each
                 destination for a route of this <AFI, SAFI>.  This is used
                 to determine how many protecting paths are installed for
                 BGP-PIC Edge.

                 For the default value of 1, only the best path is
                 installed for each destination.

                 A value of N greater than 1 installs a best path and N-1
                 backup paths (if available) for each destination.  This
                 provides fast recovery from traffic loss after N-1
                 failures.  This is calculated using the same algorithm as
                 the 'best n' candidate additional paths.

                 If this value exceeds bgpRmAfiSafiAddPathBestN, then this
                 value dictates the number of additional paths to calculate
                 and install, but only bgpRmAfiSafiAddPathBestN will be
                 used as candidate additional paths for advertisement.

                 If ECMP best paths are available for a destination, next
                 hops will be installed into the AFM as follows.
                 -  ECMP next hops will be installed first according to
                    bgpRmAfiSafiMaxIBgpEcmpRoutes,
                    bgpRmAfiSafiMaxEBgpEcmpRoutes,
                    bgpRmEntMaxIBgpEcmpRoutes and
                    bgpRmEntMaxEBgpEcmpRoutes.
                 -  If bgpRmAfiSafiInstallBestNPaths is greater than the
                    number of ECMP paths installed, then secondary next
                    hops will be installed (if available) to take the total
                    number of installed next hops up to the value of
                    bgpRmAfiSafiInstallBestNPaths.

                 For example, if the maximum number of ECMP routes is 4,
                 and bgpRmAfiSafiInstallBestNPaths is 2, then routes will
                 be programmed as follows.
                 -  If ECMP next hops are available for a destination,
                    these are installed into the AFM up to a maximum of 4.
                 -  If there is only one primary next hop to a destination,
                    a secondary next hop is installed into the AFM if one
                    is available.

                 Changing this field when the Admin Status is up will cause
                 all current Loc-RIB routes for this <AFI, SAFI> to be
                 recalculated."
    DEFVAL { 1 }
    ::= { bgpRmAfiSafiEntry 43 }

-------------------------------------------------------------------------------

  --
  -- BGP Received NLRI Data
  --
  -- This table contains per route information including routes and attributes.
  -- All routes received from peers are contained within this table, regardless
  -- of whether they have been accepted by policy.  Routes from AFMs are not
  -- present.
  --

  bgpRcvdNlriTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_RNR
    SYNTAX      SEQUENCE OF BgpRcvdNlriEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Received NLRI Table contains information about all
                 paths to destination networks received from all BGP4 peers.
                 Paths from AFMs are not contained within this table.

                 This table reports received routes and path attributes before
                 import policy has been applied.

                 This table is empty unless soft reset with stored info is in
                 operation."
    ::= { bgpRib 6 }

  bgpRcvdNlriEntry OBJECT-TYPE
    SYNTAX      BgpRcvdNlriEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a path to a network."
    INDEX { bgpRmEntIndex,
            bgpRcvdNlriPeerIndex,
            bgpRcvdNlriAfi,
            bgpRcvdNlriSafi,
            bgpRcvdNlriPrfx,
            bgpRcvdNlriPrfxLen,
            bgpRcvdNlriPathId}
    ::= { bgpRcvdNlriTable 1 }

  BgpRcvdNlriEntry ::= SEQUENCE {
      bgpRcvdNlriPeerIndex            Unsigned32,
      bgpRcvdNlriAfi                  BgpAfi,
      bgpRcvdNlriSafi                 BgpSafi,
      bgpRcvdNlriPrfx                 InetAddress,
      bgpRcvdNlriPrfxLen              InetAddressPrefixLength,
      bgpRcvdNlriAsSize               BgpAsSize,
      bgpRcvdNlriASPathStr            OCTET STRING,
      bgpRcvdPathAttrOrigin           BgpOriginCode,
      bgpRcvdPathAttrNextHop          InetAddress,
      bgpRcvdPathAttrMultiExitDisc    Unsigned32,
      bgpRcvdPathAttrLocalPref        Unsigned32,
      bgpRcvdPathAttrAtomicAggregate  BgpPathAttrAtomicAggPresence,
      bgpRcvdPathAttrAggregatorAS     BgpAutonomousSystemNumber,
      bgpRcvdPathAttrAggregatorAddr   BgpIdentifier,
      bgpRcvdPathAttrOrigId           BgpIdentifier,
      bgpRcvdPathAttrAsPathLimAs      BgpAutonomousSystemNumber,
      bgpRcvdPathAttrAsPathLimUpper   Unsigned32,
      bgpRcvdNlriUserData             OCTET STRING,
      bgpRcvdNlriLinkLocalNextHop     InetAddress,
      bgpRcvdPathAttrMEDPrsnt         TruthValue,
      bgpRcvdNlriPathId               Unsigned32,
      bgpRcvdPathAccepted             TruthValue,
      bgpRcvdNlriPmsi                 OCTET STRING,
      bgpRcvdNlriPmsiActualLen        Unsigned32,
      bgpRcvdNlriOutputInterface      Unsigned32,
      bgpRcvdNlriCommunities          OCTET STRING,
      bgpRcvdNlriExtCommunities       OCTET STRING
      }

  bgpRcvdNlriPeerIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of the BGP peer this route was learned from.
                 This field is equivalent to a bgpPeerStatusPeerIndex."
    ::= { bgpRcvdNlriEntry 2 }

  bgpRcvdNlriAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The address family of the prefix for this NLRI."
    ::= { bgpRcvdNlriEntry 3 }

  bgpRcvdNlriSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The subsequent address family of the prefix for this NLRI."
    ::= { bgpRcvdNlriEntry 4 }

  bgpRcvdNlriPrfx OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An address prefix in the Network Layer Reachability
                 Information field.

                 The prefix length is specified by bgpRcvdNlriPrfxLen.  Any
                 bits beyond the length specified by bgpRcvdNlriPrfxLen are
                 zeroed.

                 This field contains the full line format BGP NLRI omitting
                 any NLRI length field.

                 For SAFI 128 the NLRI includes the MPLS label and Route
                 Distinguisher as well as the IPv4 or IPv6 address prefix."
    ::= { bgpRcvdNlriEntry 5 }

  bgpRcvdNlriPrfxLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Length in bits of the IP address prefix in the Network Layer
                 Reachability Information field."
    ::= { bgpRcvdNlriEntry 6 }

  bgpRcvdNlriAsSize OBJECT-TYPE
    SYNTAX      BgpAsSize
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the bgpRcvdNlriASPathStr field contains two or
                 four byte AS numbers."
    ::= { bgpRcvdNlriEntry 7 }

  bgpRcvdNlriASPathStr OBJECT-TYPE
    SYNTAX      OCTET STRING  (SIZE (0..256))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This is a string depicting the autonomous system path to this
                 network which was received from the peer which advertised it.
                 If bgpRmEntAsSize is four-octet and the peer does not support
                 four octet AS numbers this string represents the AS_PATH
                 formed by combining the AS_PATH and AS4_PATH attributes as
                 detailed in RFC 4893.  Two-octet AS numbers appear as
                 four-octet numbers by adding two bytes of zero padding.  The
                 format of the string is simply the AS_PATH attribute.  It can
                 be converted to a more readable format by the management
                 agent."
    ::= { bgpRcvdNlriEntry 8 }

  bgpRcvdPathAttrOrigin OBJECT-TYPE
    SYNTAX      BgpOriginCode
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The ultimate origin of the path information."
    ::= { bgpRcvdNlriEntry 9 }

  bgpRcvdPathAttrNextHop OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address of the border router that should be used to access
                 the destination network.  This address is the nexthop address
                 received in the UPDATE packet.  The address family of this
                 object will be the same as that of the prefix in this row.

                 Note that for RFC 2545 style double nexthops, this object
                 will always contain the global scope nexthop.
                 bgpRcvdNlriLinkLocalNextHop will contain the linklocal
                 scope nexthop, if it is present."
    ::= { bgpRcvdNlriEntry 10 }

  bgpRcvdPathAttrMultiExitDisc OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This metric is used to discriminate between multiple exit
                 points to an adjacent autonomous system.
                 Valid only if bgpRcvdPathAttrMEDPrsnt is TRUE."
    ::= { bgpRcvdNlriEntry 11 }

  bgpRcvdPathAttrLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The originating BGP4 speaker's degree of preference for an
                 advertised route."
    ::= { bgpRcvdNlriEntry 12 }

  bgpRcvdPathAttrAtomicAggregate OBJECT-TYPE
    SYNTAX      BgpPathAttrAtomicAggPresence
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "When this object is set to AMB_BGP_ATOMIC_AGGR_PRESENT, the
                 ATOMIC_AGGREGATE Path Attribute is present and indicates that
                 the NLRI MUST NOT be made more specific."
    ::= { bgpRcvdNlriEntry 13 }

  bgpRcvdPathAttrAggregatorAS OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The AS number of the last BGP4 speaker that performed route
                 aggregation."
    ::= { bgpRcvdNlriEntry 14 }

  bgpRcvdPathAttrAggregatorAddr OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP address of the last BGP4 speaker that performed route
                 aggregation.  A value of zero indicates the absence of this
                 attribute.  Note propagation of AS of zero is illegal in
                 the Internet."
    ::= { bgpRcvdNlriEntry 15 }

  bgpRcvdPathAttrOrigId OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Originator-ID identifying the router that initially
                 advertised this destination to a Route Reflector.  A
                 value of 0.0.0.0 indicates the absence of this attribute."
    ::= { bgpRcvdNlriEntry 16 }

  bgpRcvdPathAttrAsPathLimAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The AS number of the speaker that attached the AS_PATHLIMIT
                 attribute.  A value of 0 indicates the absence of this
                 attribute.  Note that propagation of AS of zero is illegal in
                 the Internet."
    ::= { bgpRcvdNlriEntry 17 }

  bgpRcvdPathAttrAsPathLimUpper OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The upper bound on the number of ASes in the AS_PATH
                 associated with this route before the route will be filtered.
                 Only valid if bgpRcvdPathAttrAsPathLimAs is non-zero."
    ::= { bgpRcvdNlriEntry 18 }

  bgpRcvdNlriUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this BGP NLRI entry."
    ::= { bgpRcvdNlriEntry 19 }

  bgpRcvdNlriLinkLocalNextHop OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IPv6 link-local address of the border router that
                 should be used to access the destination network.  This
                 object is only valid for a prefix with a received RFC 2545
                 style double nexthop."
    ::= { bgpRcvdNlriEntry 20 }

  bgpRcvdPathAttrMEDPrsnt OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If true, then the route has an associated MED attribute,
                 whose value is given in bgpRcvdPathAttMultiExitDisc.  If
                 false, the route has no MED attribute, and the value of
                 bgpRcvdPathAttMultiExitDisc is undefined."
    ::= { bgpRcvdNlriEntry 21 }

  bgpRcvdNlriPathId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The path ID for this NLRI.

                If BGP additional path receive capability was negotiated
                with the peer for this AFI/SAFI then this is the received
                path ID for this NLRI, otherwise it is zero."
    ::= { bgpRcvdNlriEntry 22 }

  bgpRcvdPathAccepted OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "If true, then the route was accepted by policy.  If false it
                 was denied."
    ::= { bgpRcvdNlriEntry 23 }

  bgpRcvdNlriPmsi OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field contains the full line format of the PMSI
                 attribute value omitting the attribute header.  Note that
                 the value will be truncated if it exceeds the maximum
                 length.

                 Note that only certain AFI/SAFI types may contain this
                 attribute."
    ::= { bgpRcvdNlriEntry 24 }

  bgpRcvdNlriPmsiActualLen OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field contains the actual length of the PMSI attribute.
                 If the PMSI attribute value has been truncated this gives
                 the true length."
    ::= { bgpRcvdNlriEntry 25 }

  bgpRcvdNlriOutputInterface OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The output interface.  This field is only non-zero for
                 routes received with a link-local IPv6 next hop from
                 directly connected peers."
    ::= { bgpRcvdNlriEntry 26 }

  bgpRcvdNlriCommunities OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..4096))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The community membership associated with the route before
                 import policy has been applied.

                 Each community is four-octets in length and each community
                 follows the previous with no padding. "
    ::= { bgpRcvdNlriEntry 27 }

  bgpRcvdNlriExtCommunities OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..4096))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The extended community membership associated with the route
                 before import policy has been applied.

                 Each extended community is eight-octets in length and each
                 extended community follows the previous with no padding. "
    ::= { bgpRcvdNlriEntry 28 }

-------------------------------------------------------------------------------

  --
  -- BGP Received Unknown Path Attribute table
  --
  -- BGP 4 Received Path unknown attribute.  There is one row in this table for
  -- each attribute not known by this BGP implementation (or agent
  -- instrumentation), but provided from a peer.
  --

  bgpRcvdPathAttrUnknownTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_RUA
    SYNTAX      SEQUENCE OF BgpRcvdPathAttrUnknownEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Received Path Attribute Unknown Table contains the
                 per network path (NLRI) data on the path attributes advertised
                 with a route but not known to the local BGP implementation
                 or not otherwise capable of being returned from this agent.

                 The absence of row data for a given index value for
                 bgpRcvdPathAttrUnknownType indicates a lack of such unknown
                 attribute information for the indicated network path.

                 This table is similar to bgpPathAttrUnknownTable but reports
                 path attributes before import policy has been applied."
    ::= { bgpRib 7 }

  bgpRcvdPathAttrUnknownEntry OBJECT-TYPE
    SYNTAX      BgpRcvdPathAttrUnknownEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about an unknown attribute provided with a path to
                 a network."
    INDEX { bgpRmEntIndex,
            bgpRcvdNlriPeerIndex,
            bgpRcvdNlriAfi,
            bgpRcvdNlriSafi,
            bgpRcvdNlriPrfx,
            bgpRcvdNlriPrfxLen,
            bgpRcvdPathAttrUnknownPathId,
            bgpRcvdPathAttrUnknownType }
    ::= { bgpRcvdPathAttrUnknownTable 1 }

  BgpRcvdPathAttrUnknownEntry ::= SEQUENCE {
      bgpRcvdPathAttrUnknownType       Unsigned32,
      bgpRcvdPathAttrUnknownValue      OCTET STRING,
      bgpRcvdPathAttrUnknownUserData   OCTET STRING,
      bgpRcvdPathAttrUnknownPathId     Unsigned32
      }

  bgpRcvdPathAttrUnknownType OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The attribute type advertised with this unknown attribute by
                 the peer.  This is the one octet type code field and does not
                 include the attribute flags.  These are included in the
                 bgpRcvdPathAttrUnknownValue field."
    ::= { bgpRcvdPathAttrUnknownEntry 7 }

  bgpRcvdPathAttrUnknownValue OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Value of path attribute not understood by the base BGP-4
                 document.  This will begin with the flags, code and length.
                 Note that only unknown optional-transitive attributes are
                 stored here.  Optional non-transitive attributes are discarded
                 as they do not need to be kept, while unknown attributes
                 claiming to be well-known will result in a Notification.
                 Octets beyond the maximum size, if any, are not recorded by
                 this row object.  This could lead to some truncation of the
                 recorded attributes."
    ::= { bgpRcvdPathAttrUnknownEntry 8 }

  bgpRcvdPathAttrUnknownUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpRcvdPathAttrUnknownEntry 9 }

  bgpRcvdPathAttrUnknownPathId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The path ID for this NLRI.

                 If BGP additional path receive capability was negotiated
                 with the peer for this AFI/SAFI then this is the received
                 path ID for this NLRI, otherwise it is zero."
    ::= { bgpRcvdPathAttrUnknownEntry 10 }

-------------------------------------------------------------------------------

  --
  -- BGP Received Cluster table
  --
  -- This table holds the clusters passed through on a given path.

  bgpRcvdPathAttrClusterTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_RCL
    SYNTAX      SEQUENCE OF BgpRcvdPathAttrClusterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Received Path Attribute Cluster Table contains the
                 per network path (NLRI) data on the reflection path which a
                 route has traversed.  The absence of row data for a given
                 network path indicates a lack of this attribute information
                 for the indicated network path.

                 This table is similar to bgpPathAttrClusterTable but reports
                 path attributes before import policy has been applied."
    ::= { bgpPathAttrRouteReflectionExts 3 }

  bgpRcvdPathAttrClusterEntry OBJECT-TYPE
    SYNTAX      BgpRcvdPathAttrClusterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a cluster traversal provided with a path to
                 a network."
    INDEX { bgpRmEntIndex,
            bgpRcvdNlriPeerIndex,
            bgpRcvdNlriAfi,
            bgpRcvdNlriSafi,
            bgpRcvdNlriPrfx,
            bgpRcvdNlriPrfxLen,
            bgpRcvdPathAttrClusterPathId,
            bgpRcvdPathAttrClusterIndex }
    ::= { bgpRcvdPathAttrClusterTable 1 }

  BgpRcvdPathAttrClusterEntry ::= SEQUENCE {
      bgpRcvdPathAttrClusterIndex      Unsigned32,
      bgpRcvdPathAttrClusterValue      Unsigned32,
      bgpRcvdPathAttrClusterUserData   OCTET STRING,
      bgpRcvdPathAttrClusterPathId     Unsigned32
      }

  bgpRcvdPathAttrClusterIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integral index for a row in this table."
    ::= { bgpRcvdPathAttrClusterEntry 7 }

  bgpRcvdPathAttrClusterValue OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A four octet long value representing a part of the
                 reflection path that the route has passed.  Each such four
                 octet long value represents the ID of a cluster that
                 the route has traversed.  The sequence of this path as
                 received in the route advertisement will be preserved in
                 the sequence of bgpRcvdPathAttrClusterTable rows (and the
                 bgpRcvdPathAttrClusterValue's in each row) as returned for
                 a given network path, and the monotonically increasing
                 sequence of bgpRcvdPathAttrClusterIndex values for that
                 network path."
    ::= { bgpRcvdPathAttrClusterEntry 8 }

  bgpRcvdPathAttrClusterUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpRcvdPathAttrClusterEntry 9 }

  bgpRcvdPathAttrClusterPathId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The path ID for this NLRI.

                 If BGP additional path receive capability was negotiated
                 with the peer for this AFI/SAFI then this is the received
                 path ID for this NLRI, otherwise it is zero."
    ::= { bgpRcvdPathAttrClusterEntry 10 }

-------------------------------------------------------------------------------

  --
  -- BGP Received Communities table
  --
  -- This table holds information on the communities the indexed route belongs
  -- to.

  bgpRcvdPathAttrCommTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_RCM
    SYNTAX      SEQUENCE OF BgpRcvdPathAttrCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Received Path Attribute Community Table contains the
                 per network path (NLRI) data on the community membership
                 advertised with a route.  The absence of row data for a given
                 network path indicates a lack of this attribute information
                 for the indicated network path.

                 This table is similar to bgpPathAttrCommTable but reports
                 path attributes before import policy has been applied."
    ::= { bgpPathAttrCommunityExts 2 }

  bgpRcvdPathAttrCommEntry OBJECT-TYPE
    SYNTAX      BgpRcvdPathAttrCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a community association provided with a path
                 to a network."
    INDEX { bgpRmEntIndex,
            bgpRcvdNlriPeerIndex,
            bgpRcvdNlriAfi,
            bgpRcvdNlriSafi,
            bgpRcvdNlriPrfx,
            bgpRcvdNlriPrfxLen,
            bgpRcvdPathAttrCommPathId,
            bgpRcvdPathAttrCommIndex }
    ::= { bgpRcvdPathAttrCommTable 1 }

  BgpRcvdPathAttrCommEntry ::= SEQUENCE {
      bgpRcvdPathAttrCommIndex      Unsigned32,
      bgpRcvdPathAttrCommValue      BgpCommunity,
      bgpRcvdPathAttrCommUserData   OCTET STRING,
      bgpRcvdPathAttrCommPathId             Unsigned32
      }

  bgpRcvdPathAttrCommIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integer index for a row in this table."
    ::= { bgpRcvdPathAttrCommEntry 7 }

  bgpRcvdPathAttrCommValue  OBJECT-TYPE
    SYNTAX      BgpCommunity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A value representing a community.   There are certain
                 4-octet long values which could be returned in this
                 columnar row data that carry additional semantics."
    ::= { bgpRcvdPathAttrCommEntry 8 }

  bgpRcvdPathAttrCommUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpRcvdPathAttrCommEntry 9 }

  bgpRcvdPathAttrCommPathId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The path ID for this NLRI.

                 If BGP additional path receive capability was negotiated
                 with the peer for this AFI/SAFI then this is the received
                 path ID for this NLRI, otherwise it is zero."
    ::= { bgpRcvdPathAttrCommEntry 10 }

-------------------------------------------------------------------------------

  --
  -- BGP Received Extended Communities
  --
  -- This table holds information on the extended communities the indexed route
  -- belongs to.
  --

  bgpRcvdPathAttrExtCommTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_REC
    SYNTAX      SEQUENCE OF BgpRcvdPathAttrExtCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 Received Path Attribute Extended Community Table
                 contains the per network path (NLRI) data on the extended
                 community membership advertised with a route.  The absence of
                 row data for a given network path indicates a lack of this
                 attribute information for the indicated network path.

                 This table is similar to bgpPathAttrExtCommTable but reports
                 path attributes before import policy has been applied."
    ::= { bgpPathAttrExtCommunityExts 2 }

  bgpRcvdPathAttrExtCommEntry OBJECT-TYPE
    SYNTAX      BgpRcvdPathAttrExtCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about an extended community association provided
                 with a path to a network."
    INDEX { bgpRmEntIndex,
            bgpRcvdNlriPeerIndex,
            bgpRcvdNlriAfi,
            bgpRcvdNlriSafi,
            bgpRcvdNlriPrfx,
            bgpRcvdNlriPrfxLen,
            bgpRcvdPathAttrExtCommPathId,
            bgpRcvdPathAttrExtCommIndex }
    ::= { bgpRcvdPathAttrExtCommTable 1 }

  BgpRcvdPathAttrExtCommEntry ::= SEQUENCE {
      bgpRcvdPathAttrExtCommIndex     Unsigned32,
      bgpRcvdPathAttrExtCommValue     BgpExtendedCommunity,
      bgpRcvdPathAttrExtCommUserData  OCTET STRING,
      bgpRcvdPathAttrExtCommPathId    Unsigned32
      }

  bgpRcvdPathAttrExtCommIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integer index for a row in this table."
    ::= { bgpRcvdPathAttrExtCommEntry 7 }

  bgpRcvdPathAttrExtCommValue  OBJECT-TYPE
    SYNTAX      BgpExtendedCommunity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A value representing an extended community.   There are
                 certain 8-octet long values which could be returned in this
                 columnar row data that carry additional semantics."
    ::= { bgpRcvdPathAttrExtCommEntry 8 }

  bgpRcvdPathAttrExtCommUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpRcvdPathAttrExtCommEntry 9 }

  bgpRcvdPathAttrExtCommPathId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The path ID for this NLRI.

                 If BGP additional path receive capability was negotiated
                 with the peer for this AFI/SAFI then this is the received
                 path ID for this NLRI, otherwise it is zero."
    ::= { bgpRcvdPathAttrExtCommEntry 10 }

-------------------------------------------------------------------------------

  --
  -- BGP Adj-RIB Out Unknown Path Attribute table
  --
  -- BGP 4 Adj-RIB Out Path unknown attribute.  There is one row in this table
  -- for each attribute not known by this BGP implementation (or agent
  -- instrumentation), but advertised to a peer.
  --

  bgpAROPathAttrUnknownTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_AUA
    SYNTAX      SEQUENCE OF BgpAROPathAttrUnknownEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 ARO Path Attribute Unknown Table contains the per
                 network path (NLRI) data on the path attributes advertised
                 with a route but not known to the local BGP implementation or
                 not otherwise capable of being returned from this agent.

                 The absence of row data for a given index value for
                 bgpAROPathAttrUnknownType indicates a lack of such unknown
                 attribute information for the indicated network path.

                 This table reports transmitted routes and path attributes
                 after export policy has been applied.  Only routes accepted by
                 export policy are reported."
    ::= { bgpRib 8 }

  bgpAROPathAttrUnknownEntry OBJECT-TYPE
    SYNTAX      BgpAROPathAttrUnknownEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about an unknown attribute provided with a path to
                 a network."
    INDEX { bgpRmEntIndex,
            bgpPeerIndex,
            bgpAdjRibOutAfi,
            bgpAdjRibOutSafi,
            bgpAdjRibOutPrfx,
            bgpAdjRibOutPrfxLen,
            bgpAdjRibOutPathId,
            bgpAROPathAttrUnknownType }
    ::= { bgpAROPathAttrUnknownTable 1 }

  BgpAROPathAttrUnknownEntry ::= SEQUENCE {
      bgpAROPathAttrUnknownType       Unsigned32,
      bgpAROPathAttrUnknownValue      OCTET STRING,
      bgpAROPathAttrUnknownUserData   OCTET STRING
      }

  bgpAROPathAttrUnknownType OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The attribute type advertised with this unknown attribute to
                 the peer.  This is the one octet type code field and does not
                 include the attribute flags.  These are included in the
                 bgpAROPathAttrUnknownValue field."
    ::= { bgpAROPathAttrUnknownEntry 7 }

  bgpAROPathAttrUnknownValue OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Value of path attribute not understood by the base BGP-4
                 document.  This will begin with the flags, code and length.
                 Note that only unknown optional-transitive attributes are
                 stored here.  Optional non-transitive attributes are discarded
                 as they do not need to be kept, while unknown attributes
                 claiming to be well-known will result in a Notification.
                 Octets beyond the maximum size, if any, are not recorded by
                 this row object.  This could lead to some truncation of the
                 recorded attributes."
    ::= { bgpAROPathAttrUnknownEntry 8 }

  bgpAROPathAttrUnknownUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpAROPathAttrUnknownEntry 9 }

-------------------------------------------------------------------------------

  --
  -- BGP Adj-RIB Out Cluster table
  --
  -- This table holds the clusters passed through on a given path.

  bgpAROPathAttrClusterTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_ACL
    SYNTAX      SEQUENCE OF BgpAROPathAttrClusterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 ARO Path Attribute Cluster Table contains the
                 per network path (NLRI) data on the reflection path which a
                 route has traversed.  The absence of row data for a given
                 network path indicates a lack of this attribute information
                 for the indicated network path.

                 This table reports transmitted routes and path attributes
                 after export policy has been applied.  Only routes accepted by
                 export policy are reported."
    ::= { bgpPathAttrRouteReflectionExts 4 }

  bgpAROPathAttrClusterEntry OBJECT-TYPE
    SYNTAX      BgpAROPathAttrClusterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a cluster traversal provided with a path to
                 a network."
    INDEX { bgpRmEntIndex,
            bgpPeerIndex,
            bgpAdjRibOutAfi,
            bgpAdjRibOutSafi,
            bgpAdjRibOutPrfx,
            bgpAdjRibOutPrfxLen,
            bgpAdjRibOutPathId,
            bgpAROPathAttrClusterIndex }
    ::= { bgpAROPathAttrClusterTable 1 }

  BgpAROPathAttrClusterEntry ::= SEQUENCE {
      bgpAROPathAttrClusterIndex      Unsigned32,
      bgpAROPathAttrClusterValue      Unsigned32,
      bgpAROPathAttrClusterUserData   OCTET STRING
      }

  bgpAROPathAttrClusterIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integral index for a row in this table."
    ::= { bgpAROPathAttrClusterEntry 7 }

  bgpAROPathAttrClusterValue OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A four octet long value representing a part of the
                 reflection path that the route has passed.  Each such four
                 octet long value represents the ID of a cluster that
                 the route has traversed.  The sequence of this path as
                 received in the route advertisement will be preserved in
                 the sequence of bgpAROPathAttrClusterTable rows (and the
                 bgpAROPathAttrClusterValue's in each row) as returned for
                 a given network path, and the monotonically increasing
                 sequence of bgpAROPathAttrClusterIndex values for that
                 network path."
    ::= { bgpAROPathAttrClusterEntry 8 }

  bgpAROPathAttrClusterUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpAROPathAttrClusterEntry 9 }

-------------------------------------------------------------------------------

  --
  -- BGP Adj-RIB Out Communities table
  --
  -- This table holds information on the communities the indexed route belongs
  -- to.

  bgpAROPathAttrCommTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_ACM
    SYNTAX      SEQUENCE OF BgpAROPathAttrCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 ARO Path Attribute Community Table contains the
                 per network path (NLRI) data on the community membership
                 advertised with a route.  The absence of row data for a given
                 network path indicates a lack of this attribute information
                 for the indicated network path.

                 This table reports transmitted routes and path attributes
                 after export policy has been applied.  Only routes accepted by
                 export policy are reported."
    ::= { bgpPathAttrCommunityExts 3 }

  bgpAROPathAttrCommEntry OBJECT-TYPE
    SYNTAX      BgpAROPathAttrCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about a community association provided with a path
                 to a network."
    INDEX { bgpRmEntIndex,
            bgpPeerIndex,
            bgpAdjRibOutAfi,
            bgpAdjRibOutSafi,
            bgpAdjRibOutPrfx,
            bgpAdjRibOutPrfxLen,
            bgpAdjRibOutPathId,
            bgpAROPathAttrCommIndex }
    ::= { bgpAROPathAttrCommTable 1 }

  BgpAROPathAttrCommEntry ::= SEQUENCE {
      bgpAROPathAttrCommIndex      Unsigned32,
      bgpAROPathAttrCommValue      BgpCommunity,
      bgpAROPathAttrCommUserData   OCTET STRING
      }

  bgpAROPathAttrCommIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integer index for a row in this table."
    ::= { bgpAROPathAttrCommEntry 7 }

  bgpAROPathAttrCommValue  OBJECT-TYPE
    SYNTAX      BgpCommunity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A value representing a community.   There are certain
                 4-octet long values which could be returned in this
                 columnar row data that carry additional semantics."
    ::= { bgpAROPathAttrCommEntry 8 }

  bgpAROPathAttrCommUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpAROPathAttrCommEntry 9 }

-------------------------------------------------------------------------------

  --
  -- BGP Adj-RIB Out Extended Communities
  --
  -- This table holds information on the extended communities the indexed route
  -- belongs to.
  --

  bgpAROPathAttrExtCommTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_AEC
    SYNTAX      SEQUENCE OF BgpAROPathAttrExtCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The BGP-4 ARO Path Attribute Extended Community Table
                 contains the per network path (NLRI) data on the extended
                 community membership advertised with a route.  The absence of
                 row data for a given network path indicates a lack of this
                 attribute information for the indicated network path.

                 This table reports transmitted routes and path attributes
                 after export policy has been applied.  Only routes accepted by
                 export policy are reported."
    ::= { bgpPathAttrExtCommunityExts 3 }

  bgpAROPathAttrExtCommEntry OBJECT-TYPE
    SYNTAX      BgpAROPathAttrExtCommEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Information about an extended community association provided
                 with a path to a network."
    INDEX { bgpRmEntIndex,
            bgpPeerIndex,
            bgpAdjRibOutAfi,
            bgpAdjRibOutSafi,
            bgpAdjRibOutPrfx,
            bgpAdjRibOutPrfxLen,
            bgpAdjRibOutPathId,
            bgpAROPathAttrExtCommIndex }
    ::= { bgpAROPathAttrExtCommTable 1 }

  BgpAROPathAttrExtCommEntry ::= SEQUENCE {
      bgpAROPathAttrExtCommIndex     Unsigned32,
      bgpAROPathAttrExtCommValue     BgpExtendedCommunity,
      bgpAROPathAttrExtCommUserData  OCTET STRING
      }

  bgpAROPathAttrExtCommIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integer index for a row in this table."
    ::= { bgpAROPathAttrExtCommEntry 7 }

  bgpAROPathAttrExtCommValue  OBJECT-TYPE
    SYNTAX      BgpExtendedCommunity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A value representing an extended community.   There are
                 certain 8-octet long values which could be returned in this
                 columnar row data that carry additional semantics."
    ::= { bgpAROPathAttrExtCommEntry 8 }

  bgpAROPathAttrExtCommUserData OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "User data for this path attribute."
    ::= { bgpAROPathAttrExtCommEntry 9 }

------------------------------------------------------------------------------

  bgpAsPathAccessListTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_APL
    SYNTAX        SEQUENCE OF BgpAsPathAccessListEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "The table of DC-BGP AS Path Access Lists.

                   An AS Path Access List is used to test whether the
                   AS Path in a route matches the list.  The AS Path is matched
                   against each bgpAsPathAccessListEntry with the same
                   bgpAsPathListIndex in the order specified by
                   bgpAsPathListAsPathIndex.  If the AS Path does not match any
                   entry in the list, then there is no match.

                   This table contains AS Path regular expressions which can be
                   used to filter imported and exported routes.  Each row in
                   this table contains a single regular expression against
                   which to match."
     ::= { bgpPib 13 }

  bgpAsPathAccessListEntry OBJECT-TYPE
    SYNTAX                 BgpAsPathAccessListEntry
    MAX-ACCESS             not-accessible
    STATUS                 current
    DESCRIPTION            "Each entry represents one or more AS Paths"
    INDEX { bgpRmEntIndex,
            bgpAsPathListIndex,
            bgpAsPathListAsPathIndex }
    ::= { bgpAsPathAccessListTable 1 }

  BgpAsPathAccessListEntry ::= SEQUENCE {
      bgpAsPathListIndex        Unsigned32,
      bgpAsPathListAsPathIndex  Unsigned32,
      bgpAsPathListRowStatus    RowStatus,
      bgpAsPathListAsPath       LongDisplayString,
      bgpAsPathListMatchType    BgpPermitOrDeny,
      bgpAsPathListMaOrigin     BgpOriginCode,
      bgpAsPathListMaOriginDef  TruthValue
      }

  bgpAsPathListIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The AS Path List index.  This identifies the AS Path List."
    ::= { bgpAsPathAccessListEntry 2 }

  bgpAsPathListAsPathIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this AS Path Entry in this AS Path List."
    ::= { bgpAsPathAccessListEntry 3 }

  bgpAsPathListRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete an AS Path List entry."
    ::= { bgpAsPathAccessListEntry 4 }

  bgpAsPathListAsPath OBJECT-TYPE
    SYNTAX      LongDisplayString (SIZE(0..300))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression to use when matching the
                 AS Path.  This is stored here in ASCII format.  AS numbers
                 are matched as decimal numbers.  For example, the AS
                 number '0x0123' should be represented in the regular
                 expression string as '291'.  The string is not
                 NULL-terminated.  A NULL string or an as_path_exp_len
                 value of zero indicates that the field is not in use and
                 no AS Path will match this entry."
    ::= { bgpAsPathAccessListEntry 5 }

  bgpAsPathListMatchType OBJECT-TYPE
    SYNTAX      BgpPermitOrDeny
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The type of match represented by this AS Path List entry.

                 A list entry with a match type of permit returns true if
                 the AS Path matches the regular expression and false if it
                 does not.

                 A list entry with a match type of deny returns false if
                 the AS Path matches the regular expression and true if it
                 does not."
    DEFVAL { permit }
    ::= { bgpAsPathAccessListEntry 6 }

  bgpAsPathListMaOrigin OBJECT-TYPE
    SYNTAX      BgpOriginCode
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The value to match the Origin attribute against.  This
                 value is only used if bgpAsPathListMaOriginDef is TRUE."
    DEFVAL { originIncomplete }
    ::= { bgpAsPathAccessListEntry 7 }

  bgpAsPathListMaOriginDef OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Whether or not the value in bgpAsPathListMaOrigin should be
                 used for matching."
    DEFVAL { false }
    ::= { bgpAsPathAccessListEntry 8 }

------------------------------------------------------------------------------

  bgpCommunityListTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_CML
    SYNTAX        SEQUENCE OF BgpCommunityListEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "The table of DC-BGP Community List entries.

                   A Community List is used to match against communities in a
                   route or to set communities in a route.  A Community List
                   consists of the set of entries in this table with a common
                   bgpCommunityListIndex.  This set of entries is then ordered
                   by the bgpCommunityListEntryIndex value and this ordering is
                   important when matching against communities in a route.

                   When used to match against communities in a route, the
                   method used for a Community List entry depends on
                   bgpCommunityListEntryType.

                   -  If 'community-group', the route communities are matched
                   against entries in the bgpCommunityGroupTable.

                   -  If 'regular-expression', the route communities are
                   matched against bgpCommunityListRegexp.

                   When used to set communities in a route, a Community List
                   entry is only used if bgpCommunityListPermit is 'permit'.

                   The entries in the bgpCommunityGroupTable which correspond
                   to this entry in the bgpCommunityListTable have the same
                   bgpCommunityListIndex and bgpCommunityListEntryIndex
                   indices."
     ::= { bgpPib 14 }

  bgpCommunityListEntry OBJECT-TYPE
    SYNTAX                 BgpCommunityListEntry
    MAX-ACCESS             not-accessible
    STATUS                 current
    DESCRIPTION            "Each entry represents a BGP Community"
    INDEX { bgpRmEntIndex,
            bgpCommunityListIndex,
            bgpCommunityListEntryIndex }
    ::= { bgpCommunityListTable 1 }

  BgpCommunityListEntry ::= SEQUENCE {
      bgpCommunityListIndex         Unsigned32,
      bgpCommunityListEntryIndex    Unsigned32,
      bgpCommunityListRowStatus     RowStatus,
      bgpCommunityListCommunity     BgpCommunity,
      bgpCommunityListEntryType     BgpCommListEntryType,
      bgpCommunityListPermit        BgpPermitOrDeny,
      bgpCommunityListRegexp        LongDisplayString
      }

  bgpCommunityListIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The Community List index.  This identifies the Community
                 List."
    ::= { bgpCommunityListEntry 2 }

  bgpCommunityListEntryIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this entry in the Community List.

                 This ordering is important when the Community List is used
                 to match against communities in a route."
    ::= { bgpCommunityListEntry 3 }

  bgpCommunityListRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete a Community List entry."
    ::= { bgpCommunityListEntry 4 }

  bgpCommunityListCommunity OBJECT-TYPE
    SYNTAX      BgpCommunity
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains a single community value.

                 This field is deprecated and should not be used.  To use a
                 single community for a Community List entry, create a
                 Community Group with bgpCommunityGroupCommunity set to the
                 required community value."
    ::= { bgpCommunityListEntry 5 }

  bgpCommunityListEntryType OBJECT-TYPE
    SYNTAX      BgpCommListEntryType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field indicates how this entry is used to match route
                 commmunities.

                 -  If 'community-group', the route communities are matched
                 against entries in the bgpCommunityGroupTable.

                 -  If 'regular-expression', the route communities are
                 matched against bgpCommunityListRegexp.

                 When used to set route communities, this entry is only
                 used if this field is 'community-group' and
                 bgpCommunityListPermit is 'permit'."
    DEFVAL { communityGroup }
    ::= { bgpCommunityListEntry 6 }

  bgpCommunityListPermit OBJECT-TYPE
    SYNTAX      BgpPermitOrDeny
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "When matching routes, this field indicates whether the set
                 of matched routes should be permitted or denied.

                 When setting routes, this Community List entry is ignored
                 if this field is 'deny'."
    DEFVAL { permit }
    ::= { bgpCommunityListEntry 7 }

  bgpCommunityListRegexp OBJECT-TYPE
    SYNTAX      LongDisplayString (SIZE(0..300))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression to use when matching
                 elements of the community list for a route.  This is
                 stored here in ASCII format.  Communities are matched
                 using new-format decimal notation.  For example, the
                 community '0x00120101' should be represented in the string
                 as '18:257'.  The string is not NULL-terminated.  A NULL
                 string or a comm_exp_len of zero indicates that the field
                 is not in use.

                 This field is only relevant if bgpCommunityListEntryType
                 is 'regular-expression'.  It is otherwise ignored."
    ::= { bgpCommunityListEntry 8 }

------------------------------------------------------------------------------

  bgpExtCommListTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_XCML
    SYNTAX        SEQUENCE OF BgpExtCommListEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "The table of DC-BGP Extended Community List entries.

                   An Extended Community List is used to match against extended
                   communities in a route or to set extended communities in a
                   route.  An Extended Community List consists of the set of
                   entries in this table with a common bgpExtCommListIndex.
                   This set of entries is then ordered by the
                   bgpExtCommListEntryIndex value and this ordering is
                   important when matching against extended communities in a
                   route.

                   When used to match against extended communities in a route,
                   the method used for an Extended Community List entry depends
                   on bgpExtCommListEntryType.

                   -  If 'community-group', the route communities are matched
                   against entries in the bgpExtCommGroupTable.

                   -  If 'regular-expression', the route communities are
                   matched against bgpExtCommListRegexp.

                   When used to set extended communities in a route, an
                   Extended Community List entry is only used if
                   bgpExtCommListEntryType is 'community-group' and
                   bgpExtCommListPermit is 'permit'.

                   The entries in the bgpExtCommGroupTable which correspond to
                   this entry in the bgpExtCommListTable have the same
                   bgpExtCommListIndex and bgpExtCommListEntryIndex indices."
     ::= { bgpPib 15 }

  bgpExtCommListEntry OBJECT-TYPE
    SYNTAX                 BgpExtCommListEntry
    MAX-ACCESS             not-accessible
    STATUS                 current
    DESCRIPTION            "Each entry represents a BGP Extended Community"
    INDEX { bgpRmEntIndex,
            bgpExtCommListIndex,
            bgpExtCommListEntryIndex }
    ::= { bgpExtCommListTable 1 }

  BgpExtCommListEntry ::= SEQUENCE {
      bgpExtCommListIndex        Unsigned32,
      bgpExtCommListEntryIndex   Unsigned32,
      bgpExtCommListRowStatus    RowStatus,
      bgpExtCommListCommunity    BgpExtendedCommunity,
      bgpExtCommListEntryType    BgpCommListEntryType,
      bgpExtCommListPermit       BgpPermitOrDeny,
      bgpExtCommListRegexp       LongDisplayString
      }

  bgpExtCommListIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The Extended Community List index.  This identifies the
                 Extended Community List."
    ::= { bgpExtCommListEntry 2 }

  bgpExtCommListEntryIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of this entry in the Extended Community List.

                 This ordering is important when the Extended Community
                 List is used to match against extended communities in a
                 route."
    ::= { bgpExtCommListEntry 3 }

  bgpExtCommListRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete an Extended Community List entry."
    ::= { bgpExtCommListEntry 4 }

  bgpExtCommListCommunity OBJECT-TYPE
    SYNTAX      BgpExtendedCommunity
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains a single extended community value.

                 This field is deprecated and should not be used.  To use a
                 single extended community for an Extended Community List
                 entry, create an Extended Community Group with
                 bgpExtCommGroupCommunity set to the required extended
                 community value."
    ::= { bgpExtCommListEntry 5 }

  bgpExtCommListEntryType OBJECT-TYPE
    SYNTAX      BgpCommListEntryType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field indicates how this entry is used to match route
                 extended commmunities.

                 -  If 'community-group', the route extended communities
                 are matched against entries in the
                 bgpExtCommGroupTable.

                 -  If 'regular-expression', the route extended communities
                 are matched against bgpExtCommListRegexp.

                 When used to set route extended communities, this entry is
                 only used if this field is 'community-group' and
                 bgpExtCommListPermit is 'permit'."
    DEFVAL { communityGroup }
    ::= { bgpExtCommListEntry 6 }

  bgpExtCommListPermit OBJECT-TYPE
    SYNTAX      BgpPermitOrDeny
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "When matching routes, this field indicates whether the set
                 of matched routes should be permitted or denied.

                 When setting routes, this Extended Community List entry is
                 ignored if this field is 'deny'."
    DEFVAL { permit }
    ::= { bgpExtCommListEntry 7 }

  bgpExtCommListRegexp OBJECT-TYPE
    SYNTAX      LongDisplayString (SIZE(0..300))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Contains the regular expression to use when matching
                 elements of the extended community list for a route.  This
                 is stored here in ASCII format.  Extended communities are
                 matched as hexadecimal numbers.  For example, the extended
                 community '0x112233445566ab' should be represented in the
                 string as '00112233445566AB' (leading zeroes are necessary
                 to make the length up to 8 bytes).  Alphabetic nibbles 'A'
                 through 'F' must be specified in upper case.  The string
                 is not NULL-terminated.  A NULL string or a
                 ext_comm_exp_len of zero indicates that the field is not
                 in use.

                 This field is only relevant if bgpExtCommListEntryType is
                 'regular-expression'.  It is otherwise ignored."
    ::= { bgpExtCommListEntry 8 }

------------------------------------------------------------------------------

  bgpCommunityGroupTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_CML
    SYNTAX        SEQUENCE OF BgpCommunityGroupEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "The table of DC-BGP Community Group entries.

                   Each entry in this table contains a single community.

                   A Community List entry with an event type of
                   'community-group' uses a Community Group.  The set of
                   bgpCommunityGroupTable entries corresponding to a
                   bgpCommunityListTable entry are those with the same
                   bgpCommunityListIndex and bgpCommunityListEntryIndex values.

                   This set of entries gives a group of communities.  The
                   ordering of this group of communities is not important,
                   hence we can directly use the community value as the third
                   MIB index for this table."
     ::= { bgpPib 16 }

  bgpCommunityGroupEntry OBJECT-TYPE
    SYNTAX                 BgpCommunityGroupEntry
    MAX-ACCESS             not-accessible
    STATUS                 current
    DESCRIPTION            "Each entry represents a BGP Community"
    INDEX { bgpRmEntIndex,
            bgpCommunityListIndex,
            bgpCommunityListEntryIndex,
            bgpCommunityGroupCommunity}
    ::= { bgpCommunityGroupTable 1 }

  BgpCommunityGroupEntry ::= SEQUENCE {
      bgpCommunityGroupCommunity     BgpCommunity,
      bgpCommunityGroupRowStatus     RowStatus
      }

  bgpCommunityGroupCommunity OBJECT-TYPE
    SYNTAX      BgpCommunity
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The community value to use when matching against or
                 setting the route communities.

                 Note that the community value itself is used as an index
                 field.  This is OK as the order of communities with a
                 Community Group is irrelevant."
    ::= { bgpCommunityGroupEntry 4 }

  bgpCommunityGroupRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete a Community Group entry."
    ::= { bgpCommunityGroupEntry 5 }

------------------------------------------------------------------------------

  bgpExtCommGroupTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_XCML
    SYNTAX        SEQUENCE OF BgpExtCommGroupEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "The table of DC-BGP Extended Community Group entries.

                   Each entry in this table contains a single extended
                   community.

                   An Extended Community List entry with an event type of
                   'community-group' uses an Extended Community Group.  The set
                   of bgpExtCommGroupTable entries corresponding to a
                   bgpExtCommListTable entry are those with the same
                   bgpExtCommListIndex and bgpExtCommListEntryIndex values.

                   This set of entries gives a group of extended communities.
                   The ordering of this group of extended communities is not
                   important, hence we can directly use the extended community
                   value as the third MIB index for this table."
     ::= { bgpPib 17 }

  bgpExtCommGroupEntry OBJECT-TYPE
    SYNTAX                 BgpExtCommGroupEntry
    MAX-ACCESS             not-accessible
    STATUS                 current
    DESCRIPTION            "Each entry represents a BGP Extended Community"
    INDEX { bgpRmEntIndex,
            bgpExtCommListIndex,
            bgpExtCommListEntryIndex,
            bgpExtCommGroupCommunity}
    ::= { bgpExtCommGroupTable 1 }

  BgpExtCommGroupEntry ::= SEQUENCE {
      bgpExtCommGroupCommunity       BgpExtendedCommunity,
      bgpExtCommGroupRowStatus       RowStatus
      }

  bgpExtCommGroupCommunity OBJECT-TYPE
    SYNTAX      BgpExtendedCommunity
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The extended community value to use when matching against
                 or setting the route extended communities.

                 Note that the extended community value itself is used as
                 an index field.  This is OK as the order of extended
                 communities with a Community Group is irrelevant."
    ::= { bgpExtCommGroupEntry 4 }

  bgpExtCommGroupRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete an Extended Community."
    ::= { bgpExtCommGroupEntry 5 }

------------------------------------------------------------------------------

  --
  -- BGP peer status table.
  --
  -- This table reports BGP peer status and statistics.
  --

  bgpPeerStatusTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_PEER_STAT
    SYNTAX      SEQUENCE OF BgpPeerStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "BGP peer status table.

                 This table reports BGP peer status and statistics.  It also
                 allows a user to control BGP peer statistics and peer
                 sessions.

                 This table does not contain any BGP peer configuration -
                 the bgpPeerTable MIB is the BGP peer configuration MIB.

                 This table contains entries for both configured and dynamic
                 peers.

                 For configured peers the corresponding rows in the
                 bgpPeerTable MIB and bgpPeerStatusTable MIB have identical
                 index fields.

                 The lifetime of a BGP peer status entry depends on whether
                 the BGP peer is configured or dynamic.
                 -  The entry for a configured peer is created and destroyed
                 when the corresponding entry in the BGP peer
                 configuration table (bgpPeerTable) is created and
                 destroyed.
                 -  The entry for a dynamic peer is created when the BGP
                 peering session is established.  It is destroyed when
                 the BGP session has terminated and the graceful restart
                 timer has expired.  Unless the BGP session is
                 re-established during the graceful restart period the
                 entry persists for only a short period after BGP
                 session termination, and if graceful restart is not in
                 use then the entry is destroyed as soon as the BGP
                 session terminates."
    ::= { bgpPeerData 4 }

  bgpPeerStatusEntry OBJECT-TYPE
    SYNTAX      BgpPeerStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about the status of a BGP peer."
    INDEX { bgpRmEntIndex,
            bgpPeerLocalAddrType,
            bgpPeerLocalAddr,
            bgpPeerLocalPort,
            bgpPeerRemoteAddrType,
            bgpPeerRemoteAddr,
            bgpPeerRemotePort,
            bgpPeerLocalAddrScopeId}
    ::= { bgpPeerStatusTable 1 }

  BgpPeerStatusEntry ::= SEQUENCE {
      bgpPeerStatusIdentifier                 BgpIdentifier,
      bgpPeerStatusState                      BgpPeerStates,
      bgpPeerStatusDropSession                TruthValue,
      bgpPeerStatusCeaseErrorSubcode          BgpCeaseErrorSubcode,
      bgpPeerStatusDynamicPeer                TruthValue,
      bgpPeerStatusLocalNm                    Unsigned32,
      bgpPeerStatusRemoteAs                   BgpAutonomousSystemNumber,
      bgpPeerStatusPeerIndex                  Unsigned32,
      bgpPeerStatusCapsSupport                TruthValue,
      bgpPeerStatusLastError                  OCTET STRING,
      bgpPeerStatusLastErrorDataLen           Unsigned32,
      bgpPeerStatusLastErrorData              OCTET STRING,
      bgpPeerStatusFsmEstablishedTime         Gauge32,
      bgpPeerStatusInUpdatesElpsTime          Gauge32,
      bgpPeerStatusHoldTime                   Integer32,
      bgpPeerStatusKeepAlive                  Integer32,
      bgpPeerStatusInOpens                    Counter32,
      bgpPeerStatusOutOpens                   Counter32,
      bgpPeerStatusInNotifications            Counter32,
      bgpPeerStatusOutNotifications           Counter32,
      bgpPeerStatusInUpdates                  Counter32,
      bgpPeerStatusOutUpdates                 Counter32,
      bgpPeerStatusInKeepalives               Counter32,
      bgpPeerStatusOutKeepalives              Counter32,
      bgpPeerStatusInRefreshes                Counter32,
      bgpPeerStatusOutRefreshes               Counter32,
      bgpPeerStatusInTotalMessages            Counter32,
      bgpPeerStatusOutTotalMessages           Counter32,
      bgpPeerStatusFsmEstTransitions          Counter32,
      bgpPeerStatusConnectRetryCount          Counter32,
      bgpPeerStatusClearCnts                  TruthValue,
      bgpPeerStatusPeergr                     Unsigned32,
      bgpPeerStatusRtRefresh                  TruthValue,
      bgpPeerStatusStalePathTime              Unsigned32,
      bgpPeerStatusOrfEntryCount              Counter32,
      bgpPeerStatusFlapStatsClearStat         TruthValue,
      bgpPeerStatusFlapStatsClearMap          Unsigned32,
      bgpPeerStatusLastErrorRcvd              OCTET STRING,
      bgpPeerStatusLastErrorRcvdTime          TimeStamp,
      bgpPeerStatusLastErrorSent              OCTET STRING,
      bgpPeerStatusLastErrorSentTime          TimeStamp,
      bgpPeerStatusLastState                  BgpPeerStates,
      bgpPeerStatusLastEvent                  BgpPeerEvents,
      bgpPeerStatusCapsSent                   BgpCapabilities,
      bgpPeerStatusCapsRcvd                   BgpCapabilities,
      bgpPeerStatusCapsNegotiated             BgpCapabilities,
      bgpPeerStatusRstrSupport                BgpPeerRestartSupport,
      bgpPeerStatusRstrFamily                 BgpAfiSafiBits,
      bgpPeerStatusRstrRestarting             TruthValue,
      bgpPeerStatusRstrStatus                 BgpPeerRestartStatus,
      bgpPeerStatusRstrRemTime                TimeInterval,
      bgpPeerStatusRcvdMsgElpsTime            TimeInterval,
      bgpPeerStatusIdleHoldRemTime            TimeInterval,
      bgpPeerStatusRouteRefrSent              Counter32,
      bgpPeerStatusRouteRefrRcvd              Counter32,
      bgpPeerStatusSelLocalAddrType           InetAddressType,
      bgpPeerStatusSelLocalAddr               InetAddress,
      bgpPeerStatusSelLocalPort               InetPortNumber,
      bgpPeerStatusSelRemotePort              InetPortNumber,
      bgpPeerStatusBfdStatus                  BfdSessionStatus,
      bgpPeerStatusSelLocalAs                 BgpAutonomousSystemNumber,
      bgpPeerStatusSelRemoteAs                BgpAutonomousSystemNumber,
      bgpPeerStatusInPrfxes                   Gauge32,
      bgpPeerStatusOutPrfxes                  Gauge32,
      bgpPeerStatusOutPrfxesAdvertised        Gauge32,
      bgpPeerStatusConfigState                BgpPeerConfigStates,
      bgpPeerStatusConfedMember               TruthValue,
      bgpPeerStatusReflectorClient            BgpPeerReflectorClientType,
      bgpPeerStatusTrapEstab                  TruthValue,
      bgpPeerStatusTrapBackw                  TruthValue,
      bgpPeerStatusConnectRetryInt            Unsigned32,
      bgpPeerStatusConfigPassive              TruthValue,
      bgpPeerStatusConfigOpenDelay            Unsigned32,
      bgpPeerStatusConfigIdleHold             Unsigned32,
      bgpPeerStatusTtl                        Integer32,
      bgpPeerStatusConfAltLocalAs             BgpAutonomousSystemNumber,
      bgpPeerStatusConfAltLocalAsMode         INTEGER,
      bgpPeerStatusDisableRouteRefresh        TruthValue,
      bgpPeerStatusBfdDesired                 TruthValue,
      bgpPeerStatusHoldTimeConfigd            Unsigned32,
      bgpPeerStatusKeepAliveConfigd           Unsigned32,
      bgpPeerStatusEbgpBandwidth              Unsigned32,
-- Begin Versa change {
      bgpPeerStatusLastErrorDir               Integer32,
      bgpPeerStatusLastConnUpTimeStamp        OCTET STRING,
      bgpPeerStatusLastConnDownTimeStamp      OCTET STRING,
      bgpPeerStatusHistoryError               OCTET STRING,
      bgpPeerStatusHistoryErrorDir            Integer32,
      bgpPeerStatusHistoryConnUpTimeStamp     OCTET STRING,
      bgpPeerStatusHistoryConnDownTimeStamp   OCTET STRING,
      bgpPeerStatusRemovePrivate              TruthValue,
      bgpPeerStatusAsOverride                 TruthValue,
      bgpPeerStatusRstrStaleNlri              BgpAfiSafiBits,
      bgpPeerStatusBranchName                 OCTET STRING,
      bgpPeerStatusLastErrRcvdTimeStamp       OCTET STRING,
      bgpPeerStatusLastErrSentTimeStamp       OCTET STRING,
-- End Versa change }
      bgpPeerStatusResendAllRoutes            TruthValue,
      bgpPeerStatusOutUpdateElpsTime          Gauge32,
      bgpPeerStatusOutPrfxesDenied            Counter32,
      bgpPeerStatusOutPrfxesImpWdr            Counter32,
      bgpPeerStatusOutPrfxesExpWdr            Counter32,
      bgpPeerStatusInPrfxesImpWdr             Counter32,
      bgpPeerStatusInPrfxesExpWdr             Counter32,
      bgpPeerStatusReceivedHoldTime           Integer32,
      bgpPeerStatusSelRemoteAddrType          InetAddressType,
      bgpPeerStatusSelRemoteAddr              InetAddress
    }

  bgpPeerStatusIdentifier OBJECT-TYPE
    SYNTAX      BgpIdentifier
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The BGP Identifier of this entry's BGP peer.

                 This entry is zero unless the bgpPeerStatusState is in the
                 openconfirm or the established state."
    ::= { bgpPeerStatusEntry 9 }

  bgpPeerStatusState OBJECT-TYPE
    SYNTAX      BgpPeerStates
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The BGP peer's FSM state."
    ::= { bgpPeerStatusEntry 10 }

  bgpPeerStatusDropSession OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this field to 'true' to drop the current session with
                 the BGP peer.  For a dynamic BGP peer this causes the
                 peer status entry to disappear if the BGP session is not
                 re-established within the graceful restart period.

                 Reading the value of this field has no meaning.  The field
                 is not returned on a MIB Get."
    ::= { bgpPeerStatusEntry 11 }

  bgpPeerStatusCeaseErrorSubcode OBJECT-TYPE
    SYNTAX      BgpCeaseErrorSubcode
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The error subcode to be sent in the Cease Notification
                 messages triggered by setting bgpPeerStatusDropSession to
                 'true'.  If set to 'none' then DC-BGP chooses the subcode
                 itself.

                 This field does not affect the error subcode for Cease
                 Notification messages triggered for other reasons."
    DEFVAL      { none }
    ::= { bgpPeerStatusEntry 12 }

  bgpPeerStatusDynamicPeer OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the peer is dynamic (true) or individually
                 configured (false).

                 Configured peers are configured individually in the
                 bgpPeerTable MIB.  The corresponding rows in the
                 bgpPeerTable MIB and bgpPeerStatusTable MIB have identical
                 index fields.

                 Dynamic peers are controlled by the bgpPeerRangeTable MIB.
                 Alternatively individual listen sockets can be configured to
                 accept dynamic peers without restriction by setting
                 bgpNmListenAcceptAll to TRUE."
    ::= { bgpPeerStatusEntry 13 }

  bgpPeerStatusLocalNm OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The entity index of the Neighbor Manager for peering
                 sessions with this peer."
    ::= { bgpPeerStatusEntry 14 }

  bgpPeerStatusRemoteAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The remote autonomous system number in use on the session.
                 For configured peers not yet active, this is the
                 configured value.

                 This value may be different from the current peer MIB
                 value (bgpPeerRemoteAs) if the peer takes its value from a
                 peer group MIB (bgpPeergrRemoteAs) or the MIB which
                 provides the value has been changed since the peer session
                 was started."
    ::= { bgpPeerStatusEntry 15 }

  bgpPeerStatusPeerIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The peer index.

                 The peer index is a unique index for the peer entry in the
                 bgpPeerStatusTable.  It is used to provide an index value
                 for other tables whose data is logically per-peer.

                 The peer index value is fixed until the entry in the
                 bgpPeerStatusTable is destroyed, but it changes if the entry
                 is destroyed and recreated.

                 For a dynamic BGP peer, if the BGP session terminates and
                 then restarts outside the graceful restart period, the
                 bgpPeerStatusTable entry is destroyed and then re-created,
                 causing the peer index value to change."
    ::= { bgpPeerStatusEntry 16 }

  bgpPeerStatusCapsSupport OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not this peer accepted our local capabilities
                 optional parameter sent on the OPEN message.  This field
                 will not be relevant until the peer has reached open_confirm
                 state.  Note that this field indicates support or otherwise
                 of the capabilities optional parameter, not a specific
                 capability."
    ::= { bgpPeerStatusEntry 17 }

  bgpPeerStatusLastError OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (2))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The last error code and subcode sent or received on this
                 connection.  If no error has occurred, this field is zero.
                 Otherwise, the first byte of this two byte OCTET STRING
                 contains the error code, and the second byte contains the
                 subcode."
    ::= { bgpPeerStatusEntry 18 }

  bgpPeerStatusLastErrorDataLen OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The length of the last error data.  If this is zero no
                 error data was provided or generated."
    ::= { bgpPeerStatusEntry 19 }

  bgpPeerStatusLastErrorData OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The last error code's data seen by this peer on this
                 connection."
    ::= { bgpPeerStatusEntry 20 }

  bgpPeerStatusFsmEstablishedTime OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This timer indicates how long in seconds this peer has
                 been in the Established state or how long since this peer
                 was last in the Established state.  It is set to zero when
                 a new peer is configured or the router is booted."
    ::= { bgpPeerStatusEntry 21 }

  bgpPeerStatusInUpdatesElpsTime OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Elapsed time in seconds since the last BGP Update message
                 was received from the peer."
    ::= { bgpPeerStatusEntry 22 }

  bgpPeerStatusHoldTime OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Time interval in seconds for the Hold Timer established
                 with the peer.

                 The Hold Timer interval is calculated by this BGP speaker by
                 using the smaller of the configured bgpPeerHoldTimeConfigd
                 value and the Hold Time received in the OPEN message.

                 For dynamic peers the Hold Timer interval is calculated
                 using the default bgpPeerHoldTimeConfigd value rather than
                 a configured value.

                 A value of zero indicates that the Hold Timer has not been
                 established with the peer."
    ::= { bgpPeerStatusEntry 23 }

  bgpPeerStatusKeepAlive OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Time interval in seconds for the KeepAlive Timer
                 established with the peer.

                 The KeepAlive Timer interval is calculated by this BGP
                 speaker such that, when compared with bgpPeerStatusHoldTime,
                 it has the same proportion as the configured
                 bgpPeerKeepAliveConfigd has when compared with
                 bgpPeerHoldTimeConfigd.

                 For dynamic peers the KeepAlive Timer interval is calculated
                 using the default bgpPeerKeepAliveConfigd and
                 bgpPeerHoldTimeConfigd values rather than configured values.

                 A value of zero indicates that the KeepAlive Timer has not
                 been established with the peer."
    ::= { bgpPeerStatusEntry 24 }

  bgpPeerStatusInOpens OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP OPEN messages received on this
                 connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 25 }

  bgpPeerStatusOutOpens OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP OPEN messages transmitted on this
                 connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 26 }

  bgpPeerStatusInNotifications OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP NOTIFICATION messages received on this
                 connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 27 }

  bgpPeerStatusOutNotifications OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP NOTIFICATION messages transmitted on
                 this connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 28 }

  bgpPeerStatusInUpdates OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP UPDATE messages received on this
                 connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 29 }

  bgpPeerStatusOutUpdates OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP UPDATE messages transmitted on this
                 connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 30 }

  bgpPeerStatusInKeepalives OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP KEEPALIVE messages received on this
                 connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 31 }

  bgpPeerStatusOutKeepalives OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP KEEPALIVE messages transmitted on this
                 connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 32 }

  bgpPeerStatusInRefreshes OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP ROUTE REFRESH messages received on this
                 connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 33 }

  bgpPeerStatusOutRefreshes OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of BGP ROUTE REFRESH messages transmitted on
                 this connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 34 }

  bgpPeerStatusInTotalMessages OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of messages received from the remote peer
                 on this connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 35 }

  bgpPeerStatusOutTotalMessages OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of messages transmitted to the remote
                 peer on this connection.

                 This counter is reset to zero when the peer moves out of oper
                 status Up or when the bgpPeerStatusClearCnts field is set to
                 true."
    ::= { bgpPeerStatusEntry 36 }

  bgpPeerStatusFsmEstTransitions OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of times the BGP FSM transitioned into
                 the established state for this peer."
    ::= { bgpPeerStatusEntry 37 }

  bgpPeerStatusConnectRetryCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current connect retry count of this peer.

                 This is incremented each time the peer session flaps, and is
                 used to determine the time to wait before retrying the
                 session.

                 Note this is only incremented when an active session
                 terminates abnormally, and not when it simply fails to come
                 up.

                 This counter can be cleared by setting the
                 bgpPeerStatusClearCnts field to true.

                 This field is not used for dynamic peers."
    ::= { bgpPeerStatusEntry 38 }

  bgpPeerStatusClearCnts OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this field to 'true' to clear the counters associated
                 with this peer.

                 Reading the value of this field has no meaning.  The field
                 is not returned on a MIB Get."
    ::= { bgpPeerStatusEntry 39 }

  bgpPeerStatusPeergr OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the peer group this neighbor belongs to, or
                 zero if this neighbor does not belong to a peer group.

                 For dynamic peers, this is the peer group index for the
                 peer range that this peer belongs to.  If this peer does
                 not belong to a peer range and was accepted because
                 bgpNmListenAcceptAll is set to true, then this index is
                 zero."
    ::= { bgpPeerStatusEntry 40 }

  bgpPeerStatusRtRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this field to 'true' to trigger sending a route
                 refresh request for this peer.

                 Setting this field will only have an effect if a BGP
                 session to the peer is active.  Peers that do not support
                 route refresh will have their sessions toggled.

                 Reading the value of this field has no meaning.  The field
                 is not returned on a MIB Get."
    DEFVAL { false }
    ::= { bgpPeerStatusEntry 41 }

  bgpPeerStatusStalePathTime OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The maximum time in seconds that DC-BGP will wait
                 following a peer restart or peer session failure before
                 removing stale routes from that peer.

                 This is advertised by the peer in its OPEN message if it
                 supports graceful restart.  If the advertised value is
                 greater than the bgpRmEntMaxRestartTime, then that value
                 will be used in preference.

                 Specifically, this is the maximum duration that RM will wait
                 between the session going down and receiving an end-of-RIB
                 (EOR) marker."
    ::= { bgpPeerStatusEntry 42 }

  bgpPeerStatusOrfEntryCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current number of ORF entries of all types that have
                 been received from the peer."
    ::= { bgpPeerStatusEntry 43 }

  bgpPeerStatusFlapStatsClearStat OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this field to 'true' to clear the bgpFlapStatsFlapcnt
                 in all entries in the bgpNlriTable matching routes from this
                 peer.  This will not unsuppress a suppressed route.

                 If the bgpPeerStatusFlapStatsClearMap field is also set,
                 this defines the Route Map used to determine the set of
                 routes for which the bgpFlapStatsFlapcnt should be reset.
                 If bgpPeerStatusFlapStatsClearMap is not set, all routes
                 from this peer will be reset.

                 Reading the value of this field has no meaning.  The field
                 is not returned on a MIB Get."
    ::= { bgpPeerStatusEntry 44 }

  bgpPeerStatusFlapStatsClearMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This field is set with bgpPeerStatusFlapStatsClearStat to
                 restrict the set of routes for which bgpFlapStatsFlapcnt is
                 reset when bgpPeerStatusFlapStatsClearStat is set.

                 This field is an index to the bgpRouteMapTable.  The
                 bgpFlapStatsFlapcnt in all routes matching the Route Map are
                 cleared.  Entries in the Route Map may be set to permit (to
                 cause a match) or to deny (to prevent a match).

                 Setting this field without bgpPeerStatusFlapStatsClearStat
                 has no meaning.

                 Reading the value of this field has no meaning.  The field
                 is not returned on a MIB Get."
    ::= { bgpPeerStatusEntry 45 }

  bgpPeerStatusLastErrorRcvd OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (2))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The last error code and subcode received from the peer on
                 this connection.

                 If no error has been received from the peer, this field is
                 zero.  Otherwise, the first byte of this two byte OCTET
                 STRING contains the error code, and the second byte contains
                 the subcode."
    ::= { bgpPeerStatusEntry 46 }

  bgpPeerStatusLastErrorRcvdTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The value of sysUpTime when the last error was received
                 from the peer on this connection.

                 If no error has been received from the peer, this field is
                 zero."
    ::= { bgpPeerStatusEntry 47 }

  bgpPeerStatusLastErrorSent OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (2))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The last error code and subcode sent to the peer on this
                 connection.

                 If no error has been sent to the peer, this field is zero.
                 Otherwise, the first byte of this two byte OCTET STRING
                 contains the error code, and the second byte contains the
                 subcode."
    ::= { bgpPeerStatusEntry 48 }

  bgpPeerStatusLastErrorSentTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The value of sysUpTime when the last error was sent to the
                 peer on this connection.

                 If no error has been sent to the peer, this field is zero."
    ::= { bgpPeerStatusEntry 49 }

  bgpPeerStatusLastState OBJECT-TYPE
    SYNTAX      BgpPeerStates
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The BGP peer's previous FSM state."
    ::= { bgpPeerStatusEntry 50 }

  bgpPeerStatusLastEvent OBJECT-TYPE
    SYNTAX      BgpPeerEvents
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The last input to be made to the BGP peer's FSM."
    ::= { bgpPeerStatusEntry 51 }

  bgpPeerStatusCapsSent OBJECT-TYPE
    SYNTAX      BgpCapabilities
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The capabilities announced to the peer on the most recent
                 Open message sent to the peer.  This field is set to zero
                 before the first Open message is sent to the peer, and
                 is unchanged if the session comes down."
    ::= { bgpPeerStatusEntry 52 }

  bgpPeerStatusCapsRcvd OBJECT-TYPE
    SYNTAX      BgpCapabilities
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The capabilities received on the most recent Open message
                 received from the peer.  This field is set to zero before
                 the first Open message is received from the peer, and is
                 unchanged if the session comes down.

                 In the event that the peer signals a capability that DC-BGP
                 does not recognize, this field will only contain those
                 capabilities that DC-BGP recognizes.  A user should walk the
                 bgpPeerCapsRcvdTable to confirm the full list of
                 capabilities received from the peer."
    ::= { bgpPeerStatusEntry 53 }

  bgpPeerStatusCapsNegotiated OBJECT-TYPE
    SYNTAX      BgpCapabilities
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The capabilities negotiated for the session with the peer.
                 This field is set to zero before Open messages have been
                 exchanged with the peer, and is unchanged if the session
                 comes down."
    ::= { bgpPeerStatusEntry 54 }

  bgpPeerStatusRstrSupport OBJECT-TYPE
    SYNTAX      BgpPeerRestartSupport
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the peer supports graceful restart.  This field is
                 set to 'none' before an Open message has been received from
                 a peer, and is unchanged if the session comes down."
    ::= { bgpPeerStatusEntry 55 }

  bgpPeerStatusRstrFamily OBJECT-TYPE
    SYNTAX      BgpAfiSafiBits
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address and subaddress families for which the peer
                 supports graceful restart.  This field is set to zero before
                 an Open message has been received from a peer, and is
                 unchanged if the session comes down."
    ::= { bgpPeerStatusEntry 56 }

  bgpPeerStatusRstrRestarting OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the peer is currently in the process of
                 restarting."
    ::= { bgpPeerStatusEntry 57 }

  bgpPeerStatusRstrStatus OBJECT-TYPE
    SYNTAX      BgpPeerRestartStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current state of the peer's restart processing.  If
                 bgpPeerStatusRstrRestarting is false, this is set to
                 notRestarting."
    ::= { bgpPeerStatusEntry 58 }

  bgpPeerStatusRstrRemTime OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The time remaining in the current restart state, in
                 hundredths of a second.  If bgpPeerStatusRstrStatus is
                 notRestarting, this is set to zero."
    ::= { bgpPeerStatusEntry 59 }

  bgpPeerStatusRcvdMsgElpsTime OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The elapsed time in hundredths of a second since anything
                 was received from this peer.  If nothing has been received
                 from this peer, this field is set to zero.  If the session
                 comes down this value continues to increase."
    ::= { bgpPeerStatusEntry 60 }

  bgpPeerStatusIdleHoldRemTime OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "For a peer in 'idle' state, the time remaining in
                 hundredths of a second until DC-BGP will try to reactivate
                 the connection.  If the peer is not in 'idle' state, this is
                 set to zero."
    ::= { bgpPeerStatusEntry 61 }

  bgpPeerStatusRouteRefrSent OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of Route Refresh messages sent to the peer.

                 If the session comes down this value is unchanged, and will
                 continue to increment if the session is reestablished.

                 However, for dynamic peers the peer status entry is lost
                 if the BGP session is not re-established within the graceful
                 restart period, and in this case the value of this field
                 is lost."
    ::= { bgpPeerStatusEntry 62 }

  bgpPeerStatusRouteRefrRcvd OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of Route Refresh messages received from the
                 peer.

                 If the session comes down this value is unchanged, and will
                 continue to increment if the session is reestablished.

                 However, for dynamic peers the peer status entry is lost
                 if the BGP session is not re-established within the graceful
                 restart period, and in this case the value of this field
                 is lost."
    ::= { bgpPeerStatusEntry 63 }

  bgpPeerStatusSelLocalAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address family of the local address used by the
                 transport connection for the peering session.

                 If a connection exists then this field will be identical
                 to bgpPeerLocalAddrType.

                 A value of none implies that there is currently no
                 connection to this peer."
    ::= { bgpPeerStatusEntry 64 }

  bgpPeerStatusSelLocalAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The local address used by the transport connection for the
                 peering session.

                 If a connection exists and bgpPeerLocalAddr is specified
                 then these two fields will be identical."
    ::= { bgpPeerStatusEntry 65 }

  bgpPeerStatusSelLocalPort OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The local port used by the transport connection for the
                 peering session.

                 If a connection exists and bgpPeerLocalPort is non-zero then
                 these two fields will be identical.

                 A value of zero implies that there is currently no
                 connection to this peer."
    ::= { bgpPeerStatusEntry 66 }

  bgpPeerStatusSelRemotePort OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The remote port used by the transport connection for the
                 peering session.

                 If a connection exists and bgpPeerRemotePort is non-zero
                 then these two fields will be identical.

                 A value of zero implies that there is currently no
                 connection to this peer."
    ::= { bgpPeerStatusEntry 67 }

  bgpPeerStatusBfdStatus OBJECT-TYPE
    SYNTAX      BfdSessionStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "BFD session state for this peer."
    ::= { bgpPeerStatusEntry 68 }

  bgpPeerStatusSelLocalAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The local AS number used on this session.

                 If bgpPeerConfAltLocalAs is set to a non-zero value, then
                 the session might have been set up advertising one of two
                 local AS numbers (bgpRmEntLocalAs or
                 bgpPeerConfAltLocalAs).  This field reports which local AS
                 number was used.

                 If, as normal, bgpPeerConfAltLocalAs is zero, then the AS
                 number advertised for the session (and reported by this
                 field) is bgpRmEntLocalAs.

                 For dynamic peers there is no bgpPeerConfAltLocalAs field
                 so the local AS number used on the session is always
                 bgpRmEntLocalAs.

                 If the bgpPeerStatusState is not 'established', then this
                 field is zero."
    ::= { bgpPeerStatusEntry 69 }

  bgpPeerStatusSelRemoteAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The remote AS number used on this session.

                 If bgpPeerConfAltLocalAs is set to a non-zero value, and
                 if this is an IBGP peer, then the remote peer might have
                 advertised one of two AS numbers (bgpPeerRemoteAs or
                 bgpPeerConfAltLocalAs).  This field reports which AS
                 number was advertised by the remote peer.

                 If bgpPeerConfAltLocalAs is zero, then the AS number
                 advertised by the remote peer (and reported in this
                 this field) must equal bgpPeerRemoteAs.

                 For dynamic peers there is no bgpPeerConfAltLocalAs field
                 so the remote AS number used on the session is always
                 bgpPeerRemoteAs.

                 If the bgpPeerStatusState is not 'established', then this
                 field is zero."
    ::= { bgpPeerStatusEntry 70 }

  bgpPeerStatusInPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of prefixes received from this peer.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 This is equivalent to the sum of bgpPrfxInPrfxes for all
                 AFI/SAFI combinations that this peer supports."
    ::= { bgpPeerStatusEntry 71 }

  bgpPeerStatusOutPrfxes OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of prefixes that are installed in all of this
                 peer's Adj-RIBs-Out.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 This is equivalent to the sum of bgpPrfxOutPrfxes for all
                 AFI/SAFI combinations that this peer supports."
    ::= { bgpPeerStatusEntry 72 }

  bgpPeerStatusOutPrfxesAdvertised OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of prefixes advertised to this peer.

                 When additional paths are enabled, routes with different
                 path ID values count as different prefixes.

                 This is equivalent to the sum of bgpPrfxOutPrfxesAdvertised
                 for all AFI/SAFI combinations that this peer supports.

                 Note that the value of this field may differ from
                 bgpPeerStatusOutPrfxes since that field includes recently
                 withdrawn routes which are undergoing suppression procedures."
    ::= { bgpPeerStatusEntry 73 }

  bgpPeerStatusConfigState OBJECT-TYPE
    SYNTAX      BgpPeerConfigStates
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This field reports the state of the peer configuration.
                 The peer configuration may be in one of the following
                 states.

                 -  Up to date.  That is, all configuration set by MIBs for
                 this peer has been applied to the current peer session
                 (if it exists).

                 -  Out of date, requiring the peer's admin status to be
                 set to down before all the current MIB configuration
                 for this peer can be applied.

                 -  Out of date, requiring the peer's row status to be set
                 to inactive before all the current MIB configuration
                 for this peer can be applied.

                 A peer's configuration can become out of date for several
                 reasons, including the following.

                 -  A field in the bgpPeerTable or bgpPeerAfiSafiTable has
                 changed in the case where the peer uses the value from
                 a Peer Table (not a Peer Group Table) but where the new
                 value cannot be applied while the peer session is
                 active.

                 -  A field in the bgpPeergrTable or bgpPeergrAfiSafiTable
                 has changed in the case where the peer uses the value
                 from a Peer Group Table (not a Peer Table) but where
                 the new value cannot be applied while the peer session
                 is active.  connection has been created or activated.

                 -  The peer setting (bgpPeerConfigUsage) which determines
                 whether the peer uses values from a Peer Table or from
                 a Peer Group Table has been changed."
    ::= { bgpPeerStatusEntry 74 }

  bgpPeerStatusConfedMember OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active value which indicates whether or not
                 the peer is a member of the same confederation that this
                 router is in.

                 This value may be different from the current peer MIB
                 value (bgpPeerConfedMember) if the peer takes its value
                 from a peer group MIB (bgpPeergrConfedMember) or the MIB
                 which provides the value has been changed since the peer
                 session was started."
    ::= { bgpPeerStatusEntry 75 }

  bgpPeerStatusReflectorClient OBJECT-TYPE
    SYNTAX      BgpPeerReflectorClientType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active value which indicates whether the
                 given peer is a reflector client of this router, or not.

                 This value may be different from the current peer MIB
                 value (bgpPeerReflectorClient) if the peer takes its value
                 from a peer group MIB (bgpPeergrReflectorClient) or the
                 MIB which provides the value has been changed since the
                 peer session was started."
    ::= { bgpPeerStatusEntry 76 }

  bgpPeerStatusTrapEstab OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active value which indicates whether or not
                 the Established trap is used.

                 This value may be different from the current peer MIB
                 value (bgpPeerTrapEstab) if the peer takes its value from
                 a peer group MIB (bgpPeergrTrapEstab) or the MIB which
                 provides the value has been changed since the peer session
                 was started."
    ::= { bgpPeerStatusEntry 77 }

  bgpPeerStatusTrapBackw OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active value which indicates whether or not
                 the Backward Transition trap is used.

                 This value may be different from the current peer MIB
                 value (bgpPeerTrapBackw) if the peer takes its value from
                 a peer group MIB (bgpPeergrTrapBackw) or the MIB which
                 provides the value has been changed since the peer session
                 was started."
    ::= { bgpPeerStatusEntry 78 }

  bgpPeerStatusConnectRetryInt OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active time interval for the ConnectRetry
                 timer.

                 This value may be different from the current peer MIB
                 value (bgpPeerConnectRetryInterval) if the peer takes its
                 value from a peer group MIB
                 (bgpPeergrConnectRetryInterval) or the MIB which provides
                 the value has been changed since the peer session was
                 started."
    ::= { bgpPeerStatusEntry 79 }

  bgpPeerStatusConfigPassive OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current active passive flag.  If TRUE, then no
                 outbound connections will be initiated, and only incoming
                 connections will be accepted.  If FALSE, then outbound
                 connections will be attempted to this peer, and incoming
                 connections will be accepted from this peer.

                 This value may be different from the current peer MIB
                 value (bgpPeerConfigPassive) if the peer takes its value
                 from a peer group MIB (bgpPeergrConfigPassive) or the MIB
                 which provides the value has been changed since the peer
                 session was started.

                 For dynamic peers this field is always AMB_TRUE."
    ::= { bgpPeerStatusEntry 80 }

  bgpPeerStatusConfigOpenDelay OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active delay to enforce in between a TCP
                 connection with this peer becoming established and a BGP
                 Open message being sent.

                 This value may be different from the current peer MIB
                 value (bgpPeerConfigOpenDelay) if the peer takes its value
                 from a peer group MIB (bgpPeergrConfigOpenDelay) or the
                 MIB which provides the value has been changed since the
                 peer session was started."
    ::= { bgpPeerStatusEntry 81 }

  bgpPeerStatusConfigIdleHold OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active time to hold this peer in Idle state
                 after a BGP session has progressed beyond Idle state
                 initially and then returned to it.

                 This value may be different from the current peer MIB
                 value (bgpPeerConfigIdleHold) if the peer takes its value
                 from a peer group MIB (bgpPeergrConfigIdleHold) or the MIB
                 which provides the value has been changed since the peer
                 session was started."
    ::= { bgpPeerStatusEntry 82 }

  bgpPeerStatusTtl OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active Time To Live used by the connection
                 on this peer.

                 This value may be different from the current peer MIB
                 value (bgpPeerTtl) if the peer takes its value from a peer
                 group MIB (bgpPeergrTtl) or the MIB which provides the
                 value has been changed since the peer session was started.

                 This always has the value 1 for peers identified only by
                 interface since they must be directly connected."
    ::= { bgpPeerStatusEntry 83 }

  bgpPeerStatusConfAltLocalAs OBJECT-TYPE
    SYNTAX      BgpAutonomousSystemNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active alternative local AS number that can
                 be used to establish a session with this peer.  This is
                 used when merging two ASs into a single AS.

                 This value may be different from the current peer MIB
                 value (bgpPeerConfAltLocalAs) if the peer takes its value
                 from a peer group MIB (bgpPeergrConfAltLocalAs) or the MIB
                 which provides the value has been changed since the peer
                 session was started."
    ::= { bgpPeerStatusEntry 84 }

  bgpPeerStatusConfAltLocalAsMode OBJECT-TYPE
    SYNTAX      INTEGER {
                  mode1(1),
                  mode2(2),
                  mode3(3),
                  mode4(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active AS number mode.

                 This value may be different from the current peer MIB
                 value (bgpPeerConfAltLocalAsMode) if the peer takes its
                 value from a peer group MIB (bgpPeergrConfAltLocalAsMode)
                 or the MIB which provides the value has been changed since
                 the peer session was started."
    ::= { bgpPeerStatusEntry 85 }

  bgpPeerStatusDisableRouteRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active disable route refresh flag.  This
                 indicates whether DC-BGP should advertise support for
                 Route Refresh messages to this peer.

                 This value may be different from the current peer MIB
                 value (bgpPeerDisableRouteRefresh) if the peer takes its
                 value from a peer group MIB (bgpPeergrDisableRouteRefresh)
                 or the MIB which provides the value has been changed since
                 the peer session was started."
    ::= { bgpPeerStatusEntry 86 }

  bgpPeerStatusBfdDesired OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active flag which indicates whether
                 Bidirectional Forwarding Detection (BFD) is desired for
                 this peer.

                 This value may be different from the current peer MIB
                 value (bgpPeerBfdDesired) if the peer takes its value from
                 a peer group MIB (bgpPeergrBfdDesired) or the MIB which
                 provides the value has been changed since the peer session
                 was created."
    ::= { bgpPeerStatusEntry 87 }

  bgpPeerStatusHoldTimeConfigd OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active time interval in seconds for the Hold
                 Time configured for this BGP speaker with this peer.

                 This value may be different from the current peer MIB
                 value (bgpPeerHoldTimeConfigd) if the peer takes its value
                 from a peer group MIB (bgpPeergrHoldTimeConfigd) or the
                 MIB which provides the value has been changed since the
                 peer session was created.

                 The time interval in seconds for the Hold Timer actually
                 established with the peer is given by
                 bgpPeerStatusHoldTime."
    ::= { bgpPeerStatusEntry 88 }

  bgpPeerStatusKeepAliveConfigd OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active time interval in seconds for the
                 KeepAlive configured for this BGP speaker with this peer.

                 This value may be different from the current peer MIB
                 value (bgpPeerKeepAliveConfigd) if the peer takes its
                 value from a peer group MIB (bgpPeergrKeepAliveConfigd) or
                 the MIB which provides the value has been changed since
                 the peer session was created.

                 The time interval in seconds for the KeepAlive actually
                 established with the peer is given by
                 bgpPeerStatusKeepAlive."
    ::= { bgpPeerStatusEntry 89 }

  bgpPeerStatusEbgpBandwidth OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The bandwidth in bytes per second reported for the
                 interface to the peer.

                 This may be zero, indicating unknown or unused, for a
                 number of reasons.
                 -  The peer is not an eBGP peer.
                 -  The interface is not known.
                 -  The bandwidth is not known."
    ::= { bgpPeerStatusEntry 90 }

-- Begin Versa change {
   bgpPeerStatusLastErrorDir OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates whether the last error is due to local
                  or remote node."
    ::= { bgpPeerStatusEntry 91 }

   bgpPeerStatusLastConnUpTimeStamp OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates the last connection up timestamp."
    ::= { bgpPeerStatusEntry 92 }

   bgpPeerStatusLastConnDownTimeStamp OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates the last connection down timestamp."
    ::= { bgpPeerStatusEntry 93 }

   bgpPeerStatusHistoryError OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(2))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates the history error code."
    ::= { bgpPeerStatusEntry 94 }

   bgpPeerStatusHistoryErrorDir OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates whether the history error is due to local
                  or remote node."
    ::= { bgpPeerStatusEntry 95 }

   bgpPeerStatusHistoryConnUpTimeStamp OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates the history connection up timestamp."
    ::= { bgpPeerStatusEntry 96 }

   bgpPeerStatusHistoryConnDownTimeStamp OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates the history connection down timestamp."
    ::= { bgpPeerStatusEntry 97 }

  bgpPeerStatusRemovePrivate OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether private AS numbers are removed from the AS path before
                 sending an update to this peer.  This is only relevant for an
                 eBGP peer."
    DEFVAL { false }
    ::= { bgpPeerStatusEntry 98 }

  bgpPeerStatusAsOverride OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether Neighbor AS numbers are replaced with the local AS number
                 from the AS path before sending an update to this peer.  This is
                 only relevant for an eBGP peer."
    DEFVAL { false }
    ::= { bgpPeerStatusEntry 99 }

  bgpPeerStatusRstrStaleNlri OBJECT-TYPE
    SYNTAX      BgpAfiSafiBits
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address and subaddress families for which the peer
                 supports graceful restart and has stale nlri.  This field is
                 set to zero before an Open message has been received from a
                 peer, and is unchanged if the session comes down."
    ::= { bgpPeerStatusEntry 100 }

   bgpPeerStatusBranchName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates the Branch Name of the Peer."
    ::= { bgpPeerStatusEntry 101 }

   bgpPeerStatusLastErrRcvdTimeStamp OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates the last error recieved timestamp."
    ::= { bgpPeerStatusEntry 102 }

   bgpPeerStatusLastErrSentTimeStamp OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  "This indicates the last error sent timestamp."
    ::= { bgpPeerStatusEntry 103 }
-- End Versa change }

  bgpPeerStatusResendAllRoutes OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this to 'true' to trigger BGP to re-send all routes
                to the peer.  If the peer supports enhanced route refresh,
                then the routes will be sent as an unsolicited enhanced
                route refresh.

                Setting this field will only have an effect if a BGP
                session to the peer is active.

                This field always has the value 'false' when read."
    DEFVAL     { false }
    ::= { bgpPeerStatusEntry 104}

  bgpPeerStatusOutUpdateElpsTime OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Elapsed time in seconds since the last BGP UPDATE message
                was sent to this peer.  Each time bgpPeerStatusOutUpdates
                is incremented, the value of this object is set to zero
                (0)."
    ::= { bgpPeerStatusEntry 105}

  bgpPeerStatusOutPrfxesDenied OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This is the number of prefixes in the Loc-RIB that have
                have failed export policy checks and so have not been
                installed in the Adj-RIB-Out for this peer."
    ::= { bgpPeerStatusEntry 106}

  bgpPeerStatusOutPrfxesImpWdr OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of routes for which an implicit withdraw
                has been sent to this peer.  A route is implicitly
                withdrawn if a replacement route with the same NLRI is
                advertised to the peer."
    ::= { bgpPeerStatusEntry 107}

  bgpPeerStatusOutPrfxesExpWdr OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of routes for which an explicit withdraw
                has been sent to this peer.  A route is explicitly
                withdrawn if it is advertised in the WITHDRAWN ROUTES
                field in an UPDATE message sent to the peer."
    ::= { bgpPeerStatusEntry 108 }

  bgpPeerStatusInPrfxesImpWdr OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of routes that have been implicitly
                withdrawn by this peer.  A route is implicitly withdrawn
                if a replacement route with the same NLRI is received from
                the peer."
    ::= { bgpPeerStatusEntry 109 }

  bgpPeerStatusInPrfxesExpWdr OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of routes that have been explicitly
                withdrawn by this peer.  A route is explicitly withdrawn
                if it is advertised in the WITHDRAWN ROUTES field in an
                UPDATE message received from the peer."
    ::= { bgpPeerStatusEntry 110 }

  bgpPeerStatusReceivedHoldTime OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Hold Time value received in the OPEN message from this
                 peer.

                 A value of zero indicates that no Hold Time has been
                 received from the peer."
    ::= { bgpPeerStatusEntry 111 }

  bgpPeerStatusSelRemoteAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address family of the remote address used by the
                 transport connection for the peering session.

                 If the type is unknown then it is not possible to
                 establish a connection to the peer."
    ::= { bgpPeerStatusEntry 112}

  bgpPeerStatusSelRemoteAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The remote address used by the transport connection for the
                 peering session.

                 If no address is selected then it is not possible to
                 establish a connection to the peer."
    ::= { bgpPeerStatusEntry 113 }

-------------------------------------------------------------------------------

  --
  -- BGP peer <AFI, SAFI> status table.
  --
  -- This table allows a user to control BGP peer AFI/SAFI operations.
  --

  bgpPeerAfiSafiStatusTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_PEER_AS_STAT
    SYNTAX      SEQUENCE OF BgpPeerAfiSafiStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "BGP peer <AFI, SAFI> status table.

                 This table allows a user to control BGP peer AFI/SAFI
                 operations.

                 In future this table may also report BGP peer AFI/SAFI
                 status and statistics.

                 This table does not contain any BGP peer AFI/SAFI
                 configuration - the bgpPeerAfiSafiTable MIB is the BGP
                 peer AFI/SAFI configuration MIB.

                 This table contains entries for both configured and dynamic
                 peers.

                 Rows in this table cannot be created or destroyed manually.
                 A table entry for each supported address family is created
                 automatically when an entry in the bgpPeerStatusTable is
                 created.  The entries are destroyed when the
                 bgpPeerStatusTable entry is destroyed."
    ::= { bgpPeerData 5 }

  bgpPeerAfiSafiStatusEntry OBJECT-TYPE
    SYNTAX      BgpPeerAfiSafiStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about the status of a BGP peer
                 for a particular AFI/SAFI."
    INDEX { bgpRmEntIndex,
            bgpPeerLocalAddrType,
            bgpPeerLocalAddr,
            bgpPeerLocalPort,
            bgpPeerRemoteAddrType,
            bgpPeerRemoteAddr,
            bgpPeerRemotePort,
            bgpPeerLocalAddrScopeId,
            bgpPeerAfiSafiAfi,
            bgpPeerAfiSafiSafi }
    ::= { bgpPeerAfiSafiStatusTable 1 }

  BgpPeerAfiSafiStatusEntry ::= SEQUENCE {
      bgpPeerAfiSafiStRtRefresh              TruthValue,
      bgpPeerAfiSafiStAddPathCapNeg          BgpAddPathSrCap,
      bgpPeerAfiSafiStReflectorClient        BgpPeerReflectorClientType,
      bgpPeerAfiSafiStUpdateGroup            Unsigned32,
      bgpPeerAfiSafiStResendAllRoutes        TruthValue
    }

  bgpPeerAfiSafiStRtRefresh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this to 'true' to trigger BGP to send a Route Refresh
                 request to the peer for this AFI/SAFI.

                 Setting this field will only have an effect if a BGP
                 session to the peer is active.  Peers that do not support
                 route refresh will have their sessions toggled.

                 This field always has the value 'false' when read."
    DEFVAL { false }
    ::= { bgpPeerAfiSafiStatusEntry 11 }

  bgpPeerAfiSafiStAddPathCapNeg OBJECT-TYPE
    SYNTAX      BgpAddPathSrCap
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The BGP additional path capability negotiated with this
                 peer for this AFI/SAFI.

                 Valid values are:
                 -  AMB_BGP_ADD_PATH_SR_DISABLE
                 Disable sending and receiving additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_RECEIVE
                 Receive but do not send additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_SEND
                 Send but do not receive additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_BOTH
                 Send and receive additional BGP paths
                 -  AMB_BGP_ADD_PATH_SR_UNKNOWN
                 Unknown because there is no peer session."
    ::= { bgpPeerAfiSafiStatusEntry 12 }

  bgpPeerAfiSafiStReflectorClient OBJECT-TYPE
    SYNTAX      BgpPeerReflectorClientType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The currently active value which indicates whether the
                 given peer is a reflector client of this router for this
                 AFI/SAFI, or not.

                 This value may be different from the current peer AFI/SAFI
                 MIB value (bgpPeerAfiSafiReflectorClient) if any of the
                 following are true.
                 -  The peer takes its reflector client status from the
                    current peer MIB value (bgpPeerReflectorClient) or from
                    a peer group MIB (bgpPeergrReflectorClient).
                 -  The peer takes its value from a peer group AFI/SAFI MIB
                    (bgpPeergrAfiSafiReflectorClient).
                 -  The MIB which provides the value has been changed since
                    the peer session was started."
    ::= { bgpPeerAfiSafiStatusEntry 13 }

  bgpPeerAfiSafiStUpdateGroup OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the update group that the peer is a member of
                for this AFI/SAFI.

                Zero if the peer is not a member of an update group."
    ::= { bgpPeerAfiSafiStatusEntry 14 }

  bgpPeerAfiSafiStResendAllRoutes OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this to 'true' to trigger BGP to re-send all routes
                to the peer for this AFI/SAFI.  If the peer supports
                enhanced route refresh, then this will be sent as an
                unsolicited enhanced route refresh.

                Setting this field will only have an effect if a BGP
                session to the peer is active.

                This field always has the value 'false' when read."
    DEFVAL { false }
    ::= { bgpPeerAfiSafiStatusEntry 15 }

-------------------------------------------------------------------------------

  bgpUpdateGroup OBJECT IDENTIFIER ::= { bgpMib 11 }

  bgpUpdateGroupTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_UPD_GP
    SYNTAX      SEQUENCE OF BgpUpdateGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table of DC-BGP Update Groups."
    ::= { bgpUpdateGroup 1 }

  bgpUpdateGroupEntry OBJECT-TYPE
    SYNTAX      BgpUpdateGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about
                 a BGP Update Group"
    INDEX { bgpRmEntIndex,
            bgpUpdateGroupIndex }
    ::= { bgpUpdateGroupTable 1 }

  BgpUpdateGroupEntry ::= SEQUENCE {
      bgpUpdateGroupIndex                      Unsigned32,
      bgpUpdateGroupMemberCount                Unsigned32,
      bgpUpdateGroupAfi                        BgpAfi,
      bgpUpdateGroupSafi                       BgpSafi,
      bgpUpdateGroupLocalAddressAfi            BgpAfi,
      bgpUpdateGroupLocalAddressSafi           BgpSafi,
      bgpUpdateGroupLocalAddressLength         Unsigned32,
      bgpUpdateGroupAsSize                     Unsigned32,
      bgpUpdateGroupNeighborInSameAs           TruthValue,
      bgpUpdateGroupConfedMember               TruthValue,
      bgpUpdateGroupConfAltLocalAs             Unsigned32,
      bgpUpdateGroupSelectedLocalAs            Unsigned32,
      bgpUpdateGroupAltLocalAsMode             INTEGER,
      bgpUpdateGroupAggregateConfed            TruthValue,
      bgpUpdateGroupReflectorClient            BgpPeerReflectorClientType,
      bgpUpdateGroupNextHopSelf                BgpNextHopSelf,
      bgpUpdateGroupTPNHEnabled                TruthValue,
      bgpUpdateGroupTPNHAddrType               InetAddressType,
      bgpUpdateGroupTPNHAddrPrefix             InetAddress,
      bgpUpdateGroupTPNHAddrPrefixLen          Unsigned32,
      bgpUpdateGroupPeeringType                BgpPeeringType,
      bgpUpdateGroupSlowPeer                   TruthValue,
      bgpUpdateGroupRmvPrivASNums              TruthValue,
      bgpUpdateGroupCondAdv                    TruthValue,
      bgpUpdateGroupCAAdvMap                   Unsigned32,
      bgpUpdateGroupCANExMap                   Unsigned32,
      bgpUpdateGroupConfExpMap                 Unsigned32,
      bgpUpdateGroupSendComm                   TruthValue,
      bgpUpdateGroupSendExtComm                TruthValue,
      bgpUpdateGroupOrigDflt                   TruthValue,
      bgpUpdateGroupOrigDfltRtMap              Unsigned32,
      bgpUpdateGroupAddPathSend                TruthValue,
      bgpUpdateGroupAddPathBestN               Unsigned32,
      bgpUpdateGroupDistListAclOut             Integer32,
      bgpUpdateGroupDistListPlOut              Integer32,
      bgpUpdateGroupFilterListOut              Unsigned32,
      bgpUpdateGroupExportMapIndex             Unsigned32,
      bgpUpdateGroupExportPreIsAall            TruthValue,
      bgpUpdateGroupExportIpPre                Unsigned32,
      bgpUpdateGroupUseExportLocalPref         TruthValue,
      bgpUpdateGroupExportLocalPref            Unsigned32,
      bgpUpdateGroupMinASOrigInt               Unsigned32,
      bgpUpdateGroupMinRtAdvertiseInt          Unsigned32,
      bgpUpdateGroupMinRtWithdrawInt           Unsigned32,
      bgpUpdateGroupPreserveNh                 TruthValue
    }

  bgpUpdateGroupIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies an update group."
    ::= { bgpUpdateGroupEntry 2 }

  bgpUpdateGroupMemberCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The count of members in this update group.

                 The members can be found by looking in the
                 bgpUpdateGroupMembershipTable."
    ::= { bgpUpdateGroupEntry 3 }

  bgpUpdateGroupAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address family for this update group."
    ::= { bgpUpdateGroupEntry 4 }

  bgpUpdateGroupSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The subsequent address family for this update group."
    ::= { bgpUpdateGroupEntry 5 }

  bgpUpdateGroupLocalAddressAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The AFI of the local address used if next-hop-self is in
                 use."
    ::= { bgpUpdateGroupEntry 6 }

  bgpUpdateGroupLocalAddressSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The SAFI of the local address used if next-hop-self is in
                 use."
    ::= { bgpUpdateGroupEntry 7 }

  bgpUpdateGroupLocalAddressLength OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The length, in bytes, of the local address used if
                 next-hop-self is in use."
    ::= { bgpUpdateGroupEntry 8 }

  bgpUpdateGroupAsSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of bytes (agreed with the neighbor) that are
                 used for AS numbers."
    ::= { bgpUpdateGroupEntry 9 }

  bgpUpdateGroupNeighborInSameAs OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the neighbor is in the same AS as this router."
    ::= { bgpUpdateGroupEntry 10 }

  bgpUpdateGroupConfedMember OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the neighbor is in the same confederation as this
                 router."
    ::= { bgpUpdateGroupEntry 11 }

  bgpUpdateGroupConfAltLocalAs OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The configured alternative local AS number for the session
                 to the peers."
    ::= { bgpUpdateGroupEntry 12 }

  bgpUpdateGroupSelectedLocalAs OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The local AS number for the session to the peers."
    ::= { bgpUpdateGroupEntry 13 }

  bgpUpdateGroupAltLocalAsMode OBJECT-TYPE
    SYNTAX      INTEGER {
                  mode1(1),
                  mode2(2),
                  mode3(3),
                  mode4(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The alternative local AS number mode."
    ::= { bgpUpdateGroupEntry 14 }

  bgpUpdateGroupAggregateConfed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not the neighbor understands aggregated
                 confederation AS_PATH information."
    ::= { bgpUpdateGroupEntry 15 }

  bgpUpdateGroupReflectorClient OBJECT-TYPE
    SYNTAX      BgpPeerReflectorClientType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The peer's type of Route Reflector client."
    ::= { bgpUpdateGroupEntry 16 }

  bgpUpdateGroupNextHopSelf OBJECT-TYPE
    SYNTAX      BgpNextHopSelf
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not next-hop-self is configured."
    ::= { bgpUpdateGroupEntry 17 }

  bgpUpdateGroupTPNHEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not third-party next hop is enabled."
    ::= { bgpUpdateGroupEntry 18 }

  bgpUpdateGroupTPNHAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The third-party next hop address type."
    ::= { bgpUpdateGroupEntry 19 }

  bgpUpdateGroupTPNHAddrPrefix OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Prefix to match on for third-party next hop.
                 The prefix length is specified by
                 bgpUpdateGroupTPNHAddrPrefixLen.
                 If third-party next hop is disabled for this peer, this
                 field is empty."
    ::= { bgpUpdateGroupEntry 20 }

  bgpUpdateGroupTPNHAddrPrefixLen OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Length in bits of the IP address prefix in the Third Party
                 Next Hop Address Prefix field."
    ::= { bgpUpdateGroupEntry 21 }

  bgpUpdateGroupPeeringType OBJECT-TYPE
    SYNTAX      BgpPeeringType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The type of peering relationship associated with the peer."
    ::= { bgpUpdateGroupEntry 22 }

  bgpUpdateGroupSlowPeer OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the peer has been marked as slow."
    ::= { bgpUpdateGroupEntry 23 }

  bgpUpdateGroupRmvPrivASNums OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether private AS numbers are removed from the AS path
                 before sending an update to the peer."
    ::= { bgpUpdateGroupEntry 24 }

  bgpUpdateGroupCondAdv OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether conditional advertisement is enabled."
    ::= { bgpUpdateGroupEntry 25 }

  bgpUpdateGroupCAAdvMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the route map used as the advertise map for
                 conditional advertisement."
    ::= { bgpUpdateGroupEntry 26 }

  bgpUpdateGroupCANExMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the route map used as the non-exist map for
                 conditional advertisement."
    ::= { bgpUpdateGroupEntry 27 }

  bgpUpdateGroupConfExpMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the route map used for filtering exported
                 routes, specified in the peer's configuration."
    ::= { bgpUpdateGroupEntry 28 }

  bgpUpdateGroupSendComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not to send BGP community attributes."
    ::= { bgpUpdateGroupEntry 29 }

  bgpUpdateGroupSendExtComm OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether or not to send BGP extended community attributes."
    ::= { bgpUpdateGroupEntry 30 }

  bgpUpdateGroupOrigDflt OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether BGP should originate a default route."
    ::= { bgpUpdateGroupEntry 31 }

  bgpUpdateGroupOrigDfltRtMap OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the route map that is used for default
                 routes.  This is zero if originate_default is false."
    ::= { bgpUpdateGroupEntry 32 }

  bgpUpdateGroupAddPathSend OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The negotiated BGP additional path (ADD-PATH) send
                 capability."
    ::= { bgpUpdateGroupEntry 33 }

  bgpUpdateGroupAddPathBestN OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of best paths to advertise to these peers as
                 additional paths."
    ::= { bgpUpdateGroupEntry 34 }

  bgpUpdateGroupDistListAclOut OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Access List index identifying the Access List used
                 to filter routes advertised.  Zero indicates no Access
                 List."
    ::= { bgpUpdateGroupEntry 35 }

  bgpUpdateGroupDistListPlOut OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Prefix List index identifying the Prefix List used to
                 filter routes advertised.  Zero indicates no Prefix List."
    ::= { bgpUpdateGroupEntry 36 }

  bgpUpdateGroupFilterListOut OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The Filter List index identifying the Filter List used to
                 filter routes advertised.  Zero indicates no Filter List."
    ::= { bgpUpdateGroupEntry 37 }

  bgpUpdateGroupExportMapIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the route map used for filtering exported
                 routes."
    ::= { bgpUpdateGroupEntry 38 }

  bgpUpdateGroupExportPreIsAall OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the export prefix list is an AALL IP prefix access
                 list."
    ::= { bgpUpdateGroupEntry 39 }

  bgpUpdateGroupExportIpPre OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The index of the prefix list used for route exports."
    ::= { bgpUpdateGroupEntry 40 }

  bgpUpdateGroupUseExportLocalPref OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Whether the peers in this update group have an override
                 local preference value configured."
    ::= { bgpUpdateGroupEntry 41 }

  bgpUpdateGroupExportLocalPref OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The override local preference value used for updates sent
                 to the peers in this group.  Zero if an override value is
                 not in use."
    ::= { bgpUpdateGroupEntry 42 }

  bgpUpdateGroupMinASOrigInt OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Time interval in seconds for determining the minimum
                 amount of time that must elapse between successive
                 advertisements of UPDATE messages that report changes to a
                 route within the advertising BGP speaker's own autonomous
                 system."
    ::= { bgpUpdateGroupEntry 43 }

  bgpUpdateGroupMinRtAdvertiseInt OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Time interval in seconds for the
                 MinRouteAdvertisementInterval timer.  This determines the
                 minimum time between a BGP UPDATE to a peer advertising or
                 withdrawing a route and a subsequent BGP UPDATE to the
                 peer advertising a route to the same destination."
    ::= { bgpUpdateGroupEntry 44 }

  bgpUpdateGroupMinRtWithdrawInt OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Time interval in seconds for the MinRouteWithdrawInterval
                 timer.  This is the interval which is enforced between
                 advertisement and subsequent withdrawal of a route."
    ::= { bgpUpdateGroupEntry 45 }

  bgpUpdateGroupPreserveNh OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Indicates whether the BGP next hop is preserved when
                 forwarding routes to eBGP peers in this update group."
    ::= { bgpUpdateGroupEntry 46 }

-------------------------------------------------------------------------------

  bgpUpdateGroupMembershipTable OBJECT-TYPE
  -- FAMILY-SHORT-NAME BGP_UG_MBR
    SYNTAX      SEQUENCE OF BgpUpdateGroupMembershipEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table of DC-BGP Update Group Members."
    ::= { bgpUpdateGroup 2 }

  bgpUpdateGroupMembershipEntry OBJECT-TYPE
    SYNTAX      BgpUpdateGroupMembershipEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about
                 a BGP Update Group Member"
    INDEX { bgpRmEntIndex,
            bgpUpdateGroupIndex,
            bgpPeerIndex }
    ::= { bgpUpdateGroupMembershipTable 1 }

  BgpUpdateGroupMembershipEntry ::= SEQUENCE {
      bgpUpdGpMbrLocalAddrType                 InetAddressType,
      bgpUpdGpMbrLocalAddr                     InetAddress,
      bgpUpdGpMbrLocalPort                     Unsigned32,
      bgpUpdGpMbrRemoteAddrType                InetAddressType,
      bgpUpdGpMbrRemoteAddr                    InetAddress,
      bgpUpdGpMbrRemotePort                    Unsigned32,
      bgpUpdGpMbrLocalAddrScopeId              Unsigned32,
      bgpUpdGpMbrAfi                           BgpAfi,
      bgpUpdGpMbrSafi                          BgpSafi
    }

  bgpUpdGpMbrLocalAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address family of the local address configured for the
                 peering session.

                 For configured peers this field has the same value as
                 bgpPeerLocalAddrType for the corresponding row in the BGP
                 peer configuration table (bgpPeerTable).

                 For dynamic peers this field is of type other."
    ::= { bgpUpdateGroupMembershipEntry 4 }

  bgpUpdGpMbrLocalAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The local address configured for the peering session, or
                 a zero length address if not specified.

                 For configured peers this field has the same value as
                 bgpPeerLocalAddr for the corresponding row in the BGP peer
                 configuration table (bgpPeerTable).

                 For dynamic peers this field is a zero-length address.

                 The bgpPeerStatusSelLocalPort field shows the local address
                 actually in use."
    ::= { bgpUpdateGroupMembershipEntry 5 }

  bgpUpdGpMbrLocalPort OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The local port configured for the peering session, or zero
                 if not specified.

                 For configured peers this field has the same value as
                 bgpPeerLocalPort for the corresponding row in the BGP peer
                 configuration table (bgpPeerTable).

                 For dynamic peers this field is zero.

                 The bgpPeerStatusSelLocalPort field shows the local port
                 actually in use."

    ::= { bgpUpdateGroupMembershipEntry 6 }

  bgpUpdGpMbrRemoteAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The address family of the remote address for the peering
                 session.

                 For configured peers this field has the same value as
                 bgpPeerRemoteAddrType for the corresponding row in the BGP
                 peer configuration table (bgpPeerTable).

                 For dynamic peers this field is the address type of the
                 remote address as determined from the incoming connection."
    ::= { bgpUpdateGroupMembershipEntry 7 }

  bgpUpdGpMbrRemoteAddr OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The remote address for the peering session.

                 For configured peers this field has the same value as
                 bgpPeerRemoteAddr for the corresponding row in the BGP peer
                 configuration table (bgpPeerTable).

                 For dynamic peers this field is the address of the BGP peer
                 as determined from the incoming connection."
    ::= { bgpUpdateGroupMembershipEntry 8 }

  bgpUpdGpMbrRemotePort OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The remote port configured for the peering session, or
                 zero if not specified.

                 For configured peers this field has the same value as
                 bgpPeerRemotePort for the corresponding row in the BGP peer
                 configuration table (bgpPeerTable).

                 For dynamic peers this field is zero.

                 The bgpPeerStatusSelRemotePort field shows the remote port
                 actually in use."
    ::= { bgpUpdateGroupMembershipEntry 9 }

  bgpUpdGpMbrLocalAddrScopeId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "For a configured peer identified only by interface
                 (bgpPeerLocalAddr and bgpPeerRemoteAddr are both zero),
                 this is the interface index of the local point-to-point
                 interface through which the peer is reachable.

                 For a peer identified by a link-local IPv6 addresses, this
                 is the scope ID of bgpPeerLocalAddr and bgpPeerRemoteAddr.

                 For configured peers this field has the same value as
                 bgpPeerLocalAddrScopeId for the corresponding row in
                 the BGP peer configuration table (bgpPeerTable).

                 For dynamic peers this field is the scope ID of the
                 remote address as determined from the incoming
                 connection."
    ::= { bgpUpdateGroupMembershipEntry 10 }

  bgpUpdGpMbrAfi OBJECT-TYPE
    SYNTAX      BgpAfi
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The AFI of the update group."
    ::= { bgpUpdateGroupMembershipEntry 11 }

  bgpUpdGpMbrSafi OBJECT-TYPE
    SYNTAX      BgpSafi
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The SAFI of the update group."
    ::= { bgpUpdateGroupMembershipEntry 12 }

-------------------------------------------------------------------------------

-- Notifications.

-- The BGP Notification Table

-- The BGP Notification Table records fields that are
-- required for notifications

  bgpNotification OBJECT IDENTIFIER ::= { bgpMib 8 }

  bgpNotificationEntry OBJECT IDENTIFIER
      ::= { bgpNotification 1 }

  bgpNotifPeerLocalAddrType OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "Version of bgpPeerLocalAddrType used for notifications."
  ::= { bgpNotificationEntry 1 }

  bgpNotifPeerLocalAddr OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(0..32))
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "Version of bgpPeerLocalAddr used for notifications."
  ::= { bgpNotificationEntry 2 }

  bgpNotifPeerRemoteAddrType OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "Version of bgpPeerRemoteAddrType used for notifications."
  ::= { bgpNotificationEntry 3 }

  bgpNotifPeerRemoteAddr OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(0..32))
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "Version of bgpPeerRemoteAddr used for notifications."
  ::= { bgpNotificationEntry 4 }

  bgpNotifRmEntIndex OBJECT-TYPE
      SYNTAX      Unsigned32
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "Version of bgpRmEntIndex used for notifications."
  ::= { bgpNotificationEntry 5 }

  bgpNotifPeerLocalPort OBJECT-TYPE
      SYNTAX      InetPortNumber
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "Version of bgpPeerLocalPort used for notifications."
  ::= { bgpNotificationEntry 6 }

  bgpNotifPeerRemotePort OBJECT-TYPE
      SYNTAX      InetPortNumber
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "Version of bgpPeerRemotePort used for notifications."
  ::= { bgpNotificationEntry 7 }

  bgpPeerLastFailureCause OBJECT-TYPE
      SYNTAX BgpPeerLastFailure
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
          "The cause of a Backwards Transition trap.  If this is not
           a Backwards Transition trap this is set to zero."
  ::= { bgpNotificationEntry 8 }

  bgpNotifPeerLocalAddrScopeId OBJECT-TYPE
      SYNTAX      Unsigned32
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "Version of bgpPeerLocalAddrScopeId used for notifications."
  ::= { bgpNotificationEntry 9 }

  bgpRmEntOverLimit OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "AMB_TRUE if DC-BGP's RIB contains more prefixes than the
                   value of bgpRmEntRibSizeWarning defines."
  ::= { bgpNotificationEntry 10 }

  bgpNotifAfi OBJECT-TYPE
      SYNTAX      BgpAfi
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "The AFI for the address family to which this trap relates."
  ::= { bgpNotificationEntry 11 }

  bgpNotifSafi OBJECT-TYPE
      SYNTAX      BgpSafi
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "The SAFI for the subsequent address family to which this
                   trap relates."
  ::= { bgpNotificationEntry 12 }

  bgpNotifPeerOldFsmState OBJECT-TYPE
      SYNTAX      BgpPeerStates
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "The highest previous FSM state achieved since the last
                   AMB_BGP_BACKWARDS MIB TRAP was sent.

                   This is used for the bgpPeerSessionBackward trap and is
                   otherwise set to 'established'."
  ::= { bgpNotificationEntry 13 }

  bgpNotifPeerTenantName OBJECT-TYPE
      SYNTAX      OCTET STRING
      MAX-ACCESS  accessible-for-notify
      STATUS      current
      DESCRIPTION "Tenant Name of the BGP instance."
  ::= { bgpNotificationEntry 14 }

-- Type definitions

  bgpBaseNotifications OBJECT IDENTIFIER ::= { bgpNotifications 0 }

  bgpTrapData NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifPeerLocalAddr,
        bgpNotifPeerLocalAddrType,
        bgpNotifPeerRemoteAddr,
        bgpNotifPeerRemoteAddrType,
        bgpPeerLastError,
        bgpPeerState,
        bgpPeerLocalNm,
        bgpNotifRmEntIndex,
        bgpNotifPeerLocalPort,
        bgpNotifPeerRemotePort,
        bgpPeerLastFailureCause,
        bgpNotifPeerLocalAddrScopeId,
        bgpPeerRstrStatus,
        bgpNotifAfi,
        bgpNotifSafi,
        bgpNotifPeerOldFsmState,
        bgpNotifPeerTenantName
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  DC-BGP
                 will send a trap in the following circumstances:

                 -  When a BGP peer's FSM enters the established state, if
                    bgpPeerTrapEstab is set to 'true' for the peer
                 -  When a BGP peer's FSM moves from a higher numbered state
                    to a lower numbered state, if bgpPeerTrapBackw is set to
                    'true' for the peer
                 -  When the local device changes Graceful Restart helper
                    state for a peer, if bgpPeerTrapGrHelperState is set to
                    'true' for the peer
                 -  When the maximum numbers of prefixes is reached for a
                    peer or an AFI/SAFI of a peer, if bgpPeerTrapPrefix is
                    set to 'true' for the peer and, in the case of the
                    latter,  bgpPeerAfiSafiTrapPrefix is set to 'true' for
                    the AFI/SAFI
                 -  When the prefix threshold is breached for a peer or an
                    AFI/SAFI of a peer, if bgpPeerTrapPrefix is set to 'true'
                    for the peer and, in the case of the latter,
                    bgpPeerAfiSafiTrapPrefix is set to 'true' for the
                    AFI/SAFI
                 -  When the number of prefixes learned for a peer or an
                    AFI/SAFI of a peer drops below the max prefix clear
                    level, if bgpPeerTrapPrefix is set to 'true' for the peer
                    and, in the case of the latter bgpPeerAfiSafiTrapPrefix
                    is set to 'true' for the AFI/SAFI
                 -  When the number of prefixes learned for a peer or an
                    AFI/SAFI of a peer drops below the prefix threshold clear
                    level, if bgpPeerTrapPrefix is set to 'true' for the
                    peer and, in the case of the latter,
                    bgpPeerAfiSafiTrapPrefix is set to 'true' for the
                    AFI/SAFI."
    ::= { bgpBaseNotifications 1 }

  bgpEntTrapData NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifRmEntIndex,
        bgpRmEntOperStatus
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  If
                 bgpRmEntTrapOperState is set to 'true', DC-BGP will send a
                 trap when the local device enters RM operational state 'up',
                 'down' or 'actFailed'."
     ::= { bgpBaseNotifications 2 }

  bgpPeerSessionEstablished NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifPeerLocalAddr,
        bgpNotifPeerLocalAddrType,
        bgpNotifPeerRemoteAddr,
        bgpNotifPeerRemoteAddrType,
        bgpPeerLastError,
        bgpPeerState,
        bgpPeerLocalNm,
        bgpNotifRmEntIndex,
        bgpNotifPeerLocalPort,
        bgpNotifPeerRemotePort,
        bgpPeerLastFailureCause,
        bgpNotifPeerLocalAddrScopeId,
        bgpPeerRstrStatus,
        bgpNotifAfi,
        bgpNotifSafi,
        bgpNotifPeerOldFsmState,
-- Begin Versa change {
        bgpNotifPeerTenantName
-- End Versa change }
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  DC-BGP
                will send a trap when a BGP peer's FSM enters the established
                state, if bgpPeerTrapEstab is set to 'true' for the peer."
    ::= { bgpBaseNotifications 3 }

  bgpPeerSessionBackward NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifPeerLocalAddr,
        bgpNotifPeerLocalAddrType,
        bgpNotifPeerRemoteAddr,
        bgpNotifPeerRemoteAddrType,
        bgpPeerLastError,
        bgpPeerState,
        bgpPeerLocalNm,
        bgpNotifRmEntIndex,
        bgpNotifPeerLocalPort,
        bgpNotifPeerRemotePort,
        bgpPeerLastFailureCause,
        bgpNotifPeerLocalAddrScopeId,
        bgpPeerRstrStatus,
        bgpNotifAfi,
        bgpNotifSafi,
        bgpNotifPeerOldFsmState,
-- Begin Versa change {
        bgpNotifPeerTenantName
-- End Versa change }
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  DC-BGP
                will send a trap when a BGP peer's FSM moves from a higher
                numbered state to a lower numbered state, if bgpPeerTrapBackw
                is set to 'true' for the peer."
    ::= { bgpBaseNotifications 4 }

  bgpPeerAfiSafiMaxPrefix NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifPeerLocalAddr,
        bgpNotifPeerLocalAddrType,
        bgpNotifPeerRemoteAddr,
        bgpNotifPeerRemoteAddrType,
        bgpPeerLastError,
        bgpPeerState,
        bgpPeerLocalNm,
        bgpNotifRmEntIndex,
        bgpNotifPeerLocalPort,
        bgpNotifPeerRemotePort,
        bgpPeerLastFailureCause,
        bgpNotifPeerLocalAddrScopeId,
        bgpPeerRstrStatus,
        bgpNotifAfi,
        bgpNotifSafi,
        bgpNotifPeerOldFsmState,
-- Begin Versa change {
        bgpNotifPeerTenantName
-- End Versa change }
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  DC-BGP
                will send a trap when the maximum numbers of prefixes is
                reached for a peer or, depending upon configuration, an
                AFI/SAFI for a peer.

                This can only be sent if bgpPeerTrapPrefix is set to 'true'
                for the peer in the former case and if
                bgpPeerAfiSafiTrapPrefix is also be set to 'true' in the
                latter case.

                If bgpPeerAfiSafiMaxPrefixClear traps are also enabled then
                subsequent bgpPeerAfiSafiMaxPrefix traps will only be sent
                once a matching bgpPeerAfiSafiMaxPrefixClear trap has been
                sent."
    ::= { bgpBaseNotifications 5 }

  bgpPeerAfiSafiPrefixThreshold NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifPeerLocalAddr,
        bgpNotifPeerLocalAddrType,
        bgpNotifPeerRemoteAddr,
        bgpNotifPeerRemoteAddrType,
        bgpPeerLastError,
        bgpPeerState,
        bgpPeerLocalNm,
        bgpNotifRmEntIndex,
        bgpNotifPeerLocalPort,
        bgpNotifPeerRemotePort,
        bgpPeerLastFailureCause,
        bgpNotifPeerLocalAddrScopeId,
        bgpPeerRstrStatus,
        bgpNotifAfi,
        bgpNotifSafi,
        bgpNotifPeerOldFsmState,
-- Begin Versa change {
        bgpNotifPeerTenantName
-- End Versa change }
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  DC-BGP
                will send a trap when the prefix threshold is breached for
                peer or, depending upon configuration an AFI/SAFI for a
                peer.

                This can only be sent if bgpPeerTrapPrefix is set to
                'true' for the peer in the former case and if
                bgpPeerAfiSafiTrapPrefix is also set to 'true' in the latter
                case.

                If bgpPeerAfiSafiPrfxThrshldClear traps are also enabled
                then subsequent bgpPeerAfiSafiPrefixThreshold traps will
                only be sent once a matching bgpPeerAfiSafiPrfxThrshldClear
                trap has been sent."
    ::= { bgpBaseNotifications 6 }

  bgpEntOperStatusChange NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifRmEntIndex,
        bgpRmEntOperStatus
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  If
                 bgpRmEntTrapOperState is set to 'true', DC-BGP will send a
                 trap when the local device enters RM operational state 'up',
                 'down' or 'actFailed'."
     ::= { bgpBaseNotifications 7 }

  bgpEntRestartHelperChange NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifPeerLocalAddr,
        bgpNotifPeerLocalAddrType,
        bgpNotifPeerRemoteAddr,
        bgpNotifPeerRemoteAddrType,
        bgpPeerLastError,
        bgpPeerState,
        bgpPeerLocalNm,
        bgpNotifRmEntIndex,
        bgpNotifPeerLocalPort,
        bgpNotifPeerRemotePort,
        bgpPeerLastFailureCause,
        bgpNotifPeerLocalAddrScopeId,
        bgpPeerRstrStatus,
        bgpNotifAfi,
        bgpNotifSafi,
        bgpNotifPeerOldFsmState,
-- Begin Versa change {
        bgpNotifPeerTenantName
-- End Versa change }
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  DC-BGP
                will send a trap when the local device changes Graceful Restart
                helper state for a peer, if bgpPeerTrapGrHelperState is set to
                'true' for the peer."
    ::= { bgpBaseNotifications 8 }

  bgpEntRibSizeWarnTrap NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifRmEntIndex,
        bgpRmEntOverLimit
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  Sent
                 when the total number of routes in DC-BGP's Adj-RIBs-In
                 exceeds or drops back below the configured value of
                 bgpRmEntRibSizeWarning (if non-0)."
    ::= { bgpBaseNotifications 9 }

  bgpPeerAfiSafiMaxPrefixClear NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifPeerLocalAddr,
        bgpNotifPeerLocalAddrType,
        bgpNotifPeerRemoteAddr,
        bgpNotifPeerRemoteAddrType,
        bgpPeerLastError,
        bgpPeerState,
        bgpPeerLocalNm,
        bgpNotifRmEntIndex,
        bgpNotifPeerLocalPort,
        bgpNotifPeerRemotePort,
        bgpPeerLastFailureCause,
        bgpNotifPeerLocalAddrScopeId,
        bgpPeerRstrStatus,
        bgpNotifAfi,
        bgpNotifSafi,
        bgpNotifPeerOldFsmState,
-- Begin Versa change {
        bgpNotifPeerTenantName
-- End Versa change }
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  DC-BGP
                 will send a trap when the number of prefixes learned from a
                 peer or, depending upon configuration, an AFI/SAFI from a
                 peer drops below the clear value.

                 This can only be sent if bgpPeerTrapPrefix is set to 'true'
                 for the peer in the former case and if
                 bgpPeerAfiSafiTrapPrefix is also set to 'true' in the latter
                 case.

                 A bgpPeerAfiSafiMaxPrefixClear trap will only be sent if a
                 corresponding bgpPeerAfiSafiMaxPrefix trap has previously
                 been sent."
   ::= { bgpBaseNotifications 10 }

  bgpPeerAfiSafiPrfxThrshldClear NOTIFICATION-TYPE
    OBJECTS {
        bgpNotifPeerLocalAddr,
        bgpNotifPeerLocalAddrType,
        bgpNotifPeerRemoteAddr,
        bgpNotifPeerRemoteAddrType,
        bgpPeerLastError,
        bgpPeerState,
        bgpPeerLocalNm,
        bgpNotifRmEntIndex,
        bgpNotifPeerLocalPort,
        bgpNotifPeerRemotePort,
        bgpPeerLastFailureCause,
        bgpNotifPeerLocalAddrScopeId,
        bgpPeerRstrStatus,
        bgpNotifAfi,
        bgpNotifSafi,
        bgpNotifPeerOldFsmState,
-- Begin Versa change {
        bgpNotifPeerTenantName
-- End Versa change }
     }
    STATUS  current
    DESCRIPTION "Structure used to send trap data to the MIB Manager.  DC-BGP
                 will send a trap when the number of prefixes learned from a
                 peer or, depending upon configuration, an AFI/SAFI from a
                 peer drops below the clear value.

                 This can only be sent if bgpPeerTrapPrefix is set to 'true'
                 for the peer in the former case and if
                 bgpPeerAfiSafiTrapPrefix is also set to 'true' in the latter
                 case.

                 A bgpPeerAfiSafiPrfxThrshldClear trap will only be sent if a
                 corresponding bgpPeerAfiSafiPrefixThreshold trap has
                 previously been sent."
    ::= { bgpBaseNotifications 11 }

-- End of notifications.

-------------------------------------------------------------------------------
-- Begin  Versa Change {
  --
  -- BGP peer debug table.
  --
  -- This table allows a user to control BGP peer Debug operations.
  --

   bgpPeerDebugTable OBJECT-TYPE
    -- FAMILY-SHORT-NAME BGP_PEER_DEBUG
    SYNTAX      SEQUENCE OF BgpPeerDebugEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "BGP peer debug table.

                 This table allows a user to control BGP peer debug
                 operations.

                 This table contains entries for both configured and dynamic
                 peers.

                 Rows in this table can be created or destroyed manually.
                 "
    ::= { bgpPeerData 6 }

  bgpPeerDebugEntry OBJECT-TYPE
    SYNTAX      BgpPeerDebugEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry containing information about the status of a BGP peer
                 debug flags."

    INDEX { bgpRmEntIndex,
            bgpPeerDebugAddrType,
            bgpPeerDebugAddr}
    ::= { bgpPeerDebugTable 1 }

     BgpPeerDebugEntry   ::= SEQUENCE {
         bgpPeerDebugAddrType                InetAddressType,
         bgpPeerDebugAddr                    InetAddress,
         bgpPeerDebugRowStatus               RowStatus,
         bgpPeerDebugDebug                   BgpDebugFlags,
         bgpPeerDebugLevel                   Unsigned32,
         bgpPeerDebugAllFlagsEnabled         TruthValue,
         bgpPeerDebugRxTxFlagsEnabled        TruthValue
     }


  bgpPeerDebugAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The address family of the remote address prefix.

                 Valid values are: ipv4 and ipv6.  Type ipv6 is
                 only accepted if bgpRmEntSupportIpv6 is TRUE."
    ::= { bgpPeerDebugEntry 2 }

  bgpPeerDebugAddr OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This field is used to set peer ip for setting debug flags."
    ::= { bgpPeerDebugEntry  3}

  bgpPeerDebugRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status for this peer range table entry, used to
                 create and destroy table entries."
    ::= { bgpPeerDebugEntry 4}

  bgpPeerDebugDebug OBJECT-TYPE
    SYNTAX      BgpDebugFlags
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set debug flags of BGP Peer."
    ::= { bgpPeerDebugEntry  5}

  bgpPeerDebugLevel OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to set debug level of BGP Peer."
    DEFVAL       { 1 }
    ::= { bgpPeerDebugEntry  6}

  bgpPeerDebugAllFlagsEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to determine all flags enabled."
    DEFVAL       { false }
    ::= { bgpPeerDebugEntry 7}

  bgpPeerDebugRxTxFlagsEnabled OBJECT-TYPE
     SYNTAX               TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This field is used to determine rx/tx flags enabled."
    DEFVAL       { false }
    ::= { bgpPeerDebugEntry 8 }


-- End Versa Change   }
-------------------------------------------------------------------------------


-- Conformance information

  bgpConformance OBJECT IDENTIFIER ::= { bgpMib 9 }

  bgpCompliances OBJECT IDENTIFIER ::= { bgpConformance 1 }
  bgpGroups      OBJECT IDENTIFIER ::= { bgpConformance 2 }

  bgpCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for entities which implement the DC-BGP mib."
     MODULE
     MANDATORY-GROUPS {
        bgpRmEntityGroup,
        bgpRmAfmJoinGroup,
        bgpRmNmGroup,
        bgpNmMjGroup,
        bgpNmEntGroup,
        bgpNmListenGroup,
        bgpPeerGroup,
        bgpPathAttributesGroup,
        bgpPolicyGroup,
        bgpRmAfiSafiGroup,
        bgpOrfCapabilityGroup,
        bgpPeerOrfCapabilityGroup,
        bgpRmArinhJoinGroup,
        bgpPeerRangeGroup,
        bgpAsPathAccessListGroup,
        bgpAsPathAccessListOptionalGroup,
        bgpCommunityListGroup,
        bgpExtCommListGroup,
        bgpCommunityGroupGroup,
        bgpExtCommGroupGroup,
        bgpUpdateGroupGroup,
        bgpUpdateGroupMembershipGroup
        }

    GROUP bgpRmEntityGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the RIB Manager
         Entity Table."

    GROUP bgpRmAfmJoinGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the RM AFM join
         table."

    GROUP bgpRmNmGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the RM NM join
         table."

    GROUP bgpNmMjGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the NM master join
         table."

    GROUP bgpNmEntGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the Neighbor
         Manager Entity table."

    GROUP bgpNmListenGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the Neighbor
         Manager Listen table."

    GROUP bgpPeerGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the Peer tables."

    GROUP bgpPathAttributesGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the Nlri tables."

    GROUP bgpPolicyGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the Policy tables."

    GROUP bgpRmAfiSafiGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the AFI SAFI
         tables."

    GROUP bgpOrfCapabilityGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the ORF Capability
         table."

    GROUP bgpPeerOrfCapabilityGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the Peer ORF
         Capability table."

    GROUP bgpRmEntityOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the RIB Manager Entity table."

    GROUP bgpRmAfmJoinOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the AFM table."

    GROUP bgpRmAfiSafiOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the AFI/SAFI table."

    GROUP bgpNmListenOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the AFM table."

    GROUP bgpPeerOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the Peer table."

    GROUP bgpPathAttributesOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the path attributes tables."

    GROUP bgpPolicyOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the policy tables."

    GROUP bgpNotificationsGroup
    DESCRIPTION
        "The notifications group is completely optional."

    GROUP bgpAdjRibOutGroup
    DESCRIPTION
        "This group contains objects that are read-only, and is
         completely optional."

    GROUP bgpOrfCapabilityOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the ORF Capability table."

    GROUP bgpPeerAfiSafiOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the peer AFI/SAFI table."

    GROUP bgpPeergrAfiSafiOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the peer group AFI/SAFI table."

    GROUP bgpPeerOrfCapabilityOptionalGrp
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the Peer ORF Capability table."

    GROUP bgpRmArinhJoinGroup
    DESCRIPTION
        "This group is mandatory for all agent implementations.  It contains
         mandatory, non-defaultable or read-only objects in the ARI join
         tables."

    GROUP bgpNmEntOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the Neighbor Manager Entity table."

    GROUP bgpNotificationObjectGroup
    DESCRIPTION
        "The objects used to record notification parameters.  This group is
         completely optional."

    GROUP bgpPeerStatusOptionalGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only
         objects in the peer status table."

    GROUP bgpPeerAfiSafiStOptionalGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only
         objects in the peer status AFI/SAFI table."

    GROUP bgpPeerRangeGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only
         objects in the peer range table."

    GROUP bgpPeerRangeOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the peer pange table"

    GROUP bgpAsPathAccessListGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only objects
         in the AS Path Access List table."

    GROUP bgpAsPathAccessListOptionalGroup
    DESCRIPTION
        "This group contains objects that are defaultable and can optionally be
         configured in the AS Path Access List table."

    GROUP bgpCommunityListGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only objects
         in the Community List table."

    GROUP bgpExtCommListGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only objects
         in the ExtendedCommunity List table."

    GROUP bgpCommunityGroupGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only objects
         in the Community Group table."

    GROUP bgpExtCommGroupGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only objects
         in the ExtendedCommunity Group table."

    GROUP bgpUpdateGroupGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only objects
         in the Update Group table."

    GROUP bgpUpdateGroupMembershipGroup
    DESCRIPTION
        "This group contains mandatory, non-defaultable or read-only objects
         in the Update Group Membership table."

    ::= { bgpCompliances 1 }

-- Units of Conformance (Groups)

    bgpRmEntityGroup OBJECT-GROUP
        OBJECTS {
            bgpRmEntRowStatus,
            bgpRmEntAdminStatus,
            bgpRmEntOperStatus,
            bgpRmEntAsSize,
            bgpRmEntLocalAs,
            bgpRmEntLocalIdentifier,
            bgpRmEntI3JoinStatus,
            bgpRmEntI3EntIndex,
            bgpRmEntConfederationId,
            bgpRmEntIpv4ArinhJoinStatus,
            bgpRmEntIpv4ArinhEntIndex,
            bgpRmEntIpv6ArinhJoinStatus,
            bgpRmEntIpv6ArinhEntIndex,
            bgpRmEntNumAroRoutes,
            bgpRmEntPeakNumAroRoutes,
            bgpRmEntTableVersion,
            bgpRmEntHelperOnly
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             RIB Manager Entity table."
        ::= { bgpGroups 1 }

    bgpRmAfmJoinGroup OBJECT-GROUP
        OBJECTS {
            bgpRmAfmRowStatus,
            bgpRmAfmAdminStatus,
            bgpRmAfmOperStatus,
            bgpRmAfmJoinStatus,
            bgpRmAfmRestartTime
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             RM AFM Join table."
        ::= { bgpGroups 2 }

    bgpRmNmGroup OBJECT-GROUP
        OBJECTS {
            bgpRmNmJoinStatus
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             RM NM Join table."
        ::= { bgpGroups 3 }

    bgpNmMjGroup OBJECT-GROUP
        OBJECTS {
            bgpNmMjJoinPartner,
            bgpNmMjPartnerIndex,
            bgpNmMjJoinStatus
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             NM Master Join table."
        ::= { bgpGroups 4 }

    bgpNmEntGroup OBJECT-GROUP
        OBJECTS {
            bgpNmEntRowStatus,
            bgpNmEntAdminStatus,
            bgpNmEntOperStatus,
            bgpNmEntRmIndex,
            bgpNmEntSckIndex
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Neighbor Manager Entity table."
        ::= { bgpGroups 5 }

    bgpNmListenGroup OBJECT-GROUP
        OBJECTS {
            bgpNmListenRowStatus,
            bgpNmListenAdminStatus,
            bgpNmListenOperStatus,
            bgpNmListenAddrType,
            bgpNmListenAddr
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Neighbor Manager Listen table."
        ::= { bgpGroups 6 }

    bgpPeerGroup OBJECT-GROUP
        OBJECTS {
            bgpPeerIdentifier,
            bgpPeerState,
            bgpPeerRowStatus,
            bgpPeerAdminStatus,
            bgpPeerOperStatus,
            bgpPeerLocalNm,
            bgpPeerRemoteAs,
            bgpPeerIndex,
            bgpPeerCapsSupport,
            bgpPeerLastError,
            bgpPeerLastErrorDataLen,
            bgpPeerLastErrorData,
            bgpPeerFsmEstablishedTime,
            bgpPeerInUpdatesElapsedTime,
            bgpPeerHoldTime,
            bgpPeerKeepAlive,
            bgpPeerInUpdates,
            bgpPeerOutUpdates,
            bgpPeerInTotalMessages,
            bgpPeerOutTotalMessages,
            bgpPeerFsmEstablishedTransitions,
            bgpPeerConnectRetryCount,
            bgpPeerCapRcvdValue,
            bgpPeerCapSentValue,
            bgpPeerSelectedLocalAddrType,
            bgpPeerSelectedLocalAddr,
            bgpPeerSelectedLocalPort,
            bgpPeerSelectedRemotePort,
            bgpPeerBfdStatus,
            bgpPrfxInPrfxes,
            bgpPrfxInPrfxesAccepted,
            bgpPrfxInPrfxesRejected,
            bgpPrfxOutPrfxes,
            bgpPrfxOutPrfxesAdvertised,
            bgpPrfxInPrfxesFlapped,
            bgpPrfxInPrfxesFlapSuppressed,
            bgpPrfxInPrfxesFlapHistory,
            bgpPrfxInPrfxesActive,
            bgpPrfxCntrsUserData,
            bgpPrfxInPrfxesDeniedByPol,
            bgpPrfxNumLocRibRoutes,
            bgpPrfxNumLocRibBestRoutes,
            bgpPrfxInPrfxesDeniedMartian,
            bgpPrfxInPrfxesDeniedAsLoop,
            bgpPrfxInPrfxesDeniedNextHop,
            bgpPrfxInPrfxesDeniedAsLength,
            bgpPrfxInPrfxesDeniedCommunity,
            bgpPrfxInPrfxesDeniedLocalOrig,
            bgpPrfxInTotalPrfxes,
            bgpPrfxOutTotalPrfxes,
            bgpPrfxPeerState,
            bgpPrfxOutPrfxesDenied,
            bgpPrfxOutPrfxesImpWdr,
            bgpPrfxOutPrfxesExpWdr,
            bgpPrfxInPrfxesImpWdr,
            bgpPrfxInPrfxesExpWdr,
            bgpPrfxCurPrfxesDeniedByPol
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Peer tables."
        ::= { bgpGroups 7 }

    bgpPathAttributesGroup OBJECT-GROUP
        OBJECTS {
            bgpNlriBest,
            bgpNlriAsSize,
            bgpNlriASPathStr,
            bgpPathAttrOrigin,
            bgpPathAttrNextHop,
            bgpPathAttrMultiExitDisc,
            bgpPathAttrLocalPref,
            bgpPathAttrAtomicAggregate,
            bgpPathAttrAggregatorAS,
            bgpPathAttrAggregatorAddr,
            bgpPathAttrCalcLocalPref,
            bgpPathAttrOrigId,
            bgpPathAttrWeight,
            bgpFlapStatsConfig,
            bgpFlapStatsPenalty,
            bgpFlapStatsFlapcnt,
            bgpFlapStatsSupprsd,
            bgpFlapStatsTimeleft,
            bgpPathAttrUnknownValue,
            bgpPathAttrUnknownUserData,
            bgpPathAttrClusterValue,
            bgpPathAttrClusterUserData,
            bgpPathAttrCommValue,
            bgpPathAttrCommUserData,
            bgpPathAttrExtCommValue,
            bgpPathAttrExtCommUserData,
            bgpNlriEcmp,
            bgpPathAttrAsPathLimAs,
            bgpPathAttrAsPathLimUpper,
            bgpNlriIsActive,
            bgpNlriStale,
            bgpNlriFlapStartTime,
            bgpNlriLinkLocalNextHop,
            bgpPathAttrMEDPrsnt,
            bgpNlriUserData,
            bgpNlriHistory,
            bgpNlriPmsi,
            bgpNlriPmsiActualLen,
            bgpNlriReasonNotBest,
            bgpNlriPeerType,
            bgpNlriRemoteAddrType,
            bgpNlriRemoteAddr,
            bgpNlriRemoteAddrScopeId,
            bgpNlriAggrType,
            bgpNlriOutputInterface,
            bgpNlriCommunities,
            bgpNlriExtCommunities,
            bgpNlriPrefixBest,
            bgpNlriPrefixAsSize,
            bgpNlriPrefixASPathStr,
            bgpNlriPrefixPathAttrOrigin,
            bgpNlriPrefixPathAttrNextHop,
            bgpNlriPrefixPathAttrMultExtDisc,
            bgpNlriPrefixPathAttrLocalPref,
            bgpNlriPrefixPathAttrAtomicAgg,
            bgpNlriPrefixPathAttrAggAS,
            bgpNlriPrefixPathAttrAggAddr,
            bgpNlriPrefixPathAttrCalcLclPref,
            bgpNlriPrefixPathAttrOrigId,
            bgpNlriPrefixPathAttrWeight,
            bgpNlriPrefixFlapStatsConfig,
            bgpNlriPrefixFlapStatsPenalty,
            bgpNlriPrefixFlapStatsFlapcnt,
            bgpNlriPrefixFlapStatsSupprsd,
            bgpNlriPrefixFlapStatsTimeleft,
            bgpNlriPrefixFlapStatsCleardamp,
            bgpNlriPrefixFlapStatsClearstat,
            bgpNlriPrefixEcmp,
            bgpNlriPrefixPathAttrAsPathLimAs,
            bgpNlriPrefixPthAttAsPthLimUpper,
            bgpNlriPrefixIsActive,
            bgpNlriPrefixStale,
            bgpNlriPrefixFlapStartTime,
            bgpNlriPrefixUserData,
            bgpNlriPrefixLinkLocalNextHop,
            bgpNlriPrefixPathAttrMEDPrsnt,
            bgpNlriPrefixHistory,
            bgpNlriPrefixPmsi,
            bgpNlriPrefixPmsiActualLen,
            bgpNlriPrefixReasonNotBest,
            bgpNlriPrefixPeerType,
            bgpNlriPrefixRemoteAddrType,
            bgpNlriPrefixRemoteAddr,
            bgpNlriPrefixRemoteAddrScopeId,
            bgpNlriPrefixAggrType,
            bgpNlriPrefixOutputInterface,
            bgpNlriPrefixCommunities,
            bgpNlriPrefixExtCommunities,
            bgpRcvdNlriAsSize,
            bgpRcvdNlriASPathStr,
            bgpRcvdPathAttrOrigin,
            bgpRcvdPathAttrNextHop,
            bgpRcvdPathAttrMultiExitDisc,
            bgpRcvdPathAttrLocalPref,
            bgpRcvdPathAttrAtomicAggregate,
            bgpRcvdPathAttrAggregatorAS,
            bgpRcvdPathAttrAggregatorAddr,
            bgpRcvdPathAttrOrigId,
            bgpRcvdPathAttrAsPathLimAs,
            bgpRcvdPathAttrAsPathLimUpper,
            bgpRcvdNlriUserData,
            bgpRcvdNlriLinkLocalNextHop,
            bgpRcvdPathAttrMEDPrsnt,
            bgpRcvdPathAccepted,
            bgpRcvdNlriPmsi,
            bgpRcvdNlriPmsiActualLen,
            bgpRcvdNlriOutputInterface,
            bgpRcvdNlriCommunities,
            bgpRcvdNlriExtCommunities,
            bgpRcvdPathAttrUnknownValue,
            bgpRcvdPathAttrUnknownUserData,
            bgpRcvdPathAttrClusterValue,
            bgpRcvdPathAttrClusterUserData,
            bgpRcvdPathAttrCommValue,
            bgpRcvdPathAttrCommUserData,
            bgpRcvdPathAttrExtCommValue,
            bgpRcvdPathAttrExtCommUserData,
            bgpAROPathAttrUnknownValue,
            bgpAROPathAttrUnknownUserData,
            bgpAROPathAttrClusterValue,
            bgpAROPathAttrClusterUserData,
            bgpAROPathAttrCommValue,
            bgpAROPathAttrCommUserData,
            bgpAROPathAttrExtCommValue,
            bgpAROPathAttrExtCommUserData,
            bgpAdjRibOutCommunities,
            bgpAdjRibOutExtCommunities
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Nlri tables."
        ::= { bgpGroups 8 }

    bgpPolicyGroup OBJECT-GROUP
        OBJECTS {
            bgpRouteMapRowStatus,
            bgpRouteMapMaAs,
            bgpRouteMapMaComm,
            bgpRouteMapMaExtComm,
            bgpRouteMapMaAddr,
            bgpRouteMapMaNext,
            bgpRouteMapMaSource,
            bgpRouteMapHitcnt,
            bgpIpPreRowStatus,
            bgpPeergrRowStatus,
            bgpPeergrConfig,
            bgpConfigRowStatus,
            bgpFlapConfigRowStatus,
            bgpAggrRowStatus
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Policy tables."
        ::= { bgpGroups 9 }

    bgpRmEntityOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpRmEntAsSize,
            bgpRmEntClusterId,
            bgpRmEntFlapDeltat,
            bgpRmEntFlapReusemax,
            bgpRmEntFlapReusesize,
            bgpRmEntFlapReusearray,
            bgpRmEntFlapFreemax,
            bgpRmEntNoRefresh,
            bgpRmEntDefLocalPref,
            bgpRmEntAlwaysCompMed,
            bgpRmEntPauseThreshold,
            bgpRmEntAggregateMed,
            bgpRmEntDeterministicMed,
            bgpRmEntMaxIBgpEcmpRoutes,
            bgpRmEntMaxEBgpEcmpRoutes,
            bgpRmEntRestartSupported,
            bgpRmEntMaxRestartTime,
            bgpRmEntRecoveryTime,
            bgpRmEntDoGracefulRestart,
            bgpRmEntSupportIpv6,
            bgpRmEntStrictConfed,
            bgpRmEntOrfSupported,
            bgpRmEntCiscoPrefixSupported,
            bgpRmEntSelectDeferTime,
            bgpRmEntStalePathTime,
            bgpRmEntClearStats,
            bgpRmEntFastExtFallover,
            bgpRmEntRemainDelayTime,
            bgpRmEntPathAttrs,
            bgpRmEntAggSplitHorizon,
            bgpRmEntAggAdvSuppr,
            bgpRmEntUpdateGroups,
            bgpRmEntPhase3DelayTime,
            bgpRmEntTrapOperState,
            bgpRmEntMaxASLimit,
            bgpRmEntRestartTimeLeft,
            bgpRmEntRestartExitReason,
            bgpRmEntAsPathMultipathRelax,
            bgpRmEntAsPathIgnore,
            bgpRmEntPreferExistingRoute,
            bgpRmEntMedMissingAsWorst,
            bgpRmEntMedConfed,
            bgpRmEntDynPeerRestartTime,
            bgpRmEntCheckFirstAsNum,
            bgpRmEntRibSizeWarning,
-- Begin Versa change {
            bgpRmEntRtiName,
-- End Versa change }
            bgpRmEntVrfName,
            bgpRmEntDynPeerLimit,
            bgpRmEntInterClientReflEnabled,
            bgpRmEntConfigRtRefresh,
            bgpRmEntSupportIpv4,
            bgpRmEntUseHalProgramming
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the RIB Manager Entity table."
        ::= { bgpGroups 10 }

    bgpRmAfmJoinOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpRmAfmPartnerIndex,
            bgpRmAfmAfi,
            bgpRmAfmSafi
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the AFM table."
        ::= { bgpGroups 11 }

    bgpNmListenOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpNmListenPort,
            bgpNmListenAcceptAll,
            bgpNmListenAddrScopeId
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the Listen table."
        ::= { bgpGroups 12 }

    bgpPeerOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpPeerReflectorClient,
            bgpPeerTrapEstab,
            bgpPeerTrapBackw,
            bgpPeerConnectRetryInterval,
            bgpPeerHoldTimeConfigd,
            bgpPeerKeepAliveConfigd,
            bgpPeerMinASOriginationInterval,
            bgpPeerMinRouteAdvertiseInterval,
            bgpPeerClearCnts,
            bgpPeerConfigPeergr,
            bgpPeerConfigIndex,
            bgpPeerConfigRtRefresh,
            bgpPeerConfigMaxPrfx,
            bgpPeerConfigDropWarn,
            bgpPeerPassword,
            bgpPeerTtl,
            bgpPeerConfedMember,
            bgpPeerConfigPassive,
            bgpPeerConfigOpenDelay,
            bgpPeerConfigIdleHold,
            bgpPeerCheckFirstAsNum,
            bgpPeerAggrInclConfedAS,
            bgpPeerMinRouteWithdrawInterval,
            bgpPeerStalePathTime,
            bgpPeerCheckNextHop,
            bgpPeerMaxOrfEntries,
            bgpPeerOrfEntryCount,
            bgpPeerPeeringType,
            bgpPeerSoftResetWithStoredInfo,
            bgpPeerAllowLocalAs,
            bgpPeerDisableSenderLoopDetect,
            bgpPeerDisableRouteRefresh,
            bgpPeerFlapStatsClearStat,
            bgpPeerFlapStatsClearMap,
            bgpPeerLastErrorRcvd,
            bgpPeerLastErrorRcvdTime,
            bgpPeerLastErrorSent,
            bgpPeerLastErrorSentTime,
            bgpPeerLastState,
            bgpPeerLastEvent,
            bgpPeerCapsSent,
            bgpPeerCapsRcvd,
            bgpPeerCapsNegotiated,
            bgpPeerRstrSupport,
            bgpPeerRstrFamily,
            bgpPeerRstrRestarting,
            bgpPeerRstrStatus,
            bgpPeerRstrRemTime,
            bgpPeerRcvdMsgElapsedTime,
            bgpPeerIdleHoldRemTime,
            bgpPeerRouteRefrSent,
            bgpPeerRouteRefrRcvd,
            bgpPeerLastFailureCause,
            bgpPeerNxtHopSlf,
            bgpPeerThirdPtyNxtHop,
            bgpPeerNxtHopPeer,
            bgpPeerTrapPrefix,
            bgpPeerConfigThreshold,
            bgpPeerMaxPrfxHold,
            bgpPeerBfdDesired,
            bgpPeerCeaseErrorSubcode,
            bgpPeerConfAltLocalAs,
            bgpPeerSelectedLocalAs,
            bgpPeerSelectedRemoteAs,
            bgpPeerInPrfxes,
            bgpPeerOutPrfxes,
            bgpPeerOutPrfxesAdvertised,
            bgpPeerTrapGrHelperState,
            bgpPeerEnableAttributeDiscard,
            bgpPeerConfAltLocalAsMode,
            bgpPeerSendComm,
            bgpPeerSendExtComm,
            bgpPeerConfigUsage,
            bgpPeerWeight,
            bgpPeerFallover,
            bgpPeerConfigUsage2,
            bgpPeerDmzLink,
-- Begin Versa change {
            bgpPeerRemovePrivate,
-- End Versa change }
            bgpPeerDistListAclIn,
            bgpPeerDistListAclOut,
            bgpPeerDistListPlIn,
            bgpPeerDistListPlOut,
            bgpPeerFilterListIn,
            bgpPeerFilterListOut,
            bgpPeerAsOverride,
            bgpPeerAddrSourceIf,
            bgpPeerUseImportLocalPref,
            bgpPeerImportLocalPref,
            bgpPeerUseExportLocalPref,
            bgpPeerExportLocalPref,
            bgpPeerSlowPeer,
            bgpPeerConfigUsage3,
            bgpPeerAddrSourceType,
            bgpPeerAddrSource,
            bgpPeerMaxPrfxClear,
            bgpPeerPrfxThresholdClear,
            bgpPeerTtlSecurityMinTtl,
            bgpPeerRemovePrivateAs
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the Peer table."
        ::= { bgpGroups 13 }

    bgpPathAttributesOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpFlapStatsCleardamp,
            bgpFlapStatsClearstat
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the path attributes tables."
        ::= { bgpGroups 14 }

    bgpPolicyOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpRouteMapMaAfi,
            bgpRouteMapMaAfiDef,
            bgpRouteMapMaSafi,
            bgpRouteMapMaSafiDef,
            bgpRouteMapMaMed,
            bgpRouteMapMaMedDef,
            bgpRouteMapMaUser,
            bgpRouteMapSeAs,
            bgpRouteMapSeAsAct,
            bgpRouteMapSeComm,
            bgpRouteMapSeCommAct,
            bgpRouteMapSeExtComm,
            bgpRouteMapSeExtCommAct,
            bgpRouteMapSeLocPref,
            bgpRouteMapSeLocPrefDef,
            bgpRouteMapSeMed,
            bgpRouteMapSeMedDef,
            bgpRouteMapSeNext,
            bgpRouteMapSeOrigin,
            bgpRouteMapSeOriginDef,
            bgpRouteMapSeWeight,
            bgpRouteMapSeWeightDef,
            bgpRouteMapSeFlap,
            bgpRouteMapSeUser,
            bgpRouteMapClearcnt,
            bgpRouteMapUserInfo,
            bgpRouteMapType,
            bgpRouteMapContinue,
            bgpRouteMapOrfAssoc,
            bgpRouteMapSeAsLimUpper,
            bgpRouteMapSeAsLimDef,
            bgpRouteMapMaOrigin,
            bgpRouteMapMaOriginDef,
            bgpRouteMapSeMedDelta,
            bgpRouteMapSeMedDeltaTyp,
            bgpRouteMapSeMedIgp,
            bgpRouteMapSeAsPrependCount,
            bgpRouteMapSeAsPrependSize,
            bgpRouteMapSeAsPrependAsVals,
            bgpRouteMapMaAnd,
            bgpRouteMapAsPathList,
            bgpRouteMapMaCommList,
            bgpRouteMapCommListExact,
            bgpRouteMapMaExtCommList,
            bgpRouteMapExtCommListExact,
            bgpRouteMapMaAddrAallPre,
            bgpRouteMapMaNextAallPre,
            bgpRouteMapMaSourceAallPre,
            bgpRouteMapSeCommListDel,
            bgpRouteMapSeCommListAdd,
            bgpRouteMapSeXCommListDel,
            bgpRouteMapSeXCommListAdd,
            bgpRouteMapMaLocPref,
            bgpRouteMapMaLocPrefDef,
            bgpRouteMapSeAsRemove,
            bgpRouteMapSeLocalDiscard,
            bgpRouteMapSeNextHopPeer,
            bgpIpPreAfi,
            bgpIpPreSafi,
            bgpIpPreAddr,
            bgpIpPreLen,
            bgpIpPreGe,
            bgpIpPreLe,
            bgpIpPreType,
            bgpPeergrArea,
            bgpPeergrAggrConfedAS,
            bgpPeergrSoftResetWithStoredInfo,
            bgpPeergrAllowLocalAs,
            bgpPeergrDisableSenderLoopDetect,
            bgpPeergrNxtHopSlf,
            bgpPeergrThirdPtyNxtHop,
            bgpPeergrNxtHopPeer,
            bgpPeergrEnableAttributeDiscard,
            bgpPeergrSendComm,
            bgpPeergrSendExtComm,
            bgpPeergrPassword,
            bgpPeergrReflectorClient,
            bgpPeergrHoldTimeConfigd,
            bgpPeergrKeepAliveConfigd,
            bgpPeergrTtl,
            bgpPeergrMinRteAdvertiseInterval,
            bgpPeergrMinRteWithdrawInterval,
            bgpPeergrConfigMaxPrfx,
            bgpPeergrConfAltLocalAs,
            bgpPeergrWeight,
            bgpPeergrFallover,
            bgpPeergrRemoteAs,
            bgpPeergrCheckFirstAsNum,
            bgpPeergrConfedMember,
            bgpPeergrTrapEstab,
            bgpPeergrTrapBackw,
            bgpPeergrConnectRetryInterval,
            bgpPeergrMinASOriginationInt,
            bgpPeergrConfigDropWarn,
            bgpPeergrConfigPassive,
            bgpPeergrConfigOpenDelay,
            bgpPeergrConfigIdleHold,
            bgpPeergrCheckNextHop,
            bgpPeergrMaxOrfEntries,
            bgpPeergrPeeringType,
            bgpPeergrDisableRouteRefresh,
            bgpPeergrTrapPrefix,
            bgpPeergrConfigThreshold,
            bgpPeergrMaxPrfxHold,
            bgpPeergrTrapGrHelperState,
            bgpPeergrConfAltLocalAsMode,
            bgpPeergrBfdDesired,
            bgpPeergrDmzLink,
            bgpPeergrDistListAclIn,
            bgpPeergrDistListAclOut,
            bgpPeergrDistListPlIn,
            bgpPeergrDistListPlOut,
            bgpPeergrFilterListIn,
            bgpPeergrFilterListOut,
            bgpPeergrAsOverride,
            bgpPeergrAddrSourceIf,
            bgpPeergrUseImportLocalPref,
            bgpPeergrImportLocalPref,
            bgpPeergrUseExportLocalPref,
            bgpPeergrExportLocalPref,
            bgpPeergrSlowPeer,
            bgpPeergrAddrSourceType,
            bgpPeergrAddrSource,
            bgpPeergrMaxPrfxClear,
            bgpPeergrPrfxThresholdClear,
            bgpPeergrTtlSecurityMinTtl,
            bgpPeergrRemovePrivateAs,
            bgpPeergrResetPeerOnCfgChange,
            bgpConfigImportMap,
            bgpConfigExportMap,
            bgpConfigAdvertiseMap,
            bgpConfigNonExistMap,
            bgpConfigBlockCondAdv,
            bgpConfigRemove,
            bgpConfigCondAdvOn,
            bgpFlapConfigCut,
            bgpFlapConfigReuse,
            bgpFlapConfigThold,
            bgpFlapConfigDecayok,
            bgpFlapConfigDecayng,
            bgpFlapConfigTmaxok,
            bgpFlapConfigTmaxng,
            bgpAggrOptions,
            bgpAggrSuppressMap,
            bgpAggrExcludeMap,
            bgpAggrAttributeMap,
            bgpAggrPermanent,
            bgpAggrProgramRejectRoute,
            bgpAggrInheritMap
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the policy tables."
        ::= { bgpGroups 15 }

    bgpNotificationsGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
            bgpTrapData,
            bgpEntTrapData,
            bgpPeerSessionEstablished,
            bgpPeerSessionBackward,
            bgpPeerAfiSafiMaxPrefix,
            bgpPeerAfiSafiPrefixThreshold,
            bgpEntOperStatusChange,
            bgpEntRestartHelperChange,
            bgpEntRibSizeWarnTrap,
            bgpPeerAfiSafiPrefixThreshold,
            bgpPeerAfiSafiMaxPrefixClear,
            bgpPeerAfiSafiPrfxThrshldClear
        }
        STATUS  current
        DESCRIPTION
            "The notifications group is completely optional."
        ::= { bgpGroups 16 }

    bgpObsoleteGroup OBJECT-GROUP
        OBJECTS {
            bgpConfigRtgrimpe,
            bgpConfigRtgrimde,
            bgpConfigRtgrexpe,
            bgpConfigRtgrexde,
            bgpConfigDefImport,
            bgpConfigDefExport,
            bgpConfigNxtHopSlf,
            bgpConfigThirdPtyNxtHop,
            bgpConfigNxtHopPeer,
            bgpRmEntNhrJoinStatus,
            bgpRmEntNhrEntIndex,
            bgpRmEntIpv4UniFwdPrsrvd,
            bgpRmEntIpv4MultiFwdPrsrvd,
            bgpRmEntVpnIpv4FwdPrsrvd,
            bgpRmEntIpv4MultiSupport,
            bgpRmEntVpnIpv4Support
        }
        STATUS obsolete
        DESCRIPTION
            "This group contains obsolete objects."
        ::= { bgpGroups 17 }

    bgpRmAfiSafiGroup OBJECT-GROUP
        OBJECTS {
            bgpRmAfiSafiAdminStatus,
            bgpRmAfiSafiLocRibBlocked,
            bgpRmAfiSafiAdvertiseInactive,
            bgpRmAfiSafiIbgpPrefixes,
            bgpRmAfiSafiEbgpPrefixes,
            bgpRmAfiSafiRedistPrefixes,
            bgpRmAfiSafiInPrfxes,
            bgpRmAfiSafiInPrfxesAccepted,
            bgpRmAfiSafiInPrfxesRejected,
            bgpRmAfiSafiOutPrfxes,
            bgpRmAfiSafiOutPrfxesAdvertised,
            bgpRmAfiSafiInPrfxesActive,
            bgpRmAfiSafiInPrfxesFlapped,
            bgpRmAfiSafiInPrfxesFlapSuppr,
            bgpRmAfiSafiInPrfxesFlapHistory,
            bgpRmAfiSafiDefaultImportRule,
            bgpRmAfiSafiUserData,
            bgpRmAfiSafiInPrfxesDeniedByPol,
            bgpRmAfiSafiNumLocRibRoutes,
            bgpRmAfiSafiNextHopSafi,
            bgpRmAfiSafiNumLocRibBestRoutes,
            bgpRmAfiSafiAddPathCapCfg,
            bgpRmAfiSafiAddPathBestN,
            bgpRmAfiSafiCheckMartians,
            bgpRmAfiSafiDefaultMetric,
            bgpRmAfiSafiFlapConfigIndex,
            bgpRmAfiSafiFlapConfigMap,
            bgpRmAfiSafiIGPMetricIgnore,
            bgpRmAfiSafiNumLocRibNextHops,
            bgpRmAfiSafiNumLocRibECMPRoutes,
            bgpRmAfiSafiTotNumPrefixAllocs,
            bgpRmAfiSafiTotNumRouteAllocs,
            bgpRmAfiSafiTotNumPrefixFrees,
            bgpRmAfiSafiTotNumRouteFrees
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             AFI SAFI tables."
        ::= { bgpGroups 18 }

    bgpRmAfiSafiOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpRmAfiSafiStateKept,
            bgpRmAfiSafiAfmRequired,
            bgpRmAfiSafiMaExtCommList,
            bgpRmAfiSafiMaxIBgpEcmpRoutes,
            bgpRmAfiSafiMaxEBgpEcmpRoutes,
            bgpRmAfiSafiInstallBestNPaths
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the AFI SAFI table."
        ::= { bgpGroups 19 }

    bgpAdjRibOutGroup OBJECT-GROUP
        OBJECTS {
            bgpAdjRibOutAdvertStatus,
            bgpAdjRibOutLocalAggrType,
            bgpAdjRibOutAsSize,
            bgpAdjRibOutASPathStr,
            bgpAdjRibOutOrigin,
            bgpAdjRibOutNextHop,
            bgpAdjRibOutMultiExitDisc,
            bgpAdjRibOutLocalPref,
            bgpAdjRibOutAtomicAggregate,
            bgpAdjRibOutAggregatorAS,
            bgpAdjRibOutAggregatorAddr,
            bgpAdjRibOutOrigId,
            bgpAdjRibOutAsLimAs,
            bgpAdjRibOutAsLimUpper,
            bgpAdjRibOutUserData,
            bgpAdjRibOutEcmp,
            bgpAdjRibOutStale,
            bgpAdjRibOutLinkLocalNextHop,
            bgpAdjRibOutMEDPrsnt,
            bgpAdjRibOutRemoteAddrType,
            bgpAdjRibOutRemoteAddr,
            bgpAdjRibOutRemoteAddrScopeId,
            bgpAdjRibOutPmsi,
            bgpAdjRibOutPmsiActualLen
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are read-only, and is
             completely optional."
        ::= { bgpGroups 20 }

    bgpOrfCapabilityGroup OBJECT-GROUP
        OBJECTS {
            bgpOrfCapabilityAdminStatus
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             ORF Capability table."
        ::= { bgpGroups 21 }

    bgpOrfCapabilityOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpOrfCapabilitySendReceive
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the ORF Capability table."
        ::= { bgpGroups 22 }

    bgpPeerAfiSafiOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpPeerAfiSafiDisable,
            bgpPeerAfiSafiConfigRtRefresh,
            bgpPeerAfiSafiAllowLocalAs,
            bgpPeerAfiSafiDisableSndLpDetect,
            bgpPeerAfiSafiNxtHopSlf,
            bgpPeerAfiSafiOrigDefault,
            bgpPeerAfiSafiOrigDefaultRtMap,
            bgpPeerAfiSafiSoftResetStore,
            bgpPeerAfiSafiConfigMaxPrfx,
            bgpPeerAfiSafiConfigDropWarn,
            bgpPeerAfiSafiTrapPrefix,
            bgpPeerAfiSafiConfigThreshold,
            bgpPeerAfiSafiMaxPrfxHold,
            bgpPeerAfiSafiMaxOrfEntries,
            bgpPeerAfiSafiAddPathCapCfg,
            bgpPeerAfiSafiAddPathCapNeg,
            bgpPeerAfiSafiAddPathBestN,
            bgpPeerAfiSafiImportMap,
            bgpPeerAfiSafiExportMap,
            bgpPeerAfiSafiImportIpPre,
            bgpPeerAfiSafiExportIpPre,
            bgpPeerAfiSafiImportIpAallPre,
            bgpPeerAfiSafiExportIpAallPre,
            bgpPeerAfiSafiReflectorClient,
            bgpPeerAfiSafiAsOverride,
            bgpPeerAfiSafiMinASOrigInt,
            bgpPeerAfiSafiMinRteAdvertInt,
            bgpPeerAfiSafiMinRteWithdrawInt,
            bgpPeerAfiSafiSendComm,
            bgpPeerAfiSafiSendExtComm,
            bgpPeerAfiSafiConfigUsage,
            bgpPeerAfiSafiMaxPrfxClear,
            bgpPeerAfiSafiPrfxThrsholdClear,
            bgpPeerAfiSafiPreserveNh,
            bgpPeerAfiSafiAcceptRmtNxtHop,
            bgpPeerAfiSafiConfigFromGr
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the peer AFI/SAFI table."
        ::= { bgpGroups 23 }

    bgpPeergrAfiSafiOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpPeergrAfiSafiAllowLocalAs,
            bgpPeergrAfiSafiDisSndLpDetect,
            bgpPeergrAfiSafiNxtHopSlf,
            bgpPeergrAfiSafiOrigDefault,
            bgpPeergrAfiSafiOrigDefaultRtMap,
            bgpPeergrAfiSafiSoftResetStore,
            bgpPeergrAfiSafiAddPathCapCfg,
            bgpPeergrAfiSafiAddPathBestN,
            bgpPeergrAfiSafiConfigMaxPrfx,
            bgpPeergrAfiSafiImportMap,
            bgpPeergrAfiSafiExportMap,
            bgpPeergrAfiSafiImportIpPre,
            bgpPeergrAfiSafiExportIpPre,
            bgpPeergrAfiSafiConfigDropWarn,
            bgpPeergrAfiSafiMaxOrfEntries,
            bgpPeergrAfiSafiTrapPrefix,
            bgpPeergrAfiSafiConfigThreshold,
            bgpPeergrAfiSafiMaxPrfxHold,
            bgpPeergrAfiSafiImportIpAallPre,
            bgpPeergrAfiSafiExportIpAallPre,
            bgpPeergrAfiSafiReflectorClient,
            bgpPeergrAfiSafiAsOverride,
            bgpPeergrAfiSafiDisable,
            bgpPeergrAfiSafiMinASOrigInt,
            bgpPeergrAfiSafiMinRteAdvertInt,
            bgpPeergrAfiSafiMinRteWthdrawInt,
            bgpPeergrAfiSafiSendComm,
            bgpPeergrAfiSafiSendExtComm,
            bgpPeergrAfiSafiConfigUsage,
            bgpPeergrAfiSafiMaxPrfxClear,
            bgpPeergrAfiSafiPrfxThreshClear,
            bgpPeergrAfiSafiPreserveNh,
            bgpPeergrAfiSafiAcceptRmtNxtHop
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the peer group AFI/SAFI table."
        ::= { bgpGroups 24 }

    bgpPeerOrfCapabilityGroup OBJECT-GROUP
        OBJECTS {
            bgpPeerOrfCapabilityAdminStatus
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Peer ORF Capability table."
        ::= { bgpGroups 25 }

    bgpPeerOrfCapabilityOptionalGrp OBJECT-GROUP
        OBJECTS {
            bgpPeerOrfCapabilitySendReceive
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the Peer ORF Capability table."
        ::= { bgpGroups 26 }

    bgpRmArinhJoinGroup OBJECT-GROUP
        OBJECTS {
            bgpRmArinhJoinStatus,
            bgpRmArinhEntIndex
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             RM ARI Join table."
        ::= { bgpGroups 27 }

    bgpNmEntOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpNmEntBfdEntityIndex,
            bgpNmEntVrfName
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the Neighbor Manager Entity table."
        ::= { bgpGroups 28 }

    bgpNotificationObjectGroup OBJECT-GROUP
        OBJECTS {
            bgpNotifPeerLocalAddr,
            bgpNotifPeerLocalAddrType,
            bgpNotifPeerRemoteAddr,
            bgpNotifPeerRemoteAddrType,
            bgpNotifRmEntIndex,
            bgpNotifPeerLocalPort,
            bgpNotifPeerRemotePort,
            bgpNotifPeerLocalAddrScopeId,
            bgpRmEntOverLimit,
            bgpNotifAfi,
            bgpNotifSafi,
            bgpNotifPeerOldFsmState,
            bgpNotifPeerTenantName
        }
        STATUS current
        DESCRIPTION
            "The objects used to record notification parameters.  This group
             is completely optional."
        ::= { bgpGroups 29 }

    bgpPeerStatusOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpPeerStatusIdentifier,
            bgpPeerStatusState,
            bgpPeerStatusDropSession,
            bgpPeerStatusCeaseErrorSubcode,
            bgpPeerStatusDynamicPeer,
            bgpPeerStatusLocalNm,
            bgpPeerStatusRemoteAs,
            bgpPeerStatusPeerIndex,
            bgpPeerStatusCapsSupport,
            bgpPeerStatusLastError,
            bgpPeerStatusLastErrorDataLen,
            bgpPeerStatusLastErrorData,
            bgpPeerStatusFsmEstablishedTime,
            bgpPeerStatusInUpdatesElpsTime,
            bgpPeerStatusHoldTime,
            bgpPeerStatusKeepAlive,
            bgpPeerStatusInOpens,
            bgpPeerStatusOutOpens,
            bgpPeerStatusInNotifications,
            bgpPeerStatusOutNotifications,
            bgpPeerStatusInUpdates,
            bgpPeerStatusOutUpdates,
            bgpPeerStatusInKeepalives,
            bgpPeerStatusOutKeepalives,
            bgpPeerStatusInRefreshes,
            bgpPeerStatusOutRefreshes,
            bgpPeerStatusInTotalMessages,
            bgpPeerStatusOutTotalMessages,
            bgpPeerStatusFsmEstTransitions,
            bgpPeerStatusConnectRetryCount,
            bgpPeerStatusClearCnts,
            bgpPeerStatusPeergr,
            bgpPeerStatusRtRefresh,
            bgpPeerStatusStalePathTime,
            bgpPeerStatusOrfEntryCount,
            bgpPeerStatusFlapStatsClearStat,
            bgpPeerStatusFlapStatsClearMap,
            bgpPeerStatusLastErrorRcvd,
            bgpPeerStatusLastErrorRcvdTime,
            bgpPeerStatusLastErrorSent,
            bgpPeerStatusLastErrorSentTime,
            bgpPeerStatusLastState,
            bgpPeerStatusLastEvent,
            bgpPeerStatusCapsSent,
            bgpPeerStatusCapsRcvd,
            bgpPeerStatusCapsNegotiated,
            bgpPeerStatusRstrSupport,
            bgpPeerStatusRstrFamily,
            bgpPeerStatusRstrRestarting,
            bgpPeerStatusRstrStatus,
            bgpPeerStatusRstrRemTime,
            bgpPeerStatusRcvdMsgElpsTime,
            bgpPeerStatusIdleHoldRemTime,
            bgpPeerStatusRouteRefrSent,
            bgpPeerStatusRouteRefrRcvd,
            bgpPeerStatusSelLocalAddrType,
            bgpPeerStatusSelLocalAddr,
            bgpPeerStatusSelLocalPort,
            bgpPeerStatusSelRemotePort,
            bgpPeerStatusBfdStatus,
            bgpPeerStatusSelLocalAs,
            bgpPeerStatusSelRemoteAs,
            bgpPeerStatusInPrfxes,
            bgpPeerStatusOutPrfxes,
            bgpPeerStatusOutPrfxesAdvertised,
            bgpPeerStatusConfigState,
            bgpPeerStatusConfedMember,
            bgpPeerStatusReflectorClient,
            bgpPeerStatusTrapEstab,
            bgpPeerStatusTrapBackw,
            bgpPeerStatusConnectRetryInt,
            bgpPeerStatusConfigPassive,
            bgpPeerStatusConfigOpenDelay,
            bgpPeerStatusConfigIdleHold,
            bgpPeerStatusTtl,
            bgpPeerStatusConfAltLocalAs,
            bgpPeerStatusConfAltLocalAsMode,
            bgpPeerStatusDisableRouteRefresh,
            bgpPeerStatusBfdDesired,
            bgpPeerStatusHoldTimeConfigd,
            bgpPeerStatusKeepAliveConfigd,
            bgpPeerStatusEbgpBandwidth,
            bgpPeerStatusResendAllRoutes,
            bgpPeerStatusOutUpdateElpsTime,
            bgpPeerStatusOutPrfxesDenied,
            bgpPeerStatusOutPrfxesImpWdr,
            bgpPeerStatusOutPrfxesExpWdr,
            bgpPeerStatusInPrfxesImpWdr,
            bgpPeerStatusInPrfxesExpWdr,
            bgpPeerStatusReceivedHoldTime,
            bgpPeerStatusSelRemoteAddrType,
            bgpPeerStatusSelRemoteAddr
        }
        STATUS current
        DESCRIPTION
            "This group contains mandatory, non-defaultable or read-only
             objects in the peer status table."
        ::= { bgpGroups 30 }

    bgpPeerAfiSafiStOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpPeerAfiSafiStRtRefresh,
            bgpPeerAfiSafiStAddPathCapNeg,
            bgpPeerAfiSafiStReflectorClient,
            bgpPeerAfiSafiStUpdateGroup,
            bgpPeerAfiSafiStResendAllRoutes
        }
        STATUS current
        DESCRIPTION
            "This group contains mandatory, non-defaultable or read-only
             objects in the peer status AFI/SAFI table."
        ::= { bgpGroups 31 }

    bgpPeerRangeGroup OBJECT-GROUP
        OBJECTS {
            bgpPeerRangeRowStatus,
            bgpPeerRangeConfigPeergr,
            bgpPeerRangeNumPeers
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             peer range table."
        ::= { bgpGroups 32 }

    bgpPeerRangeOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpPeerRangeAdminStatus,
            bgpPeerRangeMaxPeers
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the peer range table."
        ::= { bgpGroups 33 }

    bgpAsPathAccessListGroup OBJECT-GROUP
        OBJECTS {
            bgpAsPathListRowStatus,
            bgpAsPathListAsPath
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             AS Path Access List table."
        ::= { bgpGroups 34 }

    bgpAsPathAccessListOptionalGroup OBJECT-GROUP
        OBJECTS {
            bgpAsPathListMatchType,
            bgpAsPathListMaOrigin,
            bgpAsPathListMaOriginDef
        }
        STATUS current
        DESCRIPTION
            "This group contains objects that are defaultable and can
             optionally be configured in the AS Path Access List table."
        ::= { bgpGroups 35 }

    bgpCommunityListGroup OBJECT-GROUP
        OBJECTS {
            bgpCommunityListRowStatus,
            bgpCommunityListCommunity,
            bgpCommunityListEntryType,
            bgpCommunityListPermit,
            bgpCommunityListRegexp
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Community List table."
        ::= { bgpGroups 36 }

    bgpExtCommListGroup OBJECT-GROUP
        OBJECTS {
            bgpExtCommListRowStatus,
            bgpExtCommListCommunity,
            bgpExtCommListEntryType,
            bgpExtCommListPermit,
            bgpExtCommListRegexp
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Extended Community List table."
        ::= { bgpGroups 37 }

    bgpCommunityGroupGroup OBJECT-GROUP
        OBJECTS {
            bgpCommunityGroupRowStatus
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Community Group table."
        ::= { bgpGroups 38 }

    bgpExtCommGroupGroup OBJECT-GROUP
        OBJECTS {
            bgpExtCommGroupRowStatus
        }
        STATUS current
        DESCRIPTION
            "This group is mandatory for all agent implementations.  It
             contains mandatory, non-defaultable or read-only objects in the
             Extended Community Group table."
        ::= { bgpGroups 39 }

    bgpUpdateGroupGroup OBJECT-GROUP
        OBJECTS {
            bgpUpdateGroupMemberCount,
            bgpUpdateGroupAfi,
            bgpUpdateGroupSafi,
            bgpUpdateGroupLocalAddressAfi,
            bgpUpdateGroupLocalAddressSafi,
            bgpUpdateGroupLocalAddressLength,
            bgpUpdateGroupAsSize,
            bgpUpdateGroupNeighborInSameAs,
            bgpUpdateGroupConfedMember,
            bgpUpdateGroupConfAltLocalAs,
            bgpUpdateGroupSelectedLocalAs,
            bgpUpdateGroupAltLocalAsMode,
            bgpUpdateGroupAggregateConfed,
            bgpUpdateGroupReflectorClient,
            bgpUpdateGroupNextHopSelf,
            bgpUpdateGroupTPNHEnabled,
            bgpUpdateGroupTPNHAddrType,
            bgpUpdateGroupTPNHAddrPrefix,
            bgpUpdateGroupTPNHAddrPrefixLen,
            bgpUpdateGroupPeeringType,
            bgpUpdateGroupSlowPeer,
            bgpUpdateGroupRmvPrivASNums,
            bgpUpdateGroupCondAdv,
            bgpUpdateGroupCAAdvMap,
            bgpUpdateGroupCANExMap,
            bgpUpdateGroupConfExpMap,
            bgpUpdateGroupSendComm,
            bgpUpdateGroupSendExtComm,
            bgpUpdateGroupOrigDflt,
            bgpUpdateGroupOrigDfltRtMap,
            bgpUpdateGroupAddPathSend,
            bgpUpdateGroupAddPathBestN,
            bgpUpdateGroupDistListAclOut,
            bgpUpdateGroupDistListPlOut,
            bgpUpdateGroupFilterListOut,
            bgpUpdateGroupExportMapIndex,
            bgpUpdateGroupExportPreIsAall,
            bgpUpdateGroupExportIpPre,
            bgpUpdateGroupUseExportLocalPref,
            bgpUpdateGroupExportLocalPref,
            bgpUpdateGroupMinASOrigInt,
            bgpUpdateGroupMinRtAdvertiseInt,
            bgpUpdateGroupMinRtWithdrawInt,
            bgpUpdateGroupPreserveNh
        }
        STATUS current
        DESCRIPTION
            "This group contains mandatory, non-defaultable or read-only objects
             in the Update Group table."
        ::= { bgpGroups 40 }

    bgpUpdateGroupMembershipGroup OBJECT-GROUP
        OBJECTS {
            bgpUpdGpMbrLocalAddrType,
            bgpUpdGpMbrLocalAddr,
            bgpUpdGpMbrLocalPort,
            bgpUpdGpMbrRemoteAddrType,
            bgpUpdGpMbrRemoteAddr,
            bgpUpdGpMbrRemotePort,
            bgpUpdGpMbrLocalAddrScopeId,
            bgpUpdGpMbrAfi,
            bgpUpdGpMbrSafi
        }
        STATUS current
        DESCRIPTION
            "This group contains mandatory, non-defaultable or read-only objects
             in the Update Group Membership table."
        ::= { bgpGroups 41 }

     bgpPropObsoleteGroup OBJECT-GROUP
        OBJECTS {
            bgpRmEntNonPersistentAros,
            bgpRmEntAroRouteThreshold,
            bgpRmEntMaxActiveAroGroups,
            bgpRmEntNumArosInGroup
        }
        STATUS obsolete
        DESCRIPTION
            "Obsolete objects."
        ::= { bgpGroups 42 }

END
