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


INFINERA-ENTITY-OAM-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,
    InfnOAOperatingMode                            FROM INFINERA-TC-MIB;

oamMIB 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 11 }


-- Conformance Statements

oamConformance       OBJECT IDENTIFIER ::= { oamMIB 3 }
oamCompliances       OBJECT IDENTIFIER ::= { oamConformance 1 }
oamGroups            OBJECT IDENTIFIER ::= { oamConformance 2 }

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

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

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

OamEntry ::= SEQUENCE {
    oamMoId                      DisplayString,
    oamProvisonedType            InfnEqptType,
    oamRxAmpDeviceSetpoint       FloatTenths,
    oamRxAmpDeviceTarget         FloatTenths,
    oamRxLastAmpDeviceCommitTs   Integer32,
    oamLaunchPowerOffset         FloatTenths,
    oamRxDampSeqNum              Integer32,
    oamTilt                      FloatTenths,
    oamOperatingMode             InfnOAOperatingMode,
    oamGain                      FloatTenths,    
    oamRowStatus                 RowStatus,
    oamCBandSoakCapableFW        TruthValue
}

oamMoId  OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "Object identifier."
    ::= { oamEntry 1 }

oamProvisonedType  OBJECT-TYPE
    SYNTAX     InfnEqptType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "The configured OAM type."
    ::= { oamEntry 2 }

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

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

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

oamLaunchPowerOffset  OBJECT-TYPE
    SYNTAX     FloatTenths
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "The OAM launch power will be adjusted by this value."
    ::= { oamEntry 6 }

oamRxDampSeqNum  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
        "Current DAMP sequence number."
    ::= { oamEntry 7 }

oamTilt  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."
    ::= { oamEntry 8 }

oamOperatingMode  OBJECT-TYPE
    SYNTAX     InfnOAOperatingMode 
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "The OAM in mode at which is is operating."
    ::= { oamEntry 9 }
    
oamGain  OBJECT-TYPE
    SYNTAX     FloatTenths
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "If oamOperatingMode is set to slteMode1 then user can input the required gain for rx EDFA gain."
    ::= { oamEntry 10 }
        
oamRowStatus  OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION 
        "The row status of this OAM 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 oamMoId, oamProvEqptType and other read-create            
                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."
    ::= { oamEntry 11 }

oamCBandSoakCapableFW  OBJECT-TYPE
    SYNTAX     TruthValue 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
        ""
    ::= { oamEntry 12 }
 
oamCompliance  MODULE-COMPLIANCE
    STATUS     current
    DESCRIPTION 
        "Describes the requirements for conformance to the OAM-MIB"
    MODULE
        MANDATORY-GROUPS { oamGroup } 
    ::= { oamCompliances 1 }

oamGroup  OBJECT-GROUP
    OBJECTS { oamMoId, 
        oamProvisonedType, 
        oamRxAmpDeviceSetpoint, 
        oamRxAmpDeviceTarget, 
        oamRxLastAmpDeviceCommitTs, 
        oamLaunchPowerOffset, 
        oamRxDampSeqNum, 
        oamTilt,
        oamOperatingMode,
        oamGain,
        oamRowStatus,
        oamCBandSoakCapableFW
    }
    STATUS     current
    DESCRIPTION 
        " A collection of objects for managing a OAM module"
    ::= { oamGroups 1 }
END
