-- ***************************************************************
-- INFINERA-ENTITY-BMM-MIB
--   
-- October 2008, Sharfuddin Syed / Narendra Gupta
--   
--   
-- Copyright (c) 2008-2012 by Infinera Inc.
-- All rights reserved.
-- ****************************************************************

INFINERA-ENTITY-BMM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE, MODULE-IDENTITY, Integer32      FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE              FROM SNMPv2-CONF
    RowStatus, TruthValue, DisplayString         FROM SNMPv2-TC
    entPhysicalIndex                             FROM ENTITY-MIB
    equipment                                    FROM INFINERA-REG-MIB
    FloatTenths, InfnEqptType,InfnMaxChRatePlan        FROM INFINERA-TC-MIB;

bmmMIB MODULE-IDENTITY
    LAST-UPDATED  "200810200000Z"
    ORGANIZATION 
        "Infinera"
    CONTACT-INFO 
        "Infinera
                1322 Bordeaux Drive
                Sunnyvale, CA - 94089
        
                Contact : Technical Support
                Email   : support@infinera.com
                Phone   : 1-877-INF-5288"
    DESCRIPTION 
        " "
::= { equipment 3 }


-- Conformance Statements

bmmConformance       OBJECT IDENTIFIER ::= { bmmMIB 3 }
bmmCompliances       OBJECT IDENTIFIER ::= { bmmConformance 1 }
bmmGroups            OBJECT IDENTIFIER ::= { bmmConformance 2 }

-- January 28, 2008
-- January 28, 2008

bmmTable  OBJECT-TYPE
    SYNTAX SEQUENCE OF BmmEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION 
        "A list of BMM entries. Each entry is uniquely identified by the value of entPhysicalIndex."
    ::= { bmmMIB 1 }

bmmEntry  OBJECT-TYPE
    SYNTAX     BmmEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION 
        "A BMM entry containing information pertaining to 
                Infinera BMM modules. Entries will exist in this table for
                entPhysicalEntries of type BMM."
    INDEX { entPhysicalIndex }
    ::= { bmmTable 1 }

BmmEntry ::= SEQUENCE {
    bmmMoId                     DisplayString,
    bmmProvisonedType           InfnEqptType,
    bmmRxAmpDeviceSetpoint      FloatTenths,
    bmmRxAmpDeviceTarget        FloatTenths,
    bmmRxLastAmpDeviceCommitTs  Integer32,
    bmmDisableGainControlLoop   TruthValue,
    bmmLaunchPowerOffset        FloatTenths,
    bmmNumberOfChannel          Integer32,
    bmmTxDampSeqNum             Integer32,
    bmmRxDampSeqNum             Integer32,
    bmmTilt                     FloatTenths,
    bmmOperatingMode            INTEGER,
    bmmGain             FloatTenths,
    bmmRowStatus                RowStatus,
    bmmMaxChanRatePlan InfnMaxChRatePlan,
    bmmCBandSoakCapableFW       TruthValue,
    bmmSuccessfulACGRunTime     Integer32
}

bmmMoId  OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "This should be specified in the format of x-A-y. where x is the chassis MoId and y is the 
        slot in which BMM is present for example 1-A-1,  2-A-1 etc."
    ::= { bmmEntry 1 }

bmmProvisonedType  OBJECT-TYPE
    SYNTAX     InfnEqptType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "The configured circuit pack type."
    DEFVAL  { 47 }
    ::= { bmmEntry 2 }

bmmRxAmpDeviceSetpoint  OBJECT-TYPE
    SYNTAX     FloatTenths
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
        "Current gain value for DAMP."
    ::= { bmmEntry 3 }

bmmRxAmpDeviceTarget  OBJECT-TYPE
    SYNTAX     FloatTenths
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
        "Target gain value for DAMP."
    ::= { bmmEntry 4 }

bmmRxLastAmpDeviceCommitTs  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
        "The last gain adjusted time by DAMP protocol."
    ::= { bmmEntry 5 }

bmmDisableGainControlLoop  OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "Disable Gain Control Loop"
    DEFVAL  { false }
    ::= { bmmEntry 6 }

bmmLaunchPowerOffset  OBJECT-TYPE
    SYNTAX     FloatTenths
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "The BMM launch power will be adjusted by this value. The range of valid
         values is -2dB/channel to +2dB/channel."
    ::= { bmmEntry 7 }

bmmNumberOfChannel  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "Number  of active channels in OTS. The values can be 160, 80, 40 and 20."
    ::= { bmmEntry 8 }

bmmTxDampSeqNum  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
        "Current Tx DAMP sequence number."
    ::= { bmmEntry 9 }

bmmRxDampSeqNum  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
        "Current Rx DAMP sequence number."
    ::= { bmmEntry 10 }

bmmTilt  OBJECT-TYPE
    SYNTAX     FloatTenths
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "This attribute is an offset to the gain tilt of the BMM/OAM/ORM - 
        without any offset applied (offset of 0dB), the gain tilt of the BMM/OAM is 1dB."
    ::= { bmmEntry 11 }
    
bmmOperatingMode  OBJECT-TYPE
    SYNTAX     INTEGER {
     nativeAutomated (1), 
     slteMode1 (2),
     thirdPartyAmp (3),
     static (4)
    }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "The BMM in mode at which is is operating."
    ::= { bmmEntry 12 }
    
bmmGain  OBJECT-TYPE
    SYNTAX     FloatTenths
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "If configured mode is slteMode1 then user can input the required gain for rx EDFA."
    ::= { bmmEntry 13 }

bmmRowStatus  OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "The row status of this BMM entry.
                Because rows in this table are indexed by entPhysicalIndex, to create a new row one must
                choose a value of entPhysicalIndex that is not already in use.
        
                A side-effect of the creation of a row in this table is the creation of a corresponding
                row in the eqptTable and the entPhysicalTable.
        
                The status may not be set to active if the bmmMoId, bmmProvEqptType,  bmmDisableGainControlLoop, 
                bmmLaunchPowerOffset,    or bmmNumberOfChannel objects are not set to valid values.
        
                This row may only be deleted if it was a pre-provisioned row and the hardware is not present.
        
                If this row is deleted, the associated row in the Eqpt Table and entPhysicalTable will be
                deleted by the agent."
    ::= { bmmEntry 14 }

bmmMaxChanRatePlan  OBJECT-TYPE
    SYNTAX     InfnMaxChRatePlan
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "Maximum Channel Rate Plan "
    ::= { bmmEntry 15 }

bmmCBandSoakCapableFW OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION ""
    ::= { bmmEntry 16}

bmmSuccessfulACGRunTime  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION  ""
    ::= { bmmEntry 17 }

bmmCompliance  MODULE-COMPLIANCE
    STATUS     current
    DESCRIPTION 
        "Describes the requirements for conformance to the BMM-MIB"
    MODULE
        MANDATORY-GROUPS { bmmGroup } 
    ::= { bmmCompliances 1 }

bmmGroup  OBJECT-GROUP
    OBJECTS { bmmMoId, 
        bmmProvisonedType, 
        bmmRxAmpDeviceSetpoint, 
        bmmRxAmpDeviceTarget, 
        bmmRxLastAmpDeviceCommitTs, 
        bmmDisableGainControlLoop, 
        bmmLaunchPowerOffset, 
        bmmNumberOfChannel, 
        bmmTxDampSeqNum, 
        bmmRxDampSeqNum, 
        bmmTilt,
        bmmOperatingMode,
        bmmGain,         
        bmmRowStatus ,
        bmmMaxChanRatePlan,
        bmmCBandSoakCapableFW,
        bmmSuccessfulACGRunTime
        }
    STATUS     current
    DESCRIPTION 
        " A collection of objects for managing a BMM module"
    ::= { bmmGroups 1 }
END
