-- =================================================================
-- Description: BGP4-MIB definition
-- Reference:   This mib was extracted from RFC 1657
-- =================================================================

BGP4-MIB DEFINITIONS ::= BEGIN

    IMPORTS        
        MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
        IpAddress, Integer32, Counter32, Gauge32
            FROM SNMPv2-SMI
        mib-2
            FROM RFC1213-MIB;

    bgp MODULE-IDENTITY
        LAST-UPDATED "9405050000Z"
        ORGANIZATION "IETF BGP Working Group"
        CONTACT-INFO
                "   John Chu  (Editor)
            Postal: IBM Corp.
                    P.O.Box 218
                    Yorktown Heights, NY 10598
                    US

               Tel: +1 914 945 3156
               Fax: +1 914 945 2141
            E-mail: jychu@watson.ibm.com"
        DESCRIPTION
            "The MIB module for BGP-4."
        ::= { mib-2 15 }

    bgpVersion OBJECT-TYPE
        SYNTAX     OCTET STRING (SIZE (1..255))
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "Vector of supported BGP protocol version
            numbers.  Each peer negotiates the version
            from this vector.  Versions are identified
            via the string of bits contained within this
            object.  The first octet contains bits 0 to
            7, the second octet contains bits 8 to 15,
            and so on, with the most significant bit
            referring to the lowest bit number in the
            octet (e.g., the MSB of the first octet
            refers to bit 0).  If a bit, i, is present
            and set, then the version (i+1) of the BGP
            is supported."
        ::= { bgp 1 }

    bgpLocalAs OBJECT-TYPE
        SYNTAX     INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The local autonomous system number."
        ::= { bgp 2 }



    -- BGP Peer table.  This table contains, one entry per
    -- BGP peer, information about the BGP peer.

    bgpPeerTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF BgpPeerEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "BGP peer table.  This table contains,
            one entry per BGP peer, information about
            the connections with BGP peers."
        ::= { bgp 3 }

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

    BgpPeerEntry ::= SEQUENCE {
        bgpPeerIdentifier
            IpAddress,
        bgpPeerState
            INTEGER,
        bgpPeerAdminStatus
            INTEGER,
        bgpPeerNegotiatedVersion
            Integer32,
        bgpPeerLocalAddr
            IpAddress,
        bgpPeerLocalPort
            INTEGER,
        bgpPeerRemoteAddr
            IpAddress,
        bgpPeerRemotePort
            INTEGER,
        bgpPeerRemoteAs
            INTEGER,
        bgpPeerInUpdates
            Counter32,
        bgpPeerOutUpdates
            Counter32,
        bgpPeerInTotalMessages
            Counter32,
        bgpPeerOutTotalMessages
            Counter32,
        bgpPeerLastError
            OCTET STRING,
        bgpPeerFsmEstablishedTransitions
            Counter32,
        bgpPeerFsmEstablishedTime
            Gauge32,
        bgpPeerConnectRetryInterval
            INTEGER,
        bgpPeerHoldTime
            INTEGER,
        bgpPeerKeepAlive
            INTEGER,
        bgpPeerHoldTimeConfigured
            INTEGER,
        bgpPeerKeepAliveConfigured
            INTEGER,
        bgpPeerMinASOriginationInterval
            INTEGER,
        bgpPeerMinRouteAdvertisementInterval
            INTEGER,
        bgpPeerInUpdateElapsedTime
            Gauge32
        }

    bgpPeerIdentifier OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The BGP Identifier of this entry's BGP
            peer."
        ::= { bgpPeerEntry 1 }

    bgpPeerState OBJECT-TYPE
        SYNTAX     INTEGER {
            idle(1),
            connect(2),
            active(3),
            opensent(4),
            openconfirm(5),
            established(6)
            }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The BGP peer connection state."
        ::= { bgpPeerEntry 2 }

    bgpPeerAdminStatus OBJECT-TYPE
        SYNTAX     INTEGER {
            stop(1),
            start(2)
            }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "The desired state of the BGP connection.
            A transition from 'stop' to 'start' will
            cause the BGP Start Event to be generated.
            A transition from 'start' to 'stop' will
            cause the BGP Stop 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."
        ::= { bgpPeerEntry 3 }

    bgpPeerNegotiatedVersion OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The negotiated version of BGP running
            between the two peers."
        ::= { bgpPeerEntry 4 }

    bgpPeerLocalAddr OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The local IP address of this entry's BGP
            connection."
        ::= { bgpPeerEntry 5 }
    
    bgpPeerLocalPort OBJECT-TYPE
        SYNTAX     INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The local port for the TCP connection
            between the BGP peers."
        ::= { bgpPeerEntry 6 }
    
    bgpPeerRemoteAddr OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The remote IP address of this entry's BGP
            peer."
        ::= { bgpPeerEntry 7 }
    
    bgpPeerRemotePort OBJECT-TYPE
        SYNTAX     INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The remote port for the TCP connection
            between the BGP peers.  Note that the
            objects bgpPeerLocalAddr,
            bgpPeerLocalPort, bgpPeerRemoteAddr and
            bgpPeerRemotePort provide the appropriate
            reference to the standard MIB TCP
            connection table."
        ::= { bgpPeerEntry 8 }
    
    bgpPeerRemoteAs OBJECT-TYPE
        SYNTAX     INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The remote autonomous system number."
        ::= { bgpPeerEntry 9 }
    
    bgpPeerInUpdates OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The number of BGP UPDATE messages
            received on this connection.  This object
            should be initialized to zero (0) when the
            connection is established."
        ::= { bgpPeerEntry 10 }
    
    bgpPeerOutUpdates OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The number of BGP UPDATE messages
            transmitted on this connection.  This
            object should be initialized to zero (0)
            when the connection is established."
        ::= { bgpPeerEntry 11 }
    
    bgpPeerInTotalMessages 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 object should be initialized to zero
            when the connection is established."
        ::= { bgpPeerEntry 12 }
    
    bgpPeerOutTotalMessages 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
            object should be initialized to zero when
            the connection is established."
        ::= { bgpPeerEntry 13 }
    
    bgpPeerLastError OBJECT-TYPE
        SYNTAX     OCTET STRING (SIZE (2))
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The last error code and subcode seen by this
            peer 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 14 }
    
    bgpPeerFsmEstablishedTransitions OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The total number of times the BGP FSM
            transitioned into the established state."
        ::= { bgpPeerEntry 15 }
    
    bgpPeerFsmEstablishedTime 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."
        ::= { bgpPeerEntry 16 }
    
    bgpPeerConnectRetryInterval OBJECT-TYPE
        SYNTAX     INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Time interval in seconds for the
            ConnectRetry timer.  The suggested value
            for this timer is 120 seconds."
        ::= { bgpPeerEntry 17 }
    
    bgpPeerHoldTime OBJECT-TYPE
        SYNTAX     INTEGER  ( 0 | 3..65535 )
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "Time interval in seconds for the Hold
            Timer established with the peer.  The
            value of this object is calculated by this
            BGP speaker by using the smaller of the
            value in bgpPeerHoldTimeConfigured and the
            Hold Time received in the OPEN message.
            This value must be at lease three seconds
            if it is not zero (0) in which case the
            Hold Timer has not been established with
            the peer, or, the value of
            bgpPeerHoldTimeConfigured is zero (0)."
        ::= { bgpPeerEntry 18 }
    
    bgpPeerKeepAlive OBJECT-TYPE
        SYNTAX     INTEGER ( 0 | 1..21845 )
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "Time interval in seconds for the KeepAlive
            timer established with the peer.  The value
            of this object is calculated by this BGP
            speaker such that, when compared with
            bgpPeerHoldTime, it has the same
            proportion as what
            bgpPeerKeepAliveConfigured has when
            compared with bgpPeerHoldTimeConfigured.
            If the value of this object is zero (0),
            it indicates that the KeepAlive timer has
            not been established with the peer, or,
            the value of bgpPeerKeepAliveConfigured is
            zero (0)."
        ::= { bgpPeerEntry 19 }
    
    bgpPeerHoldTimeConfigured OBJECT-TYPE
        SYNTAX     INTEGER ( 0 | 3..65535 )
        MAX-ACCESS read-write
        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 suggested
            value for this timer is 90 seconds."
        ::= { bgpPeerEntry 20 }
    
    bgpPeerKeepAliveConfigured OBJECT-TYPE
        SYNTAX     INTEGER ( 0 | 1..21845 )
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Time interval in seconds for the
            KeepAlive timer 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
            bgpPeerHoldTimeConfigured; 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
            bgpPeerHoldTimeConfigured.
            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."
        ::= { bgpPeerEntry 21 }
    
    bgpPeerMinASOriginationInterval OBJECT-TYPE
        SYNTAX     INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Time interval in seconds for the
            MinASOriginationInterval timer.
            The suggested value for this timer is 15
            seconds."
        ::= { bgpPeerEntry 22 }
    
    bgpPeerMinRouteAdvertisementInterval OBJECT-TYPE
        SYNTAX     INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Time interval in seconds for the
            MinRouteAdvertisementInterval timer.
            The suggested value for this timer is 30
            seconds."
        ::= { bgpPeerEntry 23 }
    
    bgpPeerInUpdateElapsedTime 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.
            Each time bgpPeerInUpdates is incremented,
            the value of this object is set to zero
            (0)."
        ::= { bgpPeerEntry 24 }

    bgpIdentifier OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The BGP Identifier of local system."
        ::= { bgp 4 }

    -- Received Path Attribute Table.  This table contains,
    -- one entry per path to a network, path attributes
    -- received from all peers running BGP version 3 or
    -- less.  This table is deprecated.
    
    bgpRcvdPathAttrTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF BgpPathAttrEntry
        MAX-ACCESS not-accessible
        STATUS     obsolete
        DESCRIPTION
            "The BGP Received Path Attribute Table
            contains information about paths to
            destination networks received from all
            peers running BGP version 3 or less."
        ::= { bgp 5 }
    
    bgpPathAttrEntry OBJECT-TYPE
        SYNTAX     BgpPathAttrEntry
        MAX-ACCESS not-accessible
        STATUS     obsolete
        DESCRIPTION
            "Information about a path to a network."
        INDEX { bgpPathAttrDestNetwork,
            bgpPathAttrPeer        }
        ::= { bgpRcvdPathAttrTable 1 }
    
    BgpPathAttrEntry ::= SEQUENCE {
        bgpPathAttrPeer
            IpAddress,
        bgpPathAttrDestNetwork
            IpAddress,
        bgpPathAttrOrigin
            INTEGER,
        bgpPathAttrASPath
            OCTET STRING,
        bgpPathAttrNextHop
            IpAddress,
        bgpPathAttrInterASMetric
            Integer32
        }
    
    bgpPathAttrPeer OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
            "The IP address of the peer where the path
            information was learned."
        ::= { bgpPathAttrEntry 1 }
    
    bgpPathAttrDestNetwork OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
            "The address of the destination network."
        ::= { bgpPathAttrEntry 2 }
    
    bgpPathAttrOrigin OBJECT-TYPE
        SYNTAX     INTEGER {
            igp(1),-- networks are interior
            egp(2),-- networks learned via EGP
            incomplete(3) -- undetermined
            }
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
            "The ultimate origin of the path information."
        ::= { bgpPathAttrEntry 3 }
    
    bgpPathAttrASPath OBJECT-TYPE
        SYNTAX     OCTET STRING (SIZE (2..255))
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
            "The set of ASs that must be traversed to
            reach the network.  This object is
            probably best represented as SEQUENCE OF
            INTEGER.  For SMI compatibility, though,
            it is represented as OCTET STRING.  Each
            AS is represented as a pair of octets
            according to the following algorithm:
    
               first-byte-of-pair = ASNumber / 256;
               second-byte-of-pair = ASNumber & 255;"
        ::= { bgpPathAttrEntry 4 }
    
    bgpPathAttrNextHop OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
            "The address of the border router that
            should be used for the destination
            network."
        ::= { bgpPathAttrEntry 5 }
    
    bgpPathAttrInterASMetric OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     obsolete
        DESCRIPTION
            "The optional inter-AS metric.  If this
            attribute has not been provided for this
            route, the value for this object is 0."
        ::= { bgpPathAttrEntry 6 }
    
    -- BGP-4 Received Path Attribute Table.  This table
    -- contains, one entry per path to a network, path
    -- attributes received from all peers running BGP-4.
    
    bgp4PathAttrTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF Bgp4PathAttrEntry
        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."
        ::= { bgp 6 }
    
    bgp4PathAttrEntry OBJECT-TYPE
        SYNTAX     Bgp4PathAttrEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "Information about a path to a network."
        INDEX { bgp4PathAttrIpAddrPrefix,
            bgp4PathAttrIpAddrPrefixLen,
            bgp4PathAttrPeer            }
        ::= { bgp4PathAttrTable 1 }
    
    Bgp4PathAttrEntry ::= SEQUENCE {
        bgp4PathAttrPeer
            IpAddress,
        bgp4PathAttrIpAddrPrefixLen
            INTEGER,
        bgp4PathAttrIpAddrPrefix
            IpAddress,
        bgp4PathAttrOrigin
            INTEGER,
        bgp4PathAttrASPathSegment
            OCTET STRING,
        bgp4PathAttrNextHop
            IpAddress,
        bgp4PathAttrMultiExitDisc
            INTEGER,
        bgp4PathAttrLocalPref
            INTEGER,
        bgp4PathAttrAtomicAggregate
            INTEGER,
        bgp4PathAttrAggregatorAS
            INTEGER,
        bgp4PathAttrAggregatorAddr
            IpAddress,
        bgp4PathAttrCalcLocalPref
            INTEGER,
        bgp4PathAttrBest
            INTEGER,
        bgp4PathAttrUnknown
            OCTET STRING
    
    }
    
    bgp4PathAttrPeer OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The IP address of the peer where the path
            information was learned."
        ::= { bgp4PathAttrEntry 1 }
    
    bgp4PathAttrIpAddrPrefixLen OBJECT-TYPE
        SYNTAX     INTEGER (0..32)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "Length in bits of the IP address prefix
            in the Network Layer Reachability
            Information field."
        ::= { bgp4PathAttrEntry 2 }
    
    bgp4PathAttrIpAddrPrefix OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "An IP address prefix in the Network Layer
            Reachability Information field.  This object
            is an IP address containing the prefix with
            length specified by
            bgp4PathAttrIpAddrPrefixLen.
            Any bits beyond the length specified by
            bgp4PathAttrIpAddrPrefixLen are zeroed."
        ::= { bgp4PathAttrEntry 3 }

    bgp4PathAttrOrigin OBJECT-TYPE
        SYNTAX     INTEGER {
                  igp(1),-- networks are interior
                  egp(2),-- networks learned
                    -- via EGP
                  incomplete(3) -- undetermined
                }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The ultimate origin of the path
            information."
        ::= { bgp4PathAttrEntry 4 }

    bgp4PathAttrASPathSegment OBJECT-TYPE
        SYNTAX     OCTET STRING (SIZE (2..255))
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The sequence of AS path segments.  Each AS
            path segment is represented by a triple
            <type, length, value>.

            The type is a 1-octet field which has two
            possible values:
                1      AS_SET: unordered set of ASs a
                  route in the UPDATE
                  message has traversed
                2      AS_SEQUENCE: ordered set of ASs
                  a route in the UPDATE
                  message has traversed.

            The length is a 1-octet field containing the
            number of ASs in the value field.

            The value field contains one or more AS
            numbers, each AS is represented in the octet
            string as a pair of octets according to the
            following algorithm:
               first-byte-of-pair = ASNumber / 256;
               second-byte-of-pair = ASNumber & 255;"
        ::= { bgp4PathAttrEntry 5 }

    bgp4PathAttrNextHop OBJECT-TYPE
        SYNTAX     IpAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The address of the border router that
            should be used for the destination
            network."
        ::= { bgp4PathAttrEntry 6 }

    bgp4PathAttrMultiExitDisc OBJECT-TYPE
        SYNTAX     INTEGER (-1..2147483647)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "This metric is used to discriminate
            between multiple exit points to an
            adjacent autonomous system.  A value of -1
            indicates the absence of this attribute."
        ::= { bgp4PathAttrEntry 7 }

    bgp4PathAttrLocalPref OBJECT-TYPE
        SYNTAX     INTEGER (-1..2147483647)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The originating BGP4 speaker's degree of
            preference for an advertised route.  A
            value of -1 indicates the absence of this
            attribute."
        ::= { bgp4PathAttrEntry 8 }

    bgp4PathAttrAtomicAggregate OBJECT-TYPE
        SYNTAX     INTEGER {
            lessSpecificRrouteNotSelected(1),
            lessSpecificRouteSelected(2)
              }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "Whether or not the local system has
            selected a less specific route without
            selecting a more specific route."
        ::= { bgp4PathAttrEntry 9 }

    bgp4PathAttrAggregatorAS OBJECT-TYPE
        SYNTAX     INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The AS number of the last BGP4 speaker that
            performed route aggregation.  A value of
            zero (0) indicates the absence of this
            attribute."
        ::= { bgp4PathAttrEntry 10 }

    bgp4PathAttrAggregatorAddr OBJECT-TYPE
        SYNTAX     IpAddress
        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 the absence of this
            attribute."
        ::= { bgp4PathAttrEntry 11 }

    bgp4PathAttrCalcLocalPref OBJECT-TYPE
        SYNTAX     INTEGER (-1..2147483647)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "The degree of preference calculated by the
            receiving BGP4 speaker for an advertised
            route.  A value of -1 indicates the
            absence of this attribute."
        ::= { bgp4PathAttrEntry 12 }

    bgp4PathAttrBest OBJECT-TYPE
        SYNTAX     INTEGER {
            false(1),-- not chosen as best route
            true(2) -- chosen as best route
              }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "An indication of whether or not this route
            was chosen as the best BGP4 route."
        ::= { bgp4PathAttrEntry 13 }

   bgp4PathAttrUnknown OBJECT-TYPE
        SYNTAX     OCTET STRING (SIZE(0..255))
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "One or more path attributes not understood
            by this BGP4 speaker.  Size zero (0)
            indicates the absence of such
            attribute(s).  Octets beyond the maximum
            size, if any, are not recorded by this
            object."
        ::= { bgp4PathAttrEntry 14 }


    -- Traps.
        bgpNotification OBJECT IDENTIFIER ::= { bgp 0 }

        bgpEstablishedNotification NOTIFICATION-TYPE
            OBJECTS { bgpPeerRemoteAddr,
                      bgpPeerLastError,
                      bgpPeerState      }
            STATUS  current
            DESCRIPTION
                    "The bgpEstablishedNotification event is generated
                     when the BGP FSM enters the established state.

                     This Notification replaces the bgpEstablished
                     Notification."
            ::= { bgpNotification 1 }

        bgpBackwardTransNotification NOTIFICATION-TYPE
            OBJECTS { bgpPeerRemoteAddr,
                      bgpPeerLastError,
                      bgpPeerState      }
            STATUS  current
            DESCRIPTION
                    "The bgpBackwardTransNotification event is
                     generated when the BGP FSM moves from a higher
                     numbered state to a lower numbered state.

                     This Notification replaces the
                     bgpBackwardsTransition Notification."
            ::= { bgpNotification 2 }

    bgpTraps            OBJECT IDENTIFIER ::= { bgp 7 }

    bgpEstablished NOTIFICATION-TYPE
        OBJECTS { bgpPeerLastError,
             bgpPeerState      }
        STATUS  current
        DESCRIPTION
            "The BGP Established event is generated when
            the BGP FSM enters the ESTABLISHED state."
        ::= { bgpTraps 1 }

    bgpBackwardTransition NOTIFICATION-TYPE
        OBJECTS { bgpPeerLastError,
             bgpPeerState      }
        STATUS  current
        DESCRIPTION
            "The BGPBackwardTransition Event is generated
            when the BGP FSM moves from a higher numbered
            state to a lower numbered state."
        ::= { bgpTraps 2 }

END