-- Box Services MIB overview:
-- Box Services MIB falls under dnOS MIB node of the private subtree.

DNOS-BOXSERVICES-PRIVATE-MIB DEFINITIONS ::= BEGIN

-- Broadcom DNOS Box Services MIB
-- Copyright 2017-2020 Broadcom.
-- This SNMP Management Information Specification
-- embodies Broadcom's confidential and proprietary
-- intellectual property.  Broadcom retains all title
-- and ownership in the Specification including any revisions.

-- This Specification is supplied "AS IS", Broadcom 
-- makes no warranty, either expressed or implied,
-- as to the use, operation, condition, or performance of the
-- Specification.


IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Unsigned32, Integer32, Gauge32      FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, TruthValue      FROM SNMPv2-TC
    DisplayString                       FROM RFC1213-MIB
    CounterBasedGauge64                 FROM HCNUM-TC
    DeciInteger32, MilliInteger32, DBmHundreths  FROM DNOS-TC
    dnOS                            FROM DELL-REF-MIB;

    fastPathBoxServices MODULE-IDENTITY
           LAST-UPDATED  "202106020000Z" -- 02 Jun 2021 12:00:00 GMT
           ORGANIZATION "Dell"
           CONTACT-INFO ""
 
      DESCRIPTION
          "The Broadcom Private MIB for DNOS Box Services Feature."

      -- Revision history.
      REVISION
          "202106020000Z" -- 02 Jun 2021 12:00:00 GMT
      DESCRIPTION
          "boxServicesFiberPortsOpticsInfoTable(19) is added to display the Fiber port optics information."
      REVISION
          "202005210000Z" -- 21 May 2020 12:00:00 GMT
      DESCRIPTION
          "Support for Fiber port optics Diagonostics."
      REVISION
          "201806300000Z" -- 30 June 2018 12:00:00 GMT
      DESCRIPTION
          "General cleanup to make MIB more conformant with SMIv2."
      REVISION
          "201708040000Z" -- 04 Aug 2017 12:00:00 GMT
      DESCRIPTION
          "Max Access of Dying Gasp trap updated."
      REVISION
          "201101260000Z" -- 26 Jan 2011 12:00:00 GMT
      DESCRIPTION
          "Postal address updated."
      REVISION
          "200802220000Z" -- 22 Feb 2008 12:00:00 GMT
      DESCRIPTION
          "Dell branding related changes."
 

      ::= { dnOS 43 }

BoxsTemperatureStatus ::= TEXTUAL-CONVENTION
   STATUS  current
   DESCRIPTION
           "The temperature state"
   SYNTAX      INTEGER {
                        low(0),
                        normal(1),
                        warning(2),
                        critical(3),
                        shutdown(4),
                        notpresent(5),
                        notoperational(6)
                       }

--**************************************************************************************
--    boxServicesGroup
--
--    This group provides configuration and status of the Box Services
--    feature.  
--
--**************************************************************************************

        boxServicesGroup               OBJECT IDENTIFIER ::= { fastPathBoxServices 1 }
  
   --**************************************************************************************
   -- Some scalars
   
    boxServicesNormalTempRangeMin OBJECT-TYPE
      SYNTAX     Integer32 (-100..100)
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " Lower boundary of normal temperature range."
    ::= { boxServicesGroup 1 }

    boxServicesNormalTempRangeMax OBJECT-TYPE
      SYNTAX     Integer32 (-100..100)
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " Upper boundary of normal temperature range."
    ::= { boxServicesGroup 2 }

    boxServicesTemperatureTrapEnable OBJECT-TYPE
      SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
                  }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " Enable or disable temperature change event trap, raised when 
         temperature crosses boundaries of normal range"
    ::= { boxServicesGroup 3 }

    boxServicesPSMStateTrapEnable OBJECT-TYPE
      SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
                  }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " Enable or disable Power Supply Module state change trap."
    ::= { boxServicesGroup 4 }
    
    boxServicesFanStateTrapEnable OBJECT-TYPE
      SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
                  }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       " Enable or disable Fan state change trap."
    ::= { boxServicesGroup 5 }

boxsPwrUsageHistoryUnitSampleInterval         OBJECT-TYPE 
         SYNTAX      INTEGER (30..86400)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
            "Interval at which power consumption data needs to be collected."

         ::= { boxServicesGroup 10 }

boxsPwrUsageHistoryUnitMaxSamples         OBJECT-TYPE 
         SYNTAX      INTEGER (1..168)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
            "Maximum number of samples to keep."
         ::= { boxServicesGroup 11 }


    boxServicesThermalShutdownSensor         OBJECT-TYPE 
         SYNTAX      Unsigned32
         MAX-ACCESS  accessible-for-notify
         STATUS      current
         DESCRIPTION
            "The number of the sensor which initiated thermal shutdown."
         ::= { boxServicesGroup 13 }

    boxServicesThermalShutdownTemperature    OBJECT-TYPE 
         SYNTAX      Unsigned32
         MAX-ACCESS  accessible-for-notify
         STATUS      current
         DESCRIPTION
            "The temperature of the sensor which initiated thermal shutdown."
         ::= { boxServicesGroup 14 }

   --**************************************************************************************
   -- boxServicesFans

    boxServicesFansTable OBJECT-TYPE
         SYNTAX SEQUENCE OF BoxServicesFansEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Fan Table"
         ::= { boxServicesGroup 6 }

    boxServicesFansEntry OBJECT-TYPE
         SYNTAX      BoxServicesFansEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Box Services Fan Entry"
         INDEX { boxServicesFanUnitIndex , boxServicesFansIndex }
         ::= { boxServicesFansTable 1 }

    BoxServicesFansEntry ::= SEQUENCE {
          boxServicesFanUnitIndex
              Unsigned32,
          boxServicesFansIndex
              Integer32,
          boxServicesFanItemType
              INTEGER,
          boxServicesFanItemState
              INTEGER,
          boxServicesFanSpeed
              Integer32,
          boxServicesFanDutyLevel
              Integer32
          }

    boxServicesFanUnitIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..12)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Unit index for an entry in the Box Services Fan Table"
         ::= { boxServicesFansEntry 6 }

    boxServicesFansIndex OBJECT-TYPE
         SYNTAX      Integer32 (0..15)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Unique index of fan table entry"
         ::= { boxServicesFansEntry 1 }

    boxServicesFanItemType OBJECT-TYPE
             SYNTAX      INTEGER {
                                  fixed(1),
                                  removable(2),
                                  fixedAC(3),
                                  removableDC(4),
                                  fixedDC(5),
                                  removableAC(6)
                                 }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The type of fan"
         ::= { boxServicesFansEntry 2 }

    boxServicesFanItemState OBJECT-TYPE
             SYNTAX      INTEGER {
                                  notpresent(1),
                                  operational(2),
                                  failed(3),
                                  powering(4),
                                  nopower(5),
                                  notpowering(6),
                                  incompatible(7)
                                 }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The status of fan. nopower(5) - This state means the fan 
                      is present but no AC is connected."
         ::= { boxServicesFansEntry 3 }

      boxServicesFanSpeed OBJECT-TYPE
             SYNTAX      Integer32
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                          "The speed of fan"
         ::= { boxServicesFansEntry 4}
         
      boxServicesFanDutyLevel OBJECT-TYPE
             SYNTAX      Integer32
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                          "The duty level of fan, in percents"
         ::= { boxServicesFansEntry 5}

    boxsDyingGaspEventReason    OBJECT-TYPE 
         SYNTAX      DisplayString
         MAX-ACCESS  accessible-for-notify 
         STATUS      current
         DESCRIPTION
                          "Dying Gasp Event Reason code string"
         ::= { boxServicesGroup 17 }

   --**************************************************************************************
   -- boxServicesPowSupplies

    boxServicesPowSuppliesTable OBJECT-TYPE
         SYNTAX SEQUENCE OF BoxServicesPowSuppliesEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Power Supply"
         ::= { boxServicesGroup 7 }

    boxServicesPowSuppliesEntry OBJECT-TYPE
         SYNTAX      BoxServicesPowSuppliesEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Box Services Power Supply Entry"
         INDEX { boxServicesPowerSuppUnitIndex, boxServicesPowSupplyIndex }
         ::= { boxServicesPowSuppliesTable 1 }

    BoxServicesPowSuppliesEntry ::= SEQUENCE {
          boxServicesPowerSuppUnitIndex
              Unsigned32,
          boxServicesPowSupplyIndex
              Integer32,
          boxServicesPowSupplyItemType
              INTEGER,
          boxServicesPowSupplyItemState
              INTEGER
          }

    boxServicesPowerSuppUnitIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..12)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Unit index for an entry in the Box Services Power Supply Table"
         ::= { boxServicesPowSuppliesEntry 4 }

    boxServicesPowSupplyIndex OBJECT-TYPE
         SYNTAX      Integer32 (0..7)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Unique index of Power Supply Table entry"
         ::= { boxServicesPowSuppliesEntry 1 }

    boxServicesPowSupplyItemType OBJECT-TYPE
             SYNTAX      INTEGER {
                                  fixed(1),
                                  removable(2),
                                  fixedAC(3),
                                  removableDC(4),
                                  fixedDC(5),
                                  removableAC(6) 
                                 }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The type of Power Supply"
         ::= { boxServicesPowSuppliesEntry 2 }


    boxServicesPowSupplyItemState OBJECT-TYPE
             SYNTAX      INTEGER {
                                  notpresent(1),
                                  operational(2),
                                  failed(3),
                                  powering(4),
                                  nopower(5),
                                  notpowering(6),
                                  incompatible(7)
                                 }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The status of Power Supply. 
                      nopower(5) - This state means the Power Supply is present 
                                   but no AC is connected.
                      incompatible(7) - This state is possible on boards capable
                                   of pluggable Power Supplies."
         ::= { boxServicesPowSuppliesEntry 3 }


 -- Box Services Unit Power Usage History table
    boxsUnitPwrUsageHistoryTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF BoxsUnitPwrUsageHistoryEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
            "A table providing configuration and status of Power Usage History feature"
         ::= { boxServicesGroup 9 }

boxsUnitPwrUsageHistoryEntry OBJECT-TYPE
         SYNTAX      BoxsUnitPwrUsageHistoryEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Power Usage History Table for a Unit."
         INDEX   { boxsPwrUsageHistoryUnitIndex, boxsPwrUsageHistoryUnitSampleIndex }
         ::= { boxsUnitPwrUsageHistoryTable 1 }


    BoxsUnitPwrUsageHistoryEntry::=
         SEQUENCE {
            boxsPwrUsageHistoryUnitIndex
                INTEGER,
            boxsPwrUsageHistoryUnitSampleIndex         
                INTEGER,
            boxsPwrUsageHistoryUnitSampleTime
                DisplayString,
            boxsPwrUsageHistoryUnitPowerConsumption
                Integer32,
            boxsPwrUsageHistoryStackPowerConsumption
                Integer32
         }

boxsPwrUsageHistoryUnitIndex OBJECT-TYPE
         SYNTAX      INTEGER (1..12)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
            "This is a unique index for an entry in the boxsUnitPwrUsageHistoryTable. 
            A non-zero value indicates the unitIndex for the corresponding unit 
            entry in the Power Usage History Table."
         ::= { boxsUnitPwrUsageHistoryEntry 1 }

boxsPwrUsageHistoryUnitSampleIndex         OBJECT-TYPE 
         SYNTAX      INTEGER (1..168)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
            "This is a unique index for an entry in the boxsUnitPwrUsageHistoryTable. 
            A non-zero value indicates the sampleIndex for the corresponding sample 
            entry in the Power Usage History Table."
         ::= { boxsUnitPwrUsageHistoryEntry 2 }

boxsPwrUsageHistoryUnitSampleTime         OBJECT-TYPE 
         SYNTAX      DisplayString (SIZE(1..32))
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
            "Time at which the Sample was collected."
         ::= { boxsUnitPwrUsageHistoryEntry 3}

boxsPwrUsageHistoryUnitPowerConsumption         OBJECT-TYPE 
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
            "Power Consumption (mWatts) at the time of collecting the given sample."

         ::= { boxsUnitPwrUsageHistoryEntry 4 }

boxsPwrUsageHistoryStackPowerConsumption         OBJECT-TYPE 
         SYNTAX      Integer32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
            "Power Consumption (mWatts) per Stack at the time of collecting the given sample."
         ::= { boxsUnitPwrUsageHistoryEntry 5 }
         
   --**************************************************************************************
   -- boxServicesTempSensors

    boxServicesTempSensorsTable OBJECT-TYPE
         SYNTAX SEQUENCE OF BoxServicesTempSensorsEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Temperature sensor"
         ::= { boxServicesGroup 8 }

    boxServicesTempSensorsEntry OBJECT-TYPE
         SYNTAX      BoxServicesTempSensorsEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Box Services Temperature Sensor Entry"
         INDEX { boxServicesUnitIndex, boxServicesTempSensorIndex }
         ::= { boxServicesTempSensorsTable 1 }

    BoxServicesTempSensorsEntry ::= SEQUENCE {
          boxServicesUnitIndex
              Unsigned32,
          boxServicesTempSensorIndex
              Unsigned32,
          boxServicesTempSensorType
              INTEGER,
          boxServicesTempSensorState
              BoxsTemperatureStatus,
          boxServicesTempSensorTemperature
              Integer32
          }
    
    boxServicesUnitIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1..12)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Unit index for an entry in the Box Services Temperature Sensor Table"
         ::= { boxServicesTempSensorsEntry 1 }

    boxServicesTempSensorIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (0..15)
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Unique index of temperature sensor table entry"
         ::= { boxServicesTempSensorsEntry 2 }

    boxServicesTempSensorType OBJECT-TYPE
             SYNTAX      INTEGER {
                                  fixed(1),
                                  removable(2),
                                  fixedAC(3),
                                  removableDC(4),
                                  fixedDC(5),
                                  removableAC(6)
                                 }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The type of temperature sensor"
         ::= { boxServicesTempSensorsEntry 3 }

    boxServicesTempSensorState OBJECT-TYPE
         SYNTAX      BoxsTemperatureStatus 
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "The state of temperature sensor"
         ::= { boxServicesTempSensorsEntry 4 }

      boxServicesTempSensorTemperature OBJECT-TYPE
             SYNTAX      Integer32
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                          "The temperature value reported by sensor"
         ::= { boxServicesTempSensorsEntry 5 }

    boxServicesTempUnitTable OBJECT-TYPE
        SYNTAX SEQUENCE OF BoxServicesTempUnitEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Temperature status table"
        ::= { boxServicesGroup 15 }

    boxServicesTempUnitEntry OBJECT-TYPE
        SYNTAX      BoxServicesTempUnitEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Box Services Temperature Unit Entry"
        INDEX { boxServicesTempUnitIndex }
        ::= { boxServicesTempUnitTable 1 }

    BoxServicesTempUnitEntry ::= SEQUENCE {
        boxServicesTempUnitIndex
           Unsigned32,
        boxServicesTempUnitState
           BoxsTemperatureStatus,
        boxServicesTempUnitTemperature
           Integer32
        }

    boxServicesTempUnitIndex OBJECT-TYPE
        SYNTAX      Unsigned32 (1..12)
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "Unit index for an entry in the Box Services Temperature Unit Table"
        ::= { boxServicesTempUnitEntry 1 }

    boxServicesTempUnitState OBJECT-TYPE
        SYNTAX      BoxsTemperatureStatus 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The temperature state of the unit"
        ::= { boxServicesTempUnitEntry 2 }

    boxServicesTempUnitTemperature OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The highest temperature currently reported by any sensor on the unit"
        ::= { boxServicesTempUnitEntry 3 }


    boxServicesFiberPortsOpticsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF BoxServicesFiberPortsOpticsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Fiber ports optics data table"
        ::= { boxServicesGroup 18 }

    boxServicesFiberPortsOpticsEntry OBJECT-TYPE
        SYNTAX      BoxServicesFiberPortsOpticsEntry 
        MAX-ACCESS  not-accessible 
        STATUS      current
        DESCRIPTION
            "Box Services Fiber ports optics Entry"
        INDEX { boxServicesFiberPortIndex }
        ::= { boxServicesFiberPortsOpticsTable 1 }

    BoxServicesFiberPortsOpticsEntry ::= SEQUENCE {
        boxServicesFiberPortIndex
           Unsigned32,
        boxServicesFiberPortOpticsTemperature
           DeciInteger32,
        boxServicesFiberPortOpticsVoltage
           MilliInteger32,
        boxServicesFiberPortOpticsCurrent
           DeciInteger32,
        boxServicesFiberPortOpticsPowerOut
           DBmHundreths,
        boxServicesFiberPortOpticsPowerIn
           DBmHundreths,
        boxServicesFiberPortOpticsTxFault
           TruthValue, 
        boxServicesFiberPortOpticsLos
           TruthValue,
        boxServicesFiberPortOpticsFaultStatus
           DisplayString  
        }

    boxServicesFiberPortIndex  OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only 
        STATUS      current
        DESCRIPTION
            "Port index for an entry in the Box Services Fiber ports optics table"
        ::= { boxServicesFiberPortsOpticsEntry 1 }

    boxServicesFiberPortOpticsTemperature OBJECT-TYPE
        SYNTAX      DeciInteger32 
        UNITS       "DEGREES"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The temperature measured at this fiber port in degrees Celsius."
        ::= { boxServicesFiberPortsOpticsEntry 2 }

    boxServicesFiberPortOpticsVoltage  OBJECT-TYPE
        SYNTAX      MilliInteger32 
        UNITS       "Volts"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The voltage measured at this fiber port."
        ::= { boxServicesFiberPortsOpticsEntry 3 }

    boxServicesFiberPortOpticsCurrent  OBJECT-TYPE
       SYNTAX      DeciInteger32 
       UNITS       "Milliamps"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The current measured at this fiber port."
       ::= { boxServicesFiberPortsOpticsEntry 4 }

    boxServicesFiberPortOpticsPowerOut OBJECT-TYPE
       SYNTAX      DBmHundreths 
       UNITS       "dBm"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The output power measured at this fiber port."
       ::= { boxServicesFiberPortsOpticsEntry 5 }

    boxServicesFiberPortOpticsPowerIn OBJECT-TYPE
       SYNTAX      DBmHundreths 
       UNITS       "dBm"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The input power measured at this fiber port."
       ::= { boxServicesFiberPortsOpticsEntry 6 }

    boxServicesFiberPortOpticsTxFault OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The TX fault status of fiber port."
       ::= { boxServicesFiberPortsOpticsEntry 7 }

    boxServicesFiberPortOpticsLos OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The LOS status of fiber port."
       ::= { boxServicesFiberPortsOpticsEntry 8 }

    boxServicesFiberPortOpticsFaultStatus OBJECT-TYPE
      SYNTAX      DisplayString 
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The fault status of fiber port."
       ::= { boxServicesFiberPortsOpticsEntry 9 }

    boxServicesFiberPortsOpticsInfoTable OBJECT-TYPE
        SYNTAX SEQUENCE OF BoxServicesFiberPortsOpticsInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Fiber ports optics info data table"
        ::= { boxServicesGroup 19 }

    boxServicesFiberPortsOpticsInfoEntry OBJECT-TYPE
        SYNTAX      BoxServicesFiberPortsOpticsInfoEntry 
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Box Services Fiber ports optics info Entry"
        INDEX { boxServicesFiberPortsOpticsInfoPortIndex }
        ::= { boxServicesFiberPortsOpticsInfoTable 1 }

    BoxServicesFiberPortsOpticsInfoEntry ::= SEQUENCE {
        boxServicesFiberPortsOpticsInfoPortIndex
           Unsigned32,
        boxServicesFiberPortsOpticsInfoVendorName
           DisplayString,
        boxServicesFiberPortsOpticsInfoLinkLength50um
           Unsigned32,
        boxServicesFiberPortsOpticsInfoLinkLength62dot5um
           Unsigned32,
        boxServicesFiberPortsOpticsInfoSerialNumber
           DisplayString,
        boxServicesFiberPortsOpticsInfoPartNumber
           DisplayString,
        boxServicesFiberPortsOpticsInfoNominalBitRate
           Unsigned32,
        boxServicesFiberPortsOpticsInfoRevision
           DisplayString,
        boxServicesFiberPortsOpticsInfoCompliance
           DisplayString
        }

    boxServicesFiberPortsOpticsInfoPortIndex  OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Port index for an entry in the Box Services Fiber ports optics info table"
        ::= { boxServicesFiberPortsOpticsInfoEntry 1 }

    boxServicesFiberPortsOpticsInfoVendorName OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The Vendor Name of the fiber port."
        ::= { boxServicesFiberPortsOpticsInfoEntry 2 }

    boxServicesFiberPortsOpticsInfoLinkLength50um OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The Link Length(50um) of the fiber port."
        ::= { boxServicesFiberPortsOpticsInfoEntry 3 }

    boxServicesFiberPortsOpticsInfoLinkLength62dot5um OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The Link Length(62.5um) of the fiber port."
        ::= { boxServicesFiberPortsOpticsInfoEntry 4 }

    boxServicesFiberPortsOpticsInfoSerialNumber OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The Serial Number of the fiber port."
        ::= { boxServicesFiberPortsOpticsInfoEntry 5 }

    boxServicesFiberPortsOpticsInfoPartNumber OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The Part Number of the fiber port."
        ::= { boxServicesFiberPortsOpticsInfoEntry 6 }

    boxServicesFiberPortsOpticsInfoNominalBitRate OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The Nominal Bit Rate (Mbps) of the fiber port."
        ::= { boxServicesFiberPortsOpticsInfoEntry 7 }

    boxServicesFiberPortsOpticsInfoRevision OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "The Revision of the fiber port."
        ::= { boxServicesFiberPortsOpticsInfoEntry 8 }

    boxServicesFiberPortsOpticsInfoCompliance OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The Compliance of the fiber port."
       ::= { boxServicesFiberPortsOpticsInfoEntry 9 }



--**************************************************************************************
--    boxServicesNotificationsGroup
--
--    This group provides notification definitions for the Box Services
--    feature.  
--
--**************************************************************************************

        boxServicesNotificationsGroup               OBJECT IDENTIFIER ::= { fastPathBoxServices 2 }

   --**************************************************************************************
   -- boxServices notification definitions

      boxsItemStateChangeEvent OBJECT-TYPE
        SYNTAX INTEGER  {
             insertion(1),
             removal(2),
             becomeoperational(3),
             failure(4),
             losepower(5)
        }
        MAX-ACCESS  accessible-for-notify
        STATUS  current
        DESCRIPTION
           "This event describes states of the fan or Power Supply.
             insertion          - hot-pluggable fan or Power Supply was inserted
             removal            - hot-pluggable fan or Power Supply was removed
             becomeoperational  - fan or Power Supply became operational after failure state
             failure            - fan or Power Supply failure happened, i.e. it is not able to perform its functions
             losepower          - a Power Supply was operational, but the power to it has been disconnected or has failed"
        ::= { boxServicesNotificationsGroup 1 }

      boxsTemperatureChangeEvent OBJECT-TYPE
        SYNTAX INTEGER  {
             abovethreshold(1),
             belowthreshold(2),
             withinnormalrange(3)
        }
        MAX-ACCESS  accessible-for-notify
        STATUS  current
        DESCRIPTION
           "This event describes change of the temperature. 
           To avoid flipping on boundary conditions, it is allowed to send the trap 
           taking into account some margin around thresholds.
           
             abovethreshold     - temperature increased and crossed upper threshold value
             belowthreshold     - temperature decreased and crossed lower threshold value
             withinnormalrange  - temperature returned to normal range (between threshold)"
        ::= { boxServicesNotificationsGroup 2 }

    boxsTemperatureStatusCurrentEvent OBJECT-TYPE
        SYNTAX      BoxsTemperatureStatus
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This event describes the current status of a switch."
        ::= { boxServicesNotificationsGroup 3 }

    boxsTemperatureStatusPreviousEvent OBJECT-TYPE
        SYNTAX      BoxsTemperatureStatus
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "This event describes the previous status of a switch."
        ::= { boxServicesNotificationsGroup 4 }

--**************************************************************************************
--   Traps
--**************************************************************************************

     fastPathBoxServicesTraps OBJECT IDENTIFIER ::= { fastPathBoxServices 0 }

     boxsFanStateChange NOTIFICATION-TYPE
         OBJECTS {
                      boxServicesFansIndex,
                      boxsItemStateChangeEvent
                 }
         STATUS             current
         DESCRIPTION
             "Trap is sent when fan state change happens."
         ::= { fastPathBoxServicesTraps 1 }

     boxsPowSupplyStateChange NOTIFICATION-TYPE
         OBJECTS {
                      boxServicesPowSupplyIndex,
                      boxsItemStateChangeEvent
                 }
         STATUS             current
         DESCRIPTION
             "Trap is sent when Power Supply state change happens."
         ::= { fastPathBoxServicesTraps 2 }

     boxsTemperatureChange NOTIFICATION-TYPE
         OBJECTS {
                      boxServicesTempSensorIndex,
                      boxsTemperatureChangeEvent
                 }
         STATUS             obsolete
         DESCRIPTION
             "Trap is sent when temperature is changing and crossing any of the thresholds"
         ::= { fastPathBoxServicesTraps 3 }

     boxsThermalShutdown NOTIFICATION-TYPE
         OBJECTS {
                   boxServicesThermalShutdownSensor,
                   boxServicesThermalShutdownTemperature
                 }
         STATUS             current
         DESCRIPTION
             "Trap is sent when thermal shutdown is initiated."
         ::= { fastPathBoxServicesTraps 4 }

    boxsTemperatureStateChange NOTIFICATION-TYPE
        OBJECTS {
                     boxServicesTempUnitIndex,
                     boxsTemperatureStatusCurrentEvent,
                     boxsTemperatureStatusPreviousEvent
                }
        STATUS             current
        DESCRIPTION
            "Trap is sent when the system temperature crosses a threshold. 
             To avoid rapid flapping between states, a hysteresis may
             be applied."
        ::= { fastPathBoxServicesTraps 5 }

    boxsDyingGaspEventChange NOTIFICATION-TYPE
        OBJECTS {
                     boxsDyingGaspEventReason
                }
        STATUS             current
        DESCRIPTION
            "Trap is sent when the Dying Gasp event is generated." 
        ::= { fastPathBoxServicesTraps 6 }

--**************************************************************************************
--    Locator LED manage group
--
--    This group provides manage definitions for the Locator LED feature.  
--
--**************************************************************************************

    boxsLocatorLedConfigGroup                 OBJECT IDENTIFIER ::= { fastPathBoxServices 4 }

    boxsLocatorLedUnit OBJECT-TYPE
         SYNTAX      INTEGER (1..12)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Spesifies unit number where Locator LED should blink on.
                      This is write-only value. It always returns '0' on request."
          ::= { boxsLocatorLedConfigGroup 1 }

    boxsLocatorLedTime OBJECT-TYPE
         SYNTAX      INTEGER (20..3600)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Indicates time period in seconds for Locator LED blinking.
                      The range is from 20 to 3600 seconds with a default value 
                      of 20 seconds. This is write-only value. It always returns 
                      '0' on request."
          ::= { boxsLocatorLedConfigGroup 2 }

    boxsLocatorLedEnable OBJECT-TYPE
         SYNTAX      INTEGER {
                       disable(0), 
                       enable(1)
                     }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Starts the Locator LED blinking. If boxsLocatorLedUnit has 
                      not been set, the manager unit number will be used. If 
                      boxsLocatorLedTime has not been set, the default value (20 seconds) 
                      will be used. This is write-only value. It always returns '0' 
                      on request."
         ::= { boxsLocatorLedConfigGroup 3 }

END
