PDN-ENTITY-REDUNDANCY-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-TYPE
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC
    entPhysicalIndex
        FROM ENTITY-MIB
    pdnEntityRedundancy
        FROM PDN-HEADER-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF;

pdnEntRedunMIB MODULE-IDENTITY
    LAST-UPDATED "200301121100Z"
    ORGANIZATION "Paradyne Corporation MIB Working Group"
    CONTACT-INFO
            "         Paradyne Networks Inc.

             Postal:  8545, 126th Ave. N.
                      Largo, FL 33779
                      US
             Editor:  Jesus Pinto
             Email:   mibwg_team@eng.paradyne.com"

    DESCRIPTION
            "This management information module supports the
             objects to be used for redundancy of entities."

    REVISION "200307251300Z"
    DESCRIPTION "J. Pinto
    		- Added pdnRedunGeneralNotificationEnable.
		- Modified DESCRIPTION for pdnRedunNotificationEnable.
		"

    REVISION "200305221000Z"
    DESCRIPTION "J. Pinto
    		- Fixed spelling name of this mib in line#1
		"

    REVISION "200305041700Z"
    DESCRIPTION "J. Pinto
    		- Removed the word non-critical from the PdnRedunStates.
		- Added pdnYCableSelection scalar object.
		- Added pdnRedunGeneralStatusAlarm scalar object.
	 	- Modified PdnRedunAlarmStatus TEXTUAL-CONVENTION.
		- Added traps for new alarm conditions.
		"

    REVISION "200303031500Z"
    DESCRIPTION "J. Pinto
    		- Modified PdnRedunCmd Textual Convention to add
      		a new forceswitch command."

    ::= { pdnEntityRedundancy 1 }

PdnRedunStates ::= TEXTUAL-CONVENTION
    STATUS 	current
    DESCRIPTION 
        "This textual Convention describes the valid states
         relevant to the redundancy feature that an entity
         module can be.

	 The possibles states are:

	 activeState
         -----------
	 the module is currently performing its main functions
	 in the system, including communicating with other
         modules, monitoring the operation of itself and 
         other standby modules.

	 activeAlarmState
         ----------------
	 the same as an activeState except an Alarm condition 
	 has been detected on the module.

	 standbyState
         ------------
	 the module is primarily in a dormant state until an 
         event is triggered that requires its activation. While
         in this state, the module only performs background tests
	 to verify that its hardware is operating properly and 
         monitor the active module for proper operation.


	 standbyAlarmState
         ----------------
	 the same as an standbyState except a Alarm condition 
	 has been detected on the module."

    SYNTAX	INTEGER {
	           activeState(1),
		   activeAlarmState(2),
		   standbyState(3),
	           standbyAlarmState(4)
		}
	        

PdnRedunCmd ::= TEXTUAL-CONVENTION
    STATUS	current
    DESCRIPTION
	"This list of commands allows an user to perform
         actions on the redundancy entities.

	 The commands are:

	 noCmd
         -----
	 This value should be returned by a read request when no
         previous command has been issue. This value may not be 
	 used in a write operation. A wrongValue error shall be 
	 returned in this case.

	 switch
         ------

	 This is the *Normal* switch.

	 shall be directed to an entity in the Active, 	
         Active/Alarm, Standby or Standby/Alarm state. Will cause an
	 entity and its redundant mate to switch roles unless the 
	 Standby entity is in a failed state or redundancy is disabled.
	 A switch  shall result in the Active or Active/Alarm entity 
	 going into a Standby or Standby/Alarm state and the Standby 
	 or Standby/Alarm entity going into the Active or Active/Alarm 
	 state.

	 forceswitch 
         -----------

	 This is the *Forced* switch.

         shall be directed to an entity in the Active, 
         Active/Alarm, Standby or Standby/Alarm state. Will cause an 
	 entity and its redundant mate to switch roles regardless of 
	 the state of the entities or if redundancy is enabled. A switch
	 shall result in the Active or Active/Alarm entity going into a 
	 Standby or Standby/Alarm state and the Standby or Standby/Alarm
	 entity going into the Active or Active/Alarm state." 

    SYNTAX	INTEGER {
		   noCmd(1),
		   switch(2),
	           forcedswitch(3) 
		}
		

PdnRedunAlarmStatus ::= TEXTUAL-CONVENTION
    STATUS	current
    DESCRIPTION
	"This textual convention lists the possibles alarm status.

	 The status are:

	     noAlarm
	     ---------------------------
	     This is the normal status when there is 
	     no alarm condition.

	     linkDefect
	     ----------------------------
	     This alarm is detected when there is an
	     abnormal condition in the link (e.g., 
	     LOS, LOF, etc.) of this redundant unit.

	     hwFailure
	     ----------------------------
	     This alarm is detected when there is a
	     hardware failure on this redundant unit.

	     hwMissing
	     ----------------------------
	     This alarm is detected when there is
	     an expected piece of hw that is missing
	     on this redundant unit.

	     hwIncompatible
             ----------------------------
	     This alarm is detected when the modules in a
	     redundancy configuration present hardware 
	     incompatibilities.


	     fwIncompatible
             ----------------------------
	     This alarm is detected when the modules in a 
	     redundancy configuration present firmware 
	     incompatibilities.

	     cfgIncompatible
             -----------------------------
	     This alarm is detected when the modules in a 
	     redundancy configuration present configuration
	     incompatibilities."

    SYNTAX      BITS {
		noAlarm(0),
		linkDefect(1),
		hwFailure(2),
		hwMissing(3),
		hwIncompatible(4), 
		fwIncompatible(5),
		cfgIncompatible(6)
		}

PdnRedunGeneralAlarmStatus ::= TEXTUAL-CONVENTION
    STATUS	current
    DESCRIPTION
	"This textual convention lists the possibles alarm status
	 that are general to the redundancy feature; which are not
         associated to a particular redundant module.

	 The status are:

	     noAlarm
             ---------------------------
	     This is the Normal status with no General alarm condition.

	     noActiveModule
	     ---------------------------
	     This alarm is detected when no module is 
	     in the Active State.

	     standbyAlarmOrReset
	     ----------------------------
	     This alarm is detected when on of the modules
	     configured for redundancy is either in the 
	     Standby-Alarm or Reset Test state.
         "

    SYNTAX      BITS {
		noAlarm(0),
		noActiveModule(1),
		standbyAlarmOrReset(2)
		}


pdnEntityRedundancyMIBObjects OBJECT IDENTIFIER ::= 
	{ pdnEntRedunMIB 1 }

pdnEntityRedundancyNotifications OBJECT IDENTIFIER ::= 
	{ pdnEntRedunMIB 2 }

pdnEntityRedundancyConformance OBJECT IDENTIFIER ::= 
	{ pdnEntRedunMIB 3 }


pdnEntityRedundancySelection OBJECT-TYPE
    SYNTAX      INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object is used to enable or disable
	     the redundancy feature on this device."
    ::= { pdnEntityRedundancyMIBObjects 1 }


pdnYCableSelection OBJECT-TYPE
    SYNTAX      INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object is used to configure the
	     Y-cable presence used for tx and rx
	     of data between the redundant units.

	     When the selection is enabled (1), it
	     indicates that the tx and rx signals
	     of each redundant unit are sharing
	     a single common pair to tx and rx 
	     data to the network.

	     When the selection is disable (2), it
	     indicates that the tx and rx signals
	     of each redundant unit has a separate
	     (independant) pair to tx and rx data 
	     to the network.
	    "
    ::= { pdnEntityRedundancyMIBObjects 2 }

pdnRedunGeneralAlarmStatus OBJECT-TYPE
    SYNTAX      PdnRedunGeneralAlarmStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object provides status of any General 
	     Alarm detected by the redundancy feature.
	    "
    ::= { pdnEntityRedundancyMIBObjects 3 }

pdnRedunGeneralNotificationEnable OBJECT-TYPE
    SYNTAX      PdnRedunGeneralAlarmStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object provides the ability to enable and
	     disable the following general notifications:

		o pdnRedunEventNoActiveModule
		o pdnRedunEventStandbyAlarmOrReset

	    "
    ::= { pdnEntityRedundancyMIBObjects 6 }

--
-- Command Table
--

pdnRedunCmdTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF PdnRedunCmdEntry
    MAX-ACCESS  not-accessible
    STATUS	current
    DESCRIPTION 
	    "This table contains one row per entity
             module being used for redundancy."
    ::= { pdnEntityRedundancyMIBObjects 4 }

pdnRedunCmdEntry OBJECT-TYPE
    SYNTAX      PdnRedunCmdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Commands that can be performed on a particular
             entity module used for redundancy."
    INDEX   { entPhysicalIndex }
    ::= { pdnRedunCmdTable 1 }

PdnRedunCmdEntry ::=
    SEQUENCE {
	pdnRedunCommand	PdnRedunCmd
    }

pdnRedunCommand  OBJECT-TYPE
    SYNTAX      PdnRedunCmd
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object allows users to command an entity module,
             configured for redundancy to perform an action such as
             switch (2).

	     Reading this object should return the last command
             issued on this interface or noCmd (1) if no command
             has been issued since last reset."
    ::= { pdnRedunCmdEntry 1 }


--
-- Alarm/Status table
--

pdnRedunStatusTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF PdnRedunStatusEntry
    MAX-ACCESS  not-accessible
    STATUS	current
    DESCRIPTION 
	    "This table contains configuration and status
	     information related to events in entity modules
  	     used for redundancy."
    ::= { pdnEntityRedundancyMIBObjects 5 }

pdnRedunStatusEntry OBJECT-TYPE
    SYNTAX      PdnRedunStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Configuration and Status information for a 
	     particular entity module used for redundancy."
    INDEX   { entPhysicalIndex }
    ::= { pdnRedunStatusTable 1 }

PdnRedunStatusEntry ::=
    SEQUENCE {
	pdnRedunEntityState		PdnRedunStates,
	pdnRedunAlarmStatus		PdnRedunAlarmStatus,
	pdnRedunNotificationEnable 	PdnRedunAlarmStatus
    }

pdnRedunEntityState  OBJECT-TYPE
    SYNTAX      PdnRedunStates
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object is used to display the current state
	     on an entity that is used for redundancy."
    ::= { pdnRedunStatusEntry 1 }

pdnRedunAlarmStatus  OBJECT-TYPE
    SYNTAX      PdnRedunAlarmStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This object provides status of any Alarm
	     detected in a redundant entity."

    ::= { pdnRedunStatusEntry 2 }

pdnRedunNotificationEnable  OBJECT-TYPE
    SYNTAX      PdnRedunAlarmStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "This object provides the ability to enable and
	     disable the following notifications:

		o pdnRedunEventHwIncompatible
		o pdnRedunEventFwIncompatible
		o pdnRedunEventCfgIncompatible
		o pdnRedunEventLinkDefect
		o pdnRedunEventHwFailure
		o pdnRedunEventHwMissingHwFailure
	    "
    ::= { pdnRedunStatusEntry 3 }

--
-- Redundancy Notifications
--

pdnRedunNotificationsPrefix OBJECT IDENTIFIER
		::= { pdnEntityRedundancyNotifications 0 }

pdnRedunEventNoActiveModule NOTIFICATION-TYPE
     OBJECTS { pdnRedunGeneralAlarmStatus }
     STATUS  current
     DESCRIPTION
	     "This notification will be issued when no module
	     is in the Active State."
     ::= { pdnRedunNotificationsPrefix 1 }

pdnRedunEventHwIncompatible NOTIFICATION-TYPE
     OBJECTS { pdnRedunAlarmStatus }
     STATUS  current
     DESCRIPTION
	     "This notification will be issued when the modules
	     in a redundancy configuration present hardware 
	     incompatibilities."
     ::= { pdnRedunNotificationsPrefix 2 }

pdnRedunEventStandbyAlarmOrReset NOTIFICATION-TYPE
     OBJECTS { pdnRedunGeneralAlarmStatus }
     STATUS  current
     DESCRIPTION
	     "This notification will be issued when one of the
	     modules configured for redundancy is either in the
	     Standby/Alarm or Reset Test state."
     ::= { pdnRedunNotificationsPrefix 3 }

pdnRedunEventFwIncompatible NOTIFICATION-TYPE
     OBJECTS { pdnRedunAlarmStatus }
     STATUS  current
     DESCRIPTION
	     "This notification will be issued when the modules
	     in a redundancy configuration present firmware
	     incompatibilities."
     ::= { pdnRedunNotificationsPrefix 4 }

pdnRedunEventCfgIncompatible NOTIFICATION-TYPE
     OBJECTS { pdnRedunAlarmStatus }
     STATUS  current
     DESCRIPTION
	     "This notification will be issued when the modules 
	     in a redundancy configuration present configuration
	     incompatibilities."
     ::= { pdnRedunNotificationsPrefix 5 }

pdnRedunEventLinkDefect NOTIFICATION-TYPE
     OBJECTS { pdnRedunAlarmStatus }
     STATUS  current
     DESCRIPTION
	     "This notification will be issued when a module
	     in a redundancy configuration has a link condition."
     ::= { pdnRedunNotificationsPrefix 6 }

pdnRedunEventHwFailure NOTIFICATION-TYPE
     OBJECTS { pdnRedunAlarmStatus }
     STATUS  current
     DESCRIPTION
	     "This notification will be issued when a module
	     in a redundancy configuration has a hardware
	     failure condition."
     ::= { pdnRedunNotificationsPrefix 7 }

pdnRedunEventHwMissingHwFailure NOTIFICATION-TYPE
     OBJECTS { pdnRedunAlarmStatus }
     STATUS  current
     DESCRIPTION
	     "This notification will be issued when a module
	     in a redundancy configuration is expecting a
	     piece of hw to be used for redundancy which can
	     not be found or is not operational.
	     "
     ::= { pdnRedunNotificationsPrefix 8 }

--
-- Conformance Information
--

pdnEntityRedundancyCompliances OBJECT IDENTIFIER
     ::= { pdnEntityRedundancyConformance 1 }

pdnEntityRedundancyGroups OBJECT IDENTIFIER
     ::= { pdnEntityRedundancyConformance 2 }

pdnEntityRedundancyCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
             "The compliance statement for SNMP entities which
	      manage the configuration parameters on entities
	      used for redundancy."
     MODULE
     MANDATORY-GROUPS {	pdnRedundancyGeneralGroup }

     OBJECT pdnEntityRedundancySelection
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

     OBJECT pdnRedunCommand
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

     OBJECT pdnRedunNotificationEnable
     MIN-ACCESS read-only
     DESCRIPTION
	     "Write access is not required."

-- Optional groups

     GROUP pdnEntityRedundancyOptGroup
     DESCRIPTION
	     "Implementation of this group is optional for the
	      redundancy management implementation."

     GROUP pdnEntityRedundancyEventGroup
     DESCRIPTION
	     "Implementation of this group is optional for the
	      notification implementation."

     ::= { pdnEntityRedundancyCompliances 1 }

-- units of conformance

pdnRedundancyGeneralGroup	OBJECT-GROUP
     OBJECTS
     {
	pdnEntityRedundancySelection,
	pdnYCableSelection,
	pdnRedunGeneralAlarmStatus,
	pdnRedunGeneralNotificationEnable
     }
     STATUS current
     DESCRIPTION
             "A collection of general configuration objects
              for the entity redundancy implementation."
     ::= { pdnEntityRedundancyGroups 1 }

pdnEntityRedundancyOptGroup	OBJECT-GROUP
     OBJECTS
     {
	pdnRedunCommand,
	pdnRedunNotificationEnable,
	pdnRedunEntityState,
	pdnRedunAlarmStatus
     }
     STATUS current
     DESCRIPTION
             " A collection of configuration objects 
	      applicable to redundancy implementations."
     ::= { pdnEntityRedundancyGroups 2 }

pdnEntityRedundancyEventGroup	NOTIFICATION-GROUP
     NOTIFICATIONS
     {
	pdnRedunEventNoActiveModule,
	pdnRedunEventHwIncompatible,
	pdnRedunEventStandbyAlarmOrReset,
	pdnRedunEventFwIncompatible,
	pdnRedunEventCfgIncompatible,
	pdnRedunEventLinkDefect,
	pdnRedunEventHwFailure,
	pdnRedunEventHwMissingHwFailure

     }
     STATUS current
     DESCRIPTION
             "A collection of redundancy notifications."
     ::= { pdnEntityRedundancyGroups 3 }

END