-- This MIB is designed to manage DAG modules in a Endace appliance. It
-- provides a number of generic interface types supporting Endace SONET and
-- Ethernet PHYs.
-- 
-- 
-- LEGAL NOTICE:
-- This source code:
-- 
-- a) is a proprietary trade secret of Endace Technology Limited or any of
-- its related or affiliated companies, a New Zealand company, and its
-- suppliers and licensors ('Endace'). You must keep it strictly
-- confidential, and you must not copy, modify, disclose or distribute any
-- part of it to anyone else, without the prior written
-- authorisation of Endace Limited;
-- 
-- b) may also be part of inventions that are protected by patents and
-- patent applications; and
-- 
-- c) is copyright (C) to Endace, 2007 to 2021. All rights reserved.
--

ENDACE-MODULE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    endace
        FROM ENDACE-MIB
    EndaceModuleType
        FROM ENDACEModuleType-MIB
    MODULE-COMPLIANCE, NOTIFICATION-GROUP, OBJECT-GROUP
        FROM SNMPv2-CONF
    Counter32, Counter64, Gauge32, Integer32, MODULE-IDENTITY,
    NOTIFICATION-TYPE, OBJECT-IDENTITY, OBJECT-TYPE, TimeTicks,
    Unsigned32
        FROM SNMPv2-SMI
    DisplayString, PhysAddress, TEXTUAL-CONVENTION, TruthValue
        FROM SNMPv2-TC
    ;

shogunModuleMIB MODULE-IDENTITY
    LAST-UPDATED  "202107210349Z" -- July 21, 2021
    ORGANIZATION
        "Endace Technology"
    CONTACT-INFO
        "postal: Endace Technology
         6th floor
         KPMG Centre
         85 Alexandra Street
         Hamilton 3204
         New Zealand

         email:   support@endace.com"
    DESCRIPTION
        "This MIB handles information about DAG Modules in Endace
         appliances, formerly known as 'Shogun'."
    REVISION      "201905010037Z" -- May 01, 2019
    DESCRIPTION
        "Marked Timestamp Conversion notifications as obsolete since
         they are not supported in OSm7.0.0 anymore"
    REVISION      "201402200111Z" -- February 20, 2014
    DESCRIPTION
        "New timestamp converter MOs, deprecated highSpeed MO."
    REVISION      "201310070408Z" -- October 07, 2013
    DESCRIPTION
        "Deprecated 'moduleVoltage', 'modifLastChange' and
         'modifLinkDropThreshold'."
    REVISION      "201301220053Z" -- January 22, 2013
    DESCRIPTION
        "New modifUserLabel and extended modif traps."
    REVISION      "201209242131Z" -- September 24, 2012
    DESCRIPTION
        "New interface types for 10GBASE-L and 10GBASE-W, some OCTET
         strings are DisplayStrings now."
    REVISION      "200910050000Z" -- October 05, 2009
    DESCRIPTION
        "Modified the field type of the moduleTemperature,
         moduleVoltage  entries in the moduleTable from Integer32 to
         Unsigned32."
    REVISION      "200908050000Z" -- August 05, 2009
    DESCRIPTION
        "Fixed standards compliance issues, notifications currently  do
         not conform to the SMIv1 standard. Added additional conformance
         statements and groups for all declared objects."
    REVISION      "200705230000Z" -- May 23, 2007
    DESCRIPTION
        "Added additional SONET level statistics and 64bit FCS counter
         to ethHCStatsTable. This is primarily to support Endace 40Gb/s
         product line.

         Adjusted module compliance to better reflect DAG hardware.
         Reduced the compliance requirements for  some interfaces.

         Added a modifLastChange attribute to record the value of
         sysUpTime when the interface last changed operational state."
    REVISION      "200704230000Z" -- April 23, 2007
    DESCRIPTION
        "Final module and Interface attributes, including but not
         limited to adding a name attribute so that a module and
         interface could be identified by a  unique string from both the
         CLI and the MIB.

         Distinguished between user firmware, factory firm- ware and
         active firmware. We restrict the firmware that is loaded to
         only active firmware."
    REVISION      "200704090000Z" -- April 09, 2007
    DESCRIPTION
        "Removed redundant attributes for modules, these are no longer
         exported by the system."
    REVISION      "200703290000Z" -- March 29, 2007
    DESCRIPTION
        "Added additional attributes to the Ethernet and port
         interfaces. Added additional traps to indicate specialized
         error conditions on the interface and operational status of a
         DAG module."
    REVISION      "200701270000Z" -- January 27, 2007
    DESCRIPTION
        "Initial version provides support for managing Endace
         appliances equipped with standard Endace DAG cards,  referred
         to as 'modules'."
    ::= { endace 2 }

EndaceifType ::= TEXTUAL-CONVENTION
    STATUS        current
    DESCRIPTION
        "This data type is used as the type qualifier for each row in
         the interface table. It provides a connection between the
         interface type and interface specific table."
    SYNTAX        INTEGER {
        -- generic Ethernet interface, good for most Endace Ethernet PHYs
        ethernet(1),
        -- generic SONET interface, good for most Endace SONET PHYs.
        sonet(2),
        -- generic PDH interface, good for most Endace PDH PHYs.
        pdh(3),
        -- 10 Gigabit Ethernet (10GBASE-L)
        ethernetLan(4),
        -- 10 Gigabit Ethernet with Sonet/SDH compatible encoding
        -- (10GBASE-W)
        ethernetWan(5)
    }

InterfaceIndex ::= TEXTUAL-CONVENTION
    DISPLAY-HINT  "x"
    STATUS        current
    DESCRIPTION
        "A unique value, greater then or equal to zero, for  each
         interface in the managed system. It is recommended  that values
         are assigned contiguously starting from 0."
    SYNTAX        Unsigned32

ModuleIndex ::= TEXTUAL-CONVENTION
    DISPLAY-HINT  "x"
    STATUS        current
    DESCRIPTION
        "A unique value, greater then zero, for each module  in the
         managed system. It is recommended that values  are assigned
         according to chases slot number starting  from 1. Numbering
         starting from 1 is due to legacy  restrictions."
    SYNTAX        Unsigned32

moduleMIBObjects OBJECT IDENTIFIER ::= { shogunModuleMIB 1 }

moduleTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF ModuleTableEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "The modules that are accessible for the system. There will be
         one row in this table for each DAG module in the system."
    ::= { moduleMIBObjects 1 }

moduleTableEntry OBJECT-TYPE
    SYNTAX        ModuleTableEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Settings for a particular module on the system."
    INDEX
        { moduleIndex }
    ::= { moduleTable 1 }

ModuleTableEntry ::= SEQUENCE
{
    moduleIndex          ModuleIndex,
    moduleName           DisplayString,
    moduleType           EndaceModuleType,
    moduleActiveFirmware DisplayString,
    moduleOperStatus     INTEGER,
    moduleLastChange     TimeTicks,
    moduleSnapLen        Unsigned32,
    moduleTemperature    Unsigned32,
    moduleVoltage        Unsigned32
}


moduleIndex OBJECT-TYPE
    SYNTAX        ModuleIndex
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A unique value, greater then zero, for each DAG module. It is
         recommended that values are assigned contiguously starting from
         1. The value for each DAG module must remain constant at  least
         from one re-initialization of the entity's network management
         system to the next re-initialization. The moduleIndex
         corresponds to its slot number within the system chassis."
    ::= { moduleTableEntry 1 }

moduleName OBJECT-TYPE
    SYNTAX        DisplayString (SIZE(0..255))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A unique string that identifies the module within the
         system."
    ::= { moduleTableEntry 2 }

moduleType OBJECT-TYPE
    SYNTAX        EndaceModuleType
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The moduleType field allows us to store module specific
         information for a module in a separate table indexed by
         moduleIndex. Types are assigned by Endace, and updated  through
         the use of the EndaceModuleType textual convention."
    ::= { moduleTableEntry 3 }

moduleActiveFirmware OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A unique string identifying the current active firmware on the
         module."
    ::= { moduleTableEntry 4 }

moduleOperStatus OBJECT-TYPE
    SYNTAX        INTEGER {
        up(1),
        down(2),
        -- in some unknown mode
        unknown(3)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The operational state of the module. moduleOperStatus  may
         have the value up(1), down(2) or unknown(3). There is currently
         no support for the values 'dormant', 'notPresent',
         'lowerLayerDown' or 'testing'."
    ::= { moduleTableEntry 5 }

moduleLastChange OBJECT-TYPE
    SYNTAX        TimeTicks
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The value of sysUpTime at the time the module entered its
         current operational state. If the current state was entered
         prior  to the last re-initialization of the local network
         management  subsystem, then this object contains a zero
         value."
    ::= { moduleTableEntry 6 }

moduleSnapLen OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        obsolete
    DESCRIPTION
        "Packets that are greater in length then the snaplen are
         snapped to the size of moduleSnapLen. Otherwise the behavior of
         snap length is determined by the value of the moduleVarLen
         attribute."
    ::= { moduleTableEntry 7 }

moduleTemperature OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Current temperature of the module."
    ::= { moduleTableEntry 8 }

moduleVoltage OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    not-accessible
    STATUS        deprecated
    DESCRIPTION
        "Current voltage of the module."
    ::= { moduleTableEntry 9 }

moduleInterfaces OBJECT IDENTIFIER ::= { moduleMIBObjects 2 }

-- Access to interfaces through the port table.

modifTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF ModifEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Generic configuration for a collection of interfaces attached
         to a particular system. There will be one row in this table for
         each module interface in the system."
    ::= { moduleInterfaces 1 }

modifEntry OBJECT-TYPE
    SYNTAX        ModifEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Generic configuration for a particular module interface in the
         system."
    INDEX
        { modifModIndex }
    ::= { modifTable 1 }

ModifEntry ::= SEQUENCE
{
    modifModIndex                 InterfaceIndex,
    modifPortLabel                DisplayString,
    modifModule                   Integer32,
    modifName                     DisplayString,
    modifType                     EndaceifType,
    modifMtu                      Integer32,
    modifInAdminStatus            INTEGER,
    modifInOperStatus             INTEGER,
    modifLastChange               TimeTicks,
    modifLinkUpDownTrapEnable     INTEGER,
    modifLinkDropThreshold        Gauge32,
    modifSpeed                    Gauge32,
    modifHighSpeed                Gauge32,
    modifInOctets                 Counter32,
    modifInPackets                Counter32,
    modifInDropPackets            Counter32,
    modifOutOctets                Counter32,
    modifOutPackets               Counter32,
    modifHCInOctets               Counter64,
    modifHCInPackets              Counter64,
    modifHCInDropPackets          Counter64,
    modifHCOutOctets              Counter64,
    modifHCOutPackets             Counter64,
    modifCounterDiscontinuityTime TimeTicks,
    modifHCInErrors               Counter64,
    modifUserLabel                DisplayString,
    modifPhysAddr                 PhysAddress
}


modifModIndex OBJECT-TYPE
    SYNTAX        InterfaceIndex
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An integer value identifying a unique interface on a system,
         if on a module. It is unique for all interfaces on the
         system."
    ::= { modifEntry 1 }

modifPortLabel OBJECT-TYPE
    SYNTAX        DisplayString (SIZE(2))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A character value that identifies the physical interface
         number relative to a specific module. It is only unique within
         a  specific module and cannot be used to index the interface
         table."
    ::= { modifEntry 2 }

modifModule OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An integer value identifying the unique module on the system,
         to which this interface belongs. This value is the same as the
         moduleIndex number assigned to the module."
    ::= { modifEntry 3 }

modifName OBJECT-TYPE
    SYNTAX        DisplayString (SIZE(0..255))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A unique string that identifies the module within the
         system."
    ::= { modifEntry 4 }

modifType OBJECT-TYPE
    SYNTAX        EndaceifType
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A unique string specifying a if specific table for port
         specific attributes."
    ::= { modifEntry 5 }

modifMtu OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The size of the largest packet which can be sent/received on
         the interface, specified in octets."
    ::= { modifEntry 6 }

modifInAdminStatus OBJECT-TYPE
    SYNTAX        INTEGER {
        -- read to receive packets
        up(1),
        down(2),
        unknown(3)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The desired operational state of the interface. By default all
         interfaces are initialized to an admin status of up(1), meaning
         they will receive packets. Subsequently the value  of the
         modifInAdminStatus can be changed to the down(2) state. If the
         operational state is unknown then it will have a value of
         unknown(3). There may be some momentary disconnect  between the
         desired state of the interface and its current operational
         state, as the interface may take some time to  move between
         states."
    ::= { modifEntry 7 }

modifInOperStatus OBJECT-TYPE
    SYNTAX        INTEGER {
        up(1),
        down(2),
        unknown(3)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Returns the current operational state of the interface. If the
         interface can receive packets then it will be set to up(1),
         otherwise it will be set to down(2). By default, this object
         will have the value of up(1). If the operational state is
         unknown then it will have a value of unknown(3)."
    ::= { modifEntry 8 }

modifLastChange OBJECT-TYPE
    SYNTAX        TimeTicks
    MAX-ACCESS    not-accessible
    STATUS        deprecated
    DESCRIPTION
        "The value of sysUpTime at the time the interface entered its
         current operational state. If the current state was  entered
         prior to the last re-initialization of the local management
         subsystem, then this object contains a 0 value."
    ::= { modifEntry 9 }

modifLinkUpDownTrapEnable OBJECT-TYPE
    SYNTAX        INTEGER {
        enabled(1),
        disabled(2)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Indicates whether modlinkUp/modlinkDown traps should be
         generated for this interface. By default, this object will have
         the  value of enabled(1)."
    ::= { modifEntry 10 }

modifLinkDropThreshold OBJECT-TYPE
    SYNTAX        Gauge32
    MAX-ACCESS    not-accessible
    STATUS        deprecated
    DESCRIPTION
        "The number of dropped packets per second before which a
         dropFault will be raised. By default, this object will have the
         value of 1000. If set to 0, it will disable the generation of
         dropFault notifications."
    ::= { modifEntry 11 }

modifSpeed OBJECT-TYPE
    SYNTAX        Gauge32
    UNITS         "Mbps"
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "An estimate of the interfaces current bandwidth in million
         bits per second (Mbits/s)."
    ::= { modifEntry 12 }

modifHighSpeed OBJECT-TYPE
    SYNTAX        Gauge32
    MAX-ACCESS    read-only
    STATUS        obsolete
    DESCRIPTION
        "The use of this MO is deprecated."
    ::= { modifEntry 13 }

modifInOctets OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        deprecated
    DESCRIPTION
        "Count of the In Octets that have been received on the
         interface including framing characters. This value will  be
         reinitialized by the management system, and at other  times as
         indicated by the value of the modifCounterDiscontinuityTime."
    ::= { modifEntry 14 }

modifInPackets OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        deprecated
    DESCRIPTION
        "Count of the In packets that have been received on the
         interface. This value will be reinitialized by the management
         system, and at other times as indicated by the value of the
         modifCounterDiscontinuityTime."
    ::= { modifEntry 15 }

-- This value is not supported on DAG 9.2x cards and may be empty.

modifInDropPackets OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        deprecated
    DESCRIPTION
        "Count of the In packets that have been dropped at the PHY
         interface. This value will be reinitialized by the management
         system, and at other times as indicated by the value of the
         modifCounterDiscontinuityTime."
    ::= { modifEntry 16 }

modifOutOctets OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        deprecated
    DESCRIPTION
        "Count of the Out Octets that have been transmitted on the
         interface. This value will be reinitialized by the management
         system, and at other times as indicated by the value of the
         modifCounterDiscontinuityTime."
    ::= { modifEntry 17 }

modifOutPackets OBJECT-TYPE
    SYNTAX        Counter32
    MAX-ACCESS    read-only
    STATUS        deprecated
    DESCRIPTION
        "Count of the Out packets that have been transmitted on the
         interface. This value will be reinitialized by the management
         system, and at other times as indicated by the value of the
         modifCounterDiscontinuityTime."
    ::= { modifEntry 18 }

modifHCInOctets OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The total number of octets received on the interface including
         framing characters. This object is a 64bit version of
         modifInOctets. This value will be reinitialized by the
         management system, and at other times as indicated by  the
         value of modifCounterDiscontinuityTime."
    ::= { modifEntry 19 }

modifHCInPackets OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The total number of packets received on the interface.  This
         object is a 64bit version of modifInPackets. This value will be
         reinitialized by the management system, and at other times as
         indicated by the value of modifCounterDiscontinuityTime."
    ::= { modifEntry 20 }

-- This value is not supported on DAG9.2x cards and may be empty.

modifHCInDropPackets OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The total number of packets that have been dropped at the PHY
         interface. This object is a 64bit version of the
         modifInDropPackets. This value will be reinitialized by the
         management system, and at other times as indicated by the value
         of the modifCounterDiscontinuityTime."
    ::= { modifEntry 21 }

modifHCOutOctets OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The total number of octets sent on the interface. This object
         is a 64bit version of modifOutOctets. This value will be
         reinitialized by the management system, and at other times as
         indicated by the value of modifCounterDiscontinuityTime."
    ::= { modifEntry 22 }

modifHCOutPackets OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The total number of packets sent on the interface. This object
         is a 64bit version of modifOutPackets. This value will be
         reinitialized by the management system, and at other times as
         indicated by the value of modifCounterDiscontinuityTime."
    ::= { modifEntry 23 }

modifCounterDiscontinuityTime OBJECT-TYPE
    SYNTAX        TimeTicks
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The value of sysUpTime on the most recent occasion at which
         any one or more of this interface's counters suffered a
         discontinuity. The relevant counters are the specific instances
         associated with this interface of any Counter32 or Counter64
         object contained in the modifTable. This value is 0 if no such
         discontinuities have occurred since the last  re-initialization
         of the local management subsystem."
    ::= { modifEntry 24 }

modifHCInErrors OBJECT-TYPE
    SYNTAX        Counter64
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The total number of receive errors on this PHY interface."
    ::= { modifEntry 25 }

modifUserLabel OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "User definable label for DAG ports."
    ::= { modifEntry 26 }

modifPhysAddr OBJECT-TYPE
    SYNTAX        PhysAddress (SIZE(0..18))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Physical address of the interface (MAC address)."
    ::= { modifEntry 27 }

modoptTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF ModoptEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Table with information about all DAG SFP Modules."
    ::= { moduleInterfaces 3 }

modoptEntry OBJECT-TYPE
    SYNTAX        ModoptEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Row of table with information about all DAG SFP Modules."
    INDEX
        { modoptIndex }
    ::= { modoptTable 1 }

ModoptEntry ::= SEQUENCE
{
    modoptIndex      Unsigned32,
    modoptName       DisplayString,
    modoptDetect     TruthValue,
    modoptLOS        TruthValue,
    modoptRxPower    DisplayString,
    modoptRxPowerOk  TruthValue,
    modoptTxPower    DisplayString,
    modoptTxPowerOk  TruthValue,
    modoptTemp       DisplayString,
    modoptTempOk     TruthValue,
    modoptVolt       DisplayString,
    modoptVoltOk     TruthValue,
    modoptCompliance DisplayString
}


modoptIndex OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Unique, immutable index of optical modules in DAG cards."
    ::= { modoptEntry 1 }

modoptName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Name of DAG port were the SFP module is plugged in."
    ::= { modoptEntry 2 }

modoptDetect OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Logical indicator where a module was detected or not."
    ::= { modoptEntry 3 }

modoptLOS OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Logical 'Loss of Signal' indicator.

         'true': no signal 'false': signal detected."
    ::= { modoptEntry 4 }

modoptRxPower OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Received optical power in [dbm]."
    ::= { modoptEntry 5 }

modoptRxPowerOk OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Logical indicator that the measured RX power is within the
         allowed range.

         The thresholds can be defined via CLI commands."
    ::= { modoptEntry 6 }

modoptTxPower OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Transmitted optical power in [dbm]."
    ::= { modoptEntry 7 }

modoptTxPowerOk OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Logical indicator that the measured TX power is within the
         allowed range.

         The thresholds can be defined via CLI commands."
    ::= { modoptEntry 8 }

modoptTemp OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Temperature inside the SFP module in [degrees Celsius]."
    ::= { modoptEntry 9 }

modoptTempOk OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Logical indicator that the measured temperature is within the
         allowed range.

         The thresholds can be defined via CLI commands."
    ::= { modoptEntry 10 }

modoptVolt OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Voltage applied to SFP module in [V]."
    ::= { modoptEntry 11 }

modoptVoltOk OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Logical indicator that the applied voltage is within the
         allowed range.

         The thresholds can be defined via CLI commands."
    ::= { modoptEntry 12 }

modoptCompliance OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "List of compliances issued  plugged-in SFP module."
    ::= { modoptEntry 13 }

moduleTraps1 OBJECT IDENTIFIER ::= { moduleMIBObjects 3 }

-- Module Traps

modlinkUp NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        current
    DESCRIPTION
        "A linkup trap signifies that the SNMP entity, acting in an
         agent role has detected that the modifInOperStatus object for
         one of its communication links left the down state and
         transitioned to the up state."
    ::= { moduleTraps1 1 }

modlinkDown NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        current
    DESCRIPTION
        "A linkdown trap signifies that the SNMP entity, acting in an
         agent role, has detected that the modifInOperStatus object for
         one of its communication links left the up state and
         transitioned to the down state."
    ::= { moduleTraps1 2 }

dropFault NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        current
    DESCRIPTION
        "A dropFault trap signifies that the SNMP entity, acting in an
         agent role, has detected that the ifInDropCount or
         ifHCInDropCount has exceeded the modifLinkDropThreshold value
         for an interval of  1 second."
    ::= { moduleTraps1 5 }

dropNormal NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        current
    DESCRIPTION
        "A dropNormal trap signifies that the SNMP entity, acting in an
         agent role, has detected that the ifInDropCount or
         ifHCInDropCount value is less then the modifLinkDropThreshold
         value for an interval of 1 second, after is was in a dropFault
         condition."
    ::= { moduleTraps1 6 }

fcsFault NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        current
    DESCRIPTION
        "A fcsFault trap signifies that the SNMP entity, acting in an
         agent role, has detected that the FCS error count for the
         interface has exceeded the threshold value for an interval of 1
         second."
    ::= { moduleTraps1 7 }

fcsNormal NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        current
    DESCRIPTION
        "A fcsNormal trap signifies that the SNMP entity, acting in an
         agent role, has detected that the FCS error count for the
         interface is less then the threshold value for an interval of 1
         second,  after it was in a fcsFault condition."
    ::= { moduleTraps1 8 }

remoteFault NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        current
    DESCRIPTION
        "A remoteFault trap signifies that the SNMP entity, acting in
         an agent role, has detected that the operational status for the
         remote party has entered an invalid state."
    ::= { moduleTraps1 9 }

timestampConvDropFault NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        obsolete
    DESCRIPTION
        "The Timestamp Conversion Module detected packets with
         out-of-order timestamps.

         These timestamps can corrupt Rotation File and were dropped for
         security reasons. Please check your Timestamp Conversion
         setting and your data source."
    ::= { moduleTraps1 10 }

timestampConvDropNormal NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        obsolete
    DESCRIPTION
        "The Timestamp Conversion Module doesn't detect any
         out-of-order packets for an interval of 1 second,  after is was
         in a timestampConvDropFault condition.

         This could mean that all packet timestamps are in correct order
         or no traffic is coming in."
    ::= { moduleTraps1 11 }

syncLoss NOTIFICATION-TYPE
    OBJECTS
        { moduleIndex, moduleName }
    STATUS        current
    DESCRIPTION
        "A syncLoss trap signifies that the synchronization of the DAG
         Module is lost."
    ::= { moduleTraps1 13 }

syncReturn NOTIFICATION-TYPE
    OBJECTS
        { moduleIndex, moduleName }
    STATUS        current
    DESCRIPTION
        "A syncReturn trap signifies that the synchronization of the
         DAG Module has returned after it was lost."
    ::= { moduleTraps1 14 }

inErrorFault NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        current
    DESCRIPTION
        "An inErrorFault trap signifies that the SNMP entity, acting in
         an  agent role, has detected that the RX error count for the
         interface has exceeded the threshold value for an interval of 1
         second."
    ::= { moduleTraps1 15 }

inErrorNormal NOTIFICATION-TYPE
    OBJECTS
        { modifModIndex, modifName, modifUserLabel, moduleIndex }
    STATUS        current
    DESCRIPTION
        "An inErrorNormal trap signifies that the SNMP entity, acting
         in an agent role, has detected that the RX error count for the
         interface is less then the threshold value for an interval of 1
         second,  after it was in an inErrorFault condition."
    ::= { moduleTraps1 16 }

-- compliance statements

moduleConformance OBJECT IDENTIFIER ::= { shogunModuleMIB 2 }

moduleGroups OBJECT IDENTIFIER ::= { moduleConformance 1 }

-- units of conformance

moduleControlGroup OBJECT-GROUP
    OBJECTS
        { moduleIndex, moduleName, moduleType, moduleActiveFirmware,
        moduleOperStatus, moduleLastChange }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing information applicable to
         controlling all modules.

         The OIDs of objects may be reused in a later version of this
         MIB."
    ::= { moduleGroups 1 }

ifControlGroup OBJECT-GROUP
    OBJECTS
        { modifInAdminStatus, modifInOperStatus,
        modifLinkUpDownTrapEnable, modifModIndex, modifModule, modifMtu,
        modifName, modifPortLabel, modifSpeed, modifType,
        modifUserLabel, modifPhysAddr }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing information applicable to
         all Interfaces."
    ::= { moduleGroups 2 }

ifInPacketGroup OBJECT-GROUP
    OBJECTS
        { modifInOctets, modifInPackets, modifInDropPackets }
    STATUS        deprecated
    DESCRIPTION
        "A collection of objects providing ingress information for all
         packet oriented network interfaces.

         This group is deprecated since the counter size of 32bits is
         not suitable for higher bandwidths."
    ::= { moduleGroups 3 }

ifOutPacketGroup OBJECT-GROUP
    OBJECTS
        { modifOutPackets, modifOutOctets }
    STATUS        deprecated
    DESCRIPTION
        "A collection of objects providing egress information for all
         packet orientated network interfaces.

         This group is deprecated since the counter size of 32bits is
         not suitable for higher bandwidths."
    ::= { moduleGroups 4 }

ifInHCPacketGroup OBJECT-GROUP
    OBJECTS
        { modifHCInOctets, modifHCInPackets, modifHCInDropPackets,
        modifHCInErrors }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing ingress information  for
         high speed packet oriented network interfaces. A high  speed
         network is one that can transmit and receive at speeds  greater
         then 650,000,000 bits/second."
    ::= { moduleGroups 5 }

ifOutHCPacketGroup OBJECT-GROUP
    OBJECTS
        { modifHCOutOctets, modifHCOutPackets }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing egress information for high
         speed packet oriented network interfaces. A high speed network
         is one that can transmit and receive at speeds greater then
         650,000,000 bits/second."
    ::= { moduleGroups 6 }

ifModCounterDiscontinuityGroup OBJECT-GROUP
    OBJECTS
        { modifCounterDiscontinuityTime }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing information specific to
         interface counter discontinuities."
    ::= { moduleGroups 7 }

linkTrapsGroup NOTIFICATION-GROUP
    NOTIFICATIONS
        { modlinkUp, modlinkDown }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing information about  link
         status for all packet oriented network interfaces  in the
         system."
    ::= { moduleGroups 8 }

linkTrapsDrop NOTIFICATION-GROUP
    NOTIFICATIONS
        { dropFault, dropNormal }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing information about  drop
         counts for all packet oriented network interfaces  in the
         system."
    ::= { moduleGroups 9 }

linkTrapsErrors NOTIFICATION-GROUP
    NOTIFICATIONS
        { fcsFault, fcsNormal, remoteFault, syncLoss, syncReturn }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing information about
         notifications raised when certain error conditions arise on a
         module link."
    ::= { moduleGroups 10 }

modoptGroup OBJECT-GROUP
    OBJECTS
        { modoptCompliance, modoptDetect, modoptLOS, modoptName,
        modoptRxPower, modoptRxPowerOk, modoptTemp, modoptTempOk,
        modoptTxPower, modoptTxPowerOk, modoptVolt, modoptVoltOk }
    STATUS        current
    DESCRIPTION
        "Group of all OID describing optical modules."
    ::= { moduleGroups 11 }

moduleTrapsState NOTIFICATION-GROUP
    NOTIFICATIONS
        { inErrorFault, inErrorNormal }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing information about
         notifications raised when the module is in different states."
    ::= { moduleGroups 12 }

modulePhysStatusGroup OBJECT-GROUP
    OBJECTS
        { moduleTemperature }
    STATUS        current
    DESCRIPTION
        "A collection of objects providing information applicable to
         the physical status of a module."
    ::= { moduleGroups 16 }

timestampConvertNotifyGroup NOTIFICATION-GROUP
    NOTIFICATIONS
        { timestampConvDropFault, timestampConvDropNormal }
    STATUS        obsolete
    DESCRIPTION
        "Timestamp conversion drops are only signaled, if the timestamp
         conversion module, that convert converts incoming timestamps
         into ERF timestamps detected packets that are out of order.

         This is to protect Data Pipes and Rotation Files from getting
         corrupted because of out-of-order timestamps."
    ::= { moduleGroups 17 }

obsoleteGroup OBJECT-GROUP
    OBJECTS
        { modifHighSpeed, moduleSnapLen }
    STATUS        obsolete
    DESCRIPTION
        "This group collects all obsolete Objects."
    ::= { moduleGroups 18 }

moduleCompliances OBJECT IDENTIFIER ::= { moduleConformance 2 }

moduleCompliance1 MODULE-COMPLIANCE
    STATUS         obsolete
    DESCRIPTION
        "The compliance statement for Endace managed network  entities
         that have DAG modules."

    MODULE         ENDACE-MODULE-MIB
        MANDATORY-GROUPS
            { ifControlGroup, ifInHCPacketGroup, ifOutHCPacketGroup,
            linkTrapsDrop, linkTrapsGroup, moduleControlGroup }

        GROUP          obsoleteGroup
        DESCRIPTION
            "List of obsolete objects."

        GROUP          moduleTrapsState
        DESCRIPTION
            "This group is mandatory if the module has changed
             operational state during operation."

        GROUP          linkTrapsErrors
        DESCRIPTION
            "This group is mandatory for those modules that support
             certain error conditions on a per-link basis."

        GROUP          ifModCounterDiscontinuityGroup
        DESCRIPTION
            "This group is mandatory for those network interfaces that
             are required to maintain counters (i.e., those for which
             one of the ifPacketGroup or ifHCPacketGroup is
             mandatory)."

        GROUP          timestampConvertNotifyGroup
        DESCRIPTION
            "This Notification group is obsolete:

             Timestamp conversion drops are only signaled, if the
             timestamp conversion module that convert converts incoming
             timestamps into ERF timestamps detected packets that are
             out of order.

             This is to protect Data Pipes and Rotation Files from
             getting corrupted because of out-of-order timestamps."

        OBJECT         modifLinkUpDownTrapEnable
        MIN-ACCESS     read-only
        DESCRIPTION
            "Write access is not required."
    ::= { moduleCompliances 1 }

END
