summaryrefslogtreecommitdiff
path: root/MIBS/junos/MCAST-VPN-MIB
blob: ebe56e808041318ce56e5b8620b506c6948a553e (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
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
-- ==============================
-- jnxMVPN-MIB:  JUNIPER MVPN-MIB
-- 
-- ==============================

-- Note: This MIB is based on draft-zzhang-mvpn-mib-02 and is temporary & experimental.
-- This may be replaced in future with a standard MVPN MIB from IETF.


     MCAST-VPN-MIB DEFINITIONS ::= BEGIN

     IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
        Unsigned32
           FROM SNMPv2-SMI

        MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
           FROM SNMPv2-CONF

        TruthValue, RowPointer, RowStatus, TimeStamp, TimeInterval
           FROM SNMPv2-TC

        SnmpAdminString
           FROM SNMP-FRAMEWORK-MIB

        InetAddress, InetAddressType
           FROM INET-ADDRESS-MIB

        MplsLabel
           FROM MPLS-TC-STD-MIB

	mplsVpnVrfName, MplsVpnRouteDistinguisher
	   FROM MPLS-VPN-MIB

	ipMRouteEntry
	   FROM IPMROUTE-STD-MIB

-- Juniper specific                                       

	jnxMibs
	   FROM JUNIPER-SMI

	jnxMvpnExperiment			-- *** JNX ***
	   FROM JUNIPER-EXPERIMENT-MIB
	   
	JnxL2L3VpnMcastProviderTunnelType
	   FROM L2L3-VPN-MCAST-MIB    
	;

     jnxMvpnMIB	MODULE-IDENTITY
        LAST-UPDATED "201307121200Z"  -- 12 July 2013 12:00:00 GMT
        ORGANIZATION "IETF Layer-3 Virtual Private
                      Networks Working Group."
        CONTACT-INFO
               " Jeffrey (Zhaohui) Zhang
                 zzhang@juniper.net

                 Comments and discussion to l3vpn@ietf.org"

        DESCRIPTION
             "This MIB contains managed object definitions for
              multicast in BGP/MPLS IP VPNs defined by [MVPN]. 
              Copyright (C) The Internet Society (2012)."

       -- Revision history.
        REVISION "201301071200Z"  -- 07 January 2013 12:00:00 GMT
        DESCRIPTION
           "Initial version of the draft."
        ::= { jnxMvpnExperiment 1 } -- number to be assigned

     -- Top level components of this MIB.
     jnxMvpnNotifications OBJECT IDENTIFIER ::= { jnxMvpnMIB 0 }

     -- tables, scalars
     jnxMvpnObjects       OBJECT IDENTIFIER ::= { jnxMvpnMIB 1 }
     -- conformance
     -- jnxMvpnConformance   OBJECT IDENTIFIER ::= { jnxMvpnMIB 2 }

     jnxMvpnScalars       OBJECT IDENTIFIER ::= { jnxMvpnObjects 1 }
     jnxMvpnGeneral       OBJECT IDENTIFIER ::= { jnxMvpnObjects 2 }
     jnxMvpnConfig        OBJECT IDENTIFIER ::= { jnxMvpnObjects 3 }
     jnxMvpnStates        OBJECT IDENTIFIER ::= { jnxMvpnObjects 4 }
 
     -- Scalar Objects

     jnxMvpnMvrfNumber OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
	    "The number of MVRFs for IPv4 or IPv6 or mLDP C-Multicast
	    that are present in this device."
        ::= { jnxMvpnScalars 1 }

     jnxMvpnMvrfNumberV4 OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
	    "The number of MVRFs for IPv4 C-Multicast that are present
	     in this device."
        ::= { jnxMvpnScalars 2 }

     jnxMvpnMvrfNumberV6 OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
	    "The number of MVRFs for IPv6 C-Multicast that are present
	     in this device."
        ::= { jnxMvpnScalars 3 }

     jnxMvpnMvrfNumberPimV4 OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The number of PIM-MVPN MVRFs for IPv4 C-Multicast that are present 
	    in this device."
        ::= { jnxMvpnScalars 4 }

     jnxMvpnMvrfNumberPimV6 OBJECT-TYPE
        SYNTAX         Unsigned32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
	    "The number of PIM-MVPN MVRFs for IPv6 C-Multicast that are present
	     in this device."
        ::= { jnxMvpnScalars 5 }

     jnxMvpnMvrfNumberBgpV4 OBJECT-TYPE
        SYNTAX         Unsigned32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
 	    "The number of BGP-MVPN MVRFs for IPv4 C-Multicast that are present
 	     in this device."
        ::= { jnxMvpnScalars 6 }

     jnxMvpnMvrfNumberBgpV6 OBJECT-TYPE
        SYNTAX         Unsigned32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
	    "The number of BGP-MVPN MVRFs for IPv6 C-Multicast that are present
	     in this device."
        ::= { jnxMvpnScalars 7 }

     jnxMvpnMvrfNumberMldp OBJECT-TYPE
        SYNTAX         Unsigned32
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
 	    "The number of BGP-MVPN MVRFs for mLDP C-Multicast that are present
	     in this device."
        ::= { jnxMvpnScalars 8 }

     jnxMvpnNotificationEnable OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
             "If this object is TRUE, then the generation of all 
              notifications defined in this MIB is enabled."
        DEFVAL { false }
        ::= { jnxMvpnScalars 9 }

     -- General MVRF Information Table

     jnxMvpnGeneralTable  OBJECT-TYPE
        SYNTAX        SEQUENCE OF JnxMvpnGeneralEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "This table specifies the general information about the MVRFs 
             present in this device."
        ::= { jnxMvpnGeneral 1 }
 
     jnxMvpnGeneralEntry OBJECT-TYPE
        SYNTAX        JnxMvpnGeneralEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in this table is created for every MVRF in the 
             device." 
        INDEX       { mplsVpnVrfName }
        ::= { jnxMvpnGeneralTable 1 }

     JnxMvpnGeneralEntry ::= SEQUENCE {
	jnxMvpnGenOperStatusChange         INTEGER,
	jnxMvpnGenOperChangeTime           TimeStamp,
	jnxMvpnGenCmcastRouteProtocolV4    INTEGER,
	jnxMvpnGenCmcastRouteProtocolV6    INTEGER,
	jnxMvpnGenIpmsiConfigV4		   RowPointer,
	jnxMvpnGenIpmsiConfigV6		   RowPointer,
	jnxMvpnGenInterAsPmsiConfigV4	   RowPointer,
	jnxMvpnGenInterAsPmsiConfigV6	   RowPointer,
	jnxMvpnGenRowStatus		   RowStatus
     }

     jnxMvpnGenOperStatusChange OBJECT-TYPE
        SYNTAX        INTEGER { createdMvrf(1),
                                deletedMvrf(2),
                                modifiedMvrfIpmsiConfig(3),
                                modifiedMvrfSpmsiConfig(4)
                              }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "This object describes the last operational change that 
             happened for the given MVRF. 

             createdMvrf - indicates that the MVRF was created in the 
             device.

             deletedMvrf - indicates that the MVRF was deleted from the 
             device. A row in this table will never have 
             mvpnGenOperStatusChange equal to deletedMvrf(2),
             because in that case the row itself will be deleted from the 
             table. This value for mvpnGenOperStatusChange is defined 
             mainly for use in mvpnMvrfChange notification.

             modifiedMvrfIpmsiConfig - indicates that the I-PMSI 
             for the MVRF was configured, deleted or changed.

             modifiedMvrfSpmsiConfig - indicates that the S-PMSI 
             for the MVRF was configured, deleted or changed."
        DEFVAL { createdMvrf }
        ::= { jnxMvpnGeneralEntry 1 }

     jnxMvpnGenOperChangeTime OBJECT-TYPE
        SYNTAX        TimeStamp
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The time at which the last operational change for the MVRF in 
             question took place. The last operational change is specified 
             by mvpnGenOperStatusChange."
        ::= { jnxMvpnGeneralEntry 2 }

     jnxMvpnGenCmcastRouteProtocolV4 OBJECT-TYPE
        SYNTAX        INTEGER { pim (1),
                                bgp (2)
                              }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "Protocol used to signal IPv4 C-multicast states across the
             provider core.
             pim(1): PIM (PIM-MVPN).
             bgp(2): BGP (BGP-MVPN)."
        ::= { jnxMvpnGeneralEntry 3 }

     jnxMvpnGenCmcastRouteProtocolV6 OBJECT-TYPE
        SYNTAX        INTEGER { pim (1),
                                bgp (2)
                              }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "Protocol used to signal IPv6 C-multicast states across the
             provider core.
             pim(1): PIM (PIM-MVPN).
             bgp(2): BGP (BGP-MVPN)."
        ::= { jnxMvpnGeneralEntry 4 }

     jnxMvpnGenIpmsiConfigV4	 OBJECT-TYPE
        SYNTAX        RowPointer 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
	    " This points to a row in MvpnPmsiConfigTable,
		for I-PMSI configuration for IPv4."

        ::= { jnxMvpnGeneralEntry 5 }

     jnxMvpnGenIpmsiConfigV6	 OBJECT-TYPE
        SYNTAX        RowPointer
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
	    " This points to a row in MvpnPmsiConfigTable,
		for I-PMSI configuration for IPv6."

        ::= { jnxMvpnGeneralEntry 6 }

     jnxMvpnGenInterAsPmsiConfigV4 OBJECT-TYPE
        SYNTAX        RowPointer
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
	    " This points to a row in MvpnPmsiConfigTable,
		for inter-as I-PMSI configuration for IPv4, in case of segmented
		inter-as provider tunnels."    

        ::= { jnxMvpnGeneralEntry 7 }

     jnxMvpnGenInterAsPmsiConfigV6 OBJECT-TYPE
        SYNTAX        RowPointer 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
	    "This points to a row in MvpnPmsiConfigTable,
	    for inter-as I-PMSI configuration for IPv6, in case of segmented
	    inter-as provider tunnels."

        ::= { jnxMvpnGeneralEntry 8 }

     jnxMvpnGenRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
               "This is used to create or delete a row in this table."
        ::= { jnxMvpnGeneralEntry 9 }

     -- General BGP-MVPN table

     jnxMvpnBgpGeneralTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF JnxMvpnBgpGeneralEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "This table augments the mvpnGeneralTable and is for BGP-MVPN
             specific information."
        ::= { jnxMvpnGeneral 2 }

     jnxMvpnBgpGeneralEntry OBJECT-TYPE
        SYNTAX        JnxMvpnBgpGeneralEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The mvpnBgpGeneralEntry matches and augments an mvpnGeneralEntry
             for a BGP-MVPN instance, with BGP-MVPN specific informatoin."
        AUGMENTS      { jnxMvpnGeneralEntry }
	::= { jnxMvpnBgpGeneralTable 1 }

     JnxMvpnBgpGeneralEntry ::= SEQUENCE {
        jnxMvpnBgpGenMode           INTEGER,
        jnxMvpnBgpGenUmhSelection   INTEGER,
        jnxMvpnBgpGenSiteType       INTEGER,
        jnxMvpnBgpGenCmcastImportRt MplsVpnRouteDistinguisher,
        jnxMvpnBgpGenSrcAs          Unsigned32,
	jnxMvpnBgpGenSptnlLimit     Unsigned32
     }

     jnxMvpnBgpGenMode       OBJECT-TYPE
        SYNTAX        INTEGER {
                            rpt-spt  (1),
                            spt-only (2)
                      }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "For two different BGP-MVPN modes:
             rpt-spt(1):  intersite-site shared tree mode
             spt-only(2): inter-site source-only tree mode."
        ::= { jnxMvpnBgpGeneralEntry 1}

     jnxMvpnBgpGenUmhSelection OBJECT-TYPE
        SYNTAX        INTEGER {
                                highest-pe-address   (1),
                                c-root-group-hashing (2),
                                ucast-umh-route      (3)
                          }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The UMH selection method for this mvpn, as specified in section
             5.1.3 of [MVPN]:
               highest-pe-address   (1): PE with the highest address
               c-root-group-hashing (2): hashing based on (c-root, c-group)
               uncast-umh-route     (3): per ucast route towards c-root"
 
        ::= { jnxMvpnBgpGeneralEntry 2}

     jnxMvpnBgpGenSiteType   OBJECT-TYPE
        SYNTAX        INTEGER {
                                sender-receiver (1),
                                receiver-only   (2),
				sender-only     (3)
                        }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "Whether this site is a receiver-only site or not.
             sender-receiver (1):   both sender and receiver site.
             receiver-only   (2):   receiver-only site.
	     sender-only     (3):   sender-only site."
        ::= { jnxMvpnBgpGeneralEntry 3}

     jnxMvpnBgpGenCmcastImportRt   OBJECT-TYPE
        SYNTAX        MplsVpnRouteDistinguisher
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The C-multicast Import RT that this device adds to
             unicast vpn routes that it advertises for this mvpn."
        ::= { jnxMvpnBgpGeneralEntry 4}

     jnxMvpnBgpGenSrcAs      OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The Source AS number in Source AS Extended Community that this device
             adds to the unicast vpn routes that it advertises for this mvpn."
        ::= { jnxMvpnBgpGeneralEntry 5}

     jnxMvpnBgpGenSptnlLimit OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The max number of selective provider tunnels this device allows
             for this mvpn."
        ::= { jnxMvpnBgpGeneralEntry 6}

     -- PMSI Configuration Table

     jnxMvpnPmsiConfigTable  OBJECT-TYPE
        SYNTAX        SEQUENCE OF JnxMvpnPmsiConfigEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "This table specifies the configured PMSIs."
        ::= { jnxMvpnConfig 1 }

     jnxMvpnPmsiConfigEntry OBJECT-TYPE
        SYNTAX        JnxMvpnPmsiConfigEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in this table is created for each PMSI configured
             on this router. It can be referred to by either I-PMSI
             configuration (in mvpnGeneralEntry) or S-PMSI configuration
             (in mvpnSpmsiConfigEntry)"
        INDEX       { jnxMvpnPmsiConfigTunnelType,
                      jnxMvpnPmsiConfigTunnelAuxInfo,
                      jnxMvpnPmsiConfigTunnelPimGroupAddressType,
                      jnxMvpnPmsiConfigTunnelPimGroupAddress,
                      jnxMvpnPmsiConfigTunnelOrTemplateName }
        ::= { jnxMvpnPmsiConfigTable 1 }

     JnxMvpnPmsiConfigEntry ::= SEQUENCE {
       jnxMvpnPmsiConfigTunnelType                 JnxL2L3VpnMcastProviderTunnelType,
       jnxMvpnPmsiConfigTunnelAuxInfo              Unsigned32,
       jnxMvpnPmsiConfigTunnelPimGroupAddressType  InetAddressType,
       jnxMvpnPmsiConfigTunnelPimGroupAddress      InetAddress,
       jnxMvpnPmsiConfigTunnelOrTemplateName       SnmpAdminString,
       jnxMvpnPmsiConfigEncapsType                 INTEGER,
       jnxMvpnPmsiConfigRowStatus                  RowStatus
     }

     jnxMvpnPmsiConfigTunnelType OBJECT-TYPE
        SYNTAX        JnxL2L3VpnMcastProviderTunnelType
        MAX-ACCESS    not-accessible 
        STATUS        current
        DESCRIPTION
            "Type of tunnel used to instantiate the PMSI."
        ::= { jnxMvpnPmsiConfigEntry 1 }

     jnxMvpnPmsiConfigTunnelAuxInfo OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    not-accessible 
        STATUS        current
        DESCRIPTION
            "Additional tunnel information depending on the type.
             pim:         In case of S-PMSI, number of groups starting at
                          mvpnPmsiConfigTunnelPimGroupAddress.
                          This allows a range of PIM provider tunnel
                          group addresses to be specified in S-PMSI case.
                          In I-PMSI case, it must be 1.
             rsvp-p2mp:   1 for statically specified rsvp-p2mp tunnel
                          2 for dynamically created rsvp-p2mp tunnel
             ingress-replication:
                          1 for using any existing p2p/mp2p lsp
                          2 for dynamically creating new p2p lsp"
        ::= { jnxMvpnPmsiConfigEntry 2 }

     jnxMvpnPmsiConfigTunnelPimGroupAddressType OBJECT-TYPE
        SYNTAX        InetAddressType
        MAX-ACCESS    not-accessible 
        STATUS        current
        DESCRIPTION
            "In case of PIM provider tunnel, the type of tunnel address."
        ::= { jnxMvpnPmsiConfigEntry 3 }

     jnxMvpnPmsiConfigTunnelPimGroupAddress OBJECT-TYPE
        SYNTAX        InetAddress
        MAX-ACCESS    not-accessible 
        STATUS        current
        DESCRIPTION
            "In case of PIM provider tunnel, the provider tunnel address."
        ::= { jnxMvpnPmsiConfigEntry 4 }

     jnxMvpnPmsiConfigTunnelOrTemplateName OBJECT-TYPE
        SYNTAX        SnmpAdminString
        MAX-ACCESS    not-accessible 
        STATUS        current
        DESCRIPTION
            "The tunnel name or template name used to create tunnels.
             Depending on mvpnPmsiConfigTunnelType and
             mvpnPmsiConfigTunnelAuxInfo:

             dynamically created rsvp-p2mp tunnel:       template name
             statically specified rsvp-p2mp tunnel:      tunnel name
             ingress-replication using
               dynamically created lsps:                 template name
             other:                                      null"
        ::= { jnxMvpnPmsiConfigEntry 5 }

     jnxMvpnPmsiConfigEncapsType OBJECT-TYPE
        SYNTAX        INTEGER { greIp (1),
                                ipIp  (2),
                                mpls  (3)
                              }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The encapsulation type to be used, in case of PIM tunnel or
             ingress-replication."
        ::= { jnxMvpnPmsiConfigEntry 6 }

     jnxMvpnPmsiConfigRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "Used to create/modify/delete a row in this table."
       ::= { jnxMvpnPmsiConfigEntry 7 }

     -- S-PMSI configuration table

     jnxMvpnSpmsiConfigTable  OBJECT-TYPE
        SYNTAX        SEQUENCE OF JnxMvpnSpmsiConfigEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "This table specifies S-PMSI configuration."
        ::= { jnxMvpnConfig 2 }

     jnxMvpnSpmsiConfigEntry OBJECT-TYPE  
        SYNTAX        JnxMvpnSpmsiConfigEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry is created for each S-PMSI configuration."
        INDEX       {  mplsVpnVrfName,
                       jnxMvpnSpmsiConfigCmcastAddressType,
                       jnxMvpnSpmsiConfigCmcastGroupAddress,
                       jnxMvpnSpmsiConfigCmcastGroupPrefixLen,
                       jnxMvpnSpmsiConfigCmcastSourceAddress,
                       jnxMvpnSpmsiConfigCmcastSourcePrefixLen }
        ::= { jnxMvpnSpmsiConfigTable 1 }

     JnxMvpnSpmsiConfigEntry ::= SEQUENCE {
        jnxMvpnSpmsiConfigCmcastAddressType     InetAddressType,
        jnxMvpnSpmsiConfigCmcastGroupAddress    InetAddress,
        jnxMvpnSpmsiConfigCmcastGroupPrefixLen  Unsigned32,
        jnxMvpnSpmsiConfigCmcastSourceAddress   InetAddress,
        jnxMvpnSpmsiConfigCmcastSourcePrefixLen Unsigned32,
        jnxMvpnSpmsiConfigThreshold             Unsigned32,
	jnxMvpnSpmsiConfigPmsiPointer		RowPointer,
        jnxMvpnSpmsiConfigRowStatus             RowStatus
     }

     jnxMvpnSpmsiConfigCmcastAddressType OBJECT-TYPE
        SYNTAX        InetAddressType
        MAX-ACCESS    not-accessible 
        STATUS        current
        DESCRIPTION
            "Type of C-multicast address"
        ::= { jnxMvpnSpmsiConfigEntry 1 }

     jnxMvpnSpmsiConfigCmcastGroupAddress OBJECT-TYPE
        SYNTAX        InetAddress
        MAX-ACCESS    not-accessible 
        STATUS        current
        DESCRIPTION
            "C-multicast group address"
        ::= { jnxMvpnSpmsiConfigEntry 2 }

     jnxMvpnSpmsiConfigCmcastGroupPrefixLen OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    not-accessible 
        STATUS        current
        DESCRIPTION
            "C-multicast group address prefix length.
             A group 0 (or ::0) with prefix length 32 (or 128)
             indicates wildcard group, while a group 0 (or ::0)
             with prefix length 0 indicates any group."
        ::= { jnxMvpnSpmsiConfigEntry 3 }

     jnxMvpnSpmsiConfigCmcastSourceAddress OBJECT-TYPE
        SYNTAX        InetAddress
        MAX-ACCESS    not-accessible 
        STATUS        current
        DESCRIPTION
            "C-multicast source address"
        ::= { jnxMvpnSpmsiConfigEntry 4 }

     jnxMvpnSpmsiConfigCmcastSourcePrefixLen OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "C-multicast source address prefix length.
             A source 0 (or ::0) with prefix length 32 (or 128)
             indicates a wildcard source, while a source 0 (or ::0)
             with prefix length 0 indicates any source."
        ::= { jnxMvpnSpmsiConfigEntry 5 }

     jnxMvpnSpmsiConfigThreshold OBJECT-TYPE
        SYNTAX        Unsigned32  (0..4294967295)
        UNITS         "kilobits per second"
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The bandwidth threshold value which when exceeded for a 
             multicast routing entry in the given MVRF, triggers usage 
             of S-PMSI."
        ::= { jnxMvpnSpmsiConfigEntry 6 }

     jnxMvpnSpmsiConfigPmsiPointer OBJECT-TYPE
        SYNTAX        RowPointer
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "This points to a row in MvpnPmsiConfigTable,
             to specify tunnel attributes."
        ::= { jnxMvpnSpmsiConfigEntry 7 }

     jnxMvpnSpmsiConfigRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "Used to create/modify/delete a row in this table."
       ::= { jnxMvpnSpmsiConfigEntry 8 }

     -- Table of intra-as I-PMSIs advertised/received

     jnxMvpnIpmsiTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF JnxMvpnIpmsiEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "This table is for all advertised/received I-PMSI
             advertisements."
        ::= { jnxMvpnStates 1 }

     jnxMvpnIpmsiEntry OBJECT-TYPE
        SYNTAX        JnxMvpnIpmsiEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in this table corresponds to an I-PMSI
             advertisement that is advertised/received on this router.
             This represents all the sender PEs in the MVPN,
             with the provider tunnel they use to send traffic."
        INDEX  { mplsVpnVrfName,
		 jnxMvpnIpmsiAfi,
		 jnxMvpnIpmsiRD,
                 jnxMvpnIpmsiOrigAddrType,
                 jnxMvpnIpmsiOrigAddress }
        ::= { jnxMvpnIpmsiTable 1 }

     JnxMvpnIpmsiEntry ::= SEQUENCE {
	jnxMvpnIpmsiAfi		 Unsigned32, 
	jnxMvpnIpmsiRD           MplsVpnRouteDistinguisher,
        jnxMvpnIpmsiOrigAddrType InetAddressType,
        jnxMvpnIpmsiOrigAddress  InetAddress,
	jnxMvpnIpmsiUpTime	 TimeInterval,
        jnxMvpnIpmsiAttribute    RowPointer
        }

     jnxMvpnIpmsiAfi OBJECT-TYPE
	SYNTAX        Unsigned32 (1|2)
	MAX-ACCESS    not-accessible
   	STATUS        current
   	DESCRIPTION
	    "The address family this I-PMSI is for.
        	1 - IPv4
        	2 - IPv6"
   	::= { jnxMvpnIpmsiEntry 1 }

     jnxMvpnIpmsiRD OBJECT-TYPE
        SYNTAX        MplsVpnRouteDistinguisher
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The Route Distinguisher in this I-PMSI."
        ::= { jnxMvpnIpmsiEntry 2 }

     jnxMvpnIpmsiOrigAddrType OBJECT-TYPE
        SYNTAX        InetAddressType
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The Internet address type of mvpnIpmsiOrigAddress."
        ::= { jnxMvpnIpmsiEntry 3 }

     jnxMvpnIpmsiOrigAddress OBJECT-TYPE
        SYNTAX        InetAddress
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The BGP address of the device that originated the I-PMSI." 
        ::= { jnxMvpnIpmsiEntry 4 }

     jnxMvpnIpmsiUpTime OBJECT-TYPE
        SYNTAX        TimeInterval
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The time since this I-PMSI was first 
	     advertised/received by the device."
        ::= { jnxMvpnIpmsiEntry 5 }

     jnxMvpnIpmsiAttribute OBJECT-TYPE
        SYNTAX        RowPointer
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "Points to a row in the mvpnPmsiTunnelAttributeTable."
        ::= { jnxMvpnIpmsiEntry 6 }

     -- Table of inter-as I-PMSIs advertised/received

     jnxMvpnInterasIpmsiTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF JnxMvpnInterasIpmsiEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "This table is for all advertised/received inter-as I-PMSI
	     advertisements."
        ::= { jnxMvpnStates 2 }

     jnxMvpnInterasIpmsiEntry OBJECT-TYPE
        SYNTAX        JnxMvpnInterasIpmsiEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in this table corresponds to an inter-as I-PMSI
             advertisement that is advertised/received on this router.
             This represents all the ASes in the MVPN,
             with the provider tunnel used to send traffic to."
        INDEX  { mplsVpnVrfName,
		 jnxMvpnInterasIpmsiAfi,
		 jnxMvpnInterasIpmsiRD,
		 jnxMvpnInterasIpmsiSrcAs }
        ::= { jnxMvpnInterasIpmsiTable 1 }

     JnxMvpnInterasIpmsiEntry ::= SEQUENCE {
 	jnxMvpnInterasIpmsiAfi		Unsigned32,
	jnxMvpnInterasIpmsiRD           MplsVpnRouteDistinguisher,
        jnxMvpnInterasIpmsiSrcAs        Unsigned32,
        jnxMvpnInterasIpmsiAttribute    RowPointer
        }

     jnxMvpnInterasIpmsiAfi OBJECT-TYPE
        SYNTAX        Unsigned32 (1|2)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The address family this I-PMSI is for.
                1 - IPv4
                2 - IPv6"
        ::= { jnxMvpnInterasIpmsiEntry 1 }

     jnxMvpnInterasIpmsiRD OBJECT-TYPE
        SYNTAX        MplsVpnRouteDistinguisher
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The Route Distinguisher in this inter-as I-PMSI."
        ::= { jnxMvpnInterasIpmsiEntry 2 }

     jnxMvpnInterasIpmsiSrcAs OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The source-as in this inter-as I-PMSI."
        ::= { jnxMvpnInterasIpmsiEntry 3 }

     jnxMvpnInterasIpmsiAttribute OBJECT-TYPE
        SYNTAX        RowPointer
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "Points to a row in the mvpnPmsiTunnelAttributeTable."
        ::= { jnxMvpnInterasIpmsiEntry 4 }

     -- Table of S-PMSIs advertised/received

     jnxMvpnSpmsiTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF JnxMvpnSpmsiEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "This table has information about the S-PMSIs sent/received
                by a device."
        ::= { jnxMvpnStates 3 }

     jnxMvpnSpmsiEntry OBJECT-TYPE
        SYNTAX        JnxMvpnSpmsiEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in this table is created or updated for every S-PMSI
             advertised/received in a particular MVRF."
        INDEX  { mplsVpnVrfName,
		 jnxMvpnSpmsiOrigAddrType,
		 jnxMvpnSpmsiOrigAddress,
                 jnxMvpnSpmsiCmcastAddrType, 
                 jnxMvpnSpmsiCmcastGroup,
                 jnxMvpnSpmsiCmcastGroupPrefixLen,
                 jnxMvpnSpmsiCmcastSource,
                 jnxMvpnSpmsiCmcastSourcePrefixLen}
        ::= { jnxMvpnSpmsiTable 1 }

     JnxMvpnSpmsiEntry ::= SEQUENCE {
	jnxMvpnSpmsiOrigAddrType          InetAddressType,
	jnxMvpnSpmsiOrigAddress           InetAddress,
        jnxMvpnSpmsiCmcastAddrType        InetAddressType,
        jnxMvpnSpmsiCmcastGroup           InetAddress,
        jnxMvpnSpmsiCmcastGroupPrefixLen  Unsigned32,
        jnxMvpnSpmsiCmcastSource          InetAddress,
        jnxMvpnSpmsiCmcastSourcePrefixLen Unsigned32,
        jnxMvpnSpmsiTunnelAttribute       RowPointer,
        jnxMvpnSpmsiUpTime                TimeInterval,
        jnxMvpnSpmsiExpTime               TimeInterval,
        jnxMvpnSpmsiRefCnt                Unsigned32
        }

     jnxMvpnSpmsiOrigAddrType OBJECT-TYPE
        SYNTAX        InetAddressType
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The Internet address type of mvpnSpmsiOrigAddress."
        ::= { jnxMvpnSpmsiEntry 1 }

     jnxMvpnSpmsiOrigAddress OBJECT-TYPE
        SYNTAX        InetAddress
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The BGP address of the device that originated the S-PMSI."
        ::= { jnxMvpnSpmsiEntry 2 }

     jnxMvpnSpmsiCmcastAddrType OBJECT-TYPE
        SYNTAX        InetAddressType   
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The Internet address type of mvpnSpmsiCmcastGroup/Source."
        ::= { jnxMvpnSpmsiEntry 3 }

     jnxMvpnSpmsiCmcastGroup OBJECT-TYPE
        SYNTAX        InetAddress
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "S-PMSI C-multicast group address.
             If it is 0 (or ::0), this is a wildcard group,
             and mvpnSpmsiCmcastGroupPrefixLen must be 32 (or 128)."
        ::= { jnxMvpnSpmsiEntry 4 }

     jnxMvpnSpmsiCmcastGroupPrefixLen OBJECT-TYPE
        SYNTAX        Unsigned32 
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "S-PMSI C-multicast group address prefix length."
        ::= { jnxMvpnSpmsiEntry 5 }

     jnxMvpnSpmsiCmcastSource OBJECT-TYPE
        SYNTAX        InetAddress
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "S-PMSI C-multicast source address
             If it is 0 (or ::0), this is a wildcard source,
             and mvpnSpmsiCmcastSourcePrefixLen must be 32 (or 128)."
        ::= { jnxMvpnSpmsiEntry 6 }

     jnxMvpnSpmsiCmcastSourcePrefixLen OBJECT-TYPE
        SYNTAX        Unsigned32 
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "S-PMSI C-multicast source address prefix length."
        ::= { jnxMvpnSpmsiEntry 7 }

     jnxMvpnSpmsiTunnelAttribute OBJECT-TYPE
        SYNTAX        RowPointer
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "A row pointer to the mvpnPmsiTunnelAttributeTable"
        ::= { jnxMvpnSpmsiEntry 8 }

     jnxMvpnSpmsiUpTime OBJECT-TYPE
        SYNTAX        TimeInterval
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The time since this S-PMSI
             was first advertised/received by the device."
        ::= { jnxMvpnSpmsiEntry 9 }

     jnxMvpnSpmsiExpTime OBJECT-TYPE
        SYNTAX        TimeInterval
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
             "For UDP-based S-PMSI signaling for PIM-MVPN,
             the amount of time remaining before this
             received S-PMSI Join Message expires,
             or the next S-PMSI Join Message refresh is to be
             advertised again from the device.
	     Otherwise, it is zero."
        ::= { jnxMvpnSpmsiEntry 10 }

     jnxMvpnSpmsiRefCnt OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The number of c-multicast routes that are mapped to
             this S-PMSI."
        ::= { jnxMvpnSpmsiEntry 11 }

     -- Table of multicast routes in an MVPN

     jnxMvpnMrouteTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF JnxMvpnMrouteEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "This table augments ipMcastRouteTable, to provide some MVPN 
                specific information." 
        ::= { jnxMvpnStates 4 }

     jnxMvpnMrouteEntry OBJECT-TYPE
        SYNTAX        JnxMvpnMrouteEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The mvpnMrouteEntry matches and augments an ipMcastRouteTable,
             with MVPN specific information, such as PMSI used."
        AUGMENTS      { ipMRouteEntry }
        ::= { jnxMvpnMrouteTable 1 }

     JnxMvpnMrouteEntry ::= SEQUENCE {
        jnxMvpnMroutePmsiPointer RowPointer,
	jnxMvpnMrouteNumberOfLocalReplication  Unsigned32,
	jnxMvpnMrouteNumberOfRemoteReplication Unsigned32,
	jnxMvpnMrouteDataRate	Unsigned32
        }

     jnxMvpnMroutePmsiPointer OBJECT-TYPE
        SYNTAX        RowPointer
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The I-PMSI or S-PMSI this C-multicast route is using.
	    This is important because an implementation may not have an
	    interface corresponding to a provider tunnel,
	    that can be used in ipMcastRouteNextHopEntry."
        ::= { jnxMvpnMrouteEntry 1 }

     jnxMvpnMrouteNumberOfLocalReplication OBJECT-TYPE 
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only 
        STATUS        current
        DESCRIPTION 
            "Number of replications to local receivers." 
        ::= { jnxMvpnMrouteEntry 2 } 

     jnxMvpnMrouteNumberOfRemoteReplication OBJECT-TYPE 
        SYNTAX        Unsigned32
        MAX-ACCESS    read-only 
        STATUS        current
        DESCRIPTION 
            "Number of (local) replications to remote receivers." 
        ::= { jnxMvpnMrouteEntry 3 } 

     jnxMvpnMrouteDataRate OBJECT-TYPE
        SYNTAX        Unsigned32  (0..4294967295)
	UNITS         "kilobits per second"
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The data rate for traffic following this route."
        ::= { jnxMvpnMrouteEntry 4 }

     -- MVPN Notifications

     jnxMvpnMvrfChange NOTIFICATION-TYPE
        OBJECTS     {
                      jnxMvpnGenOperStatusChange
                    }
        STATUS      current
        DESCRIPTION
            "A mvpnMvrfChange notification signifies a change about
             a MVRF in the device. The change event can be creation of 
             the MVRF, deletion of the MVRF or an update on the I-PMSI
             or S-PMSI configuration of the MVRF. The change event 
             is indicated by mvpnGenOperStatusChange embedded in 
             the notification. The user can then query 
             mvpnGeneralTable, and/or mvpnSpmsiConfigTable to
             get the details of the change as necessary.

             Note: Since the creation of a MVRF is often followed by 
             configuration of I-PMSI and/or S-PMSIs for the MVRF, 
             more than one (three at most) notifications for a MVRF may 
             be generated serially, and it is really not necessary to 
             generate all three of them. An agent may choose to generate a 
             notification for the last event only, that is for S-PMSI
             configuration.

             Similarly, deletion of I-PMSI and S-PMSI configuration on a 
             MVRF happens before a MVRF is deleted and it is recommended 
             that the agent send the notification for MVRF deletion 
             event only."
        ::= { jnxMvpnNotifications 2 }
     END