-- *****************************************************************
-- INFINERA-PM-FC-MIB
-- Copyright (c) 2009-2012 by Infinera Inc.
-- All rights reserved.
-- ****************************************************************

INFINERA-PM-FC-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32, Counter64                        FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP             FROM SNMPv2-CONF
    DisplayString, TruthValue                   FROM SNMPv2-TC
    ifIndex                                     FROM IF-MIB
    HCPerfIntervalCount                         FROM HC-PerfHist-TC-MIB
    InfnServiceType,InfnSampleDuration          FROM INFINERA-TC-MIB
    perfMon                                     FROM INFINERA-REG-MIB;


fcPmMIB MODULE-IDENTITY
    LAST-UPDATED  "200907200000Z"
    ORGANIZATION  "Infinera"
    CONTACT-INFO
        "Infinera
        1322 Bordeaux Drive
        Sunnyvale, CA - 94089

        Contact : Technical Support
        Email   : support@infinera.com
        Phone   : 1-877-INF-5288"
    DESCRIPTION
        " "
    REVISION      "200907200000Z" 
    DESCRIPTION
        "First Version"
    ::= { perfMon 23 }



fcPmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FcPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of Fiber Channel Performance monitoring entries. Each entry is uniquely identified by the value of 
                ifIndex, sampleDuration and FcPmTimestamp."
    ::= { fcPmMIB 2 } 

fcPmEntry  OBJECT-TYPE
    SYNTAX      FcPmEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Fiber Channel entry containing historical performance information pertaining to Infinera Fiber Channel interfaces.
        Entries will exist in this table for interfaces of type Fiber channel.
        Each interface may have a number of entries in this table, each with a different combination
        of timestamp and sample duration."
    INDEX { ifIndex, fcPmSampleDuration, fcPmTimestamp }
    ::= { fcPmTable 1 }


FcPmEntry  ::= SEQUENCE {
    fcPmTimestamp                        Integer32,
    fcPmSampleDuration                   InfnSampleDuration,
    fcPmValidity                         TruthValue,
    fcPmRxPcsICG                         HCPerfIntervalCount,
    fcPmTxPcsICG                         HCPerfIntervalCount,
    fcPmRxPcsSESS                        Integer32,
    fcPmTxPcsSESS                        Integer32,
    fcPmRxPcsSES                         Integer32,
    fcPmTxPcsSES                         Integer32,
    fcPmRxPcsES                          Integer32,
    fcPmTxPcsES                          Integer32,
    fcPmRxFrames                         HCPerfIntervalCount,
    fcPmTxFrames                         HCPerfIntervalCount,
    fcPmRxErroredFrames                  HCPerfIntervalCount,
    fcPmTxErroredFrames                  HCPerfIntervalCount,
    fcPmRxOctets                         HCPerfIntervalCount,
    fcPmTxOctets                         HCPerfIntervalCount,
    fcPmRxErroredOctets                  HCPerfIntervalCount,
    fcPmTxErroredOctets                  HCPerfIntervalCount,
    fcPmRxFcSES                          Integer32,
    fcPmTxFcSES                          Integer32,
    fcPmCircuitId                        DisplayString,
    fcPmPayloadType                      InfnServiceType,
    fcPmLineTestSigSyncErr    Integer32,
    fcPmLineTestSigErr        Integer32,
    fcPmTribTestSigSyncErr    Integer32,
    fcPmTribTestSigErr        Integer32

}

fcPmTimestamp OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "End Time stamp for this interval. If this time is later than the current time,
        then the data for this bucket is currently being collected."
    ::= { fcPmEntry  1 }


fcPmSampleDuration OBJECT-TYPE
    SYNTAX      InfnSampleDuration
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The duration of this sample."
    ::= { fcPmEntry  2 }


fcPmValidity OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Flag indicating if data was valid for the entire interval"
    ::= { fcPmEntry  3 }


fcPmRxPcsICG OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Invalid Code Group at ingress direction."
    ::= { fcPmEntry  4 }

fcPmTxPcsICG OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "count of Invalid Code Group at egress direction."
    ::= { fcPmEntry  5 }

fcPmRxPcsSESS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Severely Errored Sync Seconds at ingress direction."
    ::= { fcPmEntry  6 }


fcPmTxPcsSESS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Severely Errored Sync Seconds at egress direction."
    ::= { fcPmEntry  7 }

fcPmRxPcsSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Severely Errored Seconds at ingress direction at PCS layer."
    ::= { fcPmEntry  8 }

fcPmTxPcsSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Severely Errored Seconds at egress direction at PCS layer."
    ::= { fcPmEntry  9 }

fcPmRxPcsES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Errored Seconds at ingress direction."
    ::= { fcPmEntry  10 }

fcPmTxPcsES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Errored Seconds at egress direction."
    ::= { fcPmEntry  11 }

fcPmRxFrames OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Frames accumulated at ingress."
    ::= { fcPmEntry  12 }

fcPmTxFrames OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Frames accumulated at egress."
    ::= { fcPmEntry  13 }

fcPmRxErroredFrames OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Errored Frames accumulated at ingress."
    ::= { fcPmEntry  14 }

fcPmTxErroredFrames OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Errored Frames accumulated at egress."
    ::= { fcPmEntry  15 }

fcPmRxOctets OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Octets accumulated at ingress."
    ::= { fcPmEntry  16 }

fcPmTxOctets OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Octets accumulated at egress."
    ::= { fcPmEntry  17 }

fcPmRxErroredOctets OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Errored Octets accumulated at ingress."
    ::= { fcPmEntry  18 }

fcPmTxErroredOctets OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Errored Octets accumulated at egress."
    ::= { fcPmEntry  19 }

fcPmRxFcSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Severely Errored Seconds at ingress direction."
    ::= { fcPmEntry  20 }

fcPmTxFcSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Severely Errored Seconds at egress direction."
    ::= { fcPmEntry  21 }

fcPmCircuitId OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Circuit ID of the Fiber Channel connection."
    ::= { fcPmEntry  22 }

fcPmPayloadType OBJECT-TYPE
    SYNTAX      InfnServiceType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Payload type of Fiber Channel."
    ::= { fcPmEntry  23 }

fcPmLineTestSigSyncErr  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION "Count of Test Siganal Sync Error."
    ::= { fcPmEntry  24 }

fcPmLineTestSigErr   OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION "Count of Test Signal Error"
    ::= { fcPmEntry  25 }

fcPmTribTestSigSyncErr  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION "Count of Test Signal Sync Error."
    ::= { fcPmEntry  26 }

fcPmTribTestSigErr    OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION "Count of  Test Signal Sync Error ."
    ::= { fcPmEntry  27 }




fcPmRealTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FcPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of fcPmReal entries. Each entry is uniquely identified by the value of ifIndex."
    ::= { fcPmMIB 1 } 

fcPmRealEntry  OBJECT-TYPE
    SYNTAX      FcPmRealEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Fiber channel entry containing real-time performance information pertaining to Infinera Fiber channel interfaces.
        Entries will exist in this table for interfaces of type Fiber channel."
    INDEX { ifIndex }
    ::= { fcPmRealTable 1 }


FcPmRealEntry  ::= SEQUENCE {
    fcPmRealRxPcsICG                     HCPerfIntervalCount,
    fcPmRealTxPcsICG                     HCPerfIntervalCount,
    fcPmRealRxPcsSESS                    Integer32,
    fcPmRealTxPcsSESS                    Integer32,
    fcPmRealRxPcsSES                     Integer32,
    fcPmRealTxPcsSES                     Integer32,
    fcPmRealRxPcsES                      Integer32,
    fcPmRealTxPcsES                      Integer32,
    fcPmRealRxFrames                     HCPerfIntervalCount,
    fcPmRealTxFrames                     HCPerfIntervalCount,
    fcPmRealRxErroredFrames              HCPerfIntervalCount,
    fcPmRealTxErroredFrames              HCPerfIntervalCount,
    fcPmRealRxOctets                     HCPerfIntervalCount,
    fcPmRealTxOctets                     HCPerfIntervalCount,
    fcPmRealRxErroredOctets              HCPerfIntervalCount,
    fcPmRealTxErroredOctets              HCPerfIntervalCount,
    fcPmRealRxFcSES                      Integer32,
    fcPmRealTxFcSES                      Integer32,
    fcPmRealLineTestSigSyncErr    Integer32,
    fcPmRealLineTestSigErr        Integer32,
    fcPmRealTribTestSigSyncErr    Integer32,
    fcPmRealTribTestSigErr        Integer32
}

fcPmRealRxPcsICG OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Invalid Code Group at ingress direction."
    ::= { fcPmRealEntry  1 }

fcPmRealTxPcsICG OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "count of Invalid Code Group at egress direction."
    ::= { fcPmRealEntry  2 }

fcPmRealRxPcsSESS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Severely Errored Sync Seconds at ingress direction."
    ::= { fcPmRealEntry  3 }

fcPmRealTxPcsSESS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Severely Errored Sync Seconds at egress direction ."
    ::= { fcPmRealEntry  4 }

fcPmRealRxPcsSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Severely Errored Seconds at egress direction at PCS layer."
    ::= { fcPmRealEntry  5 }

fcPmRealTxPcsSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Severely Errored Seconds at egress direction at PCS layer ."
    ::= { fcPmRealEntry  6 }

fcPmRealRxPcsES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Severely Errored Seconds at ingress direction at PCS layer."
    ::= { fcPmRealEntry  7 }

fcPmRealTxPcsES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Errored Seconds at egress direction."
    ::= { fcPmRealEntry  8 }

fcPmRealRxFrames OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Errored Seconds at ingress direction."
    ::= { fcPmRealEntry  9 }

fcPmRealTxFrames OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Frames accumulated at egress."
    ::= { fcPmRealEntry  10 }

fcPmRealRxErroredFrames OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Number of Errored Frames accumulated at ingress."
    ::= { fcPmRealEntry  11 }

fcPmRealTxErroredFrames OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Number of Errored Frames accumulated at egress."
    ::= { fcPmRealEntry  12 }

fcPmRealRxOctets OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Number of Octets accumulated at ingress."
    ::= { fcPmRealEntry  13 }

fcPmRealTxOctets OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Number of Octets accumulated at egress."
    ::= { fcPmRealEntry  14 }

fcPmRealRxErroredOctets OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Number of Errored Octets accumulated at ingress."
    ::= { fcPmRealEntry  15 }

fcPmRealTxErroredOctets OBJECT-TYPE
    SYNTAX      HCPerfIntervalCount
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Number of Errored Octets accumulated at egress."
    ::= { fcPmRealEntry  16 }

fcPmRealRxFcSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Count of Severely Errored Seconds at ingress direction."
    ::= { fcPmRealEntry  17 }

fcPmRealTxFcSES OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " Count of Severely Errored Seconds at egress direction."
    ::= { fcPmRealEntry  18 }

fcPmRealLineTestSigSyncErr OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION "Count of the number of times re-sync has been attempted after initial sync was achieved. Incremented only when PRBS monitoring is enabled."
    ::= { fcPmRealEntry  19 }


fcPmRealLineTestSigErr OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION "Count of the number of bits not matching the expected pattern (whether synch has been achieved or not). Incremented only when PRBS monitoring is enabled."
    ::= { fcPmRealEntry  20 }


fcPmRealTribTestSigSyncErr OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION "Count of the number of times re-sync has been attempted after initial sync was achieved. Incremented only when PRBS monitoring is enabled."
    ::= { fcPmRealEntry  21 }


fcPmRealTribTestSigErr OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION "Count of the number of bits not matching the expected pattern (whether synch has been achieved or not). Incremented only when PRBS monitoring is enabled."
    ::= { fcPmRealEntry  22 }


-- Conformance Statements
fcPmConformance    OBJECT IDENTIFIER ::= { fcPmMIB 3 }
fcPmCompliances    OBJECT IDENTIFIER ::= { fcPmConformance 1 }
fcPmGroups         OBJECT IDENTIFIER ::= { fcPmConformance 2 }

fcPmCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the PM-Fc-MIB"
    MODULE
        MANDATORY-GROUPS { fcPmGroup }
    ::= { fcPmCompliances 1 }

fcPmRealCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
    "Describes the requirements for conformance to the fcPmReal-MIB"
    MODULE
        MANDATORY-GROUPS { fcPmRealGroup }
    ::= { fcPmCompliances 2 }

fcPmGroup OBJECT-GROUP
    OBJECTS {
    fcPmTimestamp,
    fcPmSampleDuration,
    fcPmValidity,
    fcPmRxPcsICG,
    fcPmTxPcsICG,
    fcPmRxPcsSESS,
    fcPmTxPcsSESS,
    fcPmRxPcsSES,
    fcPmTxPcsSES,
    fcPmRxPcsES,
    fcPmTxPcsES,
    fcPmRxFrames,
    fcPmTxFrames,
    fcPmRxErroredFrames ,
    fcPmTxErroredFrames ,
    fcPmRxOctets,
    fcPmTxOctets,
    fcPmRxErroredOctets ,
    fcPmTxErroredOctets ,
    fcPmRxFcSES,
    fcPmTxFcSES,
    fcPmLineTestSigSyncErr,
    fcPmLineTestSigErr       ,
    fcPmTribTestSigSyncErr,
    fcPmTribTestSigErr        
    }
    STATUS current
    DESCRIPTION
        "A collection of objects for reading the performance of the Fiber channel."
    ::= { fcPmGroups 1 }

fcPmRealGroup OBJECT-GROUP
    OBJECTS {
    fcPmRealRxPcsICG,
    fcPmRealTxPcsICG,
    fcPmRealRxPcsSESS,
    fcPmRealTxPcsSESS,
    fcPmRealRxPcsSES,
    fcPmRealTxPcsSES,
    fcPmRealRxPcsES,
    fcPmRealTxPcsES,
    fcPmRealRxFrames,
    fcPmRealTxFrames,
    fcPmRealRxErroredFrames,
    fcPmRealTxErroredFrames,
    fcPmRealRxOctets,
    fcPmRealTxOctets,
    fcPmRealRxErroredOctets,
    fcPmRealTxErroredOctets,
    fcPmRealRxFcSES,
    fcPmRealTxFcSES,
    fcPmRealLineTestSigSyncErr,
    fcPmRealLineTestSigErr,
    fcPmRealTribTestSigSyncErr,
    fcPmRealTribTestSigErr

    }
    STATUS current
    DESCRIPTION
        "A collection of objects for reading the real-time performance of the Fiber channel."
    ::= { fcPmGroups 2 }

END
