Import Upstream version 1.2.2
[quagga-debian.git] / bgpd / BGP4-MIB.txt
1     BGP4-MIB DEFINITIONS ::= BEGIN
2
3         IMPORTS
4             MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
5             IpAddress, Integer32, Counter32, Gauge32, mib-2
6                 FROM SNMPv2-SMI
7             MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
8                 FROM SNMPv2-CONF;
9
10         bgp MODULE-IDENTITY
11             LAST-UPDATED "9902100000Z"
12             ORGANIZATION "IETF IDR Working Group"
13             CONTACT-INFO "E-mail:  idr@merit.net
14
15                           Susan Hares  (Editor)
16                           Merit Network
17                           4251 Plymouth Road
18                           Suite C
19                           Ann Arbor, MI 48105-2785
20                           Tel: +1 734 936 2095
21                           Fax: +1 734 647 3185
22                           E-mail: skh@merit.edu
23
24                           Jeff Johnson (Editor)
25                           RedBack Networks, Inc.
26                           1389 Moffett Park Drive
27                           Sunnyvale, CA  94089-1134
28                           Tel: +1 408 548 3516
29                           Fax: +1 408 548 3599
30                           E-mail: jeff@redback.com"
31             DESCRIPTION
32                     "The MIB module for BGP-4."
33             REVISION    "9902100000Z"
34             DESCRIPTION
35                     "Corrected duplicate OBJECT IDENTIFIER
36                      assignment in the conformance information."
37             REVISION    "9601080000Z"
38             DESCRIPTION
39                     "1) Fixed the definitions of the traps to
40                      make them equivalent to their initial
41                      definition in RFC 1269.
42                      2) Added compliance and conformance info."
43             ::= { mib-2 15 }
44
45         bgpVersion OBJECT-TYPE
46             SYNTAX     OCTET STRING (SIZE (1..255))
47             MAX-ACCESS read-only
48             STATUS     current
49             DESCRIPTION
50                     "Vector of supported BGP protocol version
51                     numbers.  Each peer negotiates the version
52                     from this vector.  Versions are identified
53                     via the string of bits contained within this
54                     object.  The first octet contains bits 0 to
55                     7, the second octet contains bits 8 to 15,
56                     and so on, with the most significant bit
57                     referring to the lowest bit number in the
58                     octet (e.g., the MSB of the first octet
59                     refers to bit 0).  If a bit, i, is present
60                     and set, then the version (i+1) of the BGP
61                     is supported."
62             ::= { bgp 1 }
63
64         bgpLocalAs OBJECT-TYPE
65             SYNTAX     INTEGER (0..65535)
66             MAX-ACCESS read-only
67             STATUS     current
68             DESCRIPTION
69                     "The local autonomous system number."
70             ::= { bgp 2 }
71
72
73
74         -- BGP Peer table.  This table contains, one entry per BGP
75         -- peer, information about the BGP peer.
76
77         bgpPeerTable OBJECT-TYPE
78             SYNTAX     SEQUENCE OF BgpPeerEntry
79             MAX-ACCESS not-accessible
80             STATUS     current
81             DESCRIPTION
82                     "BGP peer table.  This table contains,
83                     one entry per BGP peer, information about the
84                     connections with BGP peers."
85             ::= { bgp 3 }
86
87         bgpPeerEntry OBJECT-TYPE
88             SYNTAX     BgpPeerEntry
89             MAX-ACCESS not-accessible
90             STATUS     current
91             DESCRIPTION
92                     "Entry containing information about the
93                     connection with a BGP peer."
94             INDEX { bgpPeerRemoteAddr }
95             ::= { bgpPeerTable 1 }
96
97         BgpPeerEntry ::= SEQUENCE {
98                 bgpPeerIdentifier
99                     IpAddress,
100                 bgpPeerState
101                     INTEGER,
102                 bgpPeerAdminStatus
103                     INTEGER,
104                 bgpPeerNegotiatedVersion
105                     Integer32,
106                 bgpPeerLocalAddr
107                     IpAddress,
108                 bgpPeerLocalPort
109                     INTEGER,
110                 bgpPeerRemoteAddr
111                     IpAddress,
112                 bgpPeerRemotePort
113                     INTEGER,
114                 bgpPeerRemoteAs
115                     INTEGER,
116                 bgpPeerInUpdates
117                     Counter32,
118                 bgpPeerOutUpdates
119                     Counter32,
120                 bgpPeerInTotalMessages
121                     Counter32,
122                 bgpPeerOutTotalMessages
123                     Counter32,
124                 bgpPeerLastError
125                     OCTET STRING,
126                 bgpPeerFsmEstablishedTransitions
127                     Counter32,
128                 bgpPeerFsmEstablishedTime
129                     Gauge32,
130                 bgpPeerConnectRetryInterval
131                     INTEGER,
132                 bgpPeerHoldTime
133                     INTEGER,
134                 bgpPeerKeepAlive
135                     INTEGER,
136                 bgpPeerHoldTimeConfigured
137                     INTEGER,
138                 bgpPeerKeepAliveConfigured
139                     INTEGER,
140                 bgpPeerMinASOriginationInterval
141                     INTEGER,
142                 bgpPeerMinRouteAdvertisementInterval
143                     INTEGER,
144                 bgpPeerInUpdateElapsedTime
145                     Gauge32
146                 }
147
148         bgpPeerIdentifier OBJECT-TYPE
149             SYNTAX     IpAddress
150             MAX-ACCESS read-only
151             STATUS     current
152             DESCRIPTION
153                     "The BGP Identifier of this entry's BGP peer."
154             ::= { bgpPeerEntry 1 }
155
156         bgpPeerState OBJECT-TYPE
157             SYNTAX     INTEGER {
158                                 idle(1),
159                                 connect(2),
160                                 active(3),
161                                 opensent(4),
162                                 openconfirm(5),
163                                 established(6)
164                        }
165             MAX-ACCESS read-only
166             STATUS     current
167             DESCRIPTION
168                     "The BGP peer connection state."
169             ::= { bgpPeerEntry 2 }
170
171         bgpPeerAdminStatus OBJECT-TYPE
172             SYNTAX     INTEGER {
173                                 stop(1),
174                                 start(2)
175                        }
176             MAX-ACCESS read-write
177             STATUS     current
178             DESCRIPTION
179                     "The desired state of the BGP connection.  A
180                     transition from 'stop' to 'start' will cause
181                     the BGP Start Event to be generated.  A
182                     transition from 'start' to 'stop' will cause
183                     the BGP Stop Event to be generated.  This
184                     parameter can be used to restart BGP peer
185                     connections.  Care should be used in providing
186                     write access to this object without adequate
187                     authentication."
188             ::= { bgpPeerEntry 3 }
189
190         bgpPeerNegotiatedVersion OBJECT-TYPE
191             SYNTAX     Integer32
192             MAX-ACCESS read-only
193             STATUS     current
194             DESCRIPTION
195                     "The negotiated version of BGP running between
196                     the two peers."
197             ::= { bgpPeerEntry 4 }
198
199         bgpPeerLocalAddr OBJECT-TYPE
200             SYNTAX     IpAddress
201             MAX-ACCESS read-only
202             STATUS     current
203             DESCRIPTION
204                     "The local IP address of this entry's BGP
205                     connection."
206             ::= { bgpPeerEntry 5 }
207
208         bgpPeerLocalPort OBJECT-TYPE
209             SYNTAX     INTEGER (0..65535)
210             MAX-ACCESS read-only
211             STATUS     current
212             DESCRIPTION
213                     "The local port for the TCP connection between
214                     the BGP peers."
215             ::= { bgpPeerEntry 6 }
216
217         bgpPeerRemoteAddr OBJECT-TYPE
218             SYNTAX     IpAddress
219             MAX-ACCESS read-only
220             STATUS     current
221             DESCRIPTION
222                     "The remote IP address of this entry's BGP
223                     peer."
224             ::= { bgpPeerEntry 7 }
225
226         bgpPeerRemotePort OBJECT-TYPE
227             SYNTAX     INTEGER (0..65535)
228             MAX-ACCESS read-only
229             STATUS     current
230             DESCRIPTION
231                     "The remote port for the TCP connection between
232                     the BGP peers.  Note that the objects
233                     bgpPeerLocalAddr, bgpPeerLocalPort,
234                     bgpPeerRemoteAddr and bgpPeerRemotePort
235                     provide the appropriate reference to the
236                     standard MIB TCP connection table."
237             ::= { bgpPeerEntry 8 }
238
239         bgpPeerRemoteAs OBJECT-TYPE
240             SYNTAX     INTEGER (0..65535)
241             MAX-ACCESS read-only
242             STATUS     current
243             DESCRIPTION
244                     "The remote autonomous system number."
245             ::= { bgpPeerEntry 9 }
246
247         bgpPeerInUpdates OBJECT-TYPE
248             SYNTAX     Counter32
249             MAX-ACCESS read-only
250             STATUS     current
251             DESCRIPTION
252                     "The number of BGP UPDATE messages received on
253                     this connection.  This object should be
254                     initialized to zero (0) when the connection is
255                     established."
256             ::= { bgpPeerEntry 10 }
257
258         bgpPeerOutUpdates OBJECT-TYPE
259             SYNTAX     Counter32
260             MAX-ACCESS read-only
261             STATUS     current
262             DESCRIPTION
263                     "The number of BGP UPDATE messages transmitted
264                     on this connection.  This object should be
265                     initialized to zero (0) when the connection is
266                     established."
267             ::= { bgpPeerEntry 11 }
268
269         bgpPeerInTotalMessages OBJECT-TYPE
270             SYNTAX     Counter32
271             MAX-ACCESS read-only
272             STATUS     current
273             DESCRIPTION
274                     "The total number of messages received from the
275                     remote peer on this connection.  This object
276                     should be initialized to zero when the
277                     connection is established."
278             ::= { bgpPeerEntry 12 }
279
280         bgpPeerOutTotalMessages OBJECT-TYPE
281             SYNTAX     Counter32
282             MAX-ACCESS read-only
283             STATUS     current
284             DESCRIPTION
285                     "The total number of messages transmitted to
286                     the remote peer on this connection.  This object
287                     should be initialized to zero when the
288                     connection is established."
289             ::= { bgpPeerEntry 13 }
290
291         bgpPeerLastError OBJECT-TYPE
292             SYNTAX     OCTET STRING (SIZE (2))
293             MAX-ACCESS read-only
294             STATUS     current
295             DESCRIPTION
296                     "The last error code and subcode seen by this
297                     peer on this connection.  If no error has
298                     occurred, this field is zero.  Otherwise, the
299                     first byte of this two byte OCTET STRING
300                     contains the error code, and the second byte
301                     contains the subcode."
302             ::= { bgpPeerEntry 14 }
303
304         bgpPeerFsmEstablishedTransitions OBJECT-TYPE
305             SYNTAX     Counter32
306             MAX-ACCESS read-only
307             STATUS     current
308             DESCRIPTION
309                     "The total number of times the BGP FSM
310                     transitioned into the established state."
311             ::= { bgpPeerEntry 15 }
312
313         bgpPeerFsmEstablishedTime OBJECT-TYPE
314             SYNTAX     Gauge32
315             MAX-ACCESS read-only
316             STATUS     current
317             DESCRIPTION
318                     "This timer indicates how long (in seconds) this
319                     peer has been in the Established state or how long
320                     since this peer was last in the Established state.
321                     It is set to zero when a new peer is configured or
322                     the router is booted."
323             ::= { bgpPeerEntry 16 }
324
325         bgpPeerConnectRetryInterval OBJECT-TYPE
326             SYNTAX     INTEGER (1..65535)
327             MAX-ACCESS read-write
328             STATUS     current
329             DESCRIPTION
330                     "Time interval in seconds for the ConnectRetry
331                     timer.  The suggested value for this timer is
332                     120 seconds."
333             ::= { bgpPeerEntry 17 }
334
335         bgpPeerHoldTime OBJECT-TYPE
336             SYNTAX     INTEGER  ( 0 | 3..65535 )
337             MAX-ACCESS read-only
338             STATUS     current
339             DESCRIPTION
340                     "Time interval in seconds for the Hold Timer
341                     established with the peer.  The value of this
342                     object is calculated by this BGP speaker by
343                     using the smaller of the value in
344                     bgpPeerHoldTimeConfigured and the Hold Time
345                     received in the OPEN message.  This value
346                     must be at lease three seconds if it is not
347                     zero (0) in which case the Hold Timer has
348                     not been established with the peer, or, the
349                     value of bgpPeerHoldTimeConfigured is zero (0)."
350             ::= { bgpPeerEntry 18 }
351
352         bgpPeerKeepAlive OBJECT-TYPE
353             SYNTAX     INTEGER ( 0 | 1..21845 )
354             MAX-ACCESS read-only
355             STATUS     current
356             DESCRIPTION
357                     "Time interval in seconds for the KeepAlive
358                     timer established with the peer.  The value of
359                     this object is calculated by this BGP speaker
360                     such that, when compared with bgpPeerHoldTime,
361                     it has the same proportion as what
362                     bgpPeerKeepAliveConfigured has when compared
363                     with bgpPeerHoldTimeConfigured.  If the value
364                     of this object is zero (0), it indicates that
365                     the KeepAlive timer has not been established
366                     with the peer, or, the value of
367                     bgpPeerKeepAliveConfigured is zero (0)."
368             ::= { bgpPeerEntry 19 }
369
370         bgpPeerHoldTimeConfigured OBJECT-TYPE
371             SYNTAX     INTEGER ( 0 | 3..65535 )
372             MAX-ACCESS read-write
373             STATUS     current
374             DESCRIPTION
375                     "Time interval in seconds for the Hold Time
376                     configured for this BGP speaker with this peer.
377                     This value is placed in an OPEN message sent to
378                     this peer by this BGP speaker, and is compared
379                     with the Hold Time field in an OPEN message
380                     received from the peer when determining the Hold
381                     Time (bgpPeerHoldTime) with the peer.  This value
382                     must not be less than three seconds if it is not
383                     zero (0) in which case the Hold Time is NOT to be
384                     established with the peer.  The suggested value for
385                     this timer is 90 seconds."
386             ::= { bgpPeerEntry 20 }
387
388         bgpPeerKeepAliveConfigured OBJECT-TYPE
389             SYNTAX     INTEGER ( 0 | 1..21845 )
390             MAX-ACCESS read-write
391             STATUS     current
392             DESCRIPTION
393                     "Time interval in seconds for the KeepAlive timer
394                     configured for this BGP speaker with this peer.
395                     The value of this object will only determine the
396                     KEEPALIVE messages' frequency relative to the value
397                     specified in bgpPeerHoldTimeConfigured; the actual
398                     time interval for the KEEPALIVE messages is
399                     indicated by bgpPeerKeepAlive.  A reasonable
400                     maximum value for this timer would be configured to
401                     be one third of that of bgpPeerHoldTimeConfigured.
402                     If the value of this object is zero (0), no
403                     periodical KEEPALIVE messages are sent to the peer
404                     after the BGP connection has been established.  The
405                     suggested value for this timer is 30 seconds."
406             ::= { bgpPeerEntry 21 }
407
408         bgpPeerMinASOriginationInterval OBJECT-TYPE
409             SYNTAX     INTEGER (1..65535)
410             MAX-ACCESS read-write
411             STATUS     current
412             DESCRIPTION
413                     "Time interval in seconds for the
414                     MinASOriginationInterval timer.
415                     The suggested value for this timer is 15 seconds."
416             ::= { bgpPeerEntry 22 }
417
418         bgpPeerMinRouteAdvertisementInterval OBJECT-TYPE
419             SYNTAX     INTEGER (1..65535)
420             MAX-ACCESS read-write
421             STATUS     current
422             DESCRIPTION
423                     "Time interval in seconds for the
424                     MinRouteAdvertisementInterval timer.
425                     The suggested value for this timer is 30 seconds."
426             ::= { bgpPeerEntry 23 }
427
428         bgpPeerInUpdateElapsedTime OBJECT-TYPE
429             SYNTAX     Gauge32
430             MAX-ACCESS read-only
431             STATUS     current
432             DESCRIPTION
433                     "Elapsed time in seconds since the last BGP
434                     UPDATE message was received from the peer.
435                     Each time bgpPeerInUpdates is incremented,
436                     the value of this object is set to zero (0)."
437             ::= { bgpPeerEntry 24 }
438
439
440
441         bgpIdentifier OBJECT-TYPE
442             SYNTAX     IpAddress
443             MAX-ACCESS read-only
444             STATUS     current
445             DESCRIPTION
446                     "The BGP Identifier of local system."
447             ::= { bgp 4 }
448
449
450
451         -- Received Path Attribute Table.  This table contains,
452         -- one entry per path to a network, path attributes
453         -- received from all peers running BGP version 3 or less.
454         -- This table is obsolete, having been replaced in
455         -- functionality with the bgp4PathAttrTable.
456
457         bgpRcvdPathAttrTable OBJECT-TYPE
458             SYNTAX     SEQUENCE OF BgpPathAttrEntry
459             MAX-ACCESS not-accessible
460             STATUS     obsolete
461             DESCRIPTION
462                     "The BGP Received Path Attribute Table contains
463                     information about paths to destination networks
464                     received from all peers running BGP version 3 or
465                     less."
466             ::= { bgp 5 }
467
468         bgpPathAttrEntry OBJECT-TYPE
469             SYNTAX     BgpPathAttrEntry
470             MAX-ACCESS not-accessible
471             STATUS     obsolete
472             DESCRIPTION
473                     "Information about a path to a network."
474             INDEX { bgpPathAttrDestNetwork,
475                     bgpPathAttrPeer        }
476             ::= { bgpRcvdPathAttrTable 1 }
477
478         BgpPathAttrEntry ::= SEQUENCE {
479             bgpPathAttrPeer
480                  IpAddress,
481             bgpPathAttrDestNetwork
482                  IpAddress,
483             bgpPathAttrOrigin
484                  INTEGER,
485             bgpPathAttrASPath
486                  OCTET STRING,
487             bgpPathAttrNextHop
488                  IpAddress,
489             bgpPathAttrInterASMetric
490                  Integer32
491         }
492
493         bgpPathAttrPeer OBJECT-TYPE
494             SYNTAX     IpAddress
495             MAX-ACCESS read-only
496             STATUS     obsolete
497             DESCRIPTION
498                     "The IP address of the peer where the path
499                     information was learned."
500             ::= { bgpPathAttrEntry 1 }
501
502         bgpPathAttrDestNetwork OBJECT-TYPE
503             SYNTAX     IpAddress
504             MAX-ACCESS read-only
505             STATUS     obsolete
506             DESCRIPTION
507                     "The address of the destination network."
508             ::= { bgpPathAttrEntry 2 }
509
510         bgpPathAttrOrigin OBJECT-TYPE
511             SYNTAX     INTEGER {
512                            igp(1),-- networks are interior
513                            egp(2),-- networks learned via EGP
514                            incomplete(3) -- undetermined
515                        }
516             MAX-ACCESS read-only
517             STATUS     obsolete
518             DESCRIPTION
519                  "The ultimate origin of the path information."
520             ::= { bgpPathAttrEntry 3 }
521
522         bgpPathAttrASPath OBJECT-TYPE
523             SYNTAX     OCTET STRING (SIZE (2..255))
524             MAX-ACCESS read-only
525             STATUS     obsolete
526             DESCRIPTION
527                     "The set of ASs that must be traversed to reach
528                     the network.  This object is probably best
529                     represented as SEQUENCE OF INTEGER.  For SMI
530                     compatibility, though, it is represented as
531                     OCTET STRING.  Each AS is represented as a pair
532                     of octets according to the following algorithm:
533
534                         first-byte-of-pair = ASNumber / 256;
535                         second-byte-of-pair = ASNumber & 255;"
536             ::= { bgpPathAttrEntry 4 }
537
538         bgpPathAttrNextHop OBJECT-TYPE
539             SYNTAX     IpAddress
540             MAX-ACCESS read-only
541             STATUS     obsolete
542             DESCRIPTION
543                     "The address of the border router that should
544                     be used for the destination network."
545             ::= { bgpPathAttrEntry 5 }
546
547         bgpPathAttrInterASMetric OBJECT-TYPE
548             SYNTAX     Integer32
549             MAX-ACCESS read-only
550             STATUS     obsolete
551             DESCRIPTION
552                     "The optional inter-AS metric.  If this
553                     attribute has not been provided for this route,
554                     the value for this object is 0."
555             ::= { bgpPathAttrEntry 6 }
556
557
558
559         -- BGP-4 Received Path Attribute Table.  This table contains,
560         -- one entry per path to a network, path attributes
561         -- received from all peers running BGP-4.
562
563         bgp4PathAttrTable OBJECT-TYPE
564             SYNTAX     SEQUENCE OF Bgp4PathAttrEntry
565             MAX-ACCESS not-accessible
566             STATUS     current
567             DESCRIPTION
568                     "The BGP-4 Received Path Attribute Table contains
569                     information about paths to destination networks
570                     received from all BGP4 peers."
571             ::= { bgp 6 }
572
573         bgp4PathAttrEntry OBJECT-TYPE
574             SYNTAX     Bgp4PathAttrEntry
575             MAX-ACCESS not-accessible
576             STATUS     current
577             DESCRIPTION
578                     "Information about a path to a network."
579             INDEX { bgp4PathAttrIpAddrPrefix,
580                     bgp4PathAttrIpAddrPrefixLen,
581                     bgp4PathAttrPeer            }
582             ::= { bgp4PathAttrTable 1 }
583
584         Bgp4PathAttrEntry ::= SEQUENCE {
585             bgp4PathAttrPeer
586                  IpAddress,
587             bgp4PathAttrIpAddrPrefixLen
588                  INTEGER,
589             bgp4PathAttrIpAddrPrefix
590                  IpAddress,
591             bgp4PathAttrOrigin
592                  INTEGER,
593             bgp4PathAttrASPathSegment
594                  OCTET STRING,
595             bgp4PathAttrNextHop
596                  IpAddress,
597             bgp4PathAttrMultiExitDisc
598                  INTEGER,
599             bgp4PathAttrLocalPref
600                  INTEGER,
601             bgp4PathAttrAtomicAggregate
602                  INTEGER,
603             bgp4PathAttrAggregatorAS
604                  INTEGER,
605             bgp4PathAttrAggregatorAddr
606                  IpAddress,
607             bgp4PathAttrCalcLocalPref
608                  INTEGER,
609             bgp4PathAttrBest
610                  INTEGER,
611             bgp4PathAttrUnknown
612                  OCTET STRING
613         }
614
615         bgp4PathAttrPeer OBJECT-TYPE
616             SYNTAX     IpAddress
617             MAX-ACCESS read-only
618             STATUS     current
619             DESCRIPTION
620                     "The IP address of the peer where the path
621                     information was learned."
622             ::= { bgp4PathAttrEntry 1 }
623         bgp4PathAttrIpAddrPrefixLen OBJECT-TYPE
624             SYNTAX     INTEGER (0..32)
625             MAX-ACCESS read-only
626             STATUS     current
627             DESCRIPTION
628                     "Length in bits of the IP address prefix in the
629                     Network Layer Reachability Information field."
630             ::= { bgp4PathAttrEntry 2 }
631
632         bgp4PathAttrIpAddrPrefix OBJECT-TYPE
633             SYNTAX     IpAddress
634             MAX-ACCESS read-only
635             STATUS     current
636             DESCRIPTION
637                     "An IP address prefix in the Network Layer
638                     Reachability Information field.  This object
639                     is an IP address containing the prefix with
640                     length specified by bgp4PathAttrIpAddrPrefixLen.
641                     Any bits beyond the length specified by
642                     bgp4PathAttrIpAddrPrefixLen are zeroed."
643             ::= { bgp4PathAttrEntry 3 }
644
645         bgp4PathAttrOrigin OBJECT-TYPE
646             SYNTAX     INTEGER {
647                                  igp(1),-- networks are interior
648                                  egp(2),-- networks learned via EGP
649                                  incomplete(3) -- undetermined
650                                }
651             MAX-ACCESS read-only
652             STATUS     current
653             DESCRIPTION
654                     "The ultimate origin of the path information."
655             ::= { bgp4PathAttrEntry 4 }
656
657         bgp4PathAttrASPathSegment OBJECT-TYPE
658             SYNTAX     OCTET STRING (SIZE (2..255))
659             MAX-ACCESS read-only
660             STATUS     current
661             DESCRIPTION
662                     "The sequence of AS path segments.  Each AS
663                     path segment is represented by a triple
664                     <type, length, value>.
665
666                     The type is a 1-octet field which has two
667                     possible values:
668                          1      AS_SET: unordered set of ASs a
669                                      route in the UPDATE message
670                                      has traversed
671                          2      AS_SEQUENCE: ordered set of ASs
672                                      a route in the UPDATE message
673                                      has traversed.
674
675                     The length is a 1-octet field containing the
676                     number of ASs in the value field.
677
678                     The value field contains one or more AS
679                     numbers, each AS is represented in the octet
680                     string as a pair of octets according to the
681                     following algorithm:
682
683                         first-byte-of-pair = ASNumber / 256;
684                         second-byte-of-pair = ASNumber & 255;"
685             ::= { bgp4PathAttrEntry 5 }
686
687         bgp4PathAttrNextHop OBJECT-TYPE
688             SYNTAX     IpAddress
689             MAX-ACCESS read-only
690             STATUS     current
691             DESCRIPTION
692                     "The address of the border router that should
693                     be used for the destination network."
694             ::= { bgp4PathAttrEntry 6 }
695
696         bgp4PathAttrMultiExitDisc OBJECT-TYPE
697             SYNTAX     INTEGER (-1..2147483647)
698             MAX-ACCESS read-only
699             STATUS     current
700             DESCRIPTION
701                     "This metric is used to discriminate between
702                     multiple exit points to an adjacent autonomous
703                     system.  A value of -1 indicates the absence of
704                     this attribute."
705             ::= { bgp4PathAttrEntry 7 }
706
707         bgp4PathAttrLocalPref OBJECT-TYPE
708             SYNTAX     INTEGER (-1..2147483647)
709             MAX-ACCESS read-only
710             STATUS     current
711             DESCRIPTION
712                     "The originating BGP4 speaker's degree of
713                     preference for an advertised route.  A value of
714                     -1 indicates the absence of this attribute."
715             ::= { bgp4PathAttrEntry 8 }
716
717         bgp4PathAttrAtomicAggregate OBJECT-TYPE
718             SYNTAX     INTEGER {
719                            lessSpecificRrouteNotSelected(1),
720                            lessSpecificRouteSelected(2)
721                        }
722             MAX-ACCESS read-only
723             STATUS     current
724             DESCRIPTION
725                     "Whether or not a system has selected
726                     a less specific route without selecting a
727                     more specific route."
728             ::= { bgp4PathAttrEntry 9 }
729
730         bgp4PathAttrAggregatorAS OBJECT-TYPE
731             SYNTAX     INTEGER (0..65535)
732             MAX-ACCESS read-only
733             STATUS     current
734             DESCRIPTION
735                     "The AS number of the last BGP4 speaker that
736                     performed route aggregation.  A value of zero (0)
737                     indicates the absence of this attribute."
738             ::= { bgp4PathAttrEntry 10 }
739
740         bgp4PathAttrAggregatorAddr OBJECT-TYPE
741             SYNTAX     IpAddress
742             MAX-ACCESS read-only
743             STATUS     current
744             DESCRIPTION
745                     "The IP address of the last BGP4 speaker that
746                      performed route aggregation.  A value of
747                      0.0.0.0 indicates the absence of this attribute."
748             ::= { bgp4PathAttrEntry 11 }
749
750         bgp4PathAttrCalcLocalPref OBJECT-TYPE
751             SYNTAX     INTEGER (-1..2147483647)
752             MAX-ACCESS read-only
753             STATUS     current
754             DESCRIPTION
755                     "The degree of preference calculated by the
756                     receiving BGP4 speaker for an advertised route.
757                     A value of -1 indicates the absence of this
758                     attribute."
759             ::= { bgp4PathAttrEntry 12 }
760
761         bgp4PathAttrBest OBJECT-TYPE
762             SYNTAX     INTEGER {
763                            false(1),-- not chosen as best route
764                            true(2) -- chosen as best route
765                        }
766             MAX-ACCESS read-only
767             STATUS     current
768             DESCRIPTION
769                     "An indication of whether or not this route
770                     was chosen as the best BGP4 route."
771             ::= { bgp4PathAttrEntry 13 }
772
773         bgp4PathAttrUnknown OBJECT-TYPE
774             SYNTAX     OCTET STRING (SIZE(0..255))
775             MAX-ACCESS read-only
776             STATUS     current
777             DESCRIPTION
778                     "One or more path attributes not understood
779                      by this BGP4 speaker.  Size zero (0) indicates
780                      the absence of such attribute(s).  Octets
781                      beyond the maximum size, if any, are not
782                      recorded by this object."
783             ::= { bgp4PathAttrEntry 14 }
784
785
786         -- Traps.
787
788         -- note that in RFC 1657, bgpTraps was incorrectly
789         -- assigned a value of { bgp 7 }, and each of the
790         -- traps had the bgpPeerRemoteAddr object inappropriately
791         -- removed from their OBJECTS clause.  The following
792         -- definitions restore the semantics of the traps as
793         -- they were initially defined in RFC 1269.
794
795         -- { bgp 7 } is unused
796
797         bgpTraps          OBJECT IDENTIFIER ::= { bgp 0 }
798
799         bgpEstablished NOTIFICATION-TYPE
800             OBJECTS { bgpPeerRemoteAddr,
801                       bgpPeerLastError,
802                       bgpPeerState      }
803             STATUS  current
804             DESCRIPTION
805                     "The BGP Established event is generated when
806                     the BGP FSM enters the ESTABLISHED state."
807             ::= { bgpTraps 1 }
808
809         bgpBackwardTransition NOTIFICATION-TYPE
810             OBJECTS { bgpPeerRemoteAddr,
811                       bgpPeerLastError,
812                       bgpPeerState      }
813             STATUS  current
814             DESCRIPTION
815                     "The BGPBackwardTransition Event is generated
816                     when the BGP FSM moves from a higher numbered
817                     state to a lower numbered state."
818             ::= { bgpTraps 2 }
819
820         -- conformance information
821
822         bgpMIBConformance OBJECT IDENTIFIER ::= { bgp 8 }
823         bgpMIBCompliances OBJECT IDENTIFIER ::= { bgpMIBConformance 1 }
824         bgpMIBGroups      OBJECT IDENTIFIER ::= { bgpMIBConformance 2 }
825
826         -- compliance statements
827
828         bgpMIBCompliance MODULE-COMPLIANCE
829             STATUS  current
830             DESCRIPTION
831                     "The compliance statement for entities which
832                      implement the BGP4 mib."
833             MODULE  -- this module
834                 MANDATORY-GROUPS { bgp4MIBGlobalsGroup,
835                                    bgp4MIBPeerGroup,
836                                    bgp4MIBPathAttrGroup,
837                                    bgp4MIBNotificationGroup }
838             ::= { bgpMIBCompliances 1 }
839
840         -- units of conformance
841
842         bgp4MIBGlobalsGroup OBJECT-GROUP
843             OBJECTS { bgpVersion,
844                       bgpLocalAs,
845                       bgpIdentifier }
846             STATUS  current
847             DESCRIPTION
848                     "A collection of objects providing information
849                      on global BGP state."
850             ::= { bgpMIBGroups 1 }
851
852         bgp4MIBPeerGroup OBJECT-GROUP
853             OBJECTS { bgpPeerIdentifier,
854                       bgpPeerState,
855                       bgpPeerAdminStatus,
856                       bgpPeerNegotiatedVersion,
857                       bgpPeerLocalAddr,
858                       bgpPeerLocalPort,
859                       bgpPeerRemoteAddr,
860                       bgpPeerRemotePort,
861                       bgpPeerRemoteAs,
862                       bgpPeerInUpdates,
863                       bgpPeerOutUpdates,
864                       bgpPeerInTotalMessages,
865                       bgpPeerOutTotalMessages,
866                       bgpPeerLastError,
867                       bgpPeerFsmEstablishedTransitions,
868                       bgpPeerFsmEstablishedTime,
869                       bgpPeerConnectRetryInterval,
870                       bgpPeerHoldTime,
871                       bgpPeerKeepAlive,
872                       bgpPeerHoldTimeConfigured,
873                       bgpPeerKeepAliveConfigured,
874                       bgpPeerMinASOriginationInterval,
875                       bgpPeerMinRouteAdvertisementInterval,
876                       bgpPeerInUpdateElapsedTime }
877             STATUS  current
878             DESCRIPTION
879                     "A collection of objects for managing
880                      BGP peers."
881             ::= { bgpMIBGroups 2 }
882
883         bgp4MIBRcvdPathAttrGroup OBJECT-GROUP
884             OBJECTS { bgpPathAttrPeer,
885                       bgpPathAttrDestNetwork,
886                       bgpPathAttrOrigin,
887                       bgpPathAttrASPath,
888                       bgpPathAttrNextHop,
889                       bgpPathAttrInterASMetric }
890             STATUS  obsolete
891             DESCRIPTION
892                     "A collection of objects for managing BGP
893                      path entries.
894
895                      This conformance group is obsolete,
896                      replaced by bgp4MIBPathAttrGroup."
897             ::= { bgpMIBGroups 3 }
898
899         bgp4MIBPathAttrGroup OBJECT-GROUP
900             OBJECTS { bgp4PathAttrPeer,
901                       bgp4PathAttrIpAddrPrefixLen,
902                       bgp4PathAttrIpAddrPrefix,
903                       bgp4PathAttrOrigin,
904                       bgp4PathAttrASPathSegment,
905                       bgp4PathAttrNextHop,
906                       bgp4PathAttrMultiExitDisc,
907                       bgp4PathAttrLocalPref,
908                       bgp4PathAttrAtomicAggregate,
909                       bgp4PathAttrAggregatorAS,
910                       bgp4PathAttrAggregatorAddr,
911                       bgp4PathAttrCalcLocalPref,
912                       bgp4PathAttrBest,
913                       bgp4PathAttrUnknown }
914             STATUS  current
915             DESCRIPTION
916                     "A collection of objects for managing
917                      BGP path entries."
918             ::= { bgpMIBGroups 4 }
919
920         bgp4MIBNotificationGroup NOTIFICATION-GROUP
921             NOTIFICATIONS { bgpEstablished,
922                             bgpBackwardTransition }
923             STATUS  current
924             DESCRIPTION
925                     "A collection of notifications for signaling
926                     changes in BGP peer relationships."
927             ::= { bgpMIBGroups 5 }
928
929     END