--  ==========================================================================
--  File          : oaFec.mib
--  Description   : Private MIB for FEC supported Modules 
--                
--  By            : Maoz Yona, Sharon Kazaz
--  Version       : Revision:   1.02
--  Original Date : November 25, 2007
--  Last Change   : Date:   June 08, 2009
--  ==========================================================================
--
--
-- Copyright (c) 2005 MRV.  All Rights Reserved.
--
-- Reproduction of this document is authorized on condition that this
-- copyright notice is included.  This MRV SNMP MIB Specification
-- embodies MRV proprietary intellectual property.  MRV
-- retains all title and ownership in the specification, including any
-- revisions.
--
-- It is MRV's intent to encourage the widespread use of this
-- specification in connection with the management of MRV's
-- products. MRV grants vendor, end-users, and other interested
-- parties a non-exclusive license to use this specification in
-- connection with the management of MRV's products.
--
-- This specification is supplied "AS IS," and MRV makes no
-- warranty, either express or implied, as to the use, operation,
-- condition, or performance of the specification.
--
-- MRV retains the right to change this MIB without notification.
--
OA-FEC-MIB DEFINITIONS ::= BEGIN

IMPORTS
                enterprises,MODULE-IDENTITY,
                Integer32,OBJECT-TYPE            FROM SNMPv2-SMI    -- RFC2578
                MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF   -- RFC2580
		TruthValue                       FROM SNMPv2-TC;    -- RFC2579

------------------------------------------------------------------------------
-- Object Identifier Definition
------------------------------------------------------------------------------

oaFecMib   MODULE-IDENTITY
    LAST-UPDATED "200711250000Z" -- 25 November, 2007
    ORGANIZATION "MRV Communications"
    CONTACT-INFO "For technical support, please contact your service channel"

    DESCRIPTION 
        "This MIB defines objects for ITU-T G.709 FEC
         (Forward Error Correction) configuration and statistics."

    -- Revision history

    REVISION "200711250000Z"     -- 25 November, 2007
    DESCRIPTION
        "Initial MIB Creation"
   
    ::= { oaManagement 19 }

oaccess                OBJECT IDENTIFIER ::= { enterprises 6926 }
oaManagement           OBJECT IDENTIFIER ::= { oaccess 1 }

oaFecMibGen            OBJECT IDENTIFIER ::= { oaFecMib 1 }
oaFecMibParams         OBJECT IDENTIFIER ::= { oaFecMib 2 }

oaFecMibConformance    OBJECT IDENTIFIER ::= { oaFecMib 101 }

------------------------------------------------------------------------------
-- FEC MIB Generic Definitions 
------------------------------------------------------------------------------

oaFecMibSupport OBJECT-TYPE
    SYNTAX  INTEGER {
       notSupported (1),
       supported    (2)
    }       
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "Device ITU-T G.709 FEC feature support."

    ::= { oaFecMibGen 1 }

oaFecMibFecSlotsNumber OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "Device total Number of Slots supported ITU-T G.709 FEC."

    ::= { oaFecMibGen 2 }

------------------------------------------------------------------------------
-- FEC MIB Configuration Parameters
------------------------------------------------------------------------------

-- this group consists of 3 tables:
-- the FEC configuration Table
-- the FEC Statistics Current Table
-- the FEC Statisics Interval Table

-- the FEC configuration Table

oaFecConfigurationTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF OaFecConfigurationEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The FEC Statistics Current table."

    ::= { oaFecMibParams 1 }

oaFecConfigurationEntry OBJECT-TYPE
    SYNTAX  OaFecConfigurationEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "An entry in the FEC Configuration table."

    INDEX   { oaFecConfigurationSlotIndex }   

    ::= { oaFecConfigurationTable 1 }

OaFecConfigurationEntry ::=
    SEQUENCE {
        oaFecConfigurationSlotIndex       Integer32,
        oaFecConfigurationSupportedPorts  Integer32,
        oaFecConfigurationMode            INTEGER
       }

oaFecConfigurationSlotIndex OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The slot#. An index from 1 to The number of slots."

    ::= { oaFecConfigurationEntry 1 }

oaFecConfigurationSupportedPorts OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "Number of ITU-T G.709 FEC ports in slot."

    ::= { oaFecConfigurationEntry 2 }

oaFecConfigurationMode OBJECT-TYPE
    SYNTAX  INTEGER  {
               oaFecModeOther (1),
               oaFecModeG709  (2),
	       oaFecModeEfec  (3)
              }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        "The Forward Error Correction (FEC) mode which is used 
         in the module.
         2 - g709 - Generic Forward Error Correction mode.
         3 - eFec - Enhanced Forward Error Correction mode."

    ::= { oaFecConfigurationEntry 3 }


-- the FEC Statistics Current Table

oaFecStatisticsCurrentTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF OaFecStatisticsCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The FEC Statistics Current table."

    ::= { oaFecMibParams 2 }

oaFecStatisticsCurrentEntry OBJECT-TYPE
    SYNTAX  OaFecStatisticsCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "An entry in the FEC Statistics Current table."

    INDEX   {
             oaFecStatisticsSlotIndex,
             oaFecStatisticsPortIndex
            }

    ::= { oaFecStatisticsCurrentTable 1 }

OaFecStatisticsCurrentEntry ::=
    SEQUENCE {
        oaFecStatisticsSlotIndex          Integer32,
        oaFecStatisticsPortIndex          Integer32,
        oaFecStatisticsCorrectedBits      Integer32,
	oaFecStatisticsUncorrectedBlocks  Integer32
       }

oaFecStatisticsSlotIndex OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The slot#. An index from 1 to The number of slots."

    ::= { oaFecStatisticsCurrentEntry 1 }

oaFecStatisticsPortIndex OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The port#. An index from 1 to The number of ports."

    ::= { oaFecStatisticsCurrentEntry 2 }

oaFecStatisticsCorrectedBits OBJECT-TYPE
    SYNTAX  Integer32 
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "The counter associated with the total number of 
       Corrected bits by the FEC decoder. It includes number 
       of 0's corrected to 1's and number of 1's corrected to zero's
       in the current 15 minute interval."

    ::= { oaFecStatisticsCurrentEntry 3 }

oaFecStatisticsUncorrectedBlocks OBJECT-TYPE
    SYNTAX  Integer32 
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "The counter associated with the total number of 
       UnCorrected blocks which the FEC decoder detected 
       and pass through but was unable to correct
       in the current 15 minute interval."

    ::= { oaFecStatisticsCurrentEntry 4 }

-- the FEC Statistics Interval Table
-- contains various statistics
-- collected by the FEC decoder over a maximum
-- of the previous 24 hours of
-- operation.  The past 24 hours may be broken into 96
-- completed 15 minute intervals.

oaFecStatIntervalTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF OaFecStatIntervalEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The FEC statistics Interval table."

    ::= { oaFecMibParams 3 }

oaFecStatIntervalEntry OBJECT-TYPE
    SYNTAX  OaFecStatIntervalEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "An entry in the FEC statistics Interval table."
    INDEX   {
        oaFecStatIntervalSlotNumber, 
        oaFecStatIntervalPortNumber,
        oaFecStatIntervalNumber
       }
              
     ::= { oaFecStatIntervalTable 1 }

OaFecStatIntervalEntry::=
    SEQUENCE {
         oaFecStatIntervalSlotNumber          Integer32,
         oaFecStatIntervalPortNumber          Integer32,
	 oaFecStatIntervalNumber              Integer32,
         oaFecStatIntervalCorrectedBits       Integer32,
         oaFecStatIntervalUncorrectedBlocks   Integer32,
         oaFecStatIntervalValidData           TruthValue
        }

oaFecStatIntervalSlotNumber OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The slot#. An index from 1 to The number of slots."

    ::= { oaFecStatIntervalEntry 1 }

oaFecStatIntervalPortNumber OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
    "The port#. An index from 1 to The number of ports."

    ::= { oaFecStatIntervalEntry 2 }

oaFecStatIntervalNumber OBJECT-TYPE
    SYNTAX  Integer32 (1..96)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
      "A number between 1 and 96, which identifies the
      interval for which the set of statistics is available.
      The interval identified by 1 is the most recently
      completed 15 minute interval,
      and the interval identified
      by N is the interval immediately preceding the
      one identified by N-1."

    ::= { oaFecStatIntervalEntry 3 }

oaFecStatIntervalCorrectedBits OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "The counter associated with the total number of 
       Corrected bits by the FEC decoder. It includes number 
       of 0's corrected to 1's and number of 1's corrected to zero's
       in a particular 15-minute interval in the past 24 hours."

    ::= { oaFecStatIntervalEntry 4 }

oaFecStatIntervalUncorrectedBlocks OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "The counter associated with the total number of 
       UnCorrected blocks which the FEC decoder detected 
       and pass through but was unable to correct
       in a particular 15-minute interval in the past 24 hours."
       
    ::= { oaFecStatIntervalEntry 5 }

oaFecStatIntervalValidData OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "This variable indicates if the data for this
        interval is valid."
        
    ::= { oaFecStatIntervalEntry 6 }

-- the FEC Statistics Current Day Table

oaFecStatCurrentDayTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF OaFecStatCurrentDayEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The FEC Statistics Current Day table."

    ::= { oaFecMibParams 4 }

oaFecStatCurrentDayEntry OBJECT-TYPE
    SYNTAX  OaFecStatCurrentDayEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "An entry in the FEC Statistics Current Day table."

    INDEX   {
             oaFecDayStatSlotIndex,
             oaFecDayStatPortIndex
            }

    ::= { oaFecStatCurrentDayTable 1 }

OaFecStatCurrentDayEntry ::=
    SEQUENCE {
        oaFecDayStatSlotIndex          Integer32,
        oaFecDayStatPortIndex          Integer32,
        oaFecDayStatCorrectedBits      Integer32,
        oaFecDayStatUncorrectedBlocks  Integer32
       }

oaFecDayStatSlotIndex OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The slot#. An index from 1 to The number of slots."

    ::= { oaFecStatCurrentDayEntry 1 }

oaFecDayStatPortIndex OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The port#. An index from 1 to The number of ports."

    ::= { oaFecStatCurrentDayEntry 2 }

oaFecDayStatCorrectedBits OBJECT-TYPE
    SYNTAX  Integer32 
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "The counter associated with the total number of 
       Corrected bits by the FEC decoder. It includes number 
       of 0's corrected to 1's and number of 1's corrected to zero's
       in the current day."

    ::= { oaFecStatCurrentDayEntry 3 }

oaFecDayStatUncorrectedBlocks OBJECT-TYPE
    SYNTAX  Integer32 
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "The counter associated with the total number of 
       UnCorrected blocks which the FEC decoder detected 
       and pass through but was unable to correct
       in current day."

    ::= { oaFecStatCurrentDayEntry 4 }

-- the FEC Statistics Previous Day Table

oaFecStatPrevDayTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF OaFecStatPrevDayEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The FEC Statistics Previous Day table."

    ::= { oaFecMibParams 5 }

oaFecStatPrevDayEntry OBJECT-TYPE
    SYNTAX  OaFecStatPrevDayEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "An entry in the FEC Statistics Previous Day table."

    INDEX   {
             oaFecPrevDayStatSlotIndex,
             oaFecPrevDayStatPortIndex
            }

    ::= { oaFecStatPrevDayTable 1 }

OaFecStatPrevDayEntry ::=
    SEQUENCE {
        oaFecPrevDayStatSlotIndex          Integer32,
        oaFecPrevDayStatPortIndex          Integer32,
        oaFecPrevDayStatCorrectedBits      Integer32,
        oaFecPrevDayStatUncorrBlocks       Integer32,
        oaFecPrevDayStatValidData          TruthValue
       }

oaFecPrevDayStatSlotIndex OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The slot#. An index from 1 to The number of slots."

    ::= { oaFecStatPrevDayEntry 1 }

oaFecPrevDayStatPortIndex OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
       "The port#. An index from 1 to The number of ports."

    ::= { oaFecStatPrevDayEntry 2 }

oaFecPrevDayStatCorrectedBits OBJECT-TYPE
    SYNTAX  Integer32 
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "The counter associated with the total number of 
       Corrected bits by the FEC decoder. It includes number 
       of 0's corrected to 1's and number of 1's corrected to zero's
       in the previous day."

    ::= { oaFecStatPrevDayEntry 3 }

oaFecPrevDayStatUncorrBlocks OBJECT-TYPE
    SYNTAX  Integer32 
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "The counter associated with the total number of 
       UnCorrected blocks which the FEC decoder detected 
       and pass through but was unable to correct
       in previous day."

    ::= { oaFecStatPrevDayEntry 4 }
    
oaFecPrevDayStatValidData OBJECT-TYPE
    SYNTAX  TruthValue 
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
       "This variable indicates if the data for this
        interval is valid."

    ::= { oaFecStatPrevDayEntry 5 }
    

------------------------------------------------------------------------------
--  Conformance Information 
------------------------------------------------------------------------------
 
oaFecMibMIBCompliances  OBJECT IDENTIFIER ::= { oaFecMibConformance 1 }
oaFecMibMIBGroups       OBJECT IDENTIFIER ::= { oaFecMibConformance 2 }

oaFecMibMIBCompliance   MODULE-COMPLIANCE
    STATUS current 
    DESCRIPTION 
    "The core compliance statement for all     fecConfigurationTable
     'oaFecMib' MIB implementations."

    MODULE -- this module

    MANDATORY-GROUPS { 
                      oaFecMibMandatoryConfigurationGroup,
                      oaFecMibMandatoryStatCurrentGroup,
                      oaFecMibMandatoryStatIntervalGroup,
                      oaFecMibMandatoryStatCurrentDayGroup,
                      oaFecMibMandatoryStatPrevDayGroup
                     }

    ::= { oaFecMibMIBCompliances 1 }

------------------------------------------------------------------------------
-- Conformance Groups 
------------------------------------------------------------------------------ 
oaFecMibMandatoryConfigurationGroup  OBJECT-GROUP
    OBJECTS { 
             oaFecMibSupport,
             oaFecMibFecSlotsNumber,
             oaFecConfigurationSupportedPorts,
             oaFecConfigurationMode
            }
    STATUS current 
    DESCRIPTION 
    "Mandatory objects for grouping of FEC Statistics Current parameters."

    ::= { oaFecMibMIBGroups 1 }

oaFecMibMandatoryStatCurrentGroup  OBJECT-GROUP
    OBJECTS { 
             oaFecStatisticsCorrectedBits,
             oaFecStatisticsUncorrectedBlocks
            }
    STATUS current 
    DESCRIPTION 
    "Mandatory objects for grouping of FEC Statistics Current parameters."

    ::= { oaFecMibMIBGroups 2 }

oaFecMibMandatoryStatIntervalGroup  OBJECT-GROUP
    OBJECTS { 
             oaFecStatIntervalCorrectedBits,
             oaFecStatIntervalUncorrectedBlocks,
             oaFecStatIntervalValidData
            }
    STATUS current 
    DESCRIPTION 
    "Mandatory objects for grouping of FEC Statistics Current parameters."

    ::= { oaFecMibMIBGroups 3 }
    
oaFecMibMandatoryStatCurrentDayGroup  OBJECT-GROUP
    OBJECTS { 
             oaFecDayStatCorrectedBits,
             oaFecDayStatUncorrectedBlocks
            }
    STATUS current 
    DESCRIPTION 
    "Mandatory objects for grouping of FEC Statistics Current Day parameters."

    ::= { oaFecMibMIBGroups 4 }
    
oaFecMibMandatoryStatPrevDayGroup  OBJECT-GROUP
    OBJECTS { 
             oaFecPrevDayStatCorrectedBits,
             oaFecPrevDayStatUncorrBlocks,
             oaFecPrevDayStatValidData
            }
    STATUS current 
    DESCRIPTION 
    "Mandatory objects for grouping of FEC Statistics Previous Day parameters."

    ::= { oaFecMibMIBGroups 5 }

END
