Network Working Group                                          S. Willis
INTERNET DRAFT                                              Bay Networks
                                                              J. Burruss
                                                                 Windata
                                                                  J. Chu
                                                         IBM Corporation
                                                              J. Johnson
                                                           cisco Systems
                                                              March 1996


                     Definitions of Managed Objects
       for the Fourth Version of Border Gateway Protocol (BGP-4)


                    <draft-ietf-idr-bgp4-mib-02.txt>


                          Status of this Memo

This document is an Internet-Draft.  Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups.  Note that other groups may also distribute working
documents as Internet-Drafts.

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

To learn the current status of any Internet-Draft, please check the
``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
ftp.isi.edu (US West Coast).


                                Abstract

This memo is an extension to the SNMP MIB.  It specifies an IAB
standards track protocol for the Internet community, and requests
discussion and suggestions for improvements.  The origin of this memo is
from RFC 1269 "Definitions of Managed Objects for the Board Gateway
Protocol (Version 3)" written by the first two authors of this memo,
which was updated to support BGP-4 in RFC 1657.  This memo fixes errors
introduced when the MIB was converted to use the SNMPv2 SMI, as well as
updates references to the Draft Standard SNMPv2 SMI documents.




Expires September 1996                                          [Page 1]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


Distribution of this memo is unlimited.  Please forward comments to
bgp@ans.net.



1. Introduction

This memo defines an experimental portion of the Management Information
Base (MIB) for use with network management protocols in the Internet
community.  In particular, it describes managed objects used for
managing the Border Gateway Protocol Version 4 or lower [1, 2].



2. The SNMP Network Management Framework

The SNMP Network Management Framework consists of several components.
For the purpose of this specification, the applicable components of the
Framework are the SMI and related documents [3, 4, 5], which define the
mechanisms used for describing and naming objects for the purpose of
management.

The Framework permits new objects to be defined for the purpose of
experimentation and evaluation.



3. Object Definitions

Managed objects are accessed via a virtual information store, termed the
Management Information Base or MIB.  Objects in the MIB are defined
using the subset of Abstract Syntax Notation One (ASN.1) defined in the
SMI.  In particular, each object type is named by an OBJECT IDENTIFIER,
an administratively assigned name.  The object type together with an
object instance serves to uniquely identify a specific instantiation of
the object.  For human convenience, we often use a textual string,
termed the descriptor, to refer to the object type.



4. Overview

These objects are used to control and manage a BGP-4 implementation.

Apart from a few system-wide scalar objects, this MIB is broken into
three tables: the BGP Peer Table, the BGP Received Path Attribute Table,
and the BGP-4 Received Path Attribute Table.  The BGP Peer Table
contains information about state and current activity of connections



Expires September 1996                                          [Page 2]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


with the BGP peers.  The Received Path Attribute Table contains path
attributes received from all peers running BGP version 3 or less.  The
BGP-4 Received Path Attribute Table contains path attributes received
from all BGP-4 peers.  The actual attributes used in determining a route
are a subset of the received attribute tables after local routing policy
has been applied.



5. Definitions

BGP4-MIB DEFINITIONS ::= BEGIN

                IMPORTS
                    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
                    IpAddress, Integer32, Counter32, Gauge32, mib-2
                        FROM SNMPv2-SMI
                    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                        FROM SNMPv2-CONF;

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

                               Tel: +1 914 784 7839
                               Fax: +1 914 784 6205
                            E-mail: jychu@watson.ibm.com

                                    Jeff Johnson (Editor)
                            Postal: cisco Systems
                                    170 W. Tasman Drive
                                    San Jose, CA 95134

                               Tel: +1 408 526 7789
                               Fax: +1 408 526 4860
                            E-mail: jjohnson@cisco.com"
                    DESCRIPTION
                            "The MIB module for BGP-4."
                    REVISION     "9601080000Z"
                    DESCRIPTION
                            "1) Fixed the definitions of the traps to
                             make them equivalent to their initial



Expires September 1996                                          [Page 3]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                             definition in RFC 1269.
                             2) Added compliance and conformance info."
                    ::= { 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



Expires September 1996                                          [Page 4]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                    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



Expires September 1996                                          [Page 5]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                            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



Expires September 1996                                          [Page 6]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                            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



Expires September 1996                                          [Page 7]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                            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



Expires September 1996                                          [Page 8]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                    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



Expires September 1996                                          [Page 9]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                    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.



Expires September 1996                                         [Page 10]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                            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.



Expires September 1996                                         [Page 11]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                            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 obsolete, having been replaced in
                -- functionality with the bgp4PathAttrTable.

                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



Expires September 1996                                         [Page 12]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                            "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 }



Expires September 1996                                         [Page 13]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                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



Expires September 1996                                         [Page 14]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                            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



Expires September 1996                                         [Page 15]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


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



Expires September 1996                                         [Page 16]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                            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



Expires September 1996                                         [Page 17]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


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



Expires September 1996                                         [Page 18]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                    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.

                -- note that in RFC 1657, bgpTraps was incorrectly
                -- assigned a value of { bgp 7 }, and each of the
                -- traps had the bgpPeerRemoteAddr object inappropriately
                -- removed from their OBJECTS clause.  The following
                -- definitions restore the semantics of the traps as
                -- they were initially defined in RFC 1269.

                -- { bgp 7 } is unused

                bgpTraps                OBJECT IDENTIFIER ::= { bgp 0 }

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

                bgpBackwardTransition NOTIFICATION-TYPE



Expires September 1996                                         [Page 19]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                    OBJECTS { bgpPeerRemoteAddr,
                              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 }

                -- conformance information

                bgpMIBConformance OBJECT IDENTIFIER ::= { bgp 8 }
                bgpMIBCompliances OBJECT IDENTIFIER ::= { bgpMIBConformance 1 }
                bgpMIBGroups      OBJECT IDENTIFIER ::= { bgpMIBConformance 2 }

                -- compliance statements

                bgpMIBCompliance MODULE-COMPLIANCE
                    STATUS  current
                    DESCRIPTION
                            "The compliance statement for entities which
                             implement the BGP4 mib."
                    MODULE  -- this module
                        MANDATORY-GROUPS { bgp4MIBGlobalsGroup,
                                           bgp4MIBPeerGroup,
                                           bgp4MIBPathAttrGroup,
                                           bgp4MIBNotificationGroup }
                    ::= { bgpMIBCompliances 1 }

                -- units of conformance

                bgp4MIBGlobalsGroup OBJECT-GROUP
                    OBJECTS { bgpVersion,
                              bgpLocalAs,
                              bgpIdentifier }
                    STATUS  current
                    DESCRIPTION
                            "A collection of objects providing information
                             on global BGP state."
                    ::= { bgpMIBGroups 1 }

                bgp4MIBPeerGroup OBJECT-GROUP
                    OBJECTS { bgpPeerIdentifier,
                              bgpPeerState,
                              bgpPeerAdminStatus,
                              bgpPeerNegotiatedVersion,
                              bgpPeerLocalAddr,



Expires September 1996                                         [Page 20]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                              bgpPeerLocalPort,
                              bgpPeerRemoteAddr,
                              bgpPeerRemotePort,
                              bgpPeerRemoteAs,
                              bgpPeerInUpdates,
                              bgpPeerOutUpdates,
                              bgpPeerInTotalMessages,
                              bgpPeerOutTotalMessages,
                              bgpPeerLastError,
                              bgpPeerFsmEstablishedTransitions,
                              bgpPeerFsmEstablishedTime,
                              bgpPeerConnectRetryInterval,
                              bgpPeerHoldTime,
                              bgpPeerKeepAlive,
                              bgpPeerHoldTimeConfigured,
                              bgpPeerKeepAliveConfigured,
                              bgpPeerMinASOriginationInterval,
                              bgpPeerMinRouteAdvertisementInterval,
                              bgpPeerInUpdateElapsedTime }
                    STATUS  current
                    DESCRIPTION
                            "A collection of objects for managing
                             BGP peers."
                    ::= { bgpMIBGroups 2 }

                bgp4MIBRcvdPathAttrGroup OBJECT-GROUP
                    OBJECTS { bgpPathAttrPeer,
                              bgpPathAttrDestNetwork,
                              bgpPathAttrOrigin,
                              bgpPathAttrASPath,
                              bgpPathAttrNextHop,
                              bgpPathAttrInterASMetric }
                    STATUS  obsolete
                    DESCRIPTION
                            "A collection of objects for managing BGP
                             path entries.

                             This conformance group is obsolete,
                             replaced by bgp4MIBPathAttrGroup."
                    ::= { bgpMIBGroups 3 }

                bgp4MIBPathAttrGroup OBJECT-GROUP
                    OBJECTS { bgp4PathAttrPeer,
                              bgp4PathAttrIpAddrPrefixLen,
                              bgp4PathAttrIpAddrPrefix,
                              bgp4PathAttrOrigin,
                              bgp4PathAttrASPathSegment,
                              bgp4PathAttrNextHop,



Expires September 1996                                         [Page 21]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


                              bgp4PathAttrMultiExitDisc,
                              bgp4PathAttrLocalPref,
                              bgp4PathAttrAtomicAggregate,
                              bgp4PathAttrAggregatorAS,
                              bgp4PathAttrAggregatorAddr,
                              bgp4PathAttrCalcLocalPref,
                              bgp4PathAttrBest,
                              bgp4PathAttrUnknown }
                    STATUS  current
                    DESCRIPTION
                            "A collection of objects for managing
                             BGP path entries."
                    ::= { bgpMIBGroups 4 }

                bgp4MIBNotificationGroup NOTIFICATION-GROUP
                    NOTIFICATIONS { bgpEstablished,
                                    bgpBackwardTransition }
                    STATUS  current
                    DESCRIPTION
                            "A collection of notifications for signaling
                            changes in BGP peer relationships."
                    ::= { bgpMIBGroups 4 }

END



























Expires September 1996                                         [Page 22]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


6. Acknowledgements

We would like to acknowledge the assistance of all the members of the
Inter-Domain Routing Working Group, and particularly the following
individuals:

     Yakov Rekhter, cisco Systems
     Rob Coltun, Fore
     Guy Almes, ANS
     Jeff Honig, Cornell Theory Center
     Marshall T. Rose, Dover Beach Consulting, Inc.
     Dennis Ferguson, Ipsilon
     Mike Mathis, PSC
     John Krawczyk, Bay Networks
     Curtis Villamizar, ANS
     Dave LeRoy, Pencom Systems
     Paul Traina, cisco Systems
     Andrew Partan, UUNET
     Robert Snyder, cisco Systems
     Dimitry Haskin, Bay Networks
     Peder Chr Norgaard, Telebit Communications A/S
     Joel Halpern, NewBridge
     Nick Thille, cisco Systems


7. References

   [1] Rekhter, Y., Li, T., "A Border Gateway Protocol 4 (BGP-4)",
       RFC 1771, March 1995.

   [2] Rekhter, Y., Gross, P., "Application of the Border
       Gateway Protocol in the Internet", RFC 1772, March 1995.

   [3] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
       S. Waldbusser, "Structure of Management Information for Version 2
       of the Simple Network Management Protocol (SNMPv2)", RFC 1902,
       January 1996.

   [4] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
       S. Waldbusser, "Textual Conventions for Version 2 of the Simple
       Network Management Protocol (SNMPv2)", RFC 1903, January 1996.

   [5] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
       S. Waldbusser, "Conformance Statements for Version 2 of the
       Simple Network Management Protocol (SNMPv2)", RFC 1904,
       January 1996.





Expires September 1996                                         [Page 23]


INTERNET DRAFT                 BGP-4 MIB                      March 1996


8. Security Considerations

Security issues are not discussed in this memo.



Authors' Address

    Steve Willis
    Bay Networks, Inc.
    3 Federal St
    Billerica, MA 01821

    Phone: +1 508 436 3927
    Email: swillis@BayNetworks.com


    John Burruss
    Windata Inc.
    543 Great Road
    Littleton MA 01460

    Phone: +1 508 952 0170
    Email: jburruss@windata.com


    John Chu
    IBM Corporation
    P.O.Box 704
    Yorktown Heights, NY 10598

    Phone: +1 914 784 7839
    Email: jychu@watson.ibm.com


    Jeff Johnson
    cisco Systems
    170 W. Tasman Drive
    San Jose, CA 95134

    Phone: +1 408 526 7789
    Email: jjohnson@cisco.com









Expires September 1996                                         [Page 24]