-- Copyright (C) 2009-2016 Aricent. All Rights Reserved -- $Id: fselps.mib,v 1.15 2016/03/24 10:16:12 siva Exp $ -- ELPS Proprietary MIB Definition -- This file explains the proprietary MIB implemented -- for ELPS (Enhanced Linear Protection Switching) feature. -- This MIB provides management support for the Linear protection switching functionality described in: -- ITU-T specification : G.8031 / Y.1342 (Ethernet Linear Protection Switching) -- IETF draft : draft-ietf-mpls-tp-linear-protection-06 (MPLS-TP Linear protection) ARICENT-ELPS-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-TYPE, MODULE-IDENTITY, enterprises, Unsigned32, Counter32, NOTIFICATION-TYPE FROM SNMPv2-SMI RowStatus, RowPointer, TruthValue, DisplayString, TEXTUAL-CONVENTION FROM SNMPv2-TC Dot1agCfmMepId FROM IEEE8021-CFM-MIB InterfaceIndex, InterfaceIndexOrZero FROM IF-MIB; fselps MODULE-IDENTITY LAST-UPDATED "201209050000Z" ORGANIZATION "ARICENT COMMUNICATIONS SOFTWARE" CONTACT-INFO "support@aricent.com" DESCRIPTION "This MIB is a proprietary MIB for ELPS to provide Enhanced linear protection switching as per ITU-T G.8031/Y.1342 for vlan services and draft-ietf-mpls-tp-linear-protection-02 for MPLS LSP and Pseudowires." REVISION "201209050000Z" DESCRIPTION "This MIB is a proprietary MIB for ELPS to provide Enhanced linear protection switching as per ITU-T G.8031/Y.1342 for vlan services and draft-ietf-mpls-tp-linear-protection-02 for MPLS LSP and Pseudowires." ::= { enterprises aricent-communication-holding-ltd(29601) iss(2) 25 } -- ***************************************************************************** -- subtrees in the ELPS MIB -- ***************************************************************************** fsElpsSystem OBJECT IDENTIFIER ::= { fselps 1 } fsElpsContext OBJECT IDENTIFIER ::= { fselps 2 } fsElpsPg OBJECT IDENTIFIER ::= { fselps 3 } fsElpsPgNotifications OBJECT IDENTIFIER ::= { fselps 4 } fsElpsScalars OBJECT IDENTIFIER ::= { fselps 5 } -- ***************************************************************************** -- start of ELPS Scalars -- ***************************************************************************** fsElpsStatsOneIsToOneApsPktTxCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the total number of APS/PSC packets attempted to be transmitted out for 1:1 protection type architecture." ::= { fsElpsScalars 1 } fsElpsStatsOneIsToOneApsPktRxCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the total number of APS/PSC packets received for 1:1 protection type architecture." ::= { fsElpsScalars 2 } fsElpsStatsOneIsToOneApsPktDiscardCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the total number of APS/PSC packets discarded for 1:1 protection type architecture." ::= { fsElpsScalars 3 } fsElpsStatsOnePlusOneApsPktTxCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the total number of APS/PSC packets attempted to be transmitted out for 1+1 protection type architecture." ::= { fsElpsScalars 4 } fsElpsStatsOnePlusOneApsPktRxCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object records the total number of APS/PSC packets received for 1+1 protection type architecture." ::= { fsElpsScalars 5 } fsElpsStatsOnePlusOneApsPktDiscardCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the total number of APS/PSC packets discarded for 1+1 protection type architecture." ::= { fsElpsScalars 6 } -- ***************************************************************************** -- Textual conventions -- ***************************************************************************** PgId ::= TEXTUAL-CONVENTION DISPLAY-HINT "d" STATUS current DESCRIPTION "This object specifies a Protection Group. This is an administrator defined value. Administrator can give any value for a protection group within the valid range. If a protection group with the same id is already existing for the current virtual context then it will return failure." SYNTAX Unsigned32 (1..4294967295) PgType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This object specifies a value that represents the type of the protection group. The value can be one of the following: individual(1) - If protection group is to protect a single service. list(2) - If protection group is to protect a list of services. all(3) - If protection group is to protect all the services. " SYNTAX INTEGER { individual(1), list(2), all(3) } PgServiceType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This object specifies a value that represents the type of service to be protected by this protection group. The value can be one of the following: vlan(1) - IEEE802.1Q VLAN mplsLSP(2) - MPLS Label Switched Path (LSP) mplsPW(3) - MPLS Pseudowire reserved(x) - Reserved for future use. [x values can be 4...7] The protection group service type indicates the type of the transporting service that needs to be protected for this protection group. Implementations MUST ensure that PgServiceType objects and any dependent objects (e.g.: PgServiceValue objects) are consistent. An inconsistentValue error MUST be generated if an attempt to change PgServiceType object would, for example, lead to an undefined PgServiceValue value. An inconsistentValue error MUST also be generated if the value in the PgServiceValue object is outside the range of what is supported for the PgServiceType object." SYNTAX INTEGER { vlan(1), mplsLSP(2), mplsPW(3) } PgServiceValue ::= TEXTUAL-CONVENTION DISPLAY-HINT "d" STATUS current DESCRIPTION "This object specifies an integer that uniquely identifies a service. A PgServiceValue value (service identifier) is always interpreted within the context of an PgServiceType value. Every usage of the PgServiceValue textual convention is required to specify the PgServiceType object that provides the context. It is suggested that the PgServiceType object be registered/configured before the object(s) that use the PgServiceValue textual convention, if they appear in the same logical row. The value of an PgServiceValue object must be consistent with the value of the associated PgServiceType object. Attempts to set the PgServiceValue object to a value inconsistent with the associated PgServiceType must fail with an inconsistentValue error. For 'vlan' service type: - the service value indicates the vlan identifier which ranges between (1..4094) For 'mplsPW' service type: - pgService value does not identify any applicable service value. For 'mplsLSP' service type: - pgService value does not identify any applicable service value. " SYNTAX Unsigned32 (1..4294967295) PgServiceValueOrNone ::= TEXTUAL-CONVENTION DISPLAY-HINT "d" STATUS current DESCRIPTION "This object specifies an integer that uniquely identifies a service. A PgServiceValue value is always interpreted within the context of an PgServiceType value. Every usage of the PgServiceValue textual convention is required to specify the PgServiceType object that provides the context. It is suggested that the PgServiceType object be logically registered before the object(s) that use the PgServiceValue textual convention, if they appear in the same logical row. The value of an PgServiceValue object must be consistent with the value of the associated PgServiceType object. Attempts to set the PgServiceValue object to a value inconsistent with the associated PgServiceType must fail with an inconsistentValue error. The special value of zero indicates 'no service' for the entry. For 'vlan' service type: - the service value indicates the vlan identifier which ranges between (1..4094) For 'mplsPW' service type: - pgService value does not identify any applicable service value. For 'mplsLSP' service type: - pgService value does not identify any applicable service value. " SYNTAX Unsigned32 (0 | 1..4294967295) PgMonitorMechanismType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This object specifies a value representing the type of monitoring mechanism used to monitor the services (as defined by the PgServiceType object) of the protection group. The value can be one of the following: cfm(1) Using Connectivity Fault Management via OAM functions and mechanisms for Ethernet based networks (ITU-T Y.1731) for monitoring the working and protection services. mplsOam(2) Using MPLS-OAM functions for MPLS LSP's and Pseudowires in MPLS TP networks for monitoring the working and protection services. none(3) No monitoring mechanism is used. Only the manual trigger is possible. reserved(x) Reserved for other monitoring mechanisms for future use." SYNTAX INTEGER { cfm(1), mplsOam(2), none(3) } PgExtCmd ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This object is used to represent the administrative commands that can be issued to a protection group. The commands 'freeze' and 'clearFreeze' are local (near-end) commands whereas all the other commands are signalled to the far-end through the APS protocol, when present.'manualSwitchToWorking' is applicable only for non-revertive mode of operation" SYNTAX INTEGER { lockOutProtection(1), forceSwitchToProtection(2), manualSwitchToProtection(3), exercise(4), clear(5), freeze(6), clearFreeze(7), manualSwitchToWorking(8) } PgLocalCondition ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This object is used to represent the local conditions that occur for a protection group." SYNTAX INTEGER { signalFailOnWorking(1), recoverSignalFailOnWorking(2), signalFailOnProtection(3), recoverSignalFailOnProtection(4), waitToRestoreExpiry(5) } PgFarEndRequest ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This object is used to represent the far-end requests that are received from the peer node that are applicable to the state machine for the protection group. The 'waitToRestore' request is applicable only for the revertive mode of operation whereas the 'exerciseOnProtection', 'reverseRequestOnProtection', 'manualSwitchToWorking'and the 'doNotRevert' requests are applicable only for the non-revertive mode of operation." SYNTAX INTEGER { lockOutProtection(1), signalFailOnProtection(2), forceSwitchToProtection(3), signalFailOnWorking(4), manualSwitchToProtection(5), waitToRestore(6), exerciseOnWorking(7), exerciseOnProtection(8), reverseRequestOnWorking(9), reverseRequestOnProtection(10), noRequestOnWorking(11), noRequestOnProtection(12), doNotRevert(13), manualSwitchToWorking(14) } PgActiveRequest ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This textual convention is used to represent the currently active request for a protection group. This includes local requests (commands or conditions) and the far end requests that are received from the peer node through APS. At any moment, either a local request or a far end request can be active for a protection group and cause a state transition for the state event machine." SYNTAX INTEGER { localLockOutProtection(0), localForcedSwitchToProtection(1), localSignalFailOnWorking(2), localRecoverSignalFailOnWorking(3), localSignalFailOnProtection(4), localRecoverSignalFailOnProtection(5), localManualSwitchToProtection(6), localManualSwitchToWorking(7), localClear(8), localExercise(9), localWaitToRestoreExpiry(10), farLockOutProtection(11), farSignalFailOnProtection(12), farForceSwitchToProtection(13), farSignalFailOnWorking(14), farManualSwitchToProtection(15), farManualSwitchToWorking(16), farWaitToRestore(17), farExerciseOnWorking(18), farExerciseOnProtection(19), farReverseRequestOnWorking(20), farReverseRequestOnProtection(21), farNoRequestOnWorking(22), farNoRequestOnProtection(23), farDoNotRevert(24) } PgSemState ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This textual convention is used to represent the various states that are available in the ELPS State Event Machines for each protection group. The 'waitToRestore' state is applicable only for the state machine used in the revertive mode of operation whereas the 'doNotRevert', 'exerciseOnProtection', 'manualSwitchToWorking' and the 'reverseRequestOnProtection' states are applicable only for the state machine used in the non-revertive mode of operation." SYNTAX INTEGER { noRequestOnWorking(0), noRequestOnProtection(1), lockOutProtection(2), forceSwitchToProtection(3), signalFailOnWorking(4), signalFailOnProtection(5), manualSwitchToProtection(6), manualSwitchToWorking(7), waitToRestore(8), doNotRevert(9), exerciseOnWorking(10), exerciseOnProtection(11), reverseRequestOnWorking(12), reverseRequestOnProtection(13) } PgStatus ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This textual convention is used to represent the current status of the protection group. If the value is 'protectionDisabled(0)', then this means that the rowstatus of the protection group entry is not in active state. If the value is 'workingPathActive(1)', then this means that the working entity has been chosen/selected to carry the normal traffic by the action of the protection switching operation. This indicates the 'normal state' of the protection group. If the value is 'protectionPathActive(2)', then this means that the protection entity has been chosen/selected to carry the normal traffic by the action of the protection switching operation due to signal failure on working or due to operator commands. The pgSemState would indiate the specific reason for switching the normal traffic on the protection path. The pgSemState 'signalFailOnWorking' in protectionPathActive condition means a 'protecting failure state' (ie) protection switching operation due to signal failure on working. The pgSemState 'forceSwitchToProtection'/'manualSwitchToProtection' in protectionPathActive condition means a 'protecting administrative state' (ie) protection switching operation is based on operator command. If the value is 'waitToRestoreState(3)', then this means that the protection group is waiting for the expiry of the WTR timer to switch back to the working entity. If the value is 'holdOffState(4)', then this means that the protection group is waiting for the expiry of the HoldOff timer to initiate the switch process to the protection/working entity. If the value is 'switchingFailed(5), then this means that the switching from working entity to protection entity or vice-versa has failed due to a failure in programming the hardware (i.e.) the setup of the hardware for the newly chosen/selected active path as determined by the protection switching operation has failed. If the value is 'unavailable(6)', then this means that the protection path is unavailable - either as a result of an operator Lockout command or a signal failure/signal degrade condition detected on the protection path. If the value is 'doNotRevert(7), then this means that the protection domain is recovering from a Protecting state, but the operator has configured the protection domain to not automatically revert to the Normal state upon recovery. The protection domain SHALL remain in this state until the operator issues a command to revert to the Normal state or there is a new trigger to switch to a different state." SYNTAX INTEGER { protectionDisabled(0), workingPathActive(1), protectionPathActive(2), waitToRestoreState(3), holdOffState(4), switchingFailed(5), unavailable(6), doNotRevert(7) } -- ***************************************************************************** -- fsElpsSystem subtree -- ***************************************************************************** fsElpsGlobalTraceOption OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to enable the global trace statements which are not context specific. For example, - Traces present in the Task Initialization. - Traces present during context creation on ELPS - Any other trace statements before identifying the virtual context in ELPS APIs." DEFVAL { false } ::= { fsElpsSystem 1 } fsElpsPSCChannelCode OBJECT-TYPE SYNTAX Unsigned32 ( 9..32 ) MAX-ACCESS read-write STATUS obsolete DESCRIPTION "*******************Objobsoleteobsolete**************** This object specifies the G-ACh channel number to be used for transmitting the Protection State Coordination (PSC) control packet through the generic associated channel (G-ACh) for LSP/pseudowire. This channel code will be carried in the 'Channel Type' field of the G-ACh header which carries the PSC packet. The modified value takes effect for the next PSC transmission / reception flow." DEFVAL { 9 } ::= {fsElpsSystem 2} fsElpsRapidTxTime OBJECT-TYPE SYNTAX Unsigned32( 1000..3300 ) UNITS "microseconds" MAX-ACCESS read-write STATUS current DESCRIPTION "This objects specifies the time interval for rapid transmission of first three APS/PSC messages upon a protection state change in a protection group. Unit of this time duration is microseconds." DEFVAL { 3300 } ::= { fsElpsSystem 3 } -- ***************************************************************************** -- fsElpsContext subtree -- ***************************************************************************** fsElpsContextTable OBJECT-TYPE SYNTAX SEQUENCE OF FsElpsContextEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the List of ELPS Module parameters per Virtual Context." ::= { fsElpsContext 1 } fsElpsContextEntry OBJECT-TYPE SYNTAX FsElpsContextEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the Per virtual context ELPS module parameters. An entry in this table gets created as and when a virtual context is created." INDEX { fsElpsContextId } ::= { fsElpsContextTable 1 } FsElpsContextEntry ::= SEQUENCE { fsElpsContextId Unsigned32, fsElpsContextSystemControl INTEGER, fsElpsContextModuleStatus INTEGER, fsElpsContextTraceInputString DisplayString, fsElpsContextEnableTrap TruthValue, fsElpsContextVlanGroupManager INTEGER } fsElpsContextId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object is used to distinguish between the multiple virtual bridge contexts within a bridge." ::= { fsElpsContextEntry 1 } fsElpsContextSystemControl OBJECT-TYPE SYNTAX INTEGER { start(1), shutdown(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the administrative system control status requested by management for ELPS. The value start(1) indicates that ELPS should be active in the virtual context and on all ports in that virtual context. Memory is reserved in the form of memory pools for the context for which ELPS has been started. The value shutdown(2) indicates that ELPS should be shutdown in the virtual context and on all ports in that virtual context. All used memory will be released back to the memory pools and the memory pools will be deleted. By default this object is set to shutdown(2) for all virtual contexts." DEFVAL { shutdown } ::= { fsElpsContextEntry 2 } fsElpsContextModuleStatus OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "The administrative module status requested by management for ELPS. The value enable(1) indicates that ELPS should be enabled in the virtual context and on all ports in that virtual context. The value disable(2) indicates that ELPS should be disabled in the virtual context and on all ports in that virtual context. In the disabled state, all the protection groups will be operationally non-functional, though configurations can still be done. By default this object is set to disable(2) for all virtual contexts." DEFVAL { disable } ::= { fsElpsContextEntry 3 } fsElpsContextTraceInputString OBJECT-TYPE SYNTAX DisplayString (SIZE(1..255)) MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to store the trace option string input given by the user. Based on the input to this object, trace statements corresponding to the given options are displayed for this virtual context. To enable particular trace the user has to enter the corresponding string(given below) assigned for that. For enabling more than one traces the user has to enter the corresponding strings with SPACE (delimiter) between each string. For example, To enable the below traces: - Start and Shutdown traces - Management traces - Control plane traces and - Packet Dump traces The input should be fed as follows: enable init-shut mgmt ctrl pkt-dump To disable the below traces: - Start and Shutdown traces - Control plane traces The input should be, disable init-shut ctrl The entered input string is parsed to get the trace options. enable - Enables the corresponding option. disable - Disables the corresponding option. init-shut - Start and Shutdown traces mgmt - Management traces ctrl - Control Plane traces for protocol actions pkt-dump - Packet Dump traces resource - Traces related to all resources except buffers all-fail - All Failure traces buffer - Buffer allocation/ release traces critical - ELPS Critical traces" DEFVAL { "critical" } ::= { fsElpsContextEntry 4 } fsElpsContextEnableTrap OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "The column is used to enable or disable the transmission of TRAP notification messages." DEFVAL { true } ::= { fsElpsContextEntry 5 } fsElpsContextVlanGroupManager OBJECT-TYPE SYNTAX INTEGER { mstp(1), elps(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the module that manages the grouping of vlans in this virtual context. mstp(1) - MSTP(Multiple Spanning Tree Protocol) module manages the grouping of vlans. In this case, MSTI(MSTP instance Id) identifies the group (or vlan list). If a MSTI is mapped to a Protection Group, then that Protection group will protect the list of vlan mapped to that MSTI. Administrator should make sure that MSTP module is started and enabled, if this object is set to mstp(1). elps(2) - ELPS module manages the grouping of vlans. If this value is set, In this case ELPS instance identifies the group. The group will be created for the fsElpsPgConfigWorkingInstanceId and fsElpsPgConfigProtectionInstanceId and the VLAN mapping will be done for the objects fsElpsPgConfigWorkingServiceValue and fsElpsPgConfigprotectionServiceValue or fsElpsPgServiceListValue based on the fsElpsPgConfigType when the fsElpsPgConfigRowStatus is Active" DEFVAL { mstp } ::= { fsElpsContextEntry 6 } -- ***************************************************************************** -- fsElpsPg subtree -- ***************************************************************************** -- --------------------------------------------- -- Table : Protection Group Configuration Table -- --------------------------------------------- fsElpsPgConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF FsElpsPgConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table is used to create and configure the protection groups in any virtual context. Each entry in this table corresponds to a protection group on a virtual context. The protection switching for MPLS LSP/PW is supported only in the default context and not in any other contexts." ::= { fsElpsPg 1 } fsElpsPgConfigEntry OBJECT-TYPE SYNTAX FsElpsPgConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the protection group table entry. Each entry in this table contains the required attribute values which define the protection group entry." INDEX { fsElpsContextId, fsElpsPgConfigPgId } ::= { fsElpsPgConfigTable 1 } FsElpsPgConfigEntry ::= SEQUENCE { fsElpsPgConfigPgId PgId, fsElpsPgConfigType PgType, fsElpsPgConfigServiceType PgServiceType, fsElpsPgConfigMonitorMechanism PgMonitorMechanismType, fsElpsPgConfigIngressPort InterfaceIndexOrZero, fsElpsPgConfigWorkingPort InterfaceIndexOrZero, fsElpsPgConfigProtectionPort InterfaceIndexOrZero, fsElpsPgConfigWorkingServiceValue PgServiceValueOrNone, fsElpsPgConfigProtectionServiceValue PgServiceValueOrNone, fsElpsPgConfigOperType INTEGER, fsElpsPgConfigProtType INTEGER, fsElpsPgConfigName DisplayString, fsElpsPgConfigRowStatus RowStatus, fsElpsPgConfigWorkingServicePointer RowPointer, fsElpsPgConfigWorkingReverseServicePointer RowPointer, fsElpsPgConfigProtectionServicePointer RowPointer, fsElpsPgConfigProtectionReverseServicePointer RowPointer, fsElpsPgConfigWorkingInstanceId Unsigned32, fsElpsPgConfigProtectionInstanceId Unsigned32, fsElpsPgPscVersion Unsigned32 } fsElpsPgConfigPgId OBJECT-TYPE SYNTAX PgId MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the unique identifier for the protection group." ::= { fsElpsPgConfigEntry 1 } fsElpsPgConfigType OBJECT-TYPE SYNTAX PgType MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies if the protection group needs to provide protection for an individual service or a list of services. If the value is 'individual(1)', the protection is available only for the single service present in fsElpsPgConfigWorkingServiceValue which is protected by the service present in fsElpsPgConfigProtectionServiceValue. If the value is 'list(2)', the protection is available for a list of services as indicated by the fsElpsServiceListTable table. The protection group entry for which this object is configured as 'list(2)' MUST have at least one active entry for this protection group in the fsElpsServiceListTable before this protection group entry can be made active. Additionally, the 'individual' protection group service values such as the fsElpsPgConfigWorkingServiceValue object and the fsElpsPgConfigProtectionServiceValue object for this row will not be allowed to be configured and will always return a value of '0'. If the value is 'all(3)', the protection is available for all the services that are using the working port. This option is supported for 'vlan' service type. Not supported for 'mplsLSP' and 'mplsPW' service types." DEFVAL { individual } ::= { fsElpsPgConfigEntry 2 } fsElpsPgConfigServiceType OBJECT-TYPE SYNTAX PgServiceType MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the type of transport service for which this protection group will provide protection. The following service types are supported - vlan(1) - mplsLSP(2) - mplsPW(3)" DEFVAL { vlan } ::= { fsElpsPgConfigEntry 3 } fsElpsPgConfigMonitorMechanism OBJECT-TYPE SYNTAX PgMonitorMechanismType MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the type of monitoring mechanism used for detecting faults for this protection group entry. If the value of this object is not 'none' for any fsElpsPgConfigEntry, then the fsElpsPgCfmTable table MUST have an active entry for this fsElpsPgConfigPgId, else the fsElpsPgConfigRowStatus for this entry cannot be made active." DEFVAL { cfm } ::= { fsElpsPgConfigEntry 4 } fsElpsPgConfigIngressPort OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the port through which the traffic ingresses for the working and protection transport services into the protection domain. This port defines the boundary of the protection domain on both the end bridges. This object is optional and can be configured to a value of '0' if the service protection is to be provided when the traffic egresses out of this bridge from either the working or protection ports instead of while ingressing into this bridge." ::= { fsElpsPgConfigEntry 5 } fsElpsPgConfigWorkingPort OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the working port which carries the normal traffic in the absence of any failure. For 'vlan' service type, this object is mandatory and should be configured with a non-zero value. For other service types, this object is optional and can be configured as 0." ::= { fsElpsPgConfigEntry 6 } fsElpsPgConfigProtectionPort OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the protection port which carries the normal traffic upon failure of the working transport entity. For 'vlan' service type, this object is mandatory and should be configured with a non-zero value. For other service types, this object is optional and can be configured as 0." ::= { fsElpsPgConfigEntry 7 } fsElpsPgConfigWorkingServiceValue OBJECT-TYPE SYNTAX PgServiceValueOrNone MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the service identifier of the working service which carries the normal traffic in the absence of any failure. This object is applicable only for 'vlan' type of services. This object is applicable only when the fsElpsPgConfigType object is configured as 'individual' type. When the fsElpsPgConfigType object is configured as 'list', this object will return a value of '0' and any attempt to configure this object to any value will throw an error." ::= { fsElpsPgConfigEntry 8 } fsElpsPgConfigProtectionServiceValue OBJECT-TYPE SYNTAX PgServiceValueOrNone MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the service identifier of the protection service which carries the normal traffic upon failure of the working entity. This object is applicable only for 'vlan' type of services. This object is applicable only when the fsElpsPgConfigType object is configured as 'individual' type. When the fsElpsPgConfigType object is configured as 'list', this object will return a value of '0' and any attempt to configure this object to any value will throw an error." ::= { fsElpsPgConfigEntry 9 } fsElpsPgConfigOperType OBJECT-TYPE SYNTAX INTEGER { revertive(1), nonRevertive(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to indicate the operation type/mode of the protection group entry. If the value is set to 'revertive(1)', then normal traffic will be shifted from the protection entity back to the working entity upon recovery of the working entity from the fault. If the value is set to 'nonRevertive(2)', then the normal traffic will not be shifted from the protection entity back to the working entity even after the recovery of the working entity from the fault." DEFVAL { revertive } ::= { fsElpsPgConfigEntry 10 } fsElpsPgConfigProtType OBJECT-TYPE SYNTAX INTEGER { oneIsToOneBidirectionalWithAps(1), onePlusOneBidirectionalWithAps(2), onePlusOneUnidirectionalWithAps(3), onePlusOneUnidirectionalWithOutAps(4) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to indicate the protection architecture type of the protection group entry. Protection architecture types supported are given below: - 'oneIsToOneBidirectionalWithAps(1)', then the selector bridge will be established at the time of protection switching and its based on global priority logic. APS communication channel is required. - 'onePlusOneBidirectionalWithAps(2)', then the permanent bridge will be established at the source and selector bridge at the sink. Protection switching is based on global priority logic. APS communication channel is required. - 'onePlusOneUnidirectionalWithAps(3)', then the permanent bridge will be established at the source and selector bridge at the sink. Protection switching is based on local priority logic and Far-end requests will not be considered for switching the traffic. APS communication channel is present. - 'onePlusOneUnidirectionalWithoutAps(4)', then protection switching is based on local priority logic only. APS communication channel is not present." DEFVAL { oneIsToOneBidirectionalWithAps } ::= { fsElpsPgConfigEntry 11 } fsElpsPgConfigName OBJECT-TYPE SYNTAX DisplayString (SIZE (0..32)) MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to refer the protection group in addition to the protection group Id. The default value for this object will be the null string. This object can be configured even when the row status of this table entry is active." ::= {fsElpsPgConfigEntry 12 } fsElpsPgConfigRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the status of this row/entry. Setting this object to Active is not allowed in the following scenarios: - If the value of the column fsElpsPgConfigMonitorMechanism is set to 'cfm/mplsOam' and there is no active entry corresponding to this protection group present in the fsElpsPgCfmTable table. - If the value of the column fsElpsPgConfigType is set to 'list' and there is no active entry corresponding to this protection group in the fsElpsPgServiceListTable table or fsElpsPgServiceListPointerTable. - If the value of the column fsElpsPgConfigType is set to 'list' and a valid non-zero value is set in the fsElpsPgConfigWorkingServiceValue and fsElpsPgConfigProtectionServiceValue columns of this table. Setting the rowstatus value 'destroy' to this object will delete the related entries present in fsElpsPgCfmTable, fsElpsPgServiceListTable / fsElpsPgServiceListPointerTable. The writable columns in any row of this table cannot be changed while the row is active." ::= { fsElpsPgConfigEntry 13 } fsElpsPgConfigWorkingServicePointer OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable for 'mplsLSP' and 'mplsPw' service types. When fsElpsPgConfigServiceType is 'mplsLSP' : - This object should be configured with the object identifier of the row in the MPLS tunnel table corresponding to the LSP being protected (working LSP). - In case of co-routed MPLS LSP, this object indicates the co-routed (forward and reverse) path of the LSP. In case of associated MPLS LSP, this object indicates the forward path of the LSP being protected. When fsElpsPgConfigServiceType is 'mplsPw' : - This object should be configured with the object identifier of the row in the MPLS Pseudo wire table corresponding to the PW being protected (working PW). This object is applicable only when the fsElpsPgConfigType object is configured as 'individual' type. When the fsElpsPgConfigType object is configured as 'list', this object will return a value of '0' and any attempt to configure this object to any value will throw an error." ::= { fsElpsPgConfigEntry 14 } fsElpsPgConfigWorkingReverseServicePointer OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable for 'mplsLSP' service type only. When fsElpsPgConfigServiceType is 'mplsLSP' : - Configuring this object is optional. - This object should be configured with the object identifier of the row in the MPLS tunnel table corresponding to the reverse path of the LSP being protected (reverse path of working LSP). - This configuration is required only in case of associated MPLS LSP. - In case of co-routed mplsLSP, this object is not applicable. This object is applicable only when the fsElpsPgConfigType object is configured as 'individual' type. When the fsElpsPgConfigType object is configured as 'list', this object will return a value of '0' and any attempt to configure this object to any value will throw an error." ::= { fsElpsPgConfigEntry 15 } fsElpsPgConfigProtectionServicePointer OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable for 'mplsLSP' and 'mplsPw' service types. When fsElpsPgConfigServiceType is 'mplsLSP' : - This object should be configured with the object identifier of the row in the MPLS tunnel table corresponding to the protection instance of the working LSP (ie. protection LSP). - In case of co-routed MPLS LSP, this object indicates the co-routed (forward and reverse) path of the protection LSP. In case of associated MPLS LSP, this object indicates the forward path of the protection LSP. When fsElpsPgConfigServiceType is 'mplsPw' : - This object should be configured with the object identifier of the row in the MPLS Pseudo wire table corresponding to the protection instance of the working PW (ie. protection PW). This object is applicable only when the fsElpsPgConfigType object is configured as 'individual' type. When the fsElpsPgConfigType object is configured as 'list', this object will return a value of '0' and any attempt to configure this object to any value will throw an error." ::= { fsElpsPgConfigEntry 16 } fsElpsPgConfigProtectionReverseServicePointer OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable for 'mplsLSP' service type only. When fsElpsPgConfigServiceType is 'mplsLSP' : - Configuring this object is optional. - This object should be configured with the object identifier of the row in the MPLS tunnel table, for the reverse path of the protecting LSP, corresponding to the working LSP. - This configuration is required only in case of associated MPLS LSP configured to protect the working LSP. - In case of co-routed mpls LSP, this object is not applicable. This object is applicable only when the fsElpsPgConfigType object is configured as 'individual' type. When the fsElpsPgConfigType object is configured as 'list', this object will return a value of '0' and any attempt to configure this object to any value will throw an error." ::= { fsElpsPgConfigEntry 17 } fsElpsPgConfigWorkingInstanceId OBJECT-TYPE SYNTAX Unsigned32 (0..64) MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the working instance which contains the VLAN to be protected in this protection group. If fsElpsContextVlanGroupManager is 'mstp' then vlan group Id should be from one of the MSTIs created in MSTP. If fsElpsContextVlanGroupManager is 'elps' then group Id will be created by ELPS when fsElpsPgConfigRowStatus is active" DEFVAL { 0 } ::= { fsElpsPgConfigEntry 18 } fsElpsPgConfigProtectionInstanceId OBJECT-TYPE SYNTAX Unsigned32 (0..64) MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the protection instance which contains the protection VLANs in this protection group. If fsElpsContextVlanGroupManager is 'mstp' then vlan group Id should be from one of the MSTIs created in MSTP. If fsElpsContextVlanGroupManager is 'elps' then group Id will be created by ELPS when fsElpsPgConfigRowStatus is active" DEFVAL { 0 } ::= { fsElpsPgConfigEntry 19 } fsElpsPgPscVersion OBJECT-TYPE SYNTAX Unsigned32 ( 0..1 ) MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the PSC header version number to be used for transmitting the Protection State Coordination (PSC) control packet through the generic associated channel (G-ACh) for LSP/pseudowire. Also determines the PSC state machine behavior, If the value is set to 0, PSC protocol behavior will be according to draft-ietf-mpls-tp-linear-protection-06. If the value is set to 1 the PSC protocol behaviour will be according to RFC-6378." DEFVAL { 0 } ::= { fsElpsPgConfigEntry 20 } -- -------------------------------------------- -- Table : Protection Group Command Table -- -------------------------------------------- fsElpsPgCmdTable OBJECT-TYPE SYNTAX SEQUENCE OF FsElpsPgCmdEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the protection group command table. Each entry in this table corresponds to a configured protection group on a virtual context in this bridge. Entry in this table is implicitly created when an entry for protection group is created in the fsElpsPgConfigTable table. This table contains commands and parameters that are configured for a protection group entry which is active and status objects providing the local and far end requests and states." ::= { fsElpsPg 2 } fsElpsPgCmdEntry OBJECT-TYPE SYNTAX FsElpsPgCmdEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the protection group command table entry. Each entry in this table contains objects that operate on the state event machine for the protection group and can be configured when the protection group entry is active. There are 3 types of triggers that influence the operation, and therefore, the currently operational state for each protection group -: (a) External commands that can be issued by administrator on the local (self/near-end) bridge (b) Signalling conditions that occur on the local bridge (c) Requests from the far-end bridge carried received through the APS PDUs The result of whether any of the above triggers are accepted and applied to the state machine for the protection group or not, is indicated by the corresponding 'status' objects in each entry in this table. The last applicable and currently operational trigger (whether local or far end) that was accepted by the state machine is indicated by the 'ActiveRequest' object for this entry and the current state is indicated by the 'SemState' object." INDEX { fsElpsContextId, fsElpsPgConfigPgId } ::= { fsElpsPgCmdTable 1 } FsElpsPgCmdEntry ::= SEQUENCE { fsElpsPgCmdHoTime Unsigned32, fsElpsPgCmdWTR Unsigned32, fsElpsPgCmdExtCmd PgExtCmd, fsElpsPgCmdExtCmdStatus INTEGER, fsElpsPgCmdLocalCondition PgLocalCondition, fsElpsPgCmdLocalConditionStatus INTEGER, fsElpsPgCmdFarEndRequest PgFarEndRequest, fsElpsPgCmdFarEndRequestStatus INTEGER, fsElpsPgCmdActiveRequest PgActiveRequest, fsElpsPgCmdSemState PgSemState, fsElpsPgCmdPgStatus PgStatus, fsElpsPgCmdApsPeriodicTime Unsigned32 } fsElpsPgCmdHoTime OBJECT-TYPE SYNTAX Unsigned32( 0..1000 ) MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to configure the hold-off timer. The purpose is to allow a server layer protection mechanism to have a chance to fix the problem before switching at the client layer, or to allow an upstream protected domain to switch before a downstream domain. The hold-off timer has a period from 0 to 100 seconds, configurable in steps (units) of 100ms. Each configured value in this object represents a multiple of 100ms. Eg: 1 = 100ms, 2 = 200ms and so on." DEFVAL { 0 } ::= { fsElpsPgCmdEntry 1 } fsElpsPgCmdWTR OBJECT-TYPE SYNTAX Unsigned32 ( 1..1000 ) MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to configure the wait-to-restore timer for the protection group. The timer has a period from 1 to 1000 minutes, configurable in steps of 1 minute. This object is applicable only if this protection group is operating in the revertive mode of operation. In the non-revertive mode of operation, any value configured for this object will not be used." DEFVAL { 5 } ::= { fsElpsPgCmdEntry 2 } fsElpsPgCmdExtCmd OBJECT-TYPE SYNTAX PgExtCmd MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used by the operator to request that the protection group state machine perform some administrative operation. The operator requests a command by writing the command value to this column. The command may or may not affect the operation of the state machine based on the current state and the ELPS protocol indicates the result of this command on the state machine by setting the value of the fsElpsPgCmdExtCmdStatus column of this table. If the command is not accepted, then the fsElpsPgCmdActiveRequest indicates the last accepted and currently operating request for this protection group. The configuration of this object is allowed and meaningful only when the the protection group entry for this fsElpsPgConfigPgId is active. The default value for this object will be 'clear' command indicating that no command has been issued. The 'freeze' command is volatile and will not be restored after a configuration save-and-restore operation." DEFVAL { clear } ::= { fsElpsPgCmdEntry 3 } fsElpsPgCmdExtCmdStatus OBJECT-TYPE SYNTAX INTEGER { accepted(1), overruled(2), notApplicable(3), rejected(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the status of the most recent administrative command issued to this protection group through the fsElpsPgCmdExtCmd object." ::= { fsElpsPgCmdEntry 4 } fsElpsPgCmdLocalCondition OBJECT-TYPE SYNTAX PgLocalCondition MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the most recent local condition that had occurred for this protection group." ::= { fsElpsPgCmdEntry 5 } fsElpsPgCmdLocalConditionStatus OBJECT-TYPE SYNTAX INTEGER { accepted(1), overruled(2), notApplicable(3), rejected(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the status of the most recent local condition as indicated by the fsElpsPgCmdLocalCondition that occured for this protection group." ::= { fsElpsPgCmdEntry 6 } fsElpsPgCmdFarEndRequest OBJECT-TYPE SYNTAX PgFarEndRequest MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the most recent far-end request received for this protection group through the reception of APS PDU." ::= { fsElpsPgCmdEntry 7 } fsElpsPgCmdFarEndRequestStatus OBJECT-TYPE SYNTAX INTEGER { accepted(1), overruled(2), notApplicable(3), rejected(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the status of the most recent far-end request as indicated by the fsElpsPgCmdFarEndRequest object received for this protection group." ::= { fsElpsPgCmdEntry 8 } fsElpsPgCmdActiveRequest OBJECT-TYPE SYNTAX PgActiveRequest MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the last local request (command or condition) or far end request (received for this protection group through the reception of APS PDU) that was accepted and applied to this protection group. The value indicated by this object is influenced by either one of the fsElpsPgCmdExtCmd, fsElpsPgCmdLocalCondition or fsElpsPgCmdFarEndRequest objects when these are accepted by the operation of the state machine for this protection group." ::= { fsElpsPgCmdEntry 9 } fsElpsPgCmdSemState OBJECT-TYPE SYNTAX PgSemState MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the current state of the State Event Machine for this protection group." ::= { fsElpsPgCmdEntry 10 } fsElpsPgCmdPgStatus OBJECT-TYPE SYNTAX PgStatus MAX-ACCESS read-only STATUS current DESCRIPTION "The object is to indicate the status of the protection group." ::= { fsElpsPgCmdEntry 11 } fsElpsPgCmdApsPeriodicTime OBJECT-TYPE SYNTAX Unsigned32 ( 1..1000 ) UNITS "seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "This column is used to configure the time interval for the periodic transmission of - Protection Switching PDUs, namely, APS PDU for 'vlan' service - Protection State Coordination Protocol messages, namely, PSC packet for 'mplsLSP' and 'mplsPW' services. Periodic time interval is not valid for the PDU transmission happened due to SEM state change. The time interval has to be configured in seconds." DEFVAL { 5 } ::= { fsElpsPgCmdEntry 12 } -- -------------------------------------------- -- Table : Protection Group CFM Table -- -------------------------------------------- fsElpsPgCfmTable OBJECT-TYPE SYNTAX SEQUENCE OF FsElpsPgCfmEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the configurations related to the monitoring entities for each protection group as denoted by the fsElpsPgConfigPgId object. Currently, fault monitoring using the Y.1731 mechanism and BFD are supported. The creation of an entry in this table does not create the Y.1731 / MPLS-OAM Monitoring entities. These Monitoring entities have to be created explicitly in ECFM or in MPLS-OAM accordingly." ::= { fsElpsPg 3 } fsElpsPgCfmEntry OBJECT-TYPE SYNTAX FsElpsPgCfmEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the entry that indicate the monitoring entities for each protection group." INDEX { fsElpsContextId, fsElpsPgConfigPgId } ::= { fsElpsPgCfmTable 1 } FsElpsPgCfmEntry ::= SEQUENCE { fsElpsPgCfmWorkingMEG Unsigned32, fsElpsPgCfmWorkingME Unsigned32, fsElpsPgCfmWorkingMEP Dot1agCfmMepId, fsElpsPgCfmProtectionMEG Unsigned32, fsElpsPgCfmProtectionME Unsigned32, fsElpsPgCfmProtectionMEP Dot1agCfmMepId, fsElpsPgCfmRowStatus RowStatus, fsElpsPgCfmWorkingReverseMEG Unsigned32, fsElpsPgCfmWorkingReverseME Unsigned32, fsElpsPgCfmWorkingReverseMEP Dot1agCfmMepId, fsElpsPgCfmProtectionReverseMEG Unsigned32, fsElpsPgCfmProtectionReverseME Unsigned32, fsElpsPgCfmProtectionReverseMEP Dot1agCfmMepId } fsElpsPgCfmWorkingMEG OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the Maintenance Entity Group (MEG) that the working entity of the protection group denoted by fsElpsPgConfigPgId corresponds to. " ::= { fsElpsPgCfmEntry 1 } fsElpsPgCfmWorkingME OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the Maintenance Entity (ME) that the working entity of the protection group denoted by fsElpsPgConfigPgId corresponds to. " ::= { fsElpsPgCfmEntry 2 } fsElpsPgCfmWorkingMEP OBJECT-TYPE SYNTAX Dot1agCfmMepId MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the Maintenance Entity Group (MEG) End Point (MEP) that monitors the working entity of the protection group denoted by the fsElpsPgConfigPgId value. " ::= { fsElpsPgCfmEntry 3 } fsElpsPgCfmProtectionMEG OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the Maintenance Entity Group (MEG) that the protection entity of the protection group denoted by fsElpsPgConfigPgId corresponds to. " ::= { fsElpsPgCfmEntry 4 } fsElpsPgCfmProtectionME OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the Maintenance Entity (ME) that the protection entity of the protection group denoted by fsElpsPgConfigPgId corresponds to. " ::= { fsElpsPgCfmEntry 5 } fsElpsPgCfmProtectionMEP OBJECT-TYPE SYNTAX Dot1agCfmMepId MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the Maintenance Entity Group (MEG) End Point (MEP) that monitors the protection entity of the protection group denoted by the fsElpsPgConfigPgId value. " ::= { fsElpsPgCfmEntry 6 } fsElpsPgCfmRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-write STATUS current DESCRIPTION "The status of this row. The writable columns in any row of this table cannot be changed while the row is active. Furthermore, creation of any entry or modification to any entry in this table is allowed only when the corresponding entry present in the fsElpsPgConfigTable is not active." ::= { fsElpsPgCfmEntry 7 } fsElpsPgCfmWorkingReverseMEG OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable only when the fsElpsPgConfigServiceType is 'mplsLSP'. In case of associated mplsLSP, this object refers to the Maintenance Entity Group (MEG) for the reverse working entity. In case of co-routed mplsLSP, this object is not valid" ::= { fsElpsPgCfmEntry 8 } fsElpsPgCfmWorkingReverseME OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable only when the fsElpsPgConfigServiceType is 'mplsLSP'. In case of associated mplsLSP, this object refers to the Maintenance Entity (ME) for the reverse working entity. In case of co-routed mplsLSP, this object is not valid." ::= { fsElpsPgCfmEntry 9 } fsElpsPgCfmWorkingReverseMEP OBJECT-TYPE SYNTAX Dot1agCfmMepId MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable only when the fsElpsPgConfigServiceType is 'mplsLSP'. In case of associated mplsLSP, this object refers to the Maintenance Entity Group(MEG) End Point (MEP) that monitors the reverse working entity of the protection group. In case of co-routed mplsLSP, this object is not valid." ::= { fsElpsPgCfmEntry 10 } fsElpsPgCfmProtectionReverseMEG OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable only when the fsElpsPgConfigServiceType is 'mplsLSP'. In case of associated mplsLSP, this object refers to the Maintenance Entity Group (MEG) for the reverse protection entity of the protection group. In case of co-routed mplsLSP, this object is not valid." ::= { fsElpsPgCfmEntry 11 } fsElpsPgCfmProtectionReverseME OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable only when the fsElpsPgConfigServiceType is 'mplsLSP'. In case of associated mplsLSP, this object refers to the Maintenance Entity (ME) for the reverse protection entity of the protection group. In case of co-routed mplsLSP, this object is not valid." ::= { fsElpsPgCfmEntry 12 } fsElpsPgCfmProtectionReverseMEP OBJECT-TYPE SYNTAX Dot1agCfmMepId MAX-ACCESS read-write STATUS current DESCRIPTION "This object is applicable only when the fsElpsPgConfigServiceType is 'mplsLSP'. In case of associated mplsLSP, this object refers to the Maintenance Entity Group (MEG) End Point (MEP) that monitors the reverse protection entity of the protection group. In case of co-routed mplsLSP, this object is not valid." ::= { fsElpsPgCfmEntry 13 } -- -------------------------------------------- -- Table : Protection Group Service List Table -- -------------------------------------------- fsElpsPgServiceListTable OBJECT-TYPE SYNTAX SEQUENCE OF FsElpsPgServiceListEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the list of services that needs to be protected for the corresponding protection group entry. This table needs to be populated only for those protection groups which have the value of the object fsElpsPgConfigType as 'list'. Protecting a list of services is only possible when the same set of services (and therefore service identifiers) are used for both the working and protection entities. This table is applicable for service type 'vlan' only. " ::= { fsElpsPg 4 } fsElpsPgServiceListEntry OBJECT-TYPE SYNTAX FsElpsPgServiceListEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the protection group service list table entry. Creation of this entry is allowed only if the value of the object fsElpsPgConfigType is configured as 'list'." INDEX { fsElpsContextId, fsElpsPgConfigPgId, fsElpsPgServiceListValue } ::= { fsElpsPgServiceListTable 1 } FsElpsPgServiceListEntry ::= SEQUENCE { fsElpsPgServiceListValue PgServiceValue, fsElpsPgServiceListRowStatus RowStatus } fsElpsPgServiceListValue OBJECT-TYPE SYNTAX PgServiceValue MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the services which needs to be protected for this protection group and which will have its traffic shifted from the port indicated by fsElpsPgConfigWorkingPort object to the port indicated by the fsElpsPgConfigProtectionPort object upon failure of the working entity. Currently only vlan service type is supported for this table. Hence this object can hold any value between the range 1 to 4094." ::= { fsElpsPgServiceListEntry 1 } fsElpsPgServiceListRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the status of this row. The valid options supported for this table are 'createAndGo' and 'destroy'. Entries in this table cannot be created or modified when the corresponding entry in the protection group config table for this fsElpsPgConfigPgId is active." ::= { fsElpsPgServiceListEntry 2 } -- ---------------------------------------------------- -- Table : Protection Group Service List Pointer Table -- ---------------------------------------------------- fsElpsPgServiceListPointerTable OBJECT-TYPE SYNTAX SEQUENCE OF FsElpsPgServiceListPointerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the object identifiers for the list of services that needs to be protected and the corresponding the protection services. This table is applicable only when the protection group type is 'list'. This table is useful when each of the working service has a specific protection service who's service value is different from the working service value. This table also helps to generically configure the working and protection services in terms of specifying their 'object identifiers', instead of directly configuring the value of the services. " ::= { fsElpsPg 7 } fsElpsPgServiceListPointerEntry OBJECT-TYPE SYNTAX FsElpsPgServiceListPointerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the protection group service list pointer table entry. Creation of this entry is allowed only if the value of the object fsElpsPgConfigType is configured as 'list'." INDEX { fsElpsContextId, fsElpsPgConfigPgId, fsElpsPgServiceListId } ::= { fsElpsPgServiceListPointerTable 1 } FsElpsPgServiceListPointerEntry ::= SEQUENCE { fsElpsPgServiceListId Unsigned32, fsElpsPgWorkingServiceListPointer RowPointer, fsElpsPgWorkingReverseServiceListPointer RowPointer, fsElpsPgProtectionServiceListPointer RowPointer, fsElpsPgProtectionReverseServiceListPointer RowPointer, fsElpsPgServiceListPointerRowStatus RowStatus } fsElpsPgServiceListId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the Unique numeric identifier for a working and protection service set in a protection list within the protection group." ::= { fsElpsPgServiceListPointerEntry 1 } fsElpsPgWorkingServiceListPointer OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies a working service which needs to be protected. This object is applicable for 'mplsLSP' and 'mplsPw' service type. When fsElpsPgConfigServiceType is 'mplsLSP' : - This object should be configured with the object identifier of the row in the MPLS tunnel table corresponding to the LSP being protected (working LSP). - In case of co-routed MPLS LSP, this object indicates the co-routed (forward and reverse) path of the LSP. In case of associated MPLS LSP, this object indicates the forward path of the LSP being protected. When fsElpsPgConfigServiceType is 'mplsPw' : - This object should be configured with the object identifier of the row in the MPLS Pseudo wire table corresponding to the PW being protected (working PW)." ::= { fsElpsPgServiceListPointerEntry 2 } fsElpsPgWorkingReverseServiceListPointer OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the reverse path of the working service that is protected. This object is optional and is applicable only when the forward and resverse paths are different for certain type of services. This object is applicable for 'mplsLSP' service type only. When fsElpsPgConfigServiceType is 'mplsLSP' : - Configuring this object is optional. - This object should be configured with the object identifier of the row in the MPLS tunnel table corresponding to the reverse path of the LSP being protected (reverse path of working LSP). - This configuration is required only in case of associated MPLS LSP. - In case of co-routed mplsLSP, this object is not applicable. " ::= { fsElpsPgServiceListPointerEntry 3 } fsElpsPgProtectionServiceListPointer OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies to the protection service corresponding to the working service. This object is applicable for 'mplsLSP' and 'mplsPw' service types. When fsElpsPgConfigServiceType is 'mplsLSP' : - This object should be configured with the object identifier of the row in the MPLS tunnel table corresponding to the protection instance of the working LSP (ie. protection LSP). - In case of co-routed MPLS LSP, this object indicates the co-routed (forward and reverse) path of the protection LSP. In case of associated MPLS LSP, this object indicates the forward path of the protection LSP. When fsElpsPgConfigServiceType is 'mplsPw' : - This object should be configured with the object identifier of the row in the MPLS Pseudo wire table corresponding to the protection instance of the working PW (ie. protection PW)." ::= { fsElpsPgServiceListPointerEntry 4 } fsElpsPgProtectionReverseServiceListPointer OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the reverse path of the protection service. Configuring this object is optional and is applicable only when the forward and resverse paths are different for certain type of services. This object is applicable for 'mplsLSP' service type only. When fsElpsPgConfigServiceType is 'mplsLSP' : - Configuring this object is optional. - This object should be configured with the object identifier of the row in the MPLS tunnel table, for the reverse path of the protecting LSP, corresponding to the working LSP. - This configuration is required only in case of associated MPLS LSP configured to protect the working LSP. - In case of co-routed mpls LSP, this object is not applicable. " ::= { fsElpsPgServiceListPointerEntry 5 } fsElpsPgServiceListPointerRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the status of this row. Entries in this table cannot be created or modified when the corresponding entry in the protection group config table for this fsElpsPgConfigPgId is active. RowStatus can be made active only when a valid working and protection services are configured for this entry." ::= { fsElpsPgServiceListPointerEntry 6 } -- ------------------------------------- -- Table : Protection Group Share Table -- ------------------------------------- fsElpsPgShareTable OBJECT-TYPE SYNTAX SEQUENCE OF FsElpsPgShareEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the set of protection groups that shares the same protection entity (i.e. protection port)." ::= { fsElpsPg 5 } fsElpsPgShareEntry OBJECT-TYPE SYNTAX FsElpsPgShareEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The protection group share table entry. Each entry indicates a protection group that shares the protection port." INDEX { fsElpsContextId, fsElpsPgShareProtectionPort, fsElpsPgConfigPgId } ::= { fsElpsPgShareTable 1 } FsElpsPgShareEntry ::= SEQUENCE { fsElpsPgShareProtectionPort InterfaceIndex, fsElpsPgSharePgStatus PgStatus } fsElpsPgShareProtectionPort OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the protection entity (port) which carries the normal traffic upon failure of the working transport entity." ::= { fsElpsPgShareEntry 1 } fsElpsPgSharePgStatus OBJECT-TYPE SYNTAX PgStatus MAX-ACCESS read-only STATUS current DESCRIPTION "The object is used to indicate the status of the protection group that shares the protection port as indicated by the fsElpsPgConfigProtectionPort object." ::= { fsElpsPgShareEntry 2 } -- ------------------------------------------ -- Table : Protection Group Statistics Table -- ------------------------------------------ fsElpsPgStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF FsElpsPgStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains statistics information for each of the protection groups present in the system. Entries in this table are created implicitly by the creation of entries in the fsElpsPgConfigTable." ::= { fsElpsPg 6 } fsElpsPgStatsEntry OBJECT-TYPE SYNTAX FsElpsPgStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object specifies the protection group statistics table entry. There is one entry in this table for each entry in the fsElpsPgConfigTable table." INDEX { fsElpsContextId, fsElpsPgConfigPgId } ::= { fsElpsPgStatsTable 1 } FsElpsPgStatsEntry ::= SEQUENCE { fsElpsPgStatsAutoProtectionSwitchCount Counter32, fsElpsPgStatsForcedSwitchCount Counter32, fsElpsPgStatsManualSwitchCount Counter32, fsElpsPgStatsClearStatistics TruthValue, fsElpsPgStatsApsPktTxCount Counter32, fsElpsPgStatsApsPktRxCount Counter32, fsElpsPgStatsApsPktDiscardCount Counter32, fsElpsPgLRSFRxTime Unsigned32, fsElpsPgLRSFTxTime Unsigned32, fsElpsPgFRSFRxTime Unsigned32, fsElpsPgStateChgTime Unsigned32 } fsElpsPgStatsAutoProtectionSwitchCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the number of times automatic protection switching has happened for this protection group entry." ::= { fsElpsPgStatsEntry 1 } fsElpsPgStatsForcedSwitchCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the number of times a forced protection switch has happened for this protection group entry." ::= { fsElpsPgStatsEntry 2 } fsElpsPgStatsManualSwitchCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the number of times a manual protection switch has happened for this protection group entry." ::= { fsElpsPgStatsEntry 3 } fsElpsPgStatsClearStatistics OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to reset all the statistics counter objects present in this table. This will be done by setting the value of this column to 'true(1)'. This column will always return 'false(2)' when read." ::= { fsElpsPgStatsEntry 4 } fsElpsPgStatsApsPktTxCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the total number of APS/PSC packets attempted to be transmitted out of this protection group entry. " ::= { fsElpsPgStatsEntry 5 } fsElpsPgStatsApsPktRxCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the total number of APS/PSC packets received by this protection group entry." ::= { fsElpsPgStatsEntry 6 } fsElpsPgStatsApsPktDiscardCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object is used to record the total number of APS/PSC packets discarded in this protection group entry." ::= { fsElpsPgStatsEntry 7 } fsElpsPgLRSFRxTime OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the timestamp when receiving Local Request - signal fail message. This is detected in local node and it is not got from the packet. The time is in milliseconds." ::= { fsElpsPgStatsEntry 8 } fsElpsPgLRSFTxTime OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the timestamp when sending Local Request - signal fail packet to the peer node. The time is in milliseconds." ::= { fsElpsPgStatsEntry 9 } fsElpsPgFRSFRxTime OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the timestamp when receiving Far end Request - signal fail packet from the peer node. The time is in milliseconds." ::= { fsElpsPgStatsEntry 10 } fsElpsPgStateChgTime OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object specifies the timestamp when the protection path becomes active after processing the signal fail packet that is received from the peer. The time is in milliseconds." ::= { fsElpsPgStatsEntry 11 } -- ***************************************************************************** -- fsElpsPgNotifications subtree -- ***************************************************************************** fsElpsTraps OBJECT IDENTIFIER ::= { fsElpsPgNotifications 0 } fsElpsTrapContextName OBJECT-TYPE SYNTAX DisplayString (SIZE (1..32)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "This object specifies the name given to the virtual context." ::= { fsElpsPgNotifications 1 } fsElpsTrapSwitchingMechanism OBJECT-TYPE SYNTAX DisplayString (SIZE (1..32)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "This object provides the text indicating the mechanism by which the switching of traffic occurred from the working to the protection transport entity. 'AutoProtectionSwitch' will be set when the switching happens automatically through the operation of the APS protocol. 'ForcedSwitch' will be set when the switching happens by means of an administrator-issued Force Switch command. 'ManualSwitch' will be set when the switching happens by means of an administrator-issued Manual Switch command." ::= { fsElpsPgNotifications 2 } fsElpsTrapMismatchType OBJECT-TYPE SYNTAX DisplayString (SIZE (1..32)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "This object is used to provide the text indicating the mismatches found in the APS PDUs exchanged between the near-end and the far-end switches. 'BbitMismatch' will be set when there is a mismatch found in the B bit of the received APS PDU. 'ConfigurationMismatch' will be set when an APS PDU is received through the working transport entity instead of the protection transport entity. 'LackOfResponse' will be set when there is a lack of response to a bridge request for a period greater than 50 ms (i.e., no match in sent 'Requested Signal' and received 'Requested Signal' for > 50ms). 'AbitMismatch' will be set when there is a mismatch found in the A bit of the received APS PDU. 'DbitMismatch' will be set when there is a mismatch found in the D bit of the received APS PDU. 'RbitMismatch' will be set when there is a mismatch found in the R bit of the received APS/PSC PDU." ::= { fsElpsPgNotifications 3 } fsElpsTypeOfFailure OBJECT-TYPE SYNTAX DisplayString (SIZE (1..32)) MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "This object is used to provide the text indicating a particular failure condition. 'HwProtectionGroupCreationFailed' will be indicated when the setting up of the protection group in the hardware has failed. 'HwProtectionGroupDeletionFailed' will be indicated when the deletion of the protection group from the hardware has failed. 'HwSwitchToWorkingPathFailed' will be indicated when the setting up of the working path as the active path for a protection group in the hardware has failed. 'HwSwitchToProtectionPathFailed' will be indicated when the setting up of the protection path as the active path for a protection group in the hardware has failed. 'ApsPduTxFailed' will be set when the state machine is unable to transmit an APS PDU upon a protection group state change." ::= { fsElpsPgNotifications 4 } fsElpsProtectionSwitchTrap NOTIFICATION-TYPE OBJECTS { fsElpsTrapContextName, fsElpsPgCmdPgStatus, fsElpsTrapSwitchingMechanism } STATUS current DESCRIPTION "This object specifies the trap that is generated when the switching happens from working transport entity to protection transport entity (and vice-versa). The generated trap will carry the information about the context-name, the protection group status indicating whether the service is carried over the working path or the protection path currently and the mechanism (Auto Protection Switch, Forced Switch, Manual Switch) by which the switching happened." ::= { fsElpsTraps 1 } fsElpsProtectionSwitchFailureTrap NOTIFICATION-TYPE OBJECTS { fsElpsTrapContextName, fsElpsPgCmdPgStatus, fsElpsTypeOfFailure } STATUS current DESCRIPTION "This object specifies the trap that is generated when there is a hardware failure for a protection group or the state machine is unable to transmit APS PDUs upon a protection group state change." ::= { fsElpsTraps 2 } fsElpsProtectionTypeMismatchTrap NOTIFICATION-TYPE OBJECTS { fsElpsTrapContextName, fsElpsPgCmdPgStatus, fsElpsTrapMismatchType } STATUS current DESCRIPTION "This trap is generated whenever a mismatch is found through the APS protocol operation. The mismatches can be a B-bit mismatch, a Configuration mismatch, a Lack Of Response, an A-bit mismatch or a D-bit mismatch." ::= { fsElpsTraps 3 } END