summaryrefslogtreecommitdiff
path: root/MIBS/cisco/CISCO-PRIVATE-VLAN-MIB
blob: afe02680547e3d98cb8fd525ff6b08f993da81c3 (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
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
-- *****************************************************************
-- CISCO-PRIVATE-VLAN-MIB - Cisco Private Vlan MIB
--
-- June 2001, Liwei Wang 
-- June 2002, Prasanna Parthasarathy 
--
-- Copyright (c) 2001-2002, 2005-2006 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-PRIVATE-VLAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, TruthValue
        FROM SNMPv2-TC
    ciscoMgmt
        FROM CISCO-SMI
    vtpVlanEntry, vtpVlanEditEntry        
        FROM CISCO-VTP-MIB
    ifIndex
        FROM IF-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF;

ciscoPrivateVlanMIB MODULE-IDENTITY
    LAST-UPDATED "200509080000Z"
    ORGANIZATION "Cisco Systems, Inc."
    CONTACT-INFO
            "Cisco Systems
             Customer Service

             Postal: 170 W Tasman Drive
             San Jose, CA  95134
             USA

             Tel: +1 800 553-NETS

             E-mail: cs-wbu@cisco.com"
    DESCRIPTION
             "The MIB module to support Private VLAN feature on
             Cisco's switching devices."
    REVISION "200509080000Z"
    DESCRIPTION
             "Added support for Private VLAN Promiscuous Trunk Ports. 
             by adding a new mode type"

    REVISION "200207240000Z"
    DESCRIPTION
             "Added support for Private VLAN Trunk Ports. Added the
             TCs for VlanIndex Bitmaps"
    REVISION "200105230000Z"
    DESCRIPTION 
            "Added support for Private VLAN port mode and SVI 
            mapping." 
    REVISION "200104170000Z"
    DESCRIPTION
            " The Initial version of this MIB module."
    ::= { ciscoMgmt 173 } 


-- 
-- Textual Conventions
--

PrivateVlanType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "The VLAN type as defined for Private VLAN feature.

            'normal' -- this VLAN is a normal VLAN (i.e., not a 
                        private VLAN or private group).

            'primary' -- this VLAN is the primary VLAN as defined for
                         Private VLAN feature.

            'isolated' -- this VLAN is the isolated VLAN as
                          defined for Private VLAN feature. All the 
                          ports in the isolated VLAN can only talk 
                          to the specifically designated ports 
                          configured as promiscuous ports, i.e., 
                          the ports even in the same isolated VLAN 
                          can not talk to each other. 

                          Promiscuous ports are the ports that
                          are performing the L2 mapping of the 
                          secondary VLANs (isolated, community, 
                          twoWayCommunity VLANs)  to their 
                          associated primary VLANs. Promiscuous 
                          ports with cpvlanPromPortTwoWayRemapCapable 
                          values of true(1) can also perform the L2 
                          mapping of primary VLANS to the 
                          twoWayCommunity (5) VLANs associated with 
                          them.
            
             'community' -- this VLAN is the community VLAN as
                           defined for Private VLAN feature. All the 
                           ports in this community VLAN can behave 
                           like ports in normal VLAN type except 
                           that they can also receive egress packets 
                           tagged with its associated primary VLAN 
                           ID. 

             'twoWayCommunity' -- this VLAN is the twoWayCommunity
                           VLAN as defined for Private VLAN feature.
                           All the ports in this twoWayCommunity VLAN
                           behave the same as ports in community(4)
                           VLAN. Promiscuous ports with  
                           cpvlanPromPortTwoWayRemapCapable value
                           of true can also perform the L2 mapping 
                           from primary VLANs to the twoWayCommunity
                           VLANs associated with them.  
                           
             A VLAN of isolated(3), community(4) or twoWayCommunity(5)
             type is also called a secondary VLAN."
    SYNTAX     INTEGER {
                       normal(1),
                       primary(2),
                       isolated(3),
                       community(4),
                       twoWayCommunity(5)
               }

VlanIndexOrZero ::= TEXTUAL-CONVENTION
    STATUS    current
    DESCRIPTION
            "The VLAN ID or zero as defined for Private VLAN
            feature. If the value is between 1 and 4095
            inclusive, it represents an IEEE 802.1Q VLAN-ID.
            If the value is zero, it is object-specific and
            must therefore be defined as part of the
            description of any object which uses this syntax."
    SYNTAX    INTEGER(0..4095)
                 
VlanIndexBitmap ::= TEXTUAL-CONVENTION
    STATUS    current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for a 
            total of 1024 VLANs in the management domain.  
            The most significant bit of the octet string is the 
            lowest value VLAN of 1024 VLANs.

            Refer to the description on the MIB object that
            uses this textual convention to determine the meaning
            of bits that are set ('1') or cleared ('0').

            The most significant bit of the bitmap is transmitted 
            first. Note that if the length of this string is less than
            128 octets, any 'missing' octets are assumed to contain
            the value zero. An NMS may omit any zero-valued octets
            from the end of this string in order to reduce SetPDU
            size, and the agent may also omit zero-valued trailing
            octets, to reduce the size of GetResponse PDUs."

    SYNTAX    OCTET STRING (SIZE (0..128))


cpvlanMIBObjects OBJECT IDENTIFIER ::= { ciscoPrivateVlanMIB 1 }
 
cpvlanVlanObjects OBJECT IDENTIFIER ::= { cpvlanMIBObjects 1 }

cpvlanPortObjects OBJECT IDENTIFIER ::= { cpvlanMIBObjects 2 }

cpvlanSVIObjects  OBJECT IDENTIFIER ::= { cpvlanMIBObjects 3 }

--
-- VLAN tables for Private VLAN feature
--

cpvlanVlanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CpvlanVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
            "A table containing Private VLAN information on the 
            VLANs which currently exist."
    ::= { cpvlanVlanObjects 1 }
 
cpvlanVlanEntry OBJECT-TYPE
    SYNTAX      CpvlanVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row containing the Private VLAN 
            information on the VLANs for a particular management 
            domain."
    AUGMENTS   { vtpVlanEntry }
    ::= { cpvlanVlanTable 1 }

CpvlanVlanEntry ::= SEQUENCE {
    cpvlanVlanPrivateVlanType PrivateVlanType,
    cpvlanVlanAssociatedPrimaryVlan VlanIndexOrZero 
}     

cpvlanVlanPrivateVlanType OBJECT-TYPE
    SYNTAX     PrivateVlanType 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
            "Indicated the VLAN type as defined for Private VLAN 
            feature."
    ::= { cpvlanVlanEntry 1 }

cpvlanVlanAssociatedPrimaryVlan OBJECT-TYPE
    SYNTAX     VlanIndexOrZero 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
            "The VLAN ID of The associated primary VLAN used for 
            the Private VLAN feature if cpvlanVlanPrivateVlanType 
            has the value of isolated(3), community(4) or 
            twoWayCommunity(5). If cpvlanVlanPrivateVlanType 
            has the value of normal(1) or primary(2), then this 
            object has the value of 0.

            Note that one isolated VLAN can only be associated with 
            one unique primary VLAN. One primary VLAN can only be 
            associated with one isolated VLAN.

            One primary VLAN can be associated with multiple VLANs 
            of community or twoWayCommunity type; one community
            or twoWayCommunity VLAN can only be associated with one 
            unique primary VLAN."
     ::= { cpvlanVlanEntry 2 }

cpvlanVlanEditTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CpvlanVlanEditEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A table containing Private VLAN information on the VLANs 
            in the VLAN Edit Buffer for a particular management 
            domain." 
    ::= { cpvlanVlanObjects 2 }

cpvlanVlanEditEntry OBJECT-TYPE
    SYNTAX      CpvlanVlanEditEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row containing the Private VLAN information 
            on the VLANs in the VLAN Edit Buffer for a particular 
            management domain."
    AUGMENTS   { vtpVlanEditEntry }
    ::= { cpvlanVlanEditTable 1 }

CpvlanVlanEditEntry ::= SEQUENCE {
    cpvlanVlanEditPrivateVlanType PrivateVlanType,
    cpvlanVlanEditAssocPrimaryVlan VlanIndexOrZero 
}

cpvlanVlanEditPrivateVlanType OBJECT-TYPE
    SYNTAX     PrivateVlanType 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The VLAN type as defined for Private VLAN feature.

            Note that a VLAN's Private VLAN type can not be 
            changed once it already has any ports in it."  
    DEFVAL     { normal }
    ::= { cpvlanVlanEditEntry 1 }

cpvlanVlanEditAssocPrimaryVlan OBJECT-TYPE
    SYNTAX     VlanIndexOrZero 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The VLAN ID of the associated primary VLAN used for 
            the Private VLAN feature if 
            cpvlanVlanEditPrivateVlanType has the value of 
            isolated(3), community(4), twoWayCommunity(5). If 
            cpvlanVlanEditPrivateVlanType has the value of normal(1) 
            or primary(2), then this object has the value of 0.

            Note that one isolated VLAN can only be associated 
            with one unique primary VLAN. One primary VLAN can only 
            be associated with one isolated VLAN.

            One primary VLAN can be associated with multiple VLANs 
            of community or twoWayCommunity type; one community 
            or twoWayCommunity VLAN can only be associated with one 
            unique primary VLAN."
     DEFVAL   { 0 }
     ::= { cpvlanVlanEditEntry 2 }

--
-- Table for configuring secondary VLAN on private ports
--

cpvlanPrivatePortTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CpvlanPrivatePortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A table containing information of the configuration of 
            secondary VLAN on the ports of the device."
    ::= { cpvlanPortObjects 1 }

cpvlanPrivatePortEntry OBJECT-TYPE
    SYNTAX     CpvlanPrivatePortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A conceptual row containing information of the 
            configuration of secondary VLAN for each port. An entry 
            is created by the managed system for each interface which
            can be configured as a private port for Private VLAN 
            feature."
    INDEX      { ifIndex }
    ::= { cpvlanPrivatePortTable 1 }

CpvlanPrivatePortEntry ::= SEQUENCE {
    cpvlanPrivatePortSecondaryVlan  VlanIndexOrZero
}

cpvlanPrivatePortSecondaryVlan OBJECT-TYPE
    SYNTAX     VlanIndexOrZero
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The VLAN ID of the secondary VLAN configured on this 
            private port. A private port is a port that allows 
            the ingress traffic of the secondary VLAN as well as 
            egress traffic of its associated primary VLAN, but 
            blocks the egress traffic of the isolated VLAN while 
            allowing the egress traffic of the community 
            or twoWayCommunity VLAN depending on the type of the 
            secondary VLAN. 

            Note that a port can join a secondary VLAN only after 
            this secondary VLAN has been associated with a primary 
            VLAN, i.e., the cpvlanVlanAssociatedPrimaryVlan has a 
            non-zero value.  The default value of 0 for this object 
            means this port has not joined any secondary VLAN yet."
    DEFVAL     { 0 }
    ::= { cpvlanPrivatePortEntry 1 }    

--
-- Table for remapping secondary VLAN to primary VLAN on promiscuous 
-- ports for Private VLAN feature 
--

cpvlanPromPortTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CpvlanPromPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A table containing information of secondary VLAN to 
            primary VLAN remapping on ports of the device."
    ::= { cpvlanPortObjects 2 }

cpvlanPromPortEntry OBJECT-TYPE
    SYNTAX     CpvlanPromPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A conceptual row containing information of secondary 
            VLAN to primary VLAN remapping for each port. An entry 
            is created by the managed system for each interface
            which can be configured as a promiscuous port for 
            Private VLAN feature."
    INDEX      { ifIndex }
    ::= { cpvlanPromPortTable 1 }
 
CpvlanPromPortEntry ::= SEQUENCE {
    cpvlanPromPortMultiPrimaryVlan     TruthValue,
    cpvlanPromPortSecondaryRemap       OCTET STRING,
    cpvlanPromPortSecondaryRemap2k     OCTET STRING,
    cpvlanPromPortSecondaryRemap3k     OCTET STRING,
    cpvlanPromPortSecondaryRemap4k     OCTET STRING,
    cpvlanPromPortTwoWayRemapCapable TruthValue
} 

cpvlanPromPortMultiPrimaryVlan OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Indicates whether all the bits set as secondary VLANs
            in the corresponding remapping objects (i.e.
            cpvlanPromPortSecondaryRemap,
            cpvlanPromPortSecondaryRemap2k,
            cpvlanPromPortSecondaryRemap3k,
            cpvlanPromPortSecondaryRemap4k) can belong to multiple
            primary VLANs or not for this port. If this object value
            is false(2), then the object values of 
            cpvlanVlanAssociatedPrimaryVlan for the secondary VLANs 
            with their bits turned on as '1' in those remapping 
            objects must be the same. If this object value is 
            true(1), then the object values of 
            cpvlanVlanAssociatedPrimaryVlan for the secondary VLANs 
            with their bits turned on as '1' in those remapping 
            objects need not be the same. 
    
            A promiscuous port can remap a secondary VLAN to its 
            associated primary VLAN for egress traffic on the fly 
            as defined for Private VLAN feature."
    ::= { cpvlanPromPortEntry 1 } 

cpvlanPromPortSecondaryRemap OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN in the
            management domain on this port.  The first octet
            corresponds to VLANs with VlanIndexOrZero values of 0 
            through 7; the second octet to VLANs 8 through 15; etc.  
            The most significant bit of each octet corresponds to 
            the lowest value VlanIndexOrZero in that octet.

            A bit can only be set to '1' when the bit is 
            corresponding to a VLAN of Private VLAN isolated, 
            community or twoWayCommunity type which has already 
            been associated with a primary VLAN. Setting this bit 
            to '1' makes this promiscuous port remap the secondary 
            VLAN to its associated primary VLAN for egress traffic 
            on the fly, or remap the associated primary VLAN to
            the secondary VLAN if the secondary VLAN is of 
            twoWayCommunity type and the object value of 
            cpvlanPromPortTwoWayRemapCapable for this promiscuous 
            port is true(1).  
        
            Note that if the length of this string is less than
            128 octets, any 'missing' octets are assumed to contain
            the value zero. An NMS may omit any zero-valued octets
            from the end of this string in order to reduce SetPDU 
            size, and the agent may also omit zero-valued trailing 
            octets, to reduce the size of GetResponse PDUs."
    ::= { cpvlanPromPortEntry 2 }

cpvlanPromPortSecondaryRemap2k OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION 
            "A string of octets containing one bit per VLAN  for 
            VLANs with VlanIndexOrZero values of 1024 through 2047 
            in the management domain on this port.  The first octet 
            corresponds to VLANs with VlanIndexOrZero values of 1024 
            through 1031; the second octet to VLANs 1032 through 
            1039; etc.  The most significant bit of each octet 
            corresponds to the lowest value VlanIndexOrZero in 
            that octet. 

            A bit can only be set to '1' when the bit is 
            corresponding to a VLAN of Private VLAN isolated or 
            community type which has already been associated with a 
            primary VLAN. Setting this bit to '1' makes this 
            promiscuous port remap the secondary VLAN to its 
            associated primary VLAN for egress traffic on the fly,
            or remap the associated primary VLAN to the secondary 
            VLAN if the secondary VLAN is of twoWayCommunity type 
            and the object value of cpvlanPromPortTwoWayRemapCapable 
            for this promiscuous port is true(1). 
 
            Note that if the length of this string is less than
            128 octets, any 'missing' octets are assumed to contain
            the value zero. An NMS may omit any zero-valued octets
            from the end of this string in order to reduce SetPDU 
            size, and the agent may also omit zero-valued trailing 
            octets, to reduce the size of GetResponse PDUs.

            This object is only instantiated on devices which support
            the range of VlanIndexOrZero up to 4095."
    ::= { cpvlanPromPortEntry 3 }

cpvlanPromPortSecondaryRemap3k OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN  for 
            VLANs with VlanIndexOrZero values of 2048 through 3071 
            in the management domain on this port.  The first octet 
            corresponds to VLANs with VlanIndexOrZero values of 2048 
            through 2055; the second octet to VLANs 2056 through 
            2063; etc.  The most significant bit of each octet 
            corresponds to the lowest value VlanIndexOrZero in 
            that octet.

            A bit can only be set to '1' when the bit is 
            corresponding to a VLAN of Private VLAN isolated or 
            community type which has already been associated with a 
            primary VLAN. Setting this bit to '1' makes this 
            promiscuous port remap the secondary VLAN to its 
            associated primary VLAN for egress traffic on the fly, 
            or remap the associated primary VLAN to the secondary 
            VLAN if the secondary VLAN is of twoWayCommunity type 
            and the object value of cpvlanPromPortTwoWayRemapCapable 
            for this promiscuous port is true(1). 

            Note that if the length of this string is less than
            128 octets, any 'missing' octets are assumed to contain
            the value zero. An NMS may omit any zero-valued octets
            from the end of this string in order to reduce SetPDU 
            size, and the agent may also omit zero-valued trailing 
            octets, to reduce the size of GetResponse PDUs.

            This object is only instantiated on devices which support
            the range of VlanIndexOrZero up to 4095."
    ::= { cpvlanPromPortEntry 4 }

cpvlanPromPortSecondaryRemap4k OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN  for 
            VLANs with VlanIndexOrZero values of 3072 through 4095 
            in the management domain on this port.  The first octet 
            corresponds to VLANs with VlanIndexOrZero values of 3072 
            through 3079; the second octet to VLANs 3080 through 
            3087; etc.  The most significant bit of each octet 
            corresponds to the lowest value VlanIndexOrZero in 
            that octet.

            A bit can only be set to '1' when the bit is 
            corresponding to a VLAN of Private VLAN isolated or 
            community type which has already been associated with a 
            primary VLAN. Setting this bit to '1' makes this 
            promiscuous port remap the secondary VLAN to its 
            associated primary VLAN for egress traffic on the fly, 
            or remap the associated primary VLAN to the secondary 
            VLAN if the secondary VLAN is of twoWayCommunity type 
            and the object value of cpvlanPromPortTwoWayRemapCapable 
            for this promiscuous port is true(1). 

            Note that if the length of this string is less than
            128 octets, any 'missing' octets are assumed to contain
            the value zero. An NMS may omit any zero-valued octets
            from the end of this string in order to reduce SetPDU 
            size, and the agent may also omit zero-valued trailing 
            octets, to reduce the size of GetResponse PDUs.

            This object is only instantiated on devices which support
            the range of VlanIndexOrZero up to 4095."
    ::= { cpvlanPromPortEntry 5 }

cpvlanPromPortTwoWayRemapCapable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Indicates whether the port is capable to perform
            remapping from primary VLANs to the twoWayCommunity VLANs
            associated with them for the Private VLAN feature. A 
            promiscuous port with this object value of false(2) can 
            only perform one-way remapping from secondary VLANs to 
            their associated primary VLANs, while a promiscuous port 
            with this object value of true(1) can also perform 
            remapping from primary VLANs to the twoWayCommunity VLANs 
            associated with them in addition to that."
    ::= { cpvlanPromPortEntry 6 } 


--
-- Table for configuring port mode for Private VLAN feature
--

cpvlanPortModeTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CpvlanPortModeEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A table containing information of the configuration of
            port mode for the Private VLAN feature."
    ::= { cpvlanPortObjects 3 }

cpvlanPortModeEntry OBJECT-TYPE
    SYNTAX     CpvlanPortModeEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A conceptual row containing information of the
            configuration of port mode on each port for the 
            Private VLAN feature. An entry of this table is 
            created by the managed system when the capability
            to be a Private VLAN port is detected on an 
            interface." 
    INDEX      { ifIndex }
    ::= { cpvlanPortModeTable 1 }

CpvlanPortModeEntry ::= SEQUENCE {
    cpvlanPortMode INTEGER 
}

cpvlanPortMode OBJECT-TYPE
    SYNTAX     INTEGER {
                       nonPrivateVlan(1), 
                       host(2),
                       promiscuous(3),
                       secondaryTrunk(4),
                       promiscuousTrunk(5)
               }        
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The Private VLAN port mode on this port.  

            nonPrivateVlan(1) -- this port is configured to be a
                                 non-Private-VLAN port.

            host(2) -- this port is configured to be 
                       a Private-VLAN host port, i.e., private 
                       port.

            promiscuous(3) -- this port is configured to be
                              a Private-VLAN promiscuous port.

            secondaryTrunk(4) -- this port is configured to be a
                        Private-VLAN isolated trunk port or community 
                        trunk port.

            promiscuousTrunk(5) -- this port is configured to be a
                        Private-VLAN promiscuous trunk port."

    DEFVAL     { nonPrivateVlan }
    ::= { cpvlanPortModeEntry 1 }

--
-- Table for configuring private VLAN trunk ports
--

cpvlanTrunkPortTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CpvlanTrunkPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A table containing information of the configuration of 
             a private vlan trunk port in the device. This includes 
             secondary and normal allowed VLAN, encapsulation type,
             trunk native vlan (as applied to private vlan trunks)."
    ::= { cpvlanPortObjects 4 }

cpvlanTrunkPortEntry OBJECT-TYPE
    SYNTAX     CpvlanTrunkPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A conceptual row containing information of the 
            configuration of one private vlan trunk port. An entry 
            is created by the managed system for each interface which
            can be configured as a private vlan trunk port"
    INDEX      { ifIndex }
    ::= { cpvlanTrunkPortTable 1 }

CpvlanTrunkPortEntry ::= SEQUENCE {
    cpvlanTrunkPortDynamicState          INTEGER,
    cpvlanTrunkPortEncapType             INTEGER,
    cpvlanTrunkPortNativeVlan            VlanIndexOrZero,
    cpvlanTrunkPortSecondaryVlans        VlanIndexBitmap,
    cpvlanTrunkPortSecondaryVlans2k      VlanIndexBitmap,
    cpvlanTrunkPortSecondaryVlans3k      VlanIndexBitmap,
    cpvlanTrunkPortSecondaryVlans4k      VlanIndexBitmap,
    cpvlanTrunkPortNormalVlans           VlanIndexBitmap,
    cpvlanTrunkPortNormalVlans2k         VlanIndexBitmap,
    cpvlanTrunkPortNormalVlans3k         VlanIndexBitmap,
    cpvlanTrunkPortNormalVlans4k         VlanIndexBitmap,
    cpvlanTrunkPortDynamicStatus         INTEGER,
    cpvlanTrunkPortEncapOperType         INTEGER
}

cpvlanTrunkPortDynamicState OBJECT-TYPE
    SYNTAX     INTEGER { on(1), onNoNegotiate(2) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "For private VLAN trunk ports, this object allows the
            operator to mandate the trunking behavior of the port

            on(1) dictates that the private VLAN port will always be a
            trunk. If the negotiation is supported on this port, 
            negotiation will take place with the far end to attempt to
            bring the far end into trunking state.

            onNoNegotiate(2) is used to indicate that the interface is
            permanently set to be a trunk, and no negotiation takes
            place with the far end on the link to ensure consistent
            operation. This is similar to on(1) except no negotiation
            takes place with the far end.

            If a port does not support negotiation, the value of on(1)
            is not allowed. If the port's cpvlanTrunkPortEncapType is 
            set to negotiate(3), onNoNegotiate(2) is not allowed."

       ::= { cpvlanTrunkPortEntry 1 }

cpvlanTrunkPortEncapType OBJECT-TYPE
    SYNTAX     INTEGER { dot1Q(1), isl(2), negotiate(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The type of VLAN encapsulation desired to be used on this
             private vlan trunk port. 

             It is either a particular type, or 'negotiate'  meaning 
             whatever type results from the negotiation.

             dot1Q(1) indicates that the port should accept and transmit
             packets with IEEE 802.1q VLAN encapsulation

             isl(2) indicates that the port should accept and transmit 
             packets with Inter Switch Link (ISL) VLAN encapsulation

             negotiate(3) indicates that the VLAN encapsulation is
             negotiated with the far end. The negotiated VLAN 
             encapsulation can be dot1Q or  isl. negotiate(2) is not 
             allowed if the port does not support negotiation of 
             VLAN encapsulation type or if its 
             cpvlanTrunkPortDynamicState is set to onNoNegotiate(2)"

    ::= { cpvlanTrunkPortEntry 2 }

cpvlanTrunkPortNativeVlan OBJECT-TYPE
    SYNTAX     VlanIndexOrZero
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The VlanIndex of the VLAN which is represented by native
             frames on this private vlan trunk port. For private vlan 
             trunk ports that need to drop untagged frames or not
             supporting the sending and receiving of native frames, 
             this value should be set to zero"
    ::= { cpvlanTrunkPortEntry 3 }

cpvlanTrunkPortSecondaryVlans OBJECT-TYPE
    SYNTAX     VlanIndexBitmap
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for VLANs
            with values of 0 through 1023 in the management domain
            on this port. 

            If the VLAN represented by setting a bit to '1' in the 
            bitmap is a secondary VLAN that has already been 
            associated with a primary VLAN, it allows this private
            VLAN trunk port to remap the secondary VLAN to its primary
            VLAN for ingress traffic and to remap its associated primary
            VLAN to the secondary VLAN for egress traffic.

            If the bit corresponding to a VLAN is set to '1' and if 
            the corresponding VLAN is a secondary VLAN, then the local
            system is enabled to transmit and receive frames with 
            proper VLAN remapping via this Private VLAN trunk port.

            If the bit corresponding to a VLAN is set to '0', and if
            the corresponding VLAN is not configured as a normal VLAN,
            then the system is disabled from sending and receiving 
            frames on that VLAN via this Private VLAN trunk port."
 
    ::= { cpvlanTrunkPortEntry 4 }

cpvlanTrunkPortSecondaryVlans2k OBJECT-TYPE
    SYNTAX     VlanIndexBitmap
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION 
            "A string of octets containing one bit per VLAN for VLANs 
            with values of 1024 through 2047 in the management domain
            on this port. 

            If the VLAN represented by setting a bit to '1' in the 
            bitmap is a secondary VLAN that has already been 
            associated with a primary VLAN, it allows this private
            VLAN trunk port to remap the secondary VLAN to its primary
            VLAN for ingress traffic and to remap its associated primary
            VLAN to the secondary VLAN for egress traffic.

            If the bit corresponding to a VLAN is set to '1' and if 
            the corresponding VLAN is a secondary VLAN, then the local
            system is enabled to transmit and receive frames with 
            proper VLAN remapping via this Private VLAN trunk port.

            If the bit corresponding to a VLAN is set to '0', and if
            the corresponding VLAN is not configured as a normal VLAN,
            then the system is disabled from sending and receiving 
            frames on that VLAN via this Private VLAN trunk port.

            This object is only instantiated on devices which support
            the range of VLANs up to 4095."

    ::= { cpvlanTrunkPortEntry 5 }

cpvlanTrunkPortSecondaryVlans3k OBJECT-TYPE
    SYNTAX     VlanIndexBitmap
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for VLANs 
            with values of 2048 through 3071 in the management domain 
            on this port. 

            If the VLAN represented by setting a bit to '1' in the 
            bitmap is a secondary VLAN that has already been 
            associated with a primary VLAN, it allows this private
            VLAN trunk port to remap the secondary VLAN to its primary
            VLAN for ingress traffic and to remap its associated primary
            VLAN to the secondary VLAN for egress traffic.

            If the bit corresponding to a VLAN is set to '1' and if 
            the corresponding VLAN is a secondary VLAN, then the local
            system is enabled to transmit and receive frames with 
            proper VLAN remapping via this Private VLAN trunk port.

            If the bit corresponding to a VLAN is set to '0', and if
            the corresponding VLAN is not configured as a normal VLAN,
            then the system is disabled from sending and receiving 
            frames on that VLAN via this Private VLAN trunk port.

            This object is only instantiated on devices which support
            the range of up to 4095."

    ::= { cpvlanTrunkPortEntry 6 }

cpvlanTrunkPortSecondaryVlans4k OBJECT-TYPE
    SYNTAX     VlanIndexBitmap
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for VLANs 
            with values of 3072 through 4095 in the management domain
            on this port. 

            If the VLAN represented by setting a bit to '1' in the 
            bitmap is a secondary VLAN that has already been 
            associated with a primary VLAN, it allows this private
            VLAN trunk port to remap the secondary VLAN to its primary
            VLAN for ingress traffic and to remap its associated primary
            VLAN to the secondary VLAN for egress traffic.

            If the bit corresponding to a VLAN is set to '1' and if 
            the corresponding VLAN is a secondary VLAN, then the local
            system is enabled to transmit and receive frames with 
            proper VLAN remapping via this Private VLAN trunk port.

            If the bit corresponding to a VLAN is set to '0', and if
            the corresponding VLAN is not configured as a normal VLAN,
            then the system is disabled from sending and receiving 
            frames on that VLAN via this Private VLAN trunk port.

            This object is only instantiated on devices which support
            the range of up to 4095."

    ::= { cpvlanTrunkPortEntry 7 }

cpvlanTrunkPortNormalVlans OBJECT-TYPE
    SYNTAX     VlanIndexBitmap
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for VLANs 
            with values of 0 through 1023 in the management domain 
            on this port.

            If the VLAN represented by setting a bit to '1' in the 
            bitmap is a normal VLAN, it allows packets belonging to
            this vlan on this Private VLAN trunk port. 

            If the bit corresponding to a VLAN is set to '1' and if 
            the corresponding VLAN is a normal VLAN, then the local
            system is enabled to transmit and receive frames as
            normal VLAN

            If the bit corresponding to a VLAN is set to '0', and if
            the corresponding VLAN is not configured as a secondary 
            VLAN, then the system is disabled from sending and receiving
            frames on that VLAN via this Private VLAN trunk port."

    ::= { cpvlanTrunkPortEntry 8 }

cpvlanTrunkPortNormalVlans2k OBJECT-TYPE
    SYNTAX     VlanIndexBitmap
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION 
            "A string of octets containing one bit per VLAN for VLANs 
            with values of 1024 through 2047 in the management domain
            on this port. 

            If the VLAN represented by setting a bit to '1' in the 
            bitmap is a normal VLAN, it allows packets belonging to
            this vlan on this Private VLAN trunk port. 

            If the bit corresponding to a VLAN is set to '1' and if 
            the corresponding VLAN is a normal VLAN, then the local
            system is enabled to transmit and receive frames as
            normal VLAN

            If the bit corresponding to a VLAN is set to '0', and if
            the corresponding VLAN is not configured as a secondary 
            VLAN, then the system is disabled from sending and receiving
            frames on that VLAN via this Private VLAN trunk port. 

            This object is only instantiated on devices which support
            the range of VlanIndexOrZero up to 4095."

    ::= { cpvlanTrunkPortEntry 9 }

cpvlanTrunkPortNormalVlans3k OBJECT-TYPE
    SYNTAX     VlanIndexBitmap
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for VLANs 
            with values of 2048 through 3071 in the management domain
            on this port. 

            If the VLAN represented by setting a bit to '1' in the 
            bitmap is a normal VLAN, it allows packets belonging to
            this vlan on this Private VLAN trunk port. 

            If the bit corresponding to a VLAN is set to '1' and if 
            the corresponding VLAN is a normal VLAN, then the local
            system is enabled to transmit and receive frames as
            normal VLAN

            If the bit corresponding to a VLAN is set to '0', and if
            the corresponding VLAN is not configured as a secondary 
            VLAN, then the system is disabled from sending and receiving
            frames on that VLAN via this Private VLAN trunk port. 

            This object is only instantiated on devices which support
            the range of VlanIndexOrZero up to 4095."

    ::= { cpvlanTrunkPortEntry 10 }

cpvlanTrunkPortNormalVlans4k OBJECT-TYPE
    SYNTAX     VlanIndexBitmap
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for VLANs
            with values of 3072 through 4095 in the management domain
            on this port. 

            If the VLAN represented by setting a bit to '1' in the 
            bitmap is a normal VLAN, it allows packets belonging to
            this vlan on this Private VLAN trunk port. 

            If the bit corresponding to a VLAN is set to '1' and if 
            the corresponding VLAN is a normal VLAN, then the local
            system is enabled to transmit and receive frames as
            normal VLAN

            If the bit corresponding to a VLAN is set to '0', and if
            the corresponding VLAN is not configured as a secondary 
            VLAN, then the system is disabled from sending and receiving
            frames on that VLAN via this Private VLAN trunk port. 

            This object is only instantiated on devices which support
            the range of VlanIndexOrZero up to 4095."

    ::= { cpvlanTrunkPortEntry 11 }

cpvlanTrunkPortDynamicStatus OBJECT-TYPE
    SYNTAX     INTEGER { trunking(1), notTrunking(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Indicates the current dynamic trunking status of the 
            specified private VLAN port.

            trunking(1) indicates that the private VLAN port is 
            currently operating as a private VLAN trunk port

            notTrunking(2) indicates that the private VLAN port
            is currently not trunking but is operating as an 
            access port."

 
    ::= { cpvlanTrunkPortEntry 12 }

cpvlanTrunkPortEncapOperType OBJECT-TYPE
    SYNTAX     INTEGER { dot1Q(1), isl(2), notApplicable(3) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The type of VLAN encapsulation in use on this private 
            vlan trunk port. 
 
            dot1Q(1) indicates that the port accepts and transmits
            packets with IEEE 802.1q VLAN encapsulation

            isl(2) indicates that the port accepts and transmits 
            packets with Inter Switch Link (ISL) VLAN encapsulation

            If the cpvlanTrunkPortDynamicStatus is notTrunking(2) or
            if the encapsulation type negotiation has not been 
            completed, the object is set to notApplicable(3)."
      

    ::= { cpvlanTrunkPortEntry 13 }

--
-- Private VLAN mapping for the Switch Virtual Interfaces  
--

cpvlanSVIMappingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CpvlanSVIMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A table containing the configuration of 
            primary VLAN SVI (Switch Virtual Interfaces) 
            mapping for the secondary VLANs for the Private 
            VLAN feature."
    ::= { cpvlanSVIObjects 1 }

cpvlanSVIMappingEntry OBJECT-TYPE
    SYNTAX      CpvlanSVIMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A conceptual row containing the Primary VLAN 
            SVI mapping configuration for the existing 
            secondary VLANs. An entry is created by the managed 
            system for each VLAN with corresponding VLAN's 
            cpvlanVlanPrivateVlanType of isolated(3), 
            community(4), and twoWayCommunity(5)."
   INDEX      { cpvlanSVIMappingVlanIndex } 
    ::= { cpvlanSVIMappingTable 1 }

CpvlanSVIMappingEntry ::= SEQUENCE {
    cpvlanSVIMappingVlanIndex VlanIndexOrZero, 
    cpvlanSVIMappingPrimarySVI VlanIndexOrZero 
}

cpvlanSVIMappingVlanIndex OBJECT-TYPE
    SYNTAX        VlanIndexOrZero
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION 
            "An index value that uniquely identifies the
            Virtual LAN associated with this information."
    ::= { cpvlanSVIMappingEntry 1 }

cpvlanSVIMappingPrimarySVI OBJECT-TYPE
    SYNTAX     VlanIndexOrZero 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The Vlan ID of the primary VLAN SVI this secondary
            VLAN is mapped to for the Private VLAN feature. 
            This object has the value of zero if this secondary 
            VLAN is not mapped to any primary VLAN SVI."  
     DEFVAL { 0 }
     ::= { cpvlanSVIMappingEntry 2 }

--
-- Conformance Information
--

cpvlanMIBConformance OBJECT IDENTIFIER ::= { ciscoPrivateVlanMIB 2 }
cpvlanMIBCompliances OBJECT IDENTIFIER ::= { cpvlanMIBConformance 1 }
cpvlanMIBGroups      OBJECT IDENTIFIER ::= { cpvlanMIBConformance 2}

--
-- compliance statements
--

cpvlanMIBCompliance MODULE-COMPLIANCE
    STATUS  current 
    DESCRIPTION
            "The compliance statement for Private VLAN feature 
            implementation."
    MODULE  -- this module
             -- no MANDATORY-GROUPS

        OBJECT       cpvlanTrunkPortEncapType
        SYNTAX       INTEGER { dot1Q(1) }
        MIN-ACCESS   read-only
        DESCRIPTION  
                "Write access is not required and only one of the
                 3 enumerated values for the Private Trunk port 
                 encapsulation types need to be supported, 
                 specifically: dot1Q(1)."

        GROUP cpvlanVlanGroup
        DESCRIPTION 
                "This group must be implemented on devices which has 
                Private VLAN feature support."
        GROUP cpvlanPrivatePortGroup
        DESCRIPTION 
                "This group must be implemented on devices which has 
                Private VLAN feature support."
        GROUP cpvlanPromPortGroup
        DESCRIPTION
                "This group must be implemented on devices which has 
                support for promiscuous port of Private VLAN feature."
        GROUP cpvlanPromPort4kGroup
        DESCRIPTION
                "This group must be implemented on devices which has 
                support for promiscuous port of Private VLAN feature 
                for VlanIndexOrZero range of up to 4095."
        GROUP cpvlanTrunkPortGroup
        DESCRIPTION 
                "This group is mandatory for a managed system which has
                Private VLAN trunk ports support."

    ::= { cpvlanMIBCompliances 1 }                             

--
-- units of conformance
--
cpvlanVlanGroup OBJECT-GROUP
    OBJECTS { cpvlanVlanPrivateVlanType,
              cpvlanVlanAssociatedPrimaryVlan,
              cpvlanVlanEditPrivateVlanType,
              cpvlanVlanEditAssocPrimaryVlan 
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic VLAN 
            configuration for Private VLAN feature."
    ::= { cpvlanMIBGroups 1 }

cpvlanPrivatePortGroup OBJECT-GROUP
    OBJECTS { cpvlanPrivatePortSecondaryVlan 
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic 
            private port configuration for Private VLAN 
            feature."
    ::= { cpvlanMIBGroups 2 }


cpvlanPromPortGroup OBJECT-GROUP
    OBJECTS { cpvlanPromPortMultiPrimaryVlan,
              cpvlanPromPortSecondaryRemap, 
              cpvlanPromPortTwoWayRemapCapable 
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic 
            promiscuous port configuration for Private 
            VLAN feature."
    ::= { cpvlanMIBGroups 3 }  

cpvlanPromPort4kGroup OBJECT-GROUP
    OBJECTS { cpvlanPromPortSecondaryRemap2k,
              cpvlanPromPortSecondaryRemap3k,
              cpvlanPromPortSecondaryRemap4k
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic promiscuous 
            port configuration for Private VLAN feature on 
            devices with VlanIndexOrZero range of up to 4095."   
    ::= { cpvlanMIBGroups 4 }

cpvlanPortModeGroup OBJECT-GROUP
    OBJECTS { cpvlanPortMode }
    STATUS  current
    DESCRIPTION
            "This is an optional group with a collection of 
            objects providing basic port mode configuration for 
            Private VLAN feature on devices which support 
            Private VLAN port mode feature."
    ::= { cpvlanMIBGroups 5 }

cpvlanSVIMappingGroup OBJECT-GROUP
    OBJECTS { cpvlanSVIMappingPrimarySVI }
    STATUS  current
    DESCRIPTION
            "This is an optional group with a collection of 
            objects providing primary VLAN SVI mapping
            configuration for the Private VLAN feature on 
            devices which support Primary VLAN SVI mapping 
            feature."
    ::= { cpvlanMIBGroups 6 }

cpvlanTrunkPortGroup OBJECT-GROUP
    OBJECTS { cpvlanTrunkPortDynamicState,
              cpvlanTrunkPortEncapType,
              cpvlanTrunkPortNativeVlan,
              cpvlanTrunkPortSecondaryVlans,
              cpvlanTrunkPortSecondaryVlans2k,
              cpvlanTrunkPortSecondaryVlans3k,
              cpvlanTrunkPortSecondaryVlans4k,
              cpvlanTrunkPortNormalVlans,
              cpvlanTrunkPortNormalVlans2k,
              cpvlanTrunkPortNormalVlans3k,
              cpvlanTrunkPortNormalVlans4k,
              cpvlanTrunkPortDynamicStatus,
              cpvlanTrunkPortEncapOperType
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic private VLAN
            trunk port configuration for Private VLAN feature."
    ::= { cpvlanMIBGroups 7 }

END