summaryrefslogtreecommitdiff
path: root/MIBS/PIM-MIB
blob: 4906651b79bec563b5f439296dd360523c161805 (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

PIM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, experimental,
    Integer32, IpAddress, TimeTicks  FROM SNMPv2-SMI
    RowStatus, TruthValue            FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
    ipMRouteGroup, ipMRouteSource,
    ipMRouteSourceMask, ipMRouteNextHopGroup,
    ipMRouteNextHopSource, ipMRouteNextHopSourceMask,
    ipMRouteNextHopIfIndex,
    ipMRouteNextHopAddress           FROM IPMROUTE-STD-MIB
    InterfaceIndex                   FROM IF-MIB;

pimMIB MODULE-IDENTITY
    LAST-UPDATED "9907231200Z" -- July 23, 1999
    ORGANIZATION "IETF IDMR Working Group."
    CONTACT-INFO
            " Dave Thaler
              Microsoft Corporation
              One Microsoft Way
              Redmond, WA  98052-6399
              US

              Phone: +1 425 703 8835
              EMail: dthaler@dthaler.microsoft.com"
    DESCRIPTION
            "The MIB module for management of PIM routers."
    REVISION     "9907231200Z" -- July 23, 1999
    DESCRIPTION
            "Initial version, published as RFC xxxx (to be filled in by
            RFC-Editor)."
--    ::= { mib-2 xx }

    ::= { experimental 61 }  -- $$$ This value to be changed later !!!

    -- NOTE TO RFC EDITOR: When this document is published as an
    -- RFC, replace XX with IANA assignment, and delete this comment.

pimMIBObjects OBJECT IDENTIFIER ::= { pimMIB 1 }

pim           OBJECT IDENTIFIER ::= { pimMIBObjects 1 }

pimJoinPruneInterval OBJECT-TYPE
    SYNTAX     Integer32


    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The default interval at which periodic PIM-SM Join/Prune
            messages are to be sent."
    ::= { pim 1 }


-- The PIM Interface Table

pimInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's PIM interfaces.
            IGMP and PIM are enabled on all interfaces listed in this
            table."


    ::= { pim 2 }

pimInterfaceEntry OBJECT-TYPE
    SYNTAX     PimInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimInterfaceTable."
    INDEX      { pimInterfaceIfIndex }
    ::= { pimInterfaceTable 1 }

PimInterfaceEntry ::= SEQUENCE {
    pimInterfaceIfIndex            InterfaceIndex,
    pimInterfaceAddress            IpAddress,
    pimInterfaceNetMask            IpAddress,
    pimInterfaceMode               INTEGER,
    pimInterfaceDR                 IpAddress,
    pimInterfaceHelloInterval      Integer32,
    pimInterfaceStatus             RowStatus,
    pimInterfaceJoinPruneInterval  Integer32,
    pimInterfaceCBSRPreference     Integer32
}

pimInterfaceIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex value of this PIM interface."
    ::= { pimInterfaceEntry 1 }

pimInterfaceAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current


    DESCRIPTION
            "The IP address of the PIM interface."
    ::= { pimInterfaceEntry 2 }

pimInterfaceNetMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The network mask for the IP address of the PIM interface."
    ::= { pimInterfaceEntry 3 }

pimInterfaceMode OBJECT-TYPE
    SYNTAX     INTEGER { dense(1), sparse(2), sparseDense(3) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The configured mode of this PIM interface.  A value of
            sparseDense is only valid for PIMv1."
    DEFVAL     { dense }
    ::= { pimInterfaceEntry 4 }

pimInterfaceDR OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Designated Router on this PIM interface.  For point-
            to-point interfaces, this object has the value 0.0.0.0."
    ::= { pimInterfaceEntry 5 }

pimInterfaceHelloInterval OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The frequency at which PIM Hello messages are transmitted
            on this interface."
    DEFVAL     { 30 }
    ::= { pimInterfaceEntry 6 }

pimInterfaceStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-only


    STATUS     current
    DESCRIPTION
            "The status of this entry.  Creating the entry enables PIM
            on the interface; destroying the entry disables PIM on the
            interface."
    ::= { pimInterfaceEntry 7 }

pimInterfaceJoinPruneInterval OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The frequency at which PIM Join/Prune messages are
            transmitted on this PIM interface.  The default value of
            this object is the pimJoinPruneInterval."
    ::= { pimInterfaceEntry 8 }

pimInterfaceCBSRPreference OBJECT-TYPE
    SYNTAX     Integer32 (-1..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The preference value for the local interface as a candidate
            bootstrap router.  The value of -1 is used to indicate that
            the local interface is not a candidate BSR interface."
    DEFVAL     { 0 }
    ::= { pimInterfaceEntry 9 }

-- The PIM Neighbor Table

pimNeighborTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's PIM neighbors."


    ::= { pim 3 }

pimNeighborEntry OBJECT-TYPE
    SYNTAX     PimNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION


            "An entry (conceptual row) in the pimNeighborTable."
    INDEX      { pimNeighborAddress }
    ::= { pimNeighborTable 1 }

PimNeighborEntry ::= SEQUENCE {
    pimNeighborAddress      IpAddress,
    pimNeighborIfIndex      InterfaceIndex,
    pimNeighborUpTime       TimeTicks,
    pimNeighborExpiryTime   TimeTicks,
    pimNeighborMode         INTEGER
}

pimNeighborAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address of the PIM neighbor for which this entry
            contains information."
    ::= { pimNeighborEntry 1 }

pimNeighborIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the interface used to reach this
            PIM neighbor."
    ::= { pimNeighborEntry 2 }

pimNeighborUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this PIM neighbor (last) became a neighbor
            of the local router."
    ::= { pimNeighborEntry 3 }

pimNeighborExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before this PIM neighbor will be


            aged out."
    ::= { pimNeighborEntry 4 }

pimNeighborMode OBJECT-TYPE
    SYNTAX     INTEGER { dense(1), sparse(2) }
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The active PIM mode of this neighbor.  This object is
            deprecated for PIMv2 routers since all neighbors on the
            interface must be either dense or sparse as determined by
            the protocol running on the interface."
    ::= { pimNeighborEntry 5 }

--
-- The PIM IP Multicast Route Table
--

pimIpMRouteTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimIpMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing PIM-specific information on
            a subset of the rows of the ipMRouteTable defined in the IP
            Multicast MIB."


    ::= { pim 4 }

pimIpMRouteEntry OBJECT-TYPE
    SYNTAX     PimIpMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimIpMRouteTable.  There
            is one entry per entry in the ipMRouteTable whose incoming
            interface is running PIM."
    INDEX      { ipMRouteGroup, ipMRouteSource, ipMRouteSourceMask }
    ::= { pimIpMRouteTable 1 }

PimIpMRouteEntry ::= SEQUENCE {
    pimIpMRouteUpstreamAssertTimer   TimeTicks,
    pimIpMRouteAssertMetric          Integer32,
    pimIpMRouteAssertMetricPref      Integer32,
    pimIpMRouteAssertRPTBit          TruthValue,
    pimIpMRouteFlags                 BITS


}

pimIpMRouteUpstreamAssertTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before the router changes its upstream
            neighbor back to its RPF neighbor.  This timer is called the
            Assert timer in the PIM Sparse and Dense mode specification.
            A value of 0 indicates that no Assert has changed the
            upstream neighbor away from the RPF neighbor."
    ::= { pimIpMRouteEntry 1 }

pimIpMRouteAssertMetric OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric advertised by the assert winner on the upstream
            interface, or 0 if no such assert is in received."
    ::= { pimIpMRouteEntry 2 }

pimIpMRouteAssertMetricPref OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The preference advertised by the assert winner on the
            upstream interface, or 0 if no such assert is in effect."
    ::= { pimIpMRouteEntry 3 }

pimIpMRouteAssertRPTBit OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of the RPT-bit advertised by the assert winner on
            the upstream interface, or false if no such assert is in
            effect."
    ::= { pimIpMRouteEntry 4 }

pimIpMRouteFlags OBJECT-TYPE
    SYNTAX     BITS {
                  rpt(0),


                  spt(1)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object describes PIM-specific flags related to a
            multicast state entry.  See the PIM Sparse Mode
            specification for the meaning of the RPT and SPT bits."
    ::= { pimIpMRouteEntry 5 }

--
-- The PIM Next Hop Table
--

pimIpMRouteNextHopTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimIpMRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing PIM-specific information on
            a subset of the rows of the ipMRouteNextHopTable defined in
            the IP Multicast MIB."


    ::= { pim 7 }

pimIpMRouteNextHopEntry OBJECT-TYPE
    SYNTAX     PimIpMRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimIpMRouteNextHopTable.
            There is one entry per entry in the ipMRouteNextHopTable
            whose interface is running PIM and whose
            ipMRouteNextHopState is pruned(1)."
    INDEX      { ipMRouteNextHopGroup, ipMRouteNextHopSource,
                 ipMRouteNextHopSourceMask, ipMRouteNextHopIfIndex,
                 ipMRouteNextHopAddress }
    ::= { pimIpMRouteNextHopTable 1 }

PimIpMRouteNextHopEntry ::= SEQUENCE {
    pimIpMRouteNextHopPruneReason       INTEGER
}

pimIpMRouteNextHopPruneReason OBJECT-TYPE
    SYNTAX     INTEGER {
                  other (1),


                  prune (2),
                  assert (3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object indicates why the downstream interface was
            pruned, whether in response to a PIM prune message or due to
            PIM Assert processing."
    ::= { pimIpMRouteNextHopEntry 2 }

-- The PIM RP Table

pimRPTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimRPEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The (conceptual) table listing PIM version 1 information
            for the Rendezvous Points (RPs) for IP multicast groups.
            This table is deprecated since its function is replaced by
            the pimRPSetTable for PIM version 2."


    ::= { pim 5 }

pimRPEntry OBJECT-TYPE
    SYNTAX     PimRPEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "An entry (conceptual row) in the pimRPTable.  There is one
            entry per RP address for each IP multicast group."
    INDEX      { pimRPGroupAddress, pimRPAddress }
    ::= { pimRPTable 1 }


PimRPEntry ::= SEQUENCE {
    pimRPGroupAddress    IpAddress,
    pimRPAddress         IpAddress,
    pimRPState           INTEGER,
    pimRPStateTimer      TimeTicks,
    pimRPLastChange      TimeTicks,
    pimRPRowStatus       RowStatus
}

pimRPGroupAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information about an RP."
    ::= { pimRPEntry 1 }

pimRPAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The unicast address of the RP."
    ::= { pimRPEntry 2 }

pimRPState OBJECT-TYPE
    SYNTAX     INTEGER { up(1), down(2) }
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The state of the RP."
    ::= { pimRPEntry 3 }

pimRPStateTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The minimum time remaining before the next state change.
            When pimRPState is up, this is the minimum time which must
            expire until it can be declared down.  When pimRPState is
            down, this is the time until it will be declared up (in
            order to retry)."
    ::= { pimRPEntry 4 }


pimRPLastChange OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The value of sysUpTime at the time when the corresponding
            instance of pimRPState last changed its value."
    ::= { pimRPEntry 5 }

pimRPRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The status of this row, by which new entries may be
            created, or old entries deleted from this table."
    ::= { pimRPEntry 6 }

-- The PIM RP-Set Table

pimRPSetTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimRPSetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing PIM information for
            candidate Rendezvous Points (RPs) for IP multicast groups.
            When the local router is the BSR, this information is
            obtained from received Candidate-RP-Advertisements.  When
            the local router is not the BSR, this information is
            obtained from received RP-Set messages."


    ::= { pim 6 }

pimRPSetEntry OBJECT-TYPE
    SYNTAX     PimRPSetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimRPSetTable."
    INDEX      { pimRPSetComponent, pimRPSetGroupAddress,
                 pimRPSetGroupMask, pimRPSetAddress }
    ::= { pimRPSetTable 1 }

PimRPSetEntry ::= SEQUENCE {


    pimRPSetGroupAddress    IpAddress,
    pimRPSetGroupMask       IpAddress,
    pimRPSetAddress         IpAddress,
    pimRPSetHoldTime        Integer32,
    pimRPSetExpiryTime      TimeTicks,
    pimRPSetComponent       Integer32
}

pimRPSetGroupAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address which, when combined with
            pimRPSetGroupMask, gives the group prefix for which this
            entry contains information about the Candidate-RP."
    ::= { pimRPSetEntry 1 }

pimRPSetGroupMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group address mask which, when combined with
            pimRPSetGroupAddress, gives the group prefix for which this
            entry contains information about the Candidate-RP."
    ::= { pimRPSetEntry 2 }

pimRPSetAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address of the Candidate-RP."
    ::= { pimRPSetEntry 3 }

pimRPSetHoldTime OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The holdtime of a Candidate-RP.  If the local router is not
            the BSR, this value is 0."
    ::= { pimRPSetEntry 4 }


pimRPSetExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before the Candidate-RP will be
            declared down.  If the local router is not the BSR, this
            value is 0."
    ::= { pimRPSetEntry 5 }

pimRPSetComponent OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            " A number uniquely identifying the component.  Each
            protocol instance connected to a separate domain should have
            a different index value."
    ::= { pimRPSetEntry 6 }

-- The PIM Candidate-RP Table

pimCandidateRPTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimCandidateRPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the IP multicast groups for
            which the local router is to advertise itself as a
            Candidate-RP when the value of pimComponentCRPHoldTime is
            non-zero.  If this table is empty, then the local router
            will advertise itself as a Candidate-RP for all groups
            (providing the value of pimComponentCRPHoldTime is non-
            zero)."


    ::= { pim 11 }

pimCandidateRPEntry OBJECT-TYPE
    SYNTAX     PimCandidateRPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimCandidateRPTable."
    INDEX      { pimCandidateRPGroupAddress,
                 pimCandidateRPGroupMask }


    ::= { pimCandidateRPTable 1 }

PimCandidateRPEntry ::= SEQUENCE {
    pimCandidateRPGroupAddress    IpAddress,
    pimCandidateRPGroupMask       IpAddress,
    pimCandidateRPAddress         IpAddress,
    pimCandidateRPRowStatus       RowStatus
}

pimCandidateRPGroupAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address which, when combined with
            pimCandidateRPGroupMask, identifies a group prefix for which
            the local router will advertise itself as a Candidate-RP."
    ::= { pimCandidateRPEntry 1 }

pimCandidateRPGroupMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group address mask which, when combined with
            pimCandidateRPGroupMask, identifies a group prefix for which
            the local router will advertise itself as a Candidate-RP."
    ::= { pimCandidateRPEntry 2 }

pimCandidateRPAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The (unicast) address of the interface which will be
            advertised as a Candidate-RP."
    ::= { pimCandidateRPEntry 3 }

pimCandidateRPRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of this row, by which new entries may be
            created, or old entries deleted from this table."


    ::= { pimCandidateRPEntry 4 }

-- The PIM Component Table

pimComponentTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimComponentEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containing objects specific to a PIM
            domain.  One row exists for each domain to which the router
            is connected.  A PIM-SM domain is defined as an area of the
            network over which Bootstrap messages are forwarded.
            Typically, a PIM-SM router will be a member of exactly one
            domain.  This table also supports, however, routers which
            may form a border between two PIM-SM domains and do not
            forward Bootstrap messages between them."


    ::= { pim 12 }

pimComponentEntry OBJECT-TYPE
    SYNTAX     PimComponentEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimComponentTable."
    INDEX      { pimComponentIndex }
    ::= { pimComponentTable 1 }

PimComponentEntry ::= SEQUENCE {
    pimComponentIndex              Integer32,
    pimComponentBSRAddress         IpAddress,
    pimComponentBSRExpiryTime      TimeTicks,
    pimComponentCRPHoldTime        Integer32,
    pimComponentStatus             RowStatus
}

pimComponentIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A number uniquely identifying the component.  Each protocol
            instance connected to a separate domain should have a
            different index value.  Routers that only support membership
            in a single PIM-SM domain should use a pimComponentIndex


            value of 1."
    ::= { pimComponentEntry 1 }

pimComponentBSRAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP address of the bootstrap router (BSR) for the local
            PIM region."
    ::= { pimComponentEntry 2 }

pimComponentBSRExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before the bootstrap router in
            the local domain will be declared down.  For candidate BSRs,
            this is the time until the component sends an RP-Set
            message.  For other routers, this is the time until it may
            accept an RP-Set message from a lower candidate BSR."
    ::= { pimComponentEntry 3 }

pimComponentCRPHoldTime OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The holdtime of the component when it is a candidate RP in
            the local domain.  The value of 0 is used to indicate that
            the local system is not a Candidate-RP."
    DEFVAL     { 0 }
    ::= { pimComponentEntry 4 }

pimComponentStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of this entry.  Creating the entry creates
            another protocol instance; destroying the entry disables a
            protocol instance."
    ::= { pimComponentEntry 5 }


-- conformance information

pimMIBConformance OBJECT IDENTIFIER ::= { pimMIB 2 }
pimMIBCompliances OBJECT IDENTIFIER ::= { pimMIBConformance 1 }
pimMIBGroups      OBJECT IDENTIFIER ::= { pimMIBConformance 2 }

-- compliance statements

pimV1MIBCompliance MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for routers running PIMv1 and
            implementing the PIM MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { pimV1MIBGroup }

    ::= { pimMIBCompliances 1 }

pimSparseV2MIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for routers running PIM Sparse
            Mode and implementing the PIM MIB."
    MODULE  -- this module
    MANDATORY-GROUPS { pimV2MIBGroup }

    GROUP      pimV2CandidateRPMIBGroup
    DESCRIPTION
            "This group is mandatory if the router is capable of being a
            Candidate RP."

    OBJECT     pimInterfaceStatus
    MIN-ACCESS read-only
    DESCRIPTION
             "Write access is not required."

    ::= { pimMIBCompliances 2 }

pimDenseV2MIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for routers running PIM Dense Mode
            and implementing the PIM MIB."
    MODULE  -- this module


        MANDATORY-GROUPS { pimDenseV2MIBGroup }

    OBJECT     pimInterfaceStatus
    MIN-ACCESS read-only
    DESCRIPTION
             "Write access is not required."

    ::= { pimMIBCompliances 3 }

-- units of conformance

pimV2MIBGroup OBJECT-GROUP
    OBJECTS { pimJoinPruneInterval, pimNeighborIfIndex,
              pimNeighborUpTime, pimNeighborExpiryTime,
              pimInterfaceAddress, pimInterfaceNetMask,
              pimInterfaceDR, pimInterfaceHelloInterval,
              pimInterfaceStatus, pimInterfaceJoinPruneInterval,
              pimInterfaceCBSRPreference, pimInterfaceMode,
              pimRPSetHoldTime, pimRPSetExpiryTime,
              pimComponentBSRAddress, pimComponentBSRExpiryTime,
              pimComponentCRPHoldTime, pimComponentStatus,
              pimIpMRouteFlags, pimIpMRouteUpstreamAssertTimer
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support management of PIM Sparse
            Mode (version 2) routers."
    ::= { pimMIBGroups 2 }

pimDenseV2MIBGroup OBJECT-GROUP
    OBJECTS { pimNeighborIfIndex,
              pimNeighborUpTime, pimNeighborExpiryTime,
              pimInterfaceAddress, pimInterfaceNetMask,
              pimInterfaceDR, pimInterfaceHelloInterval,
              pimInterfaceStatus, pimInterfaceMode
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support management of PIM Dense
            Mode (version 2) routers."
    ::= { pimMIBGroups 5 }

pimV2CandidateRPMIBGroup OBJECT-GROUP
    OBJECTS { pimCandidateRPAddress,


              pimCandidateRPRowStatus
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support configuration of which
            groups a router is to advertise itself as a Candidate-RP."
    ::= { pimMIBGroups 3 }

pimV1MIBGroup OBJECT-GROUP
    OBJECTS { pimJoinPruneInterval, pimNeighborIfIndex,
              pimNeighborUpTime, pimNeighborExpiryTime,
              pimNeighborMode,
              pimInterfaceAddress, pimInterfaceNetMask,
              pimInterfaceJoinPruneInterval, pimInterfaceStatus,
              pimInterfaceMode, pimInterfaceDR,
              pimInterfaceHelloInterval,
              pimRPState, pimRPStateTimer,
              pimRPLastChange, pimRPRowStatus
            }
    STATUS  deprecated
    DESCRIPTION
            "A collection of objects to support management of PIM
            (version 1) routers."
    ::= { pimMIBGroups 4 }

pimNextHopGroup OBJECT-GROUP
    OBJECTS { pimIpMRouteNextHopPruneReason }
    STATUS  current
    DESCRIPTION
            "A collection of optional objects to provide per-next hop
            information for diagnostic purposes.  Supporting this group
            may add a large number of instances to a tree walk, but the
            information in this group can be extremely useful in
            tracking down multicast connectivity problems."
    ::= { pimMIBGroups 6 }

pimAssertGroup OBJECT-GROUP
    OBJECTS { pimIpMRouteAssertMetric, pimIpMRouteAssertMetricPref,
              pimIpMRouteAssertRPTBit }
    STATUS  current
    DESCRIPTION
            "A collection of optional objects to provide extra
            information about the assert election process.  There is no
            protocol reason to keep such information, but some
            implementations may already keep this information and make


            it available.  These objects can also be very useful in
            debugging connectivity or duplicate packet problems,
            especially if the assert winner does not support the PIM and
            IP Multicast MIBs."
    ::= { pimMIBGroups 7 }

END