summaryrefslogtreecommitdiffstats
path: root/bgpd/BGP4-MIB.txt
blob: c911316c2774791e2b2bfb144c0be58f12c71930 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
    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 "9902100000Z"
            ORGANIZATION "IETF IDR Working Group"
            CONTACT-INFO "E-mail:  idr@merit.net

                          Susan Hares  (Editor)
                          Merit Network
                          4251 Plymouth Road
                          Suite C
                          Ann Arbor, MI 48105-2785
                          Tel: +1 734 936 2095
                          Fax: +1 734 647 3185
                          E-mail: skh@merit.edu

                          Jeff Johnson (Editor)
                          RedBack Networks, Inc.
                          1389 Moffett Park Drive
                          Sunnyvale, CA  94089-1134
                          Tel: +1 408 548 3516
                          Fax: +1 408 548 3599
                          E-mail: jeff@redback.com"
            DESCRIPTION
                    "The MIB module for BGP-4."
            REVISION    "9902100000Z"
            DESCRIPTION
                    "Corrected duplicate OBJECT IDENTIFIER
                     assignment in the conformance information."
            REVISION    "9601080000Z"
            DESCRIPTION
                    "1) Fixed the definitions of the traps to
                     make them equivalent to their initial
                     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
            MAX-ACCESS not-accessible
            STATUS     current
            DESCRIPTION
                    "Entry containing information about the
                    connection with a BGP peer."
            INDEX { bgpPeerRemoteAddr }
            ::= { bgpPeerTable 1 }

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

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

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

        bgpPeerAdminStatus OBJECT-TYPE
            SYNTAX     INTEGER {
                                stop(1),
                                start(2)
                       }
            MAX-ACCESS read-write
            STATUS     current
            DESCRIPTION
                    "The desired state of the BGP connection.  A
                    transition from 'stop' to 'start' will cause
                    the BGP Start Event to be generated.  A
                    transition from 'start' to 'stop' will cause
                    the BGP Stop Event to be generated.  This
                    parameter can be used to restart BGP peer
                    connections.  Care should be used in providing
                    write access to this object without adequate
                    authentication."
            ::= { bgpPeerEntry 3 }

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

        bgpPeerLocalAddr OBJECT-TYPE
            SYNTAX     IpAddress
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The local IP address of this entry's BGP
                    connection."
            ::= { bgpPeerEntry 5 }

        bgpPeerLocalPort OBJECT-TYPE
            SYNTAX     INTEGER (0..65535)
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The local port for the TCP connection between
                    the BGP peers."
            ::= { bgpPeerEntry 6 }

        bgpPeerRemoteAddr OBJECT-TYPE
            SYNTAX     IpAddress
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The remote IP address of this entry's BGP
                    peer."
            ::= { bgpPeerEntry 7 }

        bgpPeerRemotePort OBJECT-TYPE
            SYNTAX     INTEGER (0..65535)
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The remote port for the TCP connection between
                    the BGP peers.  Note that the objects
                    bgpPeerLocalAddr, bgpPeerLocalPort,
                    bgpPeerRemoteAddr and bgpPeerRemotePort
                    provide the appropriate reference to the
                    standard MIB TCP connection table."
            ::= { bgpPeerEntry 8 }

        bgpPeerRemoteAs OBJECT-TYPE
            SYNTAX     INTEGER (0..65535)
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The remote autonomous system number."
            ::= { bgpPeerEntry 9 }

        bgpPeerInUpdates OBJECT-TYPE
            SYNTAX     Counter32
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The number of BGP UPDATE messages received on
                    this connection.  This object should be
                    initialized to zero (0) when the connection is
                    established."
            ::= { bgpPeerEntry 10 }

        bgpPeerOutUpdates OBJECT-TYPE
            SYNTAX     Counter32
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The number of BGP UPDATE messages transmitted
                    on this connection.  This object should be
                    initialized to zero (0) when the connection is
                    established."
            ::= { bgpPeerEntry 11 }

        bgpPeerInTotalMessages OBJECT-TYPE
            SYNTAX     Counter32
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The total number of messages received from the
                    remote peer on this connection.  This object
                    should be initialized to zero when the
                    connection is established."
            ::= { bgpPeerEntry 12 }

        bgpPeerOutTotalMessages OBJECT-TYPE
            SYNTAX     Counter32
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The total number of messages transmitted to
                    the remote peer on this connection.  This object
                    should be initialized to zero when the
                    connection is established."
            ::= { bgpPeerEntry 13 }

        bgpPeerLastError OBJECT-TYPE
            SYNTAX     OCTET STRING (SIZE (2))
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The last error code and subcode seen by this
                    peer on this connection.  If no error has
                    occurred, this field is zero.  Otherwise, the
                    first byte of this two byte OCTET STRING
                    contains the error code, and the second byte
                    contains the subcode."
            ::= { bgpPeerEntry 14 }

        bgpPeerFsmEstablishedTransitions OBJECT-TYPE
            SYNTAX     Counter32
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The total number of times the BGP FSM
                    transitioned into the established state."
            ::= { bgpPeerEntry 15 }

        bgpPeerFsmEstablishedTime OBJECT-TYPE
            SYNTAX     Gauge32
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "This timer indicates how long (in seconds) this
                    peer has been in the Established state or how long
                    since this peer was last in the Established state.
                    It is set to zero when a new peer is configured or
                    the router is booted."
            ::= { bgpPeerEntry 16 }

        bgpPeerConnectRetryInterval OBJECT-TYPE
            SYNTAX     INTEGER (1..65535)
            MAX-ACCESS read-write
            STATUS     current
            DESCRIPTION
                    "Time interval in seconds for the ConnectRetry
                    timer.  The suggested value for this timer is
                    120 seconds."
            ::= { bgpPeerEntry 17 }

        bgpPeerHoldTime OBJECT-TYPE
            SYNTAX     INTEGER  ( 0 | 3..65535 )
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "Time interval in seconds for the Hold Timer
                    established with the peer.  The value of this
                    object is calculated by this BGP speaker by
                    using the smaller of the value in
                    bgpPeerHoldTimeConfigured and the Hold Time
                    received in the OPEN message.  This value
                    must be at lease three seconds if it is not
                    zero (0) in which case the Hold Timer has
                    not been established with the peer, or, the
                    value of bgpPeerHoldTimeConfigured is zero (0)."
            ::= { bgpPeerEntry 18 }

        bgpPeerKeepAlive OBJECT-TYPE
            SYNTAX     INTEGER ( 0 | 1..21845 )
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "Time interval in seconds for the KeepAlive
                    timer established with the peer.  The value of
                    this object is calculated by this BGP speaker
                    such that, when compared with bgpPeerHoldTime,
                    it has the same proportion as what
                    bgpPeerKeepAliveConfigured has when compared
                    with bgpPeerHoldTimeConfigured.  If the value
                    of this object is zero (0), it indicates that
                    the KeepAlive timer has not been established
                    with the peer, or, the value of
                    bgpPeerKeepAliveConfigured is zero (0)."
            ::= { bgpPeerEntry 19 }

        bgpPeerHoldTimeConfigured OBJECT-TYPE
            SYNTAX     INTEGER ( 0 | 3..65535 )
            MAX-ACCESS read-write
            STATUS     current
            DESCRIPTION
                    "Time interval in seconds for the Hold Time
                    configured for this BGP speaker with this peer.
                    This value is placed in an OPEN message sent to
                    this peer by this BGP speaker, and is compared
                    with the Hold Time field in an OPEN message
                    received from the peer when determining the Hold
                    Time (bgpPeerHoldTime) with the peer.  This value
                    must not be less than three seconds if it is not
                    zero (0) in which case the Hold Time is NOT to be
                    established with the peer.  The suggested value for
                    this timer is 90 seconds."
            ::= { bgpPeerEntry 20 }

        bgpPeerKeepAliveConfigured OBJECT-TYPE
            SYNTAX     INTEGER ( 0 | 1..21845 )
            MAX-ACCESS read-write
            STATUS     current
            DESCRIPTION
                    "Time interval in seconds for the KeepAlive timer
                    configured for this BGP speaker with this peer.
                    The value of this object will only determine the
                    KEEPALIVE messages' frequency relative to the value
                    specified in bgpPeerHoldTimeConfigured; the actual
                    time interval for the KEEPALIVE messages is
                    indicated by bgpPeerKeepAlive.  A reasonable
                    maximum value for this timer would be configured to
                    be one third of that of bgpPeerHoldTimeConfigured.
                    If the value of this object is zero (0), no
                    periodical KEEPALIVE messages are sent to the peer
                    after the BGP connection has been established.  The
                    suggested value for this timer is 30 seconds."
            ::= { bgpPeerEntry 21 }

        bgpPeerMinASOriginationInterval OBJECT-TYPE
            SYNTAX     INTEGER (1..65535)
            MAX-ACCESS read-write
            STATUS     current
            DESCRIPTION
                    "Time interval in seconds for the
                    MinASOriginationInterval timer.
                    The suggested value for this timer is 15 seconds."
            ::= { bgpPeerEntry 22 }

        bgpPeerMinRouteAdvertisementInterval OBJECT-TYPE
            SYNTAX     INTEGER (1..65535)
            MAX-ACCESS read-write
            STATUS     current
            DESCRIPTION
                    "Time interval in seconds for the
                    MinRouteAdvertisementInterval timer.
                    The suggested value for this timer is 30 seconds."
            ::= { bgpPeerEntry 23 }

        bgpPeerInUpdateElapsedTime OBJECT-TYPE
            SYNTAX     Gauge32
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "Elapsed time in seconds since the last BGP
                    UPDATE message was received from the peer.
                    Each time bgpPeerInUpdates is incremented,
                    the value of this object is set to zero (0)."
            ::= { bgpPeerEntry 24 }



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



        -- Received Path Attribute Table.  This table contains,
        -- one entry per path to a network, path attributes
        -- received from all peers running BGP version 3 or less.
        -- This table is 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
                    "Information about a path to a network."
            INDEX { bgpPathAttrDestNetwork,
                    bgpPathAttrPeer        }
            ::= { bgpRcvdPathAttrTable 1 }

        BgpPathAttrEntry ::= SEQUENCE {
            bgpPathAttrPeer
                 IpAddress,
            bgpPathAttrDestNetwork
                 IpAddress,
            bgpPathAttrOrigin
                 INTEGER,
            bgpPathAttrASPath
                 OCTET STRING,
            bgpPathAttrNextHop
                 IpAddress,
            bgpPathAttrInterASMetric
                 Integer32
        }

        bgpPathAttrPeer OBJECT-TYPE
            SYNTAX     IpAddress
            MAX-ACCESS read-only
            STATUS     obsolete
            DESCRIPTION
                    "The IP address of the peer where the path
                    information was learned."
            ::= { bgpPathAttrEntry 1 }

        bgpPathAttrDestNetwork OBJECT-TYPE
            SYNTAX     IpAddress
            MAX-ACCESS read-only
            STATUS     obsolete
            DESCRIPTION
                    "The address of the destination network."
            ::= { bgpPathAttrEntry 2 }

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

        bgpPathAttrASPath OBJECT-TYPE
            SYNTAX     OCTET STRING (SIZE (2..255))
            MAX-ACCESS read-only
            STATUS     obsolete
            DESCRIPTION
                    "The set of ASs that must be traversed to reach
                    the network.  This object is probably best
                    represented as SEQUENCE OF INTEGER.  For SMI
                    compatibility, though, it is represented as
                    OCTET STRING.  Each AS is represented as a pair
                    of octets according to the following algorithm:

                        first-byte-of-pair = ASNumber / 256;
                        second-byte-of-pair = ASNumber & 255;"
            ::= { bgpPathAttrEntry 4 }

        bgpPathAttrNextHop OBJECT-TYPE
            SYNTAX     IpAddress
            MAX-ACCESS read-only
            STATUS     obsolete
            DESCRIPTION
                    "The address of the border router that should
                    be used for the destination network."
            ::= { bgpPathAttrEntry 5 }

        bgpPathAttrInterASMetric OBJECT-TYPE
            SYNTAX     Integer32
            MAX-ACCESS read-only
            STATUS     obsolete
            DESCRIPTION
                    "The optional inter-AS metric.  If this
                    attribute has not been provided for this route,
                    the value for this object is 0."
            ::= { bgpPathAttrEntry 6 }



        -- BGP-4 Received Path Attribute Table.  This table contains,
        -- one entry per path to a network, path attributes
        -- received from all peers running BGP-4.

        bgp4PathAttrTable OBJECT-TYPE
            SYNTAX     SEQUENCE OF Bgp4PathAttrEntry
            MAX-ACCESS not-accessible
            STATUS     current
            DESCRIPTION
                    "The BGP-4 Received Path Attribute Table contains
                    information about paths to destination networks
                    received from all BGP4 peers."
            ::= { bgp 6 }

        bgp4PathAttrEntry OBJECT-TYPE
            SYNTAX     Bgp4PathAttrEntry
            MAX-ACCESS not-accessible
            STATUS     current
            DESCRIPTION
                    "Information about a path to a network."
            INDEX { bgp4PathAttrIpAddrPrefix,
                    bgp4PathAttrIpAddrPrefixLen,
                    bgp4PathAttrPeer            }
            ::= { bgp4PathAttrTable 1 }

        Bgp4PathAttrEntry ::= SEQUENCE {
            bgp4PathAttrPeer
                 IpAddress,
            bgp4PathAttrIpAddrPrefixLen
                 INTEGER,
            bgp4PathAttrIpAddrPrefix
                 IpAddress,
            bgp4PathAttrOrigin
                 INTEGER,
            bgp4PathAttrASPathSegment
                 OCTET STRING,
            bgp4PathAttrNextHop
                 IpAddress,
            bgp4PathAttrMultiExitDisc
                 INTEGER,
            bgp4PathAttrLocalPref
                 INTEGER,
            bgp4PathAttrAtomicAggregate
                 INTEGER,
            bgp4PathAttrAggregatorAS
                 INTEGER,
            bgp4PathAttrAggregatorAddr
                 IpAddress,
            bgp4PathAttrCalcLocalPref
                 INTEGER,
            bgp4PathAttrBest
                 INTEGER,
            bgp4PathAttrUnknown
                 OCTET STRING
        }

        bgp4PathAttrPeer OBJECT-TYPE
            SYNTAX     IpAddress
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "The IP address of the peer where the path
                    information was learned."
            ::= { bgp4PathAttrEntry 1 }
        bgp4PathAttrIpAddrPrefixLen OBJECT-TYPE
            SYNTAX     INTEGER (0..32)
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "Length in bits of the IP address prefix in the
                    Network Layer Reachability Information field."
            ::= { bgp4PathAttrEntry 2 }

        bgp4PathAttrIpAddrPrefix OBJECT-TYPE
            SYNTAX     IpAddress
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "An IP address prefix in the Network Layer
                    Reachability Information field.  This object
                    is an IP address containing the prefix with
                    length specified by bgp4PathAttrIpAddrPrefixLen.
                    Any bits beyond the length specified by
                    bgp4PathAttrIpAddrPrefixLen are zeroed."
            ::= { bgp4PathAttrEntry 3 }

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

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

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

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

                    The value field contains one or more AS
                    numbers, each AS is represented in the octet
                    string as a pair of octets according to the
                    following algorithm:

                        first-byte-of-pair = ASNumber / 256;
                        second-byte-of-pair = ASNumber & 255;"
            ::= { bgp4PathAttrEntry 5 }

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

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

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

        bgp4PathAttrAtomicAggregate OBJECT-TYPE
            SYNTAX     INTEGER {
                           lessSpecificRrouteNotSelected(1),
                           lessSpecificRouteSelected(2)
                       }
            MAX-ACCESS read-only
            STATUS     current
            DESCRIPTION
                    "Whether or not 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
            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
            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,
                      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,
                      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 5 }

    END