-- ***************************************************************** -- CISCO-IETF-PW-ENET-MIB.my -- -- February 2003, Tim Swanson -- -- Copyright (c) 2003, 2006 by cisco Systems, Inc. -- All rights reserved. -- -- Made Cisco Proprietary based on IETF draft: -- draft-ietf-pwe3-enet-mib-00.txt -- ***************************************************************** -- CISCO-IETF-PW-ENET-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-TYPE, MODULE-IDENTITY, experimental, Counter64 FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF StorageType, RowStatus FROM SNMPv2-TC InterfaceIndexOrZero FROM IF-MIB cpwVcIndex FROM CISCO-IETF-PW-MIB CpwVcVlanCfg FROM CISCO-IETF-PW-TC-MIB ciscoExperiment FROM CISCO-SMI ; cpwVcEnetMIB MODULE-IDENTITY LAST-UPDATED "200209221200Z" -- 22 September 2002 12:00:00 GMT ORGANIZATION "IETF PWE3 Working group" CONTACT-INFO "David Zelig Postal: Corrigent Systems 126, Yigal Alon St. Tel-Aviv, ISRAEL Tel: +972-3-6945273 E-mail: davidz@corrigent.com Thomas D. Nadeau Postal: Cisco Systems, Inc. 250 Apollo Drive Chelmsford, MA 01824 Tel: +1-978-497-3051 Email: tnadeau@cisco.com " DESCRIPTION "This MIB describes a model for managing Ethernet point-to-point pseudo wire services over a Packet Switched Network (PSN)." -- Revision history. REVISION "200209221200Z" -- 22 September 2002 12:00:00 GMT DESCRIPTION " Submited as draft-pwe3-enet-mib-00. Changes from previous version: 1) Alignment with draft-pwe3-ethernet-encap-00.txt: removing 'rangeVLAN' mode and the associated objects. 2) Relaxing requirement on value of pwVcEnetPortVlan in port mode. " REVISION "200208201200Z" -- 20 August 2002 12:00:00 GMT DESCRIPTION "Changes from previous version: 1) Add pwVcEnetVcIfIndex - Option for VC as ifIndex. 2) Change counters to 64 bits. 3) Add mode for adding/removing VLAN fields between PW and CE bound interface. 4) Referencing draft-martini instead of draft-so. 5) Editorial changes for some description clauses. 6) MPLS PRI mapping table to be independent (not augmented). 7) Adapt descriptions and rules of use to dratf-ietf-pwe3-Ethernet-encap-00. " REVISION "200202031200Z" -- 03 February 2002 12:00:00 GMT DESCRIPTION "initial revision as -00 draft" ::= { ciscoExperiment 108 } cpwVcEnetNotifications OBJECT IDENTIFIER ::= { cpwVcEnetMIB 0 } cpwVcEnetObjects OBJECT IDENTIFIER ::= { cpwVcEnetMIB 1 } cpwVcEnetConformance OBJECT IDENTIFIER ::= { cpwVcEnetMIB 2 } -- -- VC Ethernet table -- cpwVcEnetTable OBJECT-TYPE SYNTAX SEQUENCE OF CpwVcEnetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the index to the Ethernet tables associated with this ETH VC, the VLAN configuration and VLAN mode." ::= { cpwVcEnetObjects 1 } cpwVcEnetEntry OBJECT-TYPE SYNTAX CpwVcEnetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table is indexed by the same index that was created for the associated entry in the PW VC Table in the CISCO-IETF-PW-MIB. The CpwVcIndex and the cpwVcEnetPwVlan are used as indexes to allow multiple VLANs to exist on the same PW. An entry is created in this table by the agent for every entry in the cpwVc table with a VcType of 'ethernetVLAN', 'ethernet' or 'ethernetVPLS'. Additional rows may be created by the operator or the agent if multiple entries are required for the same VC. This table provides Ethernet port mapping and VLAN configuration for each Ethernet VC." INDEX { cpwVcIndex, cpwVcEnetPwVlan } ::= { cpwVcEnetTable 1 } CpwVcEnetEntry ::= SEQUENCE { cpwVcEnetPwVlan CpwVcVlanCfg, cpwVcEnetVlanMode INTEGER, cpwVcEnetPortVlan CpwVcVlanCfg, cpwVcEnetPortIfIndex InterfaceIndexOrZero, cpwVcEnetVcIfIndex InterfaceIndexOrZero, cpwVcEnetRowStatus RowStatus, cpwVcEnetStorageType StorageType } cpwVcEnetPwVlan OBJECT-TYPE SYNTAX CpwVcVlanCfg MAX-ACCESS not-accessible STATUS current DESCRIPTION "This Object defines the VLAN on the VC. The value of 4097 is used if the object is not applicable, for example when mapping all packets from an Ethernet port to this VC. The value of 4096 is used to indicate untagged frames (at least from the PW point of view), for example if cpwVcEnetVlanMode is equal 'removeVLAN' or when cpwVcEnetVlanMode equal 'noChange' and cpwVcEnetPortVlan is equal 4096." ::= { cpwVcEnetEntry 1 } cpwVcEnetVlanMode OBJECT-TYPE SYNTAX INTEGER { other(0), portBased(1), noChange(2), changeVlan(3), addVlan(4), removeVlan(5) } MAX-ACCESS read-create STATUS current DESCRIPTION "Indicate the mode of VLAN handling between the port associated to the VC and the VC encapsulation itself. - 'other' indicate operation that is not defined by this MIB. - 'portBased' indicates that the forwarder will forward packets between the port and the PW independent of their structure. - 'noChange' indicates that the VC contains the original user VLAN, as specified in cpwVcEnetPortVlan. - 'changeVlan' indicates that the VLAN field on the VC may be different than the VLAN field on the user's port. - 'removeVlan' indicates that the encapsulation on the VC does not include the original VLAN field. Note that PRI bits transparency is lost in this case. - 'addVlan' indicate that a VLAN field will be added on the PSN bound direction. cpwVcEnetPwVlan indicate the value that will be added. - 'removeVlan', 'addVlan' and 'changeVlan' implementation is not required. " DEFVAL { noChange } ::= { cpwVcEnetEntry 2 } cpwVcEnetPortVlan OBJECT-TYPE SYNTAX CpwVcVlanCfg MAX-ACCESS read-create STATUS current DESCRIPTION "This object define the VLAN value on the physical port (or VPLS virtual port) if a change is required to the VLAN value between the VC and the physical/virtual port. The value of this object can be ignored if the whole traffic from the port is forwarded to one VC independent of the tagging on the port, but it is RECOMENDED that the value in this case will be '4097' indicating not relevant. It MUST be equal to cpwVcEnetPwVlan if 'noChange' mode is used. The value 4096 indicate that no VLAN (i.e. untagged frames) on the port are associated to this VC. This allows the same behaviors as assigning 'Default VLAN' to un-tagged frames. " DEFVAL { 4097 } ::= { cpwVcEnetEntry 3 } cpwVcEnetVcIfIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "It is sometimes convenient to model the VC PW as a virtual interface in the ifTable. In these cases this object hold the value of the ifIndex in the ifTable representing this VC PW. A value of zero indicate no such association or association is not yet known." ::= { cpwVcEnetEntry 4 } cpwVcEnetPortIfIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to specify the ifIndex of the ETHERNET port associated with this VC for point-to-point Ethernet service, or the ifIndex of the virtual interface of the VPLS instance associated with the PW if the service is VPLS. Two rows in this table can point to the same ifIndex only if: 1) It is required to support multiple COS on a MPLS PSN for the same service (i.e.: a combination of ports and VLANs) by the use of multiple VC, each with a different COS. 2) There is no overlap of VLAN values specified in cpwVcEnetPortVlan that are associated with this port. A value of zero indicate that association to an ifIndex is not yet known." ::= { cpwVcEnetEntry 5 } cpwVcEnetRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Enable creating, deleting and modifying this row." -- TBD: Need to specify exact interaction with other tables, and -- when rows can/cannot be created/deleted/modified. ::= { cpwVcEnetEntry 6 } cpwVcEnetStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the storage type of this row." ::= { cpwVcEnetEntry 7 } -- -- Ethernet Primary Mapping Table -- cpwVcEnetMplsPriMappingTable OBJECT-TYPE SYNTAX SEQUENCE OF CpwVcEnetMplsPriMappingTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table may be used for MPLS PSNs if there is a need to hold multiple VC, each with different COS, for the same user service (port + PW VLAN). Such a need may arise if the MPLS network is capable of L-LSP or E-LSP without multiple COS capabilities. Each row is indexed by the cpwVcIndex and indicate the PRI bits on the packet recieved from the user port (or VPLS virtual port) that are classified to this VC. Note that the EXP bit value of the VC is configured in the CISCO-IETF-PW-MPLS-MIB." ::= { cpwVcEnetObjects 2 } cpwVcEnetMplsPriMappingTableEntry OBJECT-TYPE SYNTAX CpwVcEnetMplsPriMappingTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry is created if special classification based on the PRI bits is required for this VC." INDEX { cpwVcIndex } ::= { cpwVcEnetMplsPriMappingTable 1 } CpwVcEnetMplsPriMappingTableEntry ::= SEQUENCE { cpwVcEnetMplsPriMapping BITS, cpwVcEnetMplsPriMappingRowStatus RowStatus, cpwVcEnetMplsPriMappingStorageType StorageType } cpwVcEnetMplsPriMapping OBJECT-TYPE SYNTAX BITS { pri000 (0), pri001 (1), pri010 (2), pri011 (3), pri100 (4), pri101 (5), pri110 (6), pri111 (7), untagged (8) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the groups of user PRI mapped into this VC. Each bit set indicates that this user priority is assigned to this VC. The value 'untagged' is used to indicate that untagged frames are also associated to this VC. This object allow the use of different PSN COS based on user marking of PRI bits in MPLS PSN with L-LSP or E-LSP without multiple COS support. In all other cases, the default value MUST be used. It is REQUIRED that there is no overlap on this object between rows serving the same service (port+ PW VLAN). In case of missing BIT configuration between rows to the same service, incoming packets with PRI marking not configured should be handled by the VC with the lowest COS. " REFERENCE "See appendix A of for mapping rules of the PRI bits to PSN COS." ::= { cpwVcEnetMplsPriMappingTableEntry 1 } cpwVcEnetMplsPriMappingRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Enable creating, deleting and modifying this row." -- TBD: Need to specify exact interaction with other tables, and -- when rows can/cannot be created/deleted/modified. ::= { cpwVcEnetMplsPriMappingTableEntry 2 } cpwVcEnetMplsPriMappingStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the storage type of this row." ::= { cpwVcEnetMplsPriMappingTableEntry 3 } -- -- VC Ethernet Statistics Table -- cpwVcEnetStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF CpwVcEnetStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains statistical counters specific for Ethernet PW." ::= { cpwVcEnetObjects 3 } cpwVcEnetStatsEntry OBJECT-TYPE SYNTAX CpwVcEnetStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry represents the statistics gathered for the VC carrying the Ethernet packets since this VC was first created in the cpwVcEnetTable." INDEX { cpwVcIndex } ::= { cpwVcEnetStatsTable 1 } CpwVcEnetStatsEntry ::= SEQUENCE { cpwVcEnetStatsIllegalVlan Counter64, cpwVcEnetStatsIllegalLength Counter64 } cpwVcEnetStatsIllegalVlan OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets received (from the PSN) on this VC with an illegal VLAN field, missing VLAN field that was expected, or A VLAN field when it was not expected. This counter is not relevant if the VC type is 'ethernet' (i.e. raw mode), and should be set to 0 by the agent to indicate this." ::= { cpwVcEnetStatsEntry 1 } cpwVcEnetStatsIllegalLength OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets that were received with an illegal Ethernet packet length on this VC. An illegal length is defined as being greater than the value in the advertised maximum MTU supported, or shorter than the allowed Ethernet packet size." ::= { cpwVcEnetStatsEntry 2 } --- --- Conformance description --- In this version of the draft, only objects level conformance is --- defined. More detailed conformance specifications is FFS. --- cpwVcEnetGroups OBJECT IDENTIFIER ::= { cpwVcEnetConformance 1 } cpwVcEnetCompliances OBJECT IDENTIFIER ::= { cpwVcEnetConformance 2 } cpwVcEnetModuleCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for agent that support Ethernet PW." MODULE -- this module MANDATORY-GROUPS { cpwVcEnetGroup, cpwVcStatsGroup } GROUP cpwVcEnetMplsPriGroup DESCRIPTION "Collection of objects defining classification to different PW based on the user's PRI bits mapping. This group is optional, and should be implemented only for MPLS PSN where only L-LSP or single OA E-LSP, exists, and different PSN COS is required based on the PRI mapping." ::= { cpwVcEnetCompliances 1 } -- Units of conformance. cpwVcEnetGroup OBJECT-GROUP OBJECTS { cpwVcEnetVlanMode, cpwVcEnetPortVlan, cpwVcEnetPortIfIndex, cpwVcEnetVcIfIndex, cpwVcEnetRowStatus, cpwVcEnetStorageType } STATUS current DESCRIPTION "Collection of objects for basic Ethernet PW config." ::= { cpwVcEnetGroups 1 } cpwVcStatsGroup OBJECT-GROUP OBJECTS { cpwVcEnetStatsIllegalVlan, cpwVcEnetStatsIllegalLength } STATUS current DESCRIPTION "Collection of objects counting various PW level errors." ::= { cpwVcEnetGroups 2 } cpwVcEnetMplsPriGroup OBJECT-GROUP OBJECTS { cpwVcEnetMplsPriMapping, cpwVcEnetMplsPriMappingRowStatus, cpwVcEnetMplsPriMappingStorageType } STATUS current DESCRIPTION "Collection of objects defining classification to different PW based on the user's PRI bits mapping. This group is optional, and should be implemented only for MPLS PSN where only L-LSP or single OA E-LSP exists, and different PSN COS is required based on the PRI mapping." ::= { cpwVcEnetGroups 3 } END