-- extracted from draft-zelig-pw-enet-mib-00.txt -- at Fri May 14 06:20:52 2004 PW-ENET-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-TYPE, MODULE-IDENTITY, experimental, Counter32 FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF StorageType, RowStatus FROM SNMPv2-TC InterfaceIndexOrZero FROM IF-MIB pwVcIndex FROM PW-MIB PwVcVlanCfg FROM PW-TC-MIB; pwVcEnetMIB MODULE-IDENTITY LAST-UPDATED "200202031200Z" -- 03 February 2002 12:00:00 GMT ORGANIZATION "IETF PWE3 Working group" CONTACT-INFO "David Zelig Postal: Corrigent Systems 126, Yigal Alon St. Tel Aviv, ISRAEL Phone: +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 "200202031200Z" -- 03 February 2002 12:00:00 GMT DESCRIPTION "intial revision as -00 draft" ::= { experimental 89 } -- TBD: Get number from IANA pwVcEnetNotifications OBJECT IDENTIFIER ::= { pwVcEnetMIB 0 } pwVcEnetObjects OBJECT IDENTIFIER ::= { pwVcEnetMIB 1 } pwVcEnetConformance OBJECT IDENTIFIER ::= { pwVcEnetMIB 2 } -- -- VC Ethernet table -- pwVcEnetTable OBJECT-TYPE SYNTAX SEQUENCE OF PwVcEnetEntry 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." ::= { pwVcEnetObjects 1 } pwVcEnetEntry OBJECT-TYPE SYNTAX PwVcEnetEntry 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 PW-MIB. The PwVcIndex and the pwVcEnetPwVlan 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 pwVc 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 ETH port mapping and VLAN configuration for each Ethernet VC." INDEX { pwVcIndex, pwVcEnetPwVlan } ::= { pwVcEnetTable 1 } PwVcEnetEntry ::= SEQUENCE { pwVcEnetPwVlan PwVcVlanCfg, pwVcEnetVlanMode INTEGER, pwVcEnetMaxVlan PwVcVlanCfg, pwVcEnetPortVlan PwVcVlanCfg, pwVcEnetPortIfIndex InterfaceIndexOrZero, pwVcEnetRowStatus RowStatus, pwVcEnetStorageType StorageType } pwVcEnetPwVlan OBJECT-TYPE SYNTAX PwVcVlanCfg 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 to indicate that the raw-based service should be used (pwVctype in PW-MIB equal 'ethernet'). The value of 4096 is used to indicate untagged frames (i.e. if pwVcEnetVlanMode is equal 'removeVLAN' or when both pwVcEnetVlanMode equal 'noChange' and pwVcEnetPortVlan is equal 4096." ::= { pwVcEnetEntry 1 } pwVcEnetVlanMode OBJECT-TYPE SYNTAX INTEGER { noChange(1), changeVlan(2), addVlan(3), removeVlan(4), rangeVlan(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. - 'noChange' indicates that the VC contains the original user VLAN or that the pwVcType is 'ethernet' (raw service). - '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, and therefore it is not recommended. - 'addVlan' indicate that a packet without VLAN field on the user port will be transmitted with a VLAN field on the VC. - 'rangeVlan' indicate that all VLANs between pwVcEnetPwVlan and pwVcEnetMaxVlan on the user port will be associated to this VC. It is not possible to change VLAN values on this mode. - 'removeVlan', 'addVlan' and 'rangeVlan' implementation is not required. " DEFVAL { noChange } ::= { pwVcEnetEntry 2 } pwVcEnetMaxVlan OBJECT-TYPE SYNTAX PwVcVlanCfg MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to define the MAX value of VLAN range for this VC, and is in effect if pwVcEnetVlanMode is equal to 'rangeVlan', and must be greater or equal to pwVcEnetPwVlan. If a range is not used the value must be set to 0." DEFVAL { 0 } ::= { pwVcEnetEntry 3 } pwVcEnetPortVlan OBJECT-TYPE SYNTAX PwVcVlanCfg 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 port. This object MUST hold the value of 4097 (not relevant) if one of the following is true: 1) pwVcEntVlanMode = 'rangeVlan' or 'addVlan'. 2) Raw based service (i.e. pwVcType equal 'ethernet') in PW-MIB. It MUST be equal to pwVcEnetPwVlan 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 non tagged frames. When a VLAN change takes place, the value of the VLAN tag on the VC should be set to zero. This will allow the PW to preserve the user PRI bits end-to-end. This will also facilitate compatibility with the VPLS service configuration. " DEFVAL { 4097 } ::= { pwVcEnetEntry 4 } pwVcEnetPortIfIndex 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. This value specifies 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 pwVcEnetPortVlan that are associated with this port. 3) A VLAN service cannot be defined for a port with an existing raw-based service. A value of zero indicate that association to an ifIndex is not yet known." ::= { pwVcEnetEntry 5 } pwVcEnetRowStatus 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. ::= { pwVcEnetEntry 6 } pwVcEnetStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the storage type of this row." ::= { pwVcEnetEntry 7 } -- -- Ethernet Primary Mapping Table -- pwVcEnetMplsPriMappingTable OBJECT-TYPE SYNTAX SEQUENCE OF PwVcEnetMplsPriMappingTableEntry 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 augmented to the pwVcEnetTable row, and indicate the PRI bits on the packet incoming 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 PW-MPLS-MIB." ::= { pwVcEnetObjects 2 } pwVcEnetMplsPriMappingTableEntry OBJECT-TYPE SYNTAX PwVcEnetMplsPriMappingTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry augments the pwVcEnetEntry to indicate which packets are classified to this VC based on the PRI bits." AUGMENTS { pwVcEnetEntry } ::= { pwVcEnetMplsPriMappingTable 1 } PwVcEnetMplsPriMappingTableEntry ::= SEQUENCE { pwVcEnetMplsPriMapping BITS } pwVcEnetMplsPriMapping 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." ::= { pwVcEnetMplsPriMappingTableEntry 1 } -- -- VC Ethernet Statistics Table -- pwVcEnetStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF PwVcEnetStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains statistical counters specific for Ethernet PW." ::= { pwVcEnetObjects 3 } pwVcEnetStatsEntry OBJECT-TYPE SYNTAX PwVcEnetStatsEntry 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 pwVcEnetTable." INDEX { pwVcIndex } ::= { pwVcEnetStatsTable 1 } PwVcEnetStatsEntry ::= SEQUENCE { pwVcEnetStatsIllegalVlan Counter32, pwVcEnetStatsIllegalLength Counter32 } pwVcEnetStatsIllegalVlan OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write STATUS current DESCRIPTION "The number of packets received 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." ::= { pwVcEnetStatsEntry 1 } pwVcEnetStatsIllegalLength OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-write 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." ::= { pwVcEnetStatsEntry 2 } --- --- Conformance description --- In this version of the draft, only objects level conformance is --- defined. More detailed conformance specifications is FFS. --- pwVcEnetGroups OBJECT IDENTIFIER ::= { pwVcEnetConformance 1 } pwVcEnetCompliances OBJECT IDENTIFIER ::= { pwVcEnetConformance 2 } pwCepModuleCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for agent that support PW over CEP PSN operation." MODULE -- this module MANDATORY-GROUPS { pwVcEnetGroup, pwVcStatsGroup } GROUP pwVcEnetMplsPriGroup 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." ::= { pwVcEnetCompliances 1 } -- Units of conformance. pwVcEnetGroup OBJECT-GROUP OBJECTS { pwVcEnetVlanMode, pwVcEnetMaxVlan, pwVcEnetPortVlan, pwVcEnetPortIfIndex, pwVcEnetRowStatus, pwVcEnetStorageType } STATUS current DESCRIPTION "Collection of objects for basic Ethernet PW config." ::= { pwVcEnetGroups 1 } pwVcStatsGroup OBJECT-GROUP OBJECTS { pwVcEnetStatsIllegalVlan, pwVcEnetStatsIllegalLength } STATUS current DESCRIPTION "Collection of objects counting varous PW level errors." ::= { pwVcEnetGroups 2 } pwVcEnetMplsPriGroup OBJECT-GROUP OBJECTS { pwVcEnetMplsPriMapping } 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." ::= { pwVcEnetGroups 3 } END -- -- Copyright (C) The Internet Society (2000). All Rights Reserved. -- -- This document and translations of it may be copied and furnished to -- others, and derivative works that comment on or otherwise explain it -- or assist in its implementation may be prepared, copied, published -- and distributed, in whole or in part, without restriction of any -- kind, provided that the above copyright notice and this paragraph are -- included on all such copies and derivative works. However, this -- document itself may not be modified in any way, such as by removing -- the copyright notice or references to the Internet Society or other -- Internet organizations, except as needed for the purpose of -- developing Internet standards in which case the procedures for -- copyrights defined in the Internet Standards process must be -- followed, or as required to translate it into languages other than -- English. -- -- The limited permissions granted above are perpetual and will not be -- revoked by the Internet Society or its successors or assigns. This -- document and the information contained herein is provided on an "AS -- IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK -- FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT -- LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL -- NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY -- OR FITNESS FOR A PARTICULAR PURPOSE.