-- ********************************************************************* -- CISCO-QINQ-VLAN-MIB.my: Cisco IEEE 802.1Q-in-802.1Q (QinQ) VLAN MIB -- -- A MIB module for the management of QinQ VLAN interfaces. -- -- October 2004, Enid Jimenez -- -- Copyright (c) 2004 by Cisco Systems, Inc. -- All rights reserved. -- ********************************************************************* -- CISCO-QINQ-VLAN-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32 FROM SNMPv2-SMI TEXTUAL-CONVENTION, RowStatus FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF ciscoMgmt FROM CISCO-SMI ifIndex FROM IF-MIB VlanId FROM Q-BRIDGE-MIB; ciscoQinqVlanMIB MODULE-IDENTITY LAST-UPDATED "200411290000Z" 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-7600@cisco.com" DESCRIPTION "This MIB defines configuration and monitoring capabilities relating to 802.1QinQ interfaces. QinQ interfaces are capable of terminating QinQ traffic and translating QinQ tags. IEEE 802.1Q VLAN specification provides for an option to tag Ethernet frames with two VLAN tags: - An inner tag that specifies the customer's VLAN ID. This tag is called the 'CE VLAN'. - An outer tag that specifies the service provider's VLAN ID. This tag is called the 'metro tag', or the 'PE VLAN'. The combination of inner and outer VLAN tags is used to uniquely identify a particular customer's service flow." REVISION "200411290000Z" DESCRIPTION "Initial version of this MIB module." ::= { ciscoMgmt 445 } ciscoQinqVlanMIBNotifs OBJECT IDENTIFIER ::= { ciscoQinqVlanMIB 0 } ciscoQinqVlanMIBObjects OBJECT IDENTIFIER ::= { ciscoQinqVlanMIB 1 } ciscoQinqVlanMIBConform OBJECT IDENTIFIER ::= { ciscoQinqVlanMIB 2 } cqvTermination OBJECT IDENTIFIER ::= { ciscoQinqVlanMIBObjects 1 } cqvTranslation OBJECT IDENTIFIER ::= { ciscoQinqVlanMIBObjects 2 } -- Textual Conventions CqvVlanIdOrZero ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This textual convention is an extension of the VlanId convention. The VlanId convention defines a greater than zero value to identify a VLAN ID in the managed system. The CqvVlanIdOrZero convention defines the additional value of zero. The value zero is object specific and must therefore be defined as part of the description of any object that uses this syntax. An example of the usage of zero might include situations where the VLAN ID is unknown." REFERENCE "RFC-2674, Bridge MIB Extensions, August 1999, Q-BRIDGE-MIB, E. Bell." SYNTAX Unsigned32 (0..4094) CqvEncapsulationType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This textual convention defines the different types of VLAN trunking. isl - Inter Switch Link, the Cisco proprietary trunking protocol. dot1Q - IEEE 802.1Q trunking standard." SYNTAX INTEGER { isl(1), dot1Q(2) } -- Termination cqvTerminationTable OBJECT-TYPE SYNTAX SEQUENCE OF CqvTerminationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains attributes pertaining to QinQ terminated interfaces. The ifIndex in the INDEX clause identifies the interface that terminates QinQ traffic. A management application can create a conceptual row in this table by setting the cqvTerminationRowStatus to 'createAndWait' or 'createAndGo'. A conceptual row in this table cannot be modified while cqvTerminationRowStatus is set to 'active'." ::= { cqvTermination 1 } cqvTerminationEntry OBJECT-TYPE SYNTAX CqvTerminationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table defines a QinQ terminated interface." INDEX { ifIndex, cqvTerminationPeVlanId, cqvTerminationCeVlanId } ::= { cqvTerminationTable 1 } CqvTerminationEntry ::= SEQUENCE { cqvTerminationPeVlanId VlanId, cqvTerminationCeVlanId VlanId, cqvTerminationPeEncap CqvEncapsulationType, cqvTerminationRowStatus RowStatus } cqvTerminationPeVlanId OBJECT-TYPE SYNTAX VlanId MAX-ACCESS not-accessible STATUS current DESCRIPTION "The VLAN ID of the outer tag of a QinQ frame." ::= { cqvTerminationEntry 1 } cqvTerminationCeVlanId OBJECT-TYPE SYNTAX VlanId MAX-ACCESS not-accessible STATUS current DESCRIPTION "The VLAN ID of the inner tag of a QinQ frame." ::= { cqvTerminationEntry 2 } cqvTerminationPeEncap OBJECT-TYPE SYNTAX CqvEncapsulationType MAX-ACCESS read-create STATUS current DESCRIPTION "The encapsulation type of the PE VLAN (cqvTerminationPeVlanId) of a QinQ frame." ::= { cqvTerminationEntry 3 } cqvTerminationRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object facilitates the creation, modification, or deletion of a conceptual row in this table." ::= { cqvTerminationEntry 4 } cqvTranslationTable OBJECT-TYPE SYNTAX SEQUENCE OF CqvTranslationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table defines the translations performed on QinQ capable interfaces. The ifIndex in the INDEX clause identifies the QinQ interface. A QinQ interface performs the following translations: - Double Tagged to Single Tagged - the inner and outer tags of the frames internal to the switch are replaced with a single trunk VLAN tag when the outgoing frame is transmitted. - Double Tagged to Double Tagged - the outer tag of the frames internal to the switch are replaced with an outer trunk VLAN tag when the outgoing frame is transmitted. The inner tag remains unchanged in the transmitted frame. The following picture illustrates QinQ translations. <----- Provider Side -----|----- Customer Side -----> Switch +--------------------------------+ | | | +---------------+ +-------| +------------------+ | | Double Tagged | | QinQ | | Single or Double | | | Frames | --> | Intf | --> | Tagged Frames | | +---------------+ +-------| +------------------+ | | +--------------------------------+ Also, the QinQ interface sets the IEEE 802.1P prioritization bits (P bits) in the outgoing frames by copying the P bits either from the internal frame's outer or inner VLAN tag. A management application can create a conceptual row in this table by setting the cqvTranslationRowStatus to 'createAndWait' or 'createAndGo'. A conceptual row in this table cannot be modified while cqvTranslationRowStatus is set to 'active'." ::= { cqvTranslation 1 } cqvTranslationEntry OBJECT-TYPE SYNTAX CqvTranslationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table contains translation information for a particular QinQ interface." INDEX { ifIndex, cqvTranslationInternalPeVlanId, cqvTranslationInternalCeVlanId } ::= { cqvTranslationTable 1 } CqvTranslationEntry ::= SEQUENCE { cqvTranslationInternalPeVlanId CqvVlanIdOrZero, cqvTranslationInternalCeVlanId CqvVlanIdOrZero, cqvTranslationTrunkPeVlanId CqvVlanIdOrZero, cqvTranslationTrunkCeVlanId CqvVlanIdOrZero, cqvTranslationType INTEGER, cqvTranslationCosPBits INTEGER, cqvTranslationRowStatus RowStatus } cqvTranslationInternalPeVlanId OBJECT-TYPE SYNTAX CqvVlanIdOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "The QinQ outer VLAN ID of an internal double tagged frame. This object will have the value of zero as described in the cqvTranslationType object." ::= { cqvTranslationEntry 1 } cqvTranslationInternalCeVlanId OBJECT-TYPE SYNTAX CqvVlanIdOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "The QinQ inner VLAN ID of an internal double tagged frame. This object will have the value of zero as described in the cqvTranslationType object." ::= { cqvTranslationEntry 2 } cqvTranslationTrunkPeVlanId OBJECT-TYPE SYNTAX CqvVlanIdOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "The QinQ outer VLAN ID of a trunk VLAN frame. This object will have the value of zero as described in the cqvTranslationType object." ::= { cqvTranslationEntry 3 } cqvTranslationTrunkCeVlanId OBJECT-TYPE SYNTAX CqvVlanIdOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "The QinQ inner VLAN ID of a trunk VLAN frame. This object will have the value of zero as described in the cqvTranslationType object." ::= { cqvTranslationEntry 4 } cqvTranslationType OBJECT-TYPE SYNTAX INTEGER { doubleToSingle(1), doubleToDouble(2), doubleToDoubleOutOfRange(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "The QinQ translation type being performed on the interface. 'doubleToSingle' - Double tagged to single tagged traffic. The value of cqvTranslationTrunkPeVlanId will be zero. This indicates that the PE VLAN tag will be absent in the trunk interface. 'doubleToDouble' - Double tagged to double tagged traffic. The value of the internal PE and CE, and the trunk PE and CE VLAN IDs are non-zero. 'doubleToDoubleOutOfRange' - Double tagged to double tagged traffic that does not have a defined translation. The value of cqvTranslationInternalCeVlanId will be zero. This indicates that the CE VLAN tag is being used as a wildcard." ::= { cqvTranslationEntry 5 } cqvTranslationCosPBits OBJECT-TYPE SYNTAX INTEGER { copyFromOuterTag(1), copyFromInnerTag(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates how the IEEE 802.1P bits (P bits) in the IEEE 802.1Q header of the trunk VLAN are to be set. The P bits in the trunk VLAN can be set by copying the P bits of the outer PE tag or the inner CE tag. 'copyFromOuterTag' - Copy the P bits from the outer PE tag. 'copyFromInnerTag' - Copy the P bits from the inner CE tag." DEFVAL { copyFromOuterTag } ::= { cqvTranslationEntry 6 } cqvTranslationRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object facilitates the creation, modification, or deletion of a conceptual row in this table." ::= { cqvTranslationEntry 7 } -- Conformance ciscoQinqVlanMIBCompliances OBJECT IDENTIFIER ::= { ciscoQinqVlanMIBConform 1 } ciscoQinqVlanMIBGroups OBJECT IDENTIFIER ::= { ciscoQinqVlanMIBConform 2 } ciscoQinQVlanMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities which implement the Cisco QinQ MIB." MODULE -- this module MANDATORY-GROUPS { ciscoQinqVlanTerminationGroup, ciscoQinqVlanTranslationGroup } OBJECT cqvTerminationPeEncap MIN-ACCESS read-only DESCRIPTION "Create/Write access is optional." OBJECT cqvTranslationTrunkPeVlanId MIN-ACCESS read-only DESCRIPTION "Create/Write access is optional." OBJECT cqvTranslationTrunkCeVlanId MIN-ACCESS read-only DESCRIPTION "Create/Write access is optional." OBJECT cqvTranslationType MIN-ACCESS read-only DESCRIPTION "Create/Write access is optional." OBJECT cqvTranslationCosPBits MIN-ACCESS read-only DESCRIPTION "Create/Write access is optional." OBJECT cqvTranslationRowStatus MIN-ACCESS read-only DESCRIPTION "Create/Write access is optional." ::= { ciscoQinqVlanMIBCompliances 1 } -- Units of Conformance ciscoQinqVlanTerminationGroup OBJECT-GROUP OBJECTS { cqvTerminationPeEncap, cqvTerminationRowStatus } STATUS current DESCRIPTION "Objects for providing configuration for QinQ termination." ::= { ciscoQinqVlanMIBGroups 1 } ciscoQinqVlanTranslationGroup OBJECT-GROUP OBJECTS { cqvTranslationTrunkPeVlanId, cqvTranslationTrunkCeVlanId, cqvTranslationType, cqvTranslationCosPBits, cqvTranslationRowStatus } STATUS current DESCRIPTION "Objects for providing configuration for QinQ translation." ::= { ciscoQinqVlanMIBGroups 2 } END