LUM-IFFH-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    DateAndTime
        FROM SNMPv2-TC
    lumModules, lumIfFhMIB
        FROM LUM-REG
    SignalStatusWithNA, FaultStatusWithNA, MgmtNameString,
    Unsigned32WithNA
        FROM LUM-TC;

lumIfFhMIBModule MODULE-IDENTITY
    LAST-UPDATED
        "201706150000Z" -- June 15th 2017
    ORGANIZATION
        "Infinera Corporation"
    CONTACT-INFO
        "techsupport@infinera.com"
    DESCRIPTION
        "This module describes the ethernet.

        The references refers to IEEE 802.3.

        The tables contained in this MIB are:

        (1) The General group contains some general attributes as time stamps
            and tables sizes.

        (2) The Cpri group contains information and configuration
            for the FH Cpri protocol.

        (3) The Obsai group contains information and configuration
            for the FH Obsai protocol.

"
    REVISION
        "201706150000Z" -- June 15th 2017
    DESCRIPTION
        "Changes made for release r29.0:
         - Changed ORGANIZATION and CONTACT-INFO"
    REVISION
        "201606140000Z" -- June 14th 2016
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 68 }


-- ----------------------------------------------------
-- Compliance area, containing groups and compliance
-- specifications.
-- ----------------------------------------------------

lumIfFhConfs OBJECT IDENTIFIER ::= { lumIfFhMIB 1 }
lumIfFhGroups OBJECT IDENTIFIER ::= { lumIfFhConfs 1 }
lumIfFhCompl OBJECT IDENTIFIER ::= { lumIfFhConfs 2 }


-- ----------------------------------------------------
-- Root for objects in the IFFH MIB
-- ----------------------------------------------------

lumIfFhMIBObjects OBJECT IDENTIFIER ::= { lumIfFhMIB 2 }


-- ----------------------------------------------------
-- This MIB contains the following groups:
-- ----------------------------------------------------
ifFhGeneral OBJECT IDENTIFIER ::= { lumIfFhMIBObjects 1 }
ifFhCpriList OBJECT IDENTIFIER ::= { lumIfFhMIBObjects 2 }
ifFhObsaiList OBJECT IDENTIFIER ::= { lumIfFhMIBObjects 3 }


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

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

"
    ::= { ifFhGeneral 1 }

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

"
    ::= { ifFhGeneral 2 }

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

"
    ::= { ifFhGeneral 3 }

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

"
    ::= { ifFhGeneral 4 }

ifFhGeneralIfFhCpriStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state and/or configuration of
        the table was last changed.

"
    ::= { ifFhGeneral 5 }

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

"
    ::= { ifFhGeneral 6 }

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

"
    ::= { ifFhGeneral 7 }

ifFhGeneralIfFhObsaiStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state and/or configuration of
        the table was last changed.

"
    ::= { ifFhGeneral 8 }

-- ----------------------------------------------------
-- FH CPRI group
-- ----------------------------------------------------

ifFhCpriTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF IfFhCpriEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Cpri group contains information and
         configuration for the fh cpri protocol."

    ::= { ifFhCpriList 1 }

ifFhCpriEntry OBJECT-TYPE
    SYNTAX      IfFhCpriEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ifFh Cpri list.

"
    INDEX { ifFhCpriIndex }
    ::= { ifFhCpriTable 1 }

IfFhCpriEntry ::=
    SEQUENCE {
        ifFhCpriIndex                   Unsigned32,
        ifFhCpriUId                     Unsigned32,
        ifFhCpriName                    MgmtNameString,
        ifFhCpriConnIfBasicIfIndex      Unsigned32WithNA,
        ifFhCpriTxSignalStatus          SignalStatusWithNA,
        ifFhCpriRxSignalStatus          SignalStatusWithNA,
        ifFhCpriTxLossOfFrame           FaultStatusWithNA,
        ifFhCpriRxLossOfFrame          	FaultStatusWithNA,
        ifFhCpriRxSAPDefectInd          FaultStatusWithNA,
        ifFhCpriRxRemoteAlarmInd        FaultStatusWithNA }

ifFhCpriIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index assigned to each entry.

"
    ::= { ifFhCpriEntry 1 }

ifFhCpriUId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An unique identifier assigned to each entry.

"
    ::= { ifFhCpriEntry 2 }

ifFhCpriName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the object,
        for example 'cpri:1:2:1-2', where the first number indicates
        subrack, the second slot number and the third/fourth
        are the physical port numbers.

"
    ::= { ifFhCpriEntry 3 }

ifFhCpriConnIfBasicIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index that describes to which index in ifBasicIf table
        this object is related.

"
    ::= { ifFhCpriEntry 4 }

ifFhCpriTxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for outgoing (TX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.

"
    ::= { ifFhCpriEntry 5 }

ifFhCpriRxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for incoming (RX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.

"
    ::= { ifFhCpriEntry 6 }

ifFhCpriTxLossOfFrame OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "TX Loss of frame.

        Reference: CPRI

        alarm: Detecting if hyper-frame alignment cannot be achieved or is lost.

        ok: If the hyper-frame alignment is achieved.

"
    ::= { ifFhCpriEntry 7 }

ifFhCpriRxLossOfFrame OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "RX Loss of frame.

        Reference: CPRI

        alarm: Detecting if hyper-frame alignment cannot be achieved or is lost.

        ok: If the hyper-frame alignment is achieved.

"
    ::= { ifFhCpriEntry 8 }

ifFhCpriRxSAPDefectInd OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "When the near end explicitly informs the far end equipment that the link
        shall not be used for any of the Service Access Points.

        Reference: CPRI

        alarm: When the near end explicitly informs the far end equipment that the link shall not be used.

        ok: When there is no explicit information about the link unavailability.

"
    ::= { ifFhCpriEntry 9 }

ifFhCpriRxRemoteAlarmInd OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Rx Remote Alarm Indication.

        Reference: CPRI

        alarm: Any errors, including LOS and LOF, that are linked to CPRI transceiver.

        ok: When no errors, including LOF and LOS, are linked to the CPRI transceiver.

"
    ::= { ifFhCpriEntry 10 }

-- ----------------------------------------------------
-- FH OBSAI group
-- ----------------------------------------------------

ifFhObsaiTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF IfFhObsaiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Obsai group contains information and
         configuration for the fh obsai protocol."

    ::= { ifFhObsaiList 1 }

ifFhObsaiEntry OBJECT-TYPE
    SYNTAX      IfFhObsaiEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ifFh Obsai list.

"
    INDEX { ifFhObsaiIndex }
    ::= { ifFhObsaiTable 1 }

IfFhObsaiEntry ::=
    SEQUENCE {
        ifFhObsaiIndex                   Unsigned32,
        ifFhObsaiUId                     Unsigned32,
        ifFhObsaiName                    MgmtNameString,
        ifFhObsaiConnIfBasicIfIndex      Unsigned32WithNA,
        ifFhObsaiTxSignalStatus          SignalStatusWithNA,
        ifFhObsaiRxSignalStatus          SignalStatusWithNA,
        ifFhObsaiRxLossOfFrame           FaultStatusWithNA,
        ifFhObsaiTxLossOfFrame           FaultStatusWithNA }

ifFhObsaiIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index assigned to each entry.

"
    ::= { ifFhObsaiEntry 1 }

ifFhObsaiUId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An unique identifier assigned to each entry.

"
    ::= { ifFhObsaiEntry 2 }

ifFhObsaiName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the object,
        for example 'obsai:1:2:1-2', where the first number indicates
        subrack, the second slot number and the third/fourth
        are the physical port numbers.

"
    ::= { ifFhObsaiEntry 3 }

ifFhObsaiConnIfBasicIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index that describes to which index in ifBasicIf table
        this object is related.

"
    ::= { ifFhObsaiEntry 4 }

ifFhObsaiTxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for outgoing (TX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.

"
    ::= { ifFhObsaiEntry 5 }

ifFhObsaiRxSignalStatus OBJECT-TYPE
    SYNTAX      SignalStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state for incoming (RX) signal
        of the interface.

        down - A major fault has occurred.

        degraded - The signal quality is impaired.

        up - The signal is OK.

"
    ::= { ifFhObsaiEntry 6 }

ifFhObsaiRxLossOfFrame OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "RX Loss of frame.

        Reference: OBSAI

        alarm: Detecting if hyper-frame alignment cannot be achieved or is lost.

        ok: If the hyper-frame alignment is achieved.

"
    ::= { ifFhObsaiEntry 7 }

ifFhObsaiTxLossOfFrame OBJECT-TYPE
    SYNTAX      FaultStatusWithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "TX Loss of frame.

        Reference: OBSAI

        alarm: Detecting if hyper-frame alignment cannot be achieved or is lost.

        ok: If the hyper-frame alignment is achieved.

"
    ::= { ifFhObsaiEntry 8 }

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


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


ifFhGeneralGroupV1 OBJECT-GROUP
    OBJECTS {
        ifFhGeneralConfigLastChangeTime,
        ifFhGeneralStateLastChangeTime,
        ifFhGeneralIfFhCpriTableSize,
        ifFhGeneralIfFhCpriConfigLastChangeTime,
        ifFhGeneralIfFhCpriStateLastChangeTime,
        ifFhGeneralIfFhObsaiTableSize,
        ifFhGeneralIfFhObsaiConfigLastChangeTime,
        ifFhGeneralIfFhObsaiStateLastChangeTime }
    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumIfFhGroups 1 }


ifFhCpriGroupV1 OBJECT-GROUP
    OBJECTS {
        ifFhCpriIndex,
        ifFhCpriUId,
        ifFhCpriName,
        ifFhCpriConnIfBasicIfIndex,
        ifFhCpriTxSignalStatus,
        ifFhCpriRxSignalStatus,
        ifFhCpriTxLossOfFrame,
        ifFhCpriRxLossOfFrame,
        ifFhCpriRxSAPDefectInd,
        ifFhCpriRxRemoteAlarmInd }

    STATUS      current
    DESCRIPTION
        "The Cpri objects."
    ::= { lumIfFhGroups 2 }

ifFhObsaiGroupV1 OBJECT-GROUP
    OBJECTS {
        ifFhObsaiIndex,
        ifFhObsaiUId,
        ifFhObsaiName,
        ifFhObsaiConnIfBasicIfIndex,
        ifFhObsaiTxSignalStatus,
        ifFhObsaiRxSignalStatus,
        ifFhObsaiRxLossOfFrame,
        ifFhObsaiTxLossOfFrame }

    STATUS      current
    DESCRIPTION
        "The Obsai objects."
    ::= { lumIfFhGroups 3 }

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

lumIfFhComplV1 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the ifFh MIB. (R27.1)"
    MODULE
        MANDATORY-GROUPS {
            ifFhGeneralGroupV1,
            ifFhCpriGroupV1,
            ifFhObsaiGroupV1 }
    ::= { lumIfFhCompl 1 }


END

