PW-ENET-STD-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-TYPE, MODULE-IDENTITY, Unsigned32, mib-2 FROM SNMPv2-SMI -- [RFC2578] MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF -- [RFC2580] StorageType, RowStatus FROM SNMPv2-TC -- [RFC2579] InterfaceIndexOrZero FROM IF-MIB -- [RFC2863] ZeroBasedCounter32 FROM RMON2-MIB -- [RFC4502] pwIndex FROM PW-STD-MIB -- [RFC5601] VlanIdOrAnyOrNone FROM Q-BRIDGE-MIB; -- [RFC4363] pwEnetStdMIB MODULE-IDENTITY LAST-UPDATED "200906150000Z" -- 15 June 2009 00:00:00 GMT ORGANIZATION "Pseudowire Edge-to-Edge Emulation (PWE3) Working Group" CONTACT-INFO "David Zelig Email: [email protected] Thomas D. Nadeau Email: [email protected] " DESCRIPTION "This MIB module describes a model for managing Ethernet point-to-point pseudowire services over a Packet Switched Network (PSN). Copyright (c) 2009 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of Internet Society, IETF or IETF Trust, nor the names of specific contributors, may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. This version of this MIB module is part of RFC 5603; see the RFC itself for full legal notices." -- Revision history REVISION "200906150000Z" -- 15 June 2009 00:00:00 GMT DESCRIPTION "Initial version published as part of RFC 5603." ::= { mib-2 180 } pwEnetObjects OBJECT IDENTIFIER ::= { pwEnetStdMIB 1 } pwEnetConformance OBJECT IDENTIFIER ::= { pwEnetStdMIB 2 } -- -- Ethernet PW table -- pwEnetTable OBJECT-TYPE SYNTAX SEQUENCE OF PwEnetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the index to the Ethernet tables associated with this Ethernet PW, the VLAN configuration, and the VLAN mode." ::= { pwEnetObjects 1 } pwEnetEntry OBJECT-TYPE SYNTAX PwEnetEntry 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 generic table in the PW-STD-MIB module. The pwIndex and the pwEnetPwInstance 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 pwTable with a pwType of 'ethernetTagged' or 'ethernet'. Additional rows may be created by the operator or the agent if multiple entries are required for the same PW. The value of pwEnetPwInstance can be arbitrarily selected to make the row unique; however, implementations that know the VLAN field value when the row is created MAY use the value of the VLAN itself for better readability and backward compatibility with older versions of this MIB module. This table provides Ethernet port mapping and VLAN configuration for each Ethernet PW. All read-create objects in this table MAY be changed at any time; however, change of some objects (for example, pwEnetVlanMode) during the PW forwarding state MAY cause traffic disruption. Manual entries in this table SHOULD be preserved after a reboot, and the agent MUST ensure the integrity of those entries. If the set of entries of a specific row is found to be inconsistent after reboot, the PW pwOperStatus MUST be declared as notPresent(5). " INDEX { pwIndex, pwEnetPwInstance } ::= { pwEnetTable 1 } PwEnetEntry ::= SEQUENCE { pwEnetPwInstance Unsigned32, pwEnetPwVlan VlanIdOrAnyOrNone, pwEnetVlanMode INTEGER, pwEnetPortVlan VlanIdOrAnyOrNone, pwEnetPortIfIndex InterfaceIndexOrZero, pwEnetPwIfIndex InterfaceIndexOrZero, pwEnetRowStatus RowStatus, pwEnetStorageType StorageType } pwEnetPwInstance OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "If multiple rows are mapped to the same PW, this index is used to uniquely identify the individual row. If the value of the VLAN field is known at the time of row creation, the value of pwEnetPwVlan MAY be used for better readability and backward compatibility with older versions of this MIB module. Otherwise, the value 1 SHOULD be set to the first row for each pwIndex for better readability and in order that the management application will know in advance how to access the first row when it was created by the agent. " ::= { pwEnetEntry 1 } pwEnetPwVlan OBJECT-TYPE SYNTAX VlanIdOrAnyOrNone MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines the (service-delimiting) VLAN field value on the PW. The value 4095 MUST be used if the object is not applicable, for example, when mapping all packets from an Ethernet port to this PW (raw mode). The value 0 MUST be set to indicate untagged frames (from the PW point of view), i.e., when pwEnetVlanMode equals 'noChange' and pwEnetPortVlan equals 0." ::= { pwEnetEntry 2 } pwEnetVlanMode OBJECT-TYPE SYNTAX INTEGER { other(0), portBased(1), noChange(2), changeVlan(3), addVlan(4), removeVlan(5) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the mode of VLAN handling between the port or the virtual port associated with the PW and the PW encapsulation. - 'other' indicates an operation that is not defined by this MIB module. - 'portBased' indicates that the forwarder will forward packets between the port and the PW independent of their structure (i.e., there are no service-delimiting VLAN tags from the PE standpoint). - 'noChange' indicates that the PW contains the original user VLAN, as specified in pwEnetPortVlan; i.e., the VLAN on the PE-CE link is the service-delimiting tag and is kept 'as is' on the PW. - 'changeVlan' indicates that the VLAN field on the PW may be different than the VLAN field on the user's port. The VLAN on the PE-CE link is the service-delimiting tag but has a different value on the PW. - 'addVlan' indicates that a VLAN field will be added on the PSN-bound direction (i.e., on the PW). pwEnetPwVlan indicates the value that will be added. - 'removeVlan' indicates that the encapsulation on the PW does not include the service-delimiting VLAN field. Note that PRI bits transparency is lost in this case. - Implementation of 'portsbased', 'removeVlan', 'addVlan' 'other', and 'changeVlan' is OPTIONAL. " DEFVAL { noChange } ::= { pwEnetEntry 3 } pwEnetPortVlan OBJECT-TYPE SYNTAX VlanIdOrAnyOrNone MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines if the mapping between the original port (physical port or VPLS virtual port) to the PW is VLAN based or not. In case of VLAN mapping, this object indicates the VLAN value on the original port. The value of '4095' MUST be used if the whole original port traffic is mapped to the same PW. Note that a pwType of 'ethernetTagged' can still be used if service-delimiting tag is added on the PW (pwEnetVlanMode equals 'addVlan'). This object MUST be equal to pwEnetPwVlan if pwEnetVlanMode equals 'noChange'. The value 0 indicates that packets without a VLAN field (i.e., untagged frames) on the port are associated to this PW. This allows the same behavior as assigning 'Default VLAN' to untagged frames. " DEFVAL { 4095 } ::= { pwEnetEntry 4 } pwEnetPortIfIndex 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 PW 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 there is no overlap of VLAN values specified in pwEnetPortVlan that are associated with this port. A value of zero indicates that association to an ifIndex is not yet known." ::= { pwEnetEntry 5 } pwEnetPwIfIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "If the PW is modeled as an ifIndex in the ifTable, this object indicates the value of the ifIndex representing the Ethernet PW on the PSN side in the Etherlike-MIB. Note that this value may be different from the value of pwIfIndex that represents the ifIndex of the PW for ifType 'pw'." DEFVAL { 0 } ::= { pwEnetEntry 6 } pwEnetRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object enables creating, deleting, and modifying this row." ::= { pwEnetEntry 7 } pwEnetStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the storage type of this row." DEFVAL { nonVolatile } ::= { pwEnetEntry 8 } -- -- Ethernet PW Statistics Table -- pwEnetStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF PwEnetStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains statistical counters specific for Ethernet PW." ::= { pwEnetObjects 2 } pwEnetStatsEntry OBJECT-TYPE SYNTAX PwEnetStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry represents the statistics gathered for the PW carrying the Ethernet." INDEX { pwIndex } ::= { pwEnetStatsTable 1 } PwEnetStatsEntry ::= SEQUENCE { pwEnetStatsIllegalVlan ZeroBasedCounter32, pwEnetStatsIllegalLength ZeroBasedCounter32 } pwEnetStatsIllegalVlan OBJECT-TYPE SYNTAX ZeroBasedCounter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets received (from the PSN) on this PW with either an illegal VLAN field, a missing VLAN field when one was expected, or an excessive VLAN field when it was not expected. This counter may not be applicable in some cases, and MUST return the value of zero in such a case." ::= { pwEnetStatsEntry 1 } pwEnetStatsIllegalLength OBJECT-TYPE SYNTAX ZeroBasedCounter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets that were received with an illegal Ethernet packet length on this PW. An illegal length is defined as being greater than the value in the advertised MTU supported, or shorter than the allowed Ethernet packet size." ::= { pwEnetStatsEntry 2 } --- --- Conformance description --- pwEnetGroups OBJECT IDENTIFIER ::= { pwEnetConformance 1 } pwEnetCompliances OBJECT IDENTIFIER ::= { pwEnetConformance 2 } -- Compliance requirement for fully compliant implementations pwEnetModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for agents that provides full support for the PW-ENET-STD-MIB module. Such devices can then be monitored and also be configured using this MIB module." MODULE -- this module MANDATORY-GROUPS { pwEnetGroup, pwEnetStatsGroup } OBJECT pwEnetVlanMode DESCRIPTION "An implementation MUST support at least the value noChange(2)." OBJECT pwEnetPwIfIndex MIN-ACCESS read-only DESCRIPTION "Write access and values other than zero are required only for implementations that support modeling the Ethernet PW in the Etherlike-MIB." OBJECT pwEnetRowStatus SYNTAX RowStatus { active(1), notInService(2), notReady(3) } WRITE-SYNTAX RowStatus { active(1), notInService(2), createAndGo(4), destroy(6) } MIN-ACCESS read-only DESCRIPTION "Support for createAndWait is not required. Support of notReady is not required for implementations that do not support signaling. Support of read-write is not required for implementations that do not support more than one VLAN mapping to the same PW." ::= { pwEnetCompliances 1 } -- Compliance requirement for read-only compliant implementations pwEnetModuleReadOnlyCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for agents that provide read- only support for the PW-ENET-STD-MIB module. Such devices can then be monitored but cannot be configured using this MIB module." MODULE -- this module MANDATORY-GROUPS { pwEnetGroup, pwEnetStatsGroup } OBJECT pwEnetPwVlan MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT pwEnetVlanMode MIN-ACCESS read-only DESCRIPTION "Write access is not required. An implementation MUST support at least the value noChange(2)." OBJECT pwEnetPortVlan MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT pwEnetPortIfIndex MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT pwEnetPwIfIndex MIN-ACCESS read-only DESCRIPTION "Write access is not required. Values other than zero are required only for implementations that support modeling the Ethernet PW in the Etherlike-MIB." OBJECT pwEnetRowStatus SYNTAX RowStatus { active(1), notInService(2), notReady(3) } MIN-ACCESS read-only DESCRIPTION "Write access is not required. Support of notReady is not required for implementations that do not support signaling." OBJECT pwEnetStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { pwEnetCompliances 2 } -- Units of conformance pwEnetGroup OBJECT-GROUP OBJECTS { pwEnetPwVlan, pwEnetVlanMode, pwEnetPortVlan, pwEnetPortIfIndex, pwEnetPwIfIndex, pwEnetRowStatus, pwEnetStorageType } STATUS current DESCRIPTION "Collection of objects for basic Ethernet PW configuration." ::= { pwEnetGroups 1 } pwEnetStatsGroup OBJECT-GROUP OBJECTS { pwEnetStatsIllegalVlan, pwEnetStatsIllegalLength } STATUS current DESCRIPTION "Collection of objects counting various PW level errors." ::= { pwEnetGroups 2 } END