LUM-OCM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    DisplayString, DateAndTime
        FROM SNMPv2-TC
    lumModules, lumOcmMIB
        FROM LUM-REG
    FaultStatus, MgmtNameString, SubrackNumber, SlotNumber, PortNumber,
    LambdaFrequency, BoardOrInterfaceOperStatus, BoardOrInterfaceAdminStatus,
    CommandString, ObjectProperty
        FROM LUM-TC;

lumOcmMIBModule MODULE-IDENTITY
    LAST-UPDATED 
        "200801160000Z" --  January 16th 2008
    ORGANIZATION 
        "Transmode Systems AB"
    CONTACT-INFO
        "support@transmode.se"
    DESCRIPTION
        "The optical control interface MIB.

        - General

        - Monitor interfaces

	Note that, every time a get operation is performed and both ports are set 
	to admin status up, the switch will switch to update both ports. (unless 
	commissioning mode) The guaranteed durability of switching is 10 milion times.
	That means, if you switch (perform a get operation) more than every 50 second, 
	product lifetime of 15 years can not be guaranteed. 

        // $Id: LUM-OCM-MIB.txt 3192 2008-01-16 17:09:55Z madelen $
        //alias=ocm"
    REVISION        
        "200801160000Z" -- January 16th 2008
    DESCRIPTION
        "First version." 

    ::= { lumModules 33 }


-- ----------------------------------------------------
-- Conformance area, containing groups and complicance
-- specifications.
-- ----------------------------------------------------

lumOcmConfs OBJECT IDENTIFIER ::= { lumOcmMIB 1 }
lumOcmGroups OBJECT IDENTIFIER ::= { lumOcmConfs 1 }
lumOcmCompl OBJECT IDENTIFIER ::= { lumOcmConfs 2 }
lumOcmMinimalGroups OBJECT IDENTIFIER ::= { lumOcmConfs 3 }
lumOcmMinimalCompl OBJECT IDENTIFIER ::= { lumOcmConfs 4 }


-- ----------------------------------------------------
-- Root for objects in the ocm MIB
-- ----------------------------------------------------

lumOcmMIBObjects OBJECT IDENTIFIER ::= { lumOcmMIB 2 }


-- ----------------------------------------------------
-- This MIB contains the following groups:
-- ----------------------------------------------------

ocmGeneral OBJECT IDENTIFIER ::= { lumOcmMIBObjects 1 } -- //alias=general
ocmIfList OBJECT IDENTIFIER ::= { lumOcmMIBObjects 2 }
ocmChannelList OBJECT IDENTIFIER ::= { lumOcmMIBObjects 3 }
lumentisOcmNotifications  OBJECT IDENTIFIER ::= { lumOcmMIBObjects 4 }

-- ----------------------------------------------------
-- Textual Conventions
-- ----------------------------------------------------

-- ----------------------------------------------------
-- General group
-- ----------------------------------------------------

ocmGeneralLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the configuration of the MIB 
        was last changed. 

        //alias=configLastChange"
    ::= { ocmGeneral 1 }

ocmGeneralStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state of the MIB was last 
        changed. 

        //alias=stateLastChange"
    ::= { ocmGeneral 2 }

ocmGeneralOcmIfTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of table

        //alias=ocmIfTableSize
        //advanced=yes
        //tableSize='ocmIf'"
    ::= { ocmGeneral 3 }

ocmGeneralOcmChannelTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of table

        //alias=ocmChannelTableSize
        //advanced=yes
        //tableSize='ocmChannel'"
    ::= { ocmGeneral 4 }

-- ----------------------------------------------------
-- Optical control interfaces
-- ----------------------------------------------------

ocmIfTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF OcmIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The interface list."
    ::= { ocmIfList 1 }

ocmIfEntry OBJECT-TYPE
    SYNTAX      OcmIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the interface list.

        //alias=if"    
    INDEX { ocmIfIndex }
    ::= { ocmIfTable 1 }

OcmIfEntry ::=
    SEQUENCE {
        ocmIfIndex                       Unsigned32,
        ocmIfName                        MgmtNameString,
        ocmIfDescr                       DisplayString,
        ocmIfSubrack                     SubrackNumber,
        ocmIfSlot                        SlotNumber,
        ocmIfRxPort                      PortNumber,
        ocmIfInvPhysIndexOrZero          Unsigned32,
        ocmIfAdminStatus                 BoardOrInterfaceAdminStatus, 
        ocmIfOperStatus                  BoardOrInterfaceOperStatus,
	ocmIfPowerThreshold              Integer32,
	ocmIfPowerOffset		 Integer32,
	ocmIfMaxPowerLevel		 Integer32,
	ocmIfMinPowerLevel		 Integer32,
	ocmIfDeltaPower			 Integer32,
	ocmIfConnectedBoardType 	 INTEGER,
	ocmIfUpdateLastChangeTime        DateAndTime,
	ocmIfConnectedSubrack		 SubrackNumber,
	ocmIfConnectedSlot		 SlotNumber,
	ocmIfConnectedPort               PortNumber,
	ocmIfActivePort			 PortNumber,
	ocmIfControlMode		 INTEGER,
	ocmIfReferenceTime	 	 DisplayString,
	ocmIfSwitchFailure		 FaultStatus,
	ocmIfDataSourceNotDefined        FaultStatus,
	ocmIfCommissioningMode           FaultStatus,
	ocmIfModuleFailure               FaultStatus,
	ocmIfConfigurationCommand        CommandString,
	ocmIfChangeConnectedPort         CommandString,
	ocmIfSaveReference               CommandString,
	ocmIfChangeConnectedBoardType    CommandString,
	ocmIfChangePowerThreshold        CommandString,
	ocmIfChangePowerOffset           CommandString }

ocmIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry.

        //alias=index
        //longAlias='Index'
        //advanced=yes"
    ::= { ocmIfEntry 1 }

ocmIfName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the interface, for 
        example 'ocm:1:2:1', where the first number 
        indicates sub-rack, the second slot number and 
        the third is the port number.
        Examples:

        ocm:s:s:p - Optical channel module interface

        //alias=name
        //longAlias='Name'
        //table=yes" 
    ::= { ocmIfEntry 2 }

ocmIfDescr OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "User configurable label.

        //alias=descr
        //longAlias='Description'
        //persistent=yes" 
    DEFVAL { "" }
    ::= { ocmIfEntry 3 }

ocmIfSubrack OBJECT-TYPE
    SYNTAX      SubrackNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the subrack where the interface 
        is located.

        //persistent=yes
        //alias=subrack
        //longAlias='Subrack number'
        //advanced=yes"
    ::= { ocmIfEntry 4 }

ocmIfSlot OBJECT-TYPE
    SYNTAX      SlotNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the slot where the interface is 
        located.

        //persistent=yes
        //alias=slot
        //longAlias='Slot number'
        //advanced=yes"
    ::= { ocmIfEntry 5 }

ocmIfRxPort OBJECT-TYPE
    SYNTAX      PortNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the port where the RX-side of 
        the interface is located.

        //persistent=yes
        //alias=rxPort
        //longAlias='Rx port number'
        //advanced=yes"
    ::= { ocmIfEntry 6 }

ocmIfInvPhysIndexOrZero OBJECT-TYPE
    SYNTAX      Unsigned32 (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The row in the invPhysTable for this interface.
        Set to 0 if not known.

        //hidden=yes
        //longAlias='Physical index'
        //alias=invPhysIndex"
    ::= { ocmIfEntry 7 }

ocmIfAdminStatus OBJECT-TYPE
    SYNTAX      BoardOrInterfaceAdminStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The administrative state for the interface.

        down - The interface should be inactive.
        
        service - The interface is activated but alarms 
        are suppressed. Intended for use during service 
        or re-configuration. When service is concluded 
        adminStatus should be set to 'up' again.

        up - The interface should be activated when 
        it becomes available. Alarms are not suppressed.

        //alias=adminStatus
        //longAlias='Administrative status'
        //persistent=yes
        //insert=7.1
        //table=yes"
    DEFVAL { up }
    ::= { ocmIfEntry 8 }

ocmIfOperStatus OBJECT-TYPE
    SYNTAX      BoardOrInterfaceOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The operational state for the interface.

        notPresent - The physical resources are not 
        available.

        down - The interface is de-activated or the are
        faults preventing it from going to the 'up'-state.
        
        up - The interface is operational.

        //alias=operStatus
        //longAlias='Operational status'
        //insert=7.2
        //table=yes"
    ::= { ocmIfEntry 9 }

ocmIfPowerThreshold OBJECT-TYPE
    SYNTAX      Integer32 (-50..100)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The threshold for power levels. If the measured
	power level is below the threshold, it is regarded
	as no signal.

	//advanced=yes
	//persistent=yes
	//unit=' dBm'
	//longAlias='Power level threshold'
	//alias=powerThreshold"
    DEFVAL { -24 }
    ::= { ocmIfEntry 12 }

ocmIfUpdateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the last measurment was done.

        //alias=timeStamp
        //longAlias='Time stamp'
        //advanced=yes
        //table=no"
    ::= { ocmIfEntry 13 }

ocmIfConnectedSubrack OBJECT-TYPE
    SYNTAX      SubrackNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the subrack where the connected
	interface is located. (0 is not valid)

        //persistent=yes
        //alias=connectedSubrack
        //longAlias='Connected subrack number'
	//table=yes"
    DEFVAL { 0 }
    ::= { ocmIfEntry 14 }

ocmIfConnectedSlot OBJECT-TYPE
    SYNTAX      SlotNumber 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the slot where the connected 
	interface is located. (not possible to set 0, 1, 
	19-22, oa/roadm can not be placed in those slots)

        //persistent=yes
        //alias=connectedSlot
        //longAlias='Connected slot number'
        //table=yes"
    DEFVAL { 0 }
    ::= { ocmIfEntry 15 }

ocmIfConnectedPort OBJECT-TYPE
    SYNTAX      PortNumber 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the connected port. 
	(the tx port number). 1 or 3 for OA,
	9 for 1x4ROADM/100G, 1 for OA26C and 
	81 for MDU40.

        //persistent=yes
        //alias=connectedPort
        //longAlias='Connected port number'
        //table=yes"
    DEFVAL { 0 }
    ::= { ocmIfEntry 16 }

ocmIfActivePort OBJECT-TYPE
    SYNTAX      PortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of the active port.
	Only valid when commissioning mode. 

        //alias=activePort
        //longAlias='Active port number'
        //table=yes"
    DEFVAL { 1 }
    ::= { ocmIfEntry 17 }

ocmIfControlMode OBJECT-TYPE
    SYNTAX      INTEGER {
     		   normal (1),
		   commissioning (2) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "What mode the ocm is in. 

	normal - the switch toggle every hour 
	and measure both ports.

	commissioning - the switch is set to one active
	port and measurment is made continously on this port. 
	After 15 minutes it will change back to normal mode. 
	Note that it is not possible to get updated
	values on port that is not chosen as active during
	commissioning mode. 

        //persistent=no
        //alias=controlMode
        //longAlias='Control mode'
        //table=yes"
    DEFVAL { normal }
    ::= { ocmIfEntry 18 }

ocmIfReferenceTime OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Time where reference values were saved.

        //persistent=yes
        //longAlias='Reference time'
        //alias=referenceTime"
    ::= { ocmIfEntry 21 }

ocmIfSwitchFailure OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Switch failure.

	A: The switch is stuck and it is not possible
	to change port. It is not sure if it the values
	comes from the expected port.

	D: The switch works as expected.

        //alias=SwitchFailure
        //longAlias='Switch failure'
	//alarmText='Switch failure'
	//alarmType=equipment
	//alarmCause=equipmentMalfunction
	//alarmSeverity=minor"
    ::= { ocmIfEntry 22 }

ocmIfDataSourceNotDefined OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Data source not defined, 

	A: No connected slot, connected subrack 
	nor connected port is defined.

	D: Connected slot, connected subrack and
	connected port is ok.

	//alias=DataSourceNotDefined
	//longAlias='Data source not defined'
	//alarmText='Data source not defined'
	//alarmType=processingError
	//alarmCause=configurationOrCustomizationError
	//alarmSeverity=warning"
    ::= { ocmIfEntry 23 }

ocmIfCommissioningMode OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Data source not defined, 

	A: Commissioning mode is used

	D: Normal mode

	//alias=Commisioningmode
	//longAlias='Commissioning mode in use'
	//alarmText='Commissioning mode in use'
	//alarmType=processingError
	//alarmCause=configurationOrCustomizationError
	//alarmSeverity=warning"
    ::= { ocmIfEntry 24 }

ocmIfModuleFailure OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The module HW has detected a failure.

        A: The module has failed

        D: The module is OK again

        //alias=moduleFailure
        //longAlias='Module failure'
        //alarmText='Module failure'
        //alarmType=equipment
        //alarmCause=equipmentMalfunction
        //alarmSeverity=critical"
    ::= { ocmIfEntry 25 }

ocmIfConfigurationCommand OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Select which control mode to use.

	normal - the switch toggle every hour 
	and measure both ports.

	commissioning - the switch is set to one
	port while adjusting surrounding boards.


        //alias=configure
        //longAlias='Change control mode'
	//insert=999
        //hidden=no"
    ::= { ocmIfEntry 26 }

ocmIfChangeConnectedPort OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Select which monitor port that is connected
	to this ocm port. 

        //alias=ChangeConnectedPort
        //longAlias='Change connected monitor port'
	//insert=999
        //hidden=no"
    ::= { ocmIfEntry 27 }

ocmIfSaveReference OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Save current measurment as reference values

        //alias=SaveReference
        //longAlias='Save this measurments as reference'
	//insert=999
        //hidden=no"
    ::= { ocmIfEntry 28 }

ocmIfPowerOffset OBJECT-TYPE
    SYNTAX      Integer32 (0..350)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "An offset value added to all power levels to get
	an accurate presentation of channel powers at the line port.

	Default value depends on ConnectedBoardType.
	oa - 20.0
	roadm - 17.0
	oa26c - 20.0
	mdu40 - 20.0

	Note however that the reference power level values
        are not affected by a change of this offset. A new
        reference calculation should be made after a change.

	//persistent=yes
	//alias=powerOffset
	//longAlias='Power offset'
	//unit=' dB'
	//decimals=1
	//insert=12"
    ::= { ocmIfEntry 29 }

ocmIfConnectedBoardType OBJECT-TYPE
    SYNTAX      INTEGER {
     		   oa (1),
		   roadm (2),
		   oa26c (3),
		   mdu40 (4) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "What board type that is connected to the ocm.
	The power offset default value is changed 
	due to choosed board type.

        //persistent=yes
        //alias=connectedBoardType
	//insert=16
        //longAlias='Connected board type'"
    DEFVAL { oa }
    ::= { ocmIfEntry 30 }

ocmIfChangeConnectedBoardType OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Select board type for the monitor port connected
	to this ocm port. 

        //alias=ChangeConnectedBoardType
        //longAlias='Change connected board type'
	//insert=999
        //hidden=no"
    ::= { ocmIfEntry 31 }

ocmIfMaxPowerLevel OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum received power level for this port
	 in units of 0.1 dBm.

        //alias=maxPowerLevel
        //longAlias='Max power level'
	//table=no
	//hidden=yes
        //decimals=1
	//insert=18
        //unit=' dBm'"    
    ::= { ocmIfEntry 32 }

ocmIfMinPowerLevel OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum received power level for this port
	 in units of 0.1 dBm.

        //alias=minPowerLevel
        //longAlias='Min power level'
	//table=no
	//hidden=yes
        //decimals=1
	//insert=19
        //unit=' dBm'"    
    ::= { ocmIfEntry 33 }

ocmIfDeltaPower OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The difference between the maximum and the minimum 
	received power level for this port in units of 0.1 dBm.

        //alias=deltaPower
        //longAlias='Delta power'
	//table=no
	//hidden=yes
        //decimals=1
	//insert=20
        //unit=' dBm'"
    ::= { ocmIfEntry 34 }

ocmIfChangePowerThreshold OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Select the power threshold for this ocm port.

        If the measured	power level is below the threshold, it
        is regarded as no signal.

        //alias=ChangePowerThreshold
        //longAlias='Change power threshold'
	//insert=999
        //hidden=no"
    ::= { ocmIfEntry 35 }

ocmIfChangePowerOffset OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Select the power offset for this ocm port.

        The power offset is a value added to all power levels to get
	an accurate presentation of channel powers at the line port.

        //alias=ChangePowerOffset
        //longAlias='Change power offset'
	//insert=999
        //hidden=no"
    ::= { ocmIfEntry 36 }

-- ----------------------------------------------------
-- Optical control channels
-- ----------------------------------------------------

ocmChannelTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF OcmChannelEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The channel list."
    ::= { ocmChannelList 1 }

ocmChannelEntry OBJECT-TYPE
    SYNTAX      OcmChannelEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the channel list.

        //alias=channel"    
    INDEX { ocmChannelIndex }
    ::= { ocmChannelTable 1 }

OcmChannelEntry ::=
    SEQUENCE {
        ocmChannelIndex                       Unsigned32,
        ocmChannelName                        MgmtNameString,
        ocmChannelFrequency                   LambdaFrequency,
        ocmChannelPowerLevel                  Integer32,
	ocmChannelUpdateLastChangeTime        DateAndTime,
	ocmChannelOcmRefIfIndex               Unsigned32,
	ocmChannelReferencePowerLevel	      Integer32 }
        

ocmChannelIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry.

        //alias=index
        //longAlias='Index'
        //advanced=yes"
    ::= { ocmChannelEntry 1 }

ocmChannelName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the interface, for 
        example 'ocm:1:2:1', where the first number 
        indicates sub-rack, the second slot number and 
        the third is the port number.
        Examples:

        ocm:s:s:p - Optical channel module interface

        //alias=name
        //longAlias='Name'
        //table=yes" 
    ::= { ocmChannelEntry 2 }

ocmChannelFrequency OBJECT-TYPE
    SYNTAX      LambdaFrequency
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Freqency in hundreds of GHz (0.01 GHz).

        //persistent=no
        //longAlias='Frequency'
        //alias=frequency"
    ::= { ocmChannelEntry 3 }

ocmChannelPowerLevel OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The received power level in units of 0.1 dBm.

        //alias=PowerLevel
        //longAlias='Power level'
        //meter=yes
	//table=yes
        //decimals=1
        //unit=' dBm'"
    ::= { ocmChannelEntry 4 }

ocmChannelUpdateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Time when last measurment was done.

        //longAlias='Update last change time-stamp'
        //alias=timeStamp"
    ::= { ocmChannelEntry 5 }

ocmChannelOcmRefIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The SNMP-index of the OCM i/f object related to this
         object.

        //advanced=yes
        //alias=ocmIfIndex
        //longAlias='Ocm i/f index'
	//table=no"
    DEFVAL { 1 }
    ::= { ocmChannelEntry 6 }

ocmChannelReferencePowerLevel OBJECT-TYPE
    SYNTAX      Integer32 (-1000..1000)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The reference power level in units of 0.1 dBm.

        //alias=ReferencePowerLevel
        //longAlias='Reference power level'
	//persistent=yes
        //decimals=1
	//table=yes
        //unit=' dBm'"
    DEFVAL { 1000 }
    ::= { ocmChannelEntry 7 }

-- ----------------------------------------------------
-- Notifications
-- ----------------------------------------------------

-- n/a

-- ----------------------------------------------------
-- Object and event groups
-- ----------------------------------------------------

ocmGeneralGroup OBJECT-GROUP
    OBJECTS {
        ocmGeneralLastChangeTime,
        ocmGeneralStateLastChangeTime,
	ocmGeneralOcmIfTableSize }
    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumOcmGroups 1 }

ocmIfGroup OBJECT-GROUP
    OBJECTS {
        ocmIfIndex,
        ocmIfName,
        ocmIfDescr,
        ocmIfSubrack,
        ocmIfSlot,
        ocmIfRxPort,
        ocmIfInvPhysIndexOrZero,
        ocmIfAdminStatus,
        ocmIfOperStatus,
	ocmIfPowerThreshold,
	ocmIfUpdateLastChangeTime,
	ocmIfConnectedSubrack,
	ocmIfConnectedSlot,
	ocmIfConnectedPort,
	ocmIfActivePort,
	ocmIfControlMode,
	ocmIfReferenceTime,
	ocmIfSwitchFailure,
	ocmIfDataSourceNotDefined,
	ocmIfCommissioningMode,
	ocmIfModuleFailure,
	ocmIfConfigurationCommand,
	ocmIfChangeConnectedPort,
	ocmIfSaveReference,
	ocmIfPowerOffset,
	ocmIfConnectedBoardType,
	ocmIfChangeConnectedBoardType,
	ocmIfMaxPowerLevel,
	ocmIfMinPowerLevel,
	ocmIfDeltaPower }

    STATUS      deprecated
    DESCRIPTION
        "The ocm interface objects."
    ::= { lumOcmGroups 2 }

ocmChannelGroup OBJECT-GROUP
    OBJECTS {
        ocmChannelIndex,
        ocmChannelName,
	ocmChannelFrequency,
        ocmChannelPowerLevel,
	ocmChannelUpdateLastChangeTime,
	ocmChannelOcmRefIfIndex,
	ocmChannelReferencePowerLevel }
    STATUS      current
    DESCRIPTION
        "The ocm channel objects."
    ::= { lumOcmGroups 3 }

ocmIfGroupV2 OBJECT-GROUP
    OBJECTS {
        ocmIfIndex,
        ocmIfName,
        ocmIfDescr,
        ocmIfSubrack,
        ocmIfSlot,
        ocmIfRxPort,
        ocmIfInvPhysIndexOrZero,
        ocmIfAdminStatus,
        ocmIfOperStatus,
	ocmIfPowerThreshold,
	ocmIfUpdateLastChangeTime,
	ocmIfConnectedSubrack,
	ocmIfConnectedSlot,
	ocmIfConnectedPort,
	ocmIfActivePort,
	ocmIfControlMode,
	ocmIfReferenceTime,
	ocmIfSwitchFailure,
	ocmIfDataSourceNotDefined,
	ocmIfCommissioningMode,
	ocmIfModuleFailure,
	ocmIfConfigurationCommand,
	ocmIfChangeConnectedPort,
	ocmIfSaveReference,
	ocmIfPowerOffset,
	ocmIfConnectedBoardType,
	ocmIfChangeConnectedBoardType,
	ocmIfMaxPowerLevel,
	ocmIfMinPowerLevel,
	ocmIfDeltaPower,
	ocmIfChangePowerThreshold,
	ocmIfChangePowerOffset }

    STATUS      current
    DESCRIPTION
        "The ocm interface objects."
    ::= { lumOcmGroups 4 }

-- ----------------------------------------------------
-- Compliance 
-- ----------------------------------------------------

lumOcmBasicComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the OCM MIB V1."
    MODULE
        MANDATORY-GROUPS {
            ocmGeneralGroup,
            ocmIfGroup,
	    ocmChannelGroup }
    ::= { lumOcmCompl 1 }

lumOcmBasicComplV2 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the OCM MIB V2 (14.0)."
    MODULE
        MANDATORY-GROUPS {
            ocmGeneralGroup,
            ocmIfGroupV2,
	    ocmChannelGroup }
    ::= { lumOcmCompl 2 }

-- ----------------------------------------------------
-- Minimal Compliance 
-- ----------------------------------------------------

lumOcmMinimalComplV1 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Minimal implementation requirements for the OCM MIB V1."
    MODULE
        MANDATORY-GROUPS {
            ocmGeneralGroup,
            ocmIfGroup }
    ::= { lumOcmMinimalCompl 1 }

END

