WR-SWITCH-MIB DEFINITIONS ::= BEGIN

-- Original MIB, Bugs and swearing by Alessandro Rubini
-- MIB rewritten by Adam Wujek, BE-CO-HT, CERN

-- During development all unused/not implemented objects are comented out
-- to avoid later changes

-- IMPORTS: Include definitions from other mibs here
IMPORTS
        OBJECT-TYPE, Integer32, Unsigned32, Counter32, Counter64,
        MODULE-IDENTITY, enterprises          FROM SNMPv2-SMI
        DisplayString                         FROM SNMPv2-TC;



-- A brief description and update information about this mib.
-- (I follow the CamelCase to be sure I don't mistype. Who knows the rules...

wrSwitchMIB MODULE-IDENTITY
    LAST-UPDATED "201503191600Z"
    ORGANIZATION "CERN"
    CONTACT-INFO "postal:   BE-CO-HT, CERN, Geneva
                  email:    ht-drivers@cern.ch
                 "
    DESCRIPTION  "White Rabbit Switch internal details
                 "
    ::= { cern 100 }

cern OBJECT IDENTIFIER ::= { enterprises 96 }

-- Define typical mib nodes
-- we'll prefix everything in this mib with wrs (White Rabbit Switch)
wrsScalar      OBJECT IDENTIFIER ::= { wrSwitchMIB 1 }
--wrsPstatsTable OBJECT IDENTIFIER ::= { wrSwitchMIB 2 }  == obsolete
--wrsPpsi        OBJECT IDENTIFIER ::= { wrSwitchMIB 3 }  == obsolete
--wrsVersion     OBJECT IDENTIFIER ::= { wrSwitchMIB 4 }  == obsolete
--wrsDate        OBJECT IDENTIFIER ::= { wrSwitchMIB 5 }  == obsolete
wrsStatus             OBJECT IDENTIFIER ::= { wrSwitchMIB 6 }
wrsExpertStatus       OBJECT IDENTIFIER ::= { wrSwitchMIB 7 }


-- define one stupid object for a start

wrsScalarOne   OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Integer incremented at every GET"
    ::= { wrsScalar 1 }

-- wrsGeneralStatusGroup (.6.1)
wrsGeneralStatusGroup      OBJECT IDENTIFIER ::= { wrsStatus 1 }

wrsMainSystemStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),
                        warningNA(4),
                        bug(5)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of WRS switch
            ok - values in wrsGeneralStatusGroup are correct
            error - there is an error in wrsGeneralStatusGroup
            warning - there is a warning in wrsGeneralStatusGroup
            warningNA - there is N/A field in wrsGeneralStatusGroup
            bug - bug in checking conditions of wrsGeneralStatusGroup, please report"
    ::= { wrsGeneralStatusGroup 1 }

wrsOSStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),
                        warningNA(4),
                        bug(5)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of wrsOSStatusGroup
            ok - values in wrsOSStatusGroup are correct
            error - there is an error in wrsOSStatusGroup
            warning - there is a warning in wrsOSStatusGroup
            warningNA - there is N/A field in wrsOSStatusGroup
            bug - bug in checking conditions of wrsOSStatusGroup, please report"
    ::= { wrsGeneralStatusGroup 2 }

wrsTimingStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),
                        warningNA(4),
                        bug(5)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of wrsTimingStatusGroup
            ok - values in wrsTimingStatusGroup are correct
            error - there is an error in wrsTimingStatusGroup
            warning - there is a warning in wrsTimingStatusGroup
            warningNA - there is N/A field in wrsTimingStatusGroup
            bug - bug in checking conditions of wrsTimingStatusGroup, please report"
    ::= { wrsGeneralStatusGroup 3 }

wrsNetworkingStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),
                        warningNA(4),
                        bug(5)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of wrsNetworkingStatusGroup
            ok - values in wrsNetworkingStatusGroup are correct
            error - there is an error in wrsNetworkingStatusGroup
            warning - there is a warning in wrsNetworkingStatusGroup
            warningNA - there is N/A field in wrsNetworkingStatusGroup
            bug - bug in checking conditions of wrsNetworkingStatusGroup, please report"
    ::= { wrsGeneralStatusGroup 4 }

-- wrsDetailedStatusesGroup (.6.2)
wrsDetailedStatusesGroup   OBJECT IDENTIFIER ::= { wrsStatus 2 }

-- wrsOSStatusGroup (.6.2.1)
wrsOSStatusGroup           OBJECT IDENTIFIER ::= { wrsDetailedStatusesGroup 1 }

wrsBootSuccessful OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),
                        warningNA(4),
                        bug(5)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of wrsBootStatusGroup
            ok - values in wrsBootStatusGroup are correct
            error - there is an error in wrsBootStatusGroup
            warning - there is a warning in wrsBootStatusGroup
            warningNA - there is N/A field in wrsBootStatusGroup
            bug - bug in checking conditions of wrsBootStatusGroup, please report"
    ::= { wrsOSStatusGroup 1 }

wrsTemperatureWarning OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        thresholdNotSet(1),
                        temperatureOK(2),
                        temperatureTooHigh(3)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Warning if temperature exceed threshold levels"
    ::= { wrsOSStatusGroup 2 }

wrsMemoryFreeLow OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),
                        warningNA(4)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Status of free memory. Based on wrsMemoryGroup.
            Error - more than 80% memory used
            Warning - more than 50% memory used"
    ::= { wrsOSStatusGroup 3 }

wrsCpuLoadHigh OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Status of CPU load. Based on averag load in group wrsCpuLoad.
            Error - average CPU load is more than 3 for 1min, 2 for 5min and 1.5 for 15min
            Warning - average CPU load is more than 2 for 1min, 1.5 for 5min and 1 for 15min"
    ::= { wrsOSStatusGroup 4 }

wrsDiskSpaceLow OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),
                        warningNA(4)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Status of used disk space. Based on wrsDiskTable.
            Error - more than 90% of any disk is used
            Warning - more than 80% of any disk is used"
    ::= { wrsOSStatusGroup 5 }

-- wrsTimingStatusGroup (.6.2.2)
wrsTimingStatusGroup       OBJECT IDENTIFIER ::= { wrsDetailedStatusesGroup 2 }

wrsPTPStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        firstRead(6),
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of wrsPtpDataTable
            ok - PTP error counters in wrsPtpDataTable are not increased since
                 last scan and ptp servo updates counter increased
            error - error in wrsPtpDataTable
            firstRead - unable to calculate deltas in first read"
    ::= { wrsTimingStatusGroup 1 }

wrsSoftPLLStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),
                        warningNA(4),
                        bug(5)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of wrsSpllState
            ok - values in wrsSpllState are correct
            error - there is an error in wrsSpllState
            warning - there is a warning in wrsSpllState
            warningNA - there is N/A field in wrsSpllState
            bug - bug in checking conditions of wrsSpllState, please report"
    ::= { wrsTimingStatusGroup 2 }

wrsSlaveLinksStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warningNA(4)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of slave link statuses
            ok - when every slave port is up when switch is in slave mode
                 and when every slave port is down when switch in master/grandmaster mode
                 don't care about non-wr and auto ports
            warningNA - there is N/A in wrsSpllMode, wrsPortStatusLink or
                        wrsPortStatusConfiguredMode"
    ::= { wrsTimingStatusGroup 3 }

wrsPTPFramesFlowing OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warningNA(4),
                        firstRead(6)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of TX and RX PTP packets flowing
            ok - when there are PTP packets flowing in both directions on all
                 wr ports that are up
            warningNA - there is N/A in wrsPortStatusLink or wrsPortStatusConfiguredMode
            error - no PTP packets flowing at least on one wr up port
            firstRead - unable to calculate deltas in first read"
    ::= { wrsTimingStatusGroup 4 }

-- wrsNetworkingStatusGroup (.6.2.3)
wrsNetworkingStatusGroup   OBJECT IDENTIFIER ::= { wrsDetailedStatusesGroup 3 }

wrsSFPsStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),
                        warningNA(4),
                        bug(5)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of SFPs
            ok - all SFPs are ok
            error - there is an error in SFP
            warning - there is a warning in SFP (not used)
            warningNA - there is N/A field in SFP
            bug - bug in checking conditions of SFPs, please report"
    ::= { wrsNetworkingStatusGroup 1 }

wrsEndpointStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        firstRead(6)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Check itmes described in 2.2.2 Fault in the Endpoint's transmission/reception
             path in wrs_failures document.
	     firstRead - cannot derermine change rate from olny one read
             ok - parameters below limits
             error - parameters above limits"
    ::= { wrsNetworkingStatusGroup 2 }

wrsSwcoreStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        firstRead(6)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Check itmes described in 2.2.3 Problem with the SwCore or Endpoint HDL
             module and 2.2.5 Too much HP traffic / Per-priority queue full
             in wrs_failures document.
	     firstRead - cannot derermine change rate from olny one read
             ok - parameters below limits
             error - parameters above limits"
    ::= { wrsNetworkingStatusGroup 3 }

wrsRTUStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        firstRead(6)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Check itmes described in 2.2.4 RTU is full and cannot accept more requests
             in wrs_failures document.
	     firstRead - cannot derermine change rate from olny one read
             ok - parameters below limits
             error - parameters above limits"
    ::= { wrsNetworkingStatusGroup 4 }

-- wrsVersionGroup (.6.3)
wrsVersionGroup            OBJECT IDENTIFIER ::= { wrsStatus 3 }

wrsVersionSwVersion            OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The software version, as returned from 'git describe' at build time"
    ::= { wrsVersionGroup 1 }

wrsVersionSwBuildBy            OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The software build by, as returned from 'git config --get-all user.name' at build time"
    ::= { wrsVersionGroup 2 }

wrsVersionSwBuildDate          OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The build date of the software, '__DATE__' at build time"
    ::= { wrsVersionGroup 3 }

wrsVersionBackplaneVersion     OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The hardware version of minibackplane PCB"
    ::= { wrsVersionGroup 4 }

wrsVersionFpgaType             OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The hardware version of FPGA"
    ::= { wrsVersionGroup 5 }

wrsVersionManufacturer         OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The name of the manufacturing company of a switch"
    ::= { wrsVersionGroup 6 }

wrsVersionSwitchSerialNumber   OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The serial number (or string) of the switch"
    ::= { wrsVersionGroup 7 }

wrsVersionScbVersion           OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The version of the SCB (switch's motherboard)"
    ::= { wrsVersionGroup 8 }

wrsVersionGwVersion            OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The version of gateware (FPGA bitstream)"
    ::= { wrsVersionGroup 9 }

wrsVersionGwBuild              OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The build of gateware (FPGA bitstream)"
    ::= { wrsVersionGroup 10 }

wrsVersionSwitchHdlCommitId    OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The gateware version: commit of wr_switch_hdl"
    ::= { wrsVersionGroup 11 }

wrsVersionGeneralCoresCommitId OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The gateware version: commit of general-cores"
    ::= { wrsVersionGroup 12 }

wrsVersionWrCoresCommitId      OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "The gateware version: commit of wr-cores"
    ::= { wrsVersionGroup 13 }

wrsVersionLastUpdateDate      OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..32))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "Date and time of last firmware update, this information may not be
        ccurate, due to hard restarts or lack of proper time."
    ::= { wrsVersionGroup 14 }

-- wrsOperationStatus (.7.1)
wrsOperationStatus      OBJECT IDENTIFIER ::= { wrsExpertStatus 1 }

-- wrsCurrentTimeGroup (.7.1.1)
wrsCurrentTimeGroup     OBJECT IDENTIFIER ::= { wrsOperationStatus 1 }

wrsDateTAI      OBJECT-TYPE
    SYNTAX      Counter64 -- actually integer, but it is unsigned so ok
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current time, in TAI seconds"
    ::= { wrsCurrentTimeGroup 1 }

wrsDateTAIString   OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current TAI time, printed as %y-%m-%d-%H:%M:%S (no time zone)"
    ::= { wrsCurrentTimeGroup 2 }


--wrsBootStatusGroup (.7.1.2)
wrsBootStatusGroup      OBJECT IDENTIFIER ::= { wrsOperationStatus 2 }

wrsBootCnt      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of switch's boots since power-on"
    ::= { wrsBootStatusGroup 1 }

wrsRebootCnt     OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of soft reboots. This is incremented by the
        reboot system call. A healthy system should feature one
        soft-reboot less than total boots."
    ::= { wrsBootStatusGroup 2 }

wrsRestartReason  OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        error(1),
                        generalReset(2),
                        wakeUpReset(3),
                        watchdogReset(4),
                        softwareReset(5),
                        userReset(6)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "Reason of last switch restart.
       error(1) - unable to read restart reason or reset counters
       generalReset(2) -  Both VDDCORE and VDDBU rising (power-on)
       wakeUpReset(3) - VDDCORE rising
       watchdogReset(4) - Watchdog fault occurred
       softwareReset(5) - Processor reset required by the software (system reboot)
       userReset(6) -  NRST pin detected low (reset button)"
    ::= { wrsBootStatusGroup 3 }

wrsFaultIP OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(4))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The fault address of the last panic. This is the instruction
        pointer normally printed by the stack backtrace. The register
        is zeroed at first boot and only modified within panic."
    ::= { wrsBootStatusGroup 4 }

wrsFaultLR OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(4))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "The link register register at last panic.
        This is usually the caller of the function that failed,
        but it may be a local register if the failing function
        saved lr to the stack and used it as a scratch register."
    ::= { wrsBootStatusGroup 5 }

wrsConfigSource  OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        error(1),
                        errorMinor(2),
                        local(3),
                        tftp(4),
                        http(5),
                        ftp(6)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Source of used dotconfig, protocol if gonfig was received from network
        errorMinor - cannot read status file, problem is probably somewhere else"
    ::= { wrsBootStatusGroup 6 }

wrsConfigSourceHost   OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Server address which provided dotconfig"
    ::= { wrsBootStatusGroup 7 }

wrsConfigSourceFilename   OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Path and filename of dotconfig file on server"
    ::= { wrsBootStatusGroup 8 }

wrsBootConfigStatus  OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        downloadError(3),
                        checkError(4),
                        errorMinor(5)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Result of loading or downloading dot-config file
        downloadError - unable to download file from given source
        checkError - config file is not valid or too short (less than 200 characters).
        errorMinor - cannot read status file, problem is probably somewhere else"
    ::= { wrsBootStatusGroup 9 }

wrsBootHwinfoReadout  OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        errorMinor(3),
                        warning(4)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Result of hwinfo readout
        error - hwinfo readout failed
        errorMinor - cannot read status file, problem is probably somewhere else
        warning - no hwinfo partition"
    ::= { wrsBootStatusGroup 10 }

wrsBootLoadFPGA  OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        errorMinor(3),
                        fileNotFound(4)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Result of loading FPGA
        error - loading failed
        errorMinor - cannot read status file, problem is probably somewhere else
        fileNotFound - file to be loaded not found"
    ::= { wrsBootStatusGroup 11 }

wrsBootLoadLM32  OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        errorMinor(3),
                        fileNotFound(4)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Result of loading LM32
        error - loading failed
        errorMinor - cannot read status file, problem is probably somewhere else
        fileNotFound - file to be loaded not found"
    ::= { wrsBootStatusGroup 12 }

wrsBootKernelModulesMissing  OBJECT-TYPE
    SYNTAX       INTEGER {
                        allKernelModulesPresent(0)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Checking if all desired kernel modules are loaded.
        allKernelModulesPresent - all modules loaded
        other numbers represent number of modules not loaded
        other errors (like unable to open /proc/modules) are reported as maximum number of missing modules"
    ::= { wrsBootStatusGroup 13 }

wrsBootUserspaceDaemonsMissing  OBJECT-TYPE
    SYNTAX       INTEGER {
                        allDaemonsPresent(0)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Checking if all desired daemons are running.
        allDaemonsPresent - all daemons running
        other numbers represent number of daemons not running
        other errors (can be: unable to run ps command or problem with multiple process instances) 
        are reported as maximum number of missing modules"
    ::= { wrsBootStatusGroup 14 }

wrsGwWatchdogTimeouts  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Number of times the watchdog has restarted the HDL module responsible
        for the Ethernet switching process."
    ::= { wrsBootStatusGroup 15 }

-- wrsTemperatureGroup (.7.1.3)
wrsTemperatureGroup     OBJECT IDENTIFIER ::= { wrsOperationStatus 3 }

wrsTempFPGA OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "FPGA temperature"
    ::= { wrsTemperatureGroup 1 }

wrsTempPLL OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "PLL temperature"
    ::= { wrsTemperatureGroup 2 }

wrsTempPSL OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Power Supply Left (PSL) temperature"
    ::= { wrsTemperatureGroup 3 }

wrsTempPSR OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Power Supply Right (PSR) temperature"
    ::= { wrsTemperatureGroup 4 }

wrsTempThresholdFPGA OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Threshold level for FPGA temperature"
    ::= { wrsTemperatureGroup 5 }

wrsTempThresholdPLL OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Threshold level for PLL temperature"
    ::= { wrsTemperatureGroup 6 }

wrsTempThresholdPSL OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Threshold level for Power Supply Left (PSL) temperature"
    ::= { wrsTemperatureGroup 7 }

wrsTempThresholdPSR OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Threshold level for Power Supply Right (PSR) temperature"
    ::= { wrsTemperatureGroup 8 }

-- wrsMemoryGroup (.7.1.4)
wrsMemoryGroup     OBJECT IDENTIFIER ::= { wrsOperationStatus 4 }

wrsMemoryTotal OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Ram size in kB"
    ::= { wrsMemoryGroup 1 }

wrsMemoryUsed OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Used RAM in kB (Cache and buffers are not counted)"
    ::= { wrsMemoryGroup 2 }

wrsMemoryUsedPerc OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Percentage of used RAM"
    ::= { wrsMemoryGroup 3 }

wrsMemoryFree OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Free RAM in kB"
    ::= { wrsMemoryGroup 4 }

-- wrsCpuLoadGroup (.7.1.5)
wrsCpuLoadGroup     OBJECT IDENTIFIER ::= { wrsOperationStatus 5 }

wrsCPULoadAvg1min OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Load average over 1min multiplied by 100"
    ::= { wrsCpuLoadGroup 1 }

wrsCPULoadAvg5min OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Load average over 5min multiplied by 100"
    ::= { wrsCpuLoadGroup 2 }

wrsCPULoadAvg15min OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Load average over 15min multiplied by 100"
    ::= { wrsCpuLoadGroup 3 }

-- wrsDiskTable (.7.1.6)
wrsDiskTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF WrsDiskEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Information for each mounted partition"
    ::= { wrsOperationStatus 6 }

wrsDiskEntry OBJECT-TYPE
    SYNTAX      WrsDiskEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing partitions' details"
    INDEX   { wrsDiskIndex }
    ::= { wrsDiskTable 1 }

WrsDiskEntry ::=
    SEQUENCE {
        wrsDiskIndex       Unsigned32,
        wrsDiskMountPath   DisplayString,
        wrsDiskSize        Integer32,
        wrsDiskUsed        Integer32,
        wrsDiskFree        Integer32,
        wrsDiskUseRate     Integer32,
        wrsDiskFilesystem  DisplayString
    }

wrsDiskIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
            "Index for wrsDiskTable"
    ::= { wrsDiskEntry 1 }

wrsDiskMountPath OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Mount patch of reported partition"
    ::= { wrsDiskEntry 2 }

wrsDiskSize OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Partition size"
    ::= { wrsDiskEntry 3 }

wrsDiskUsed OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Used space on partition"
    ::= { wrsDiskEntry 4 }

wrsDiskFree OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Free space on partition"
    ::= { wrsDiskEntry 5 }

wrsDiskUseRate OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Percentage of used space on partition"
    ::= { wrsDiskEntry 6 }

wrsDiskFilesystem OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..64))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Filesystem reported by df command"
    ::= { wrsDiskEntry 7 }

-- wrsStartCntGroup (.7.2)
wrsStartCntGroup      OBJECT IDENTIFIER ::= { wrsExpertStatus 2 }

wrsStartCntHAL OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of HAL daemon starts"
    ::= { wrsStartCntGroup 1 }

wrsStartCntPPSI OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of PPSI daemon starts"
    ::= { wrsStartCntGroup 2 }

wrsStartCntRTUd OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RTU daemon starts"
    ::= { wrsStartCntGroup 3 }

wrsStartCntSshd OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Nmber of SSH daemon starts"
    ::= { wrsStartCntGroup 4 }

wrsStartCntHttpd OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Nmber of HTTP daemon starts"
    ::= { wrsStartCntGroup 5 }

wrsStartCntSnmpd OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Nmber of SNMP daemon starts"
    ::= { wrsStartCntGroup 6 }

wrsStartCntSyslogd OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Nmber of SYSLOG daemon starts"
    ::= { wrsStartCntGroup 7 }

wrsStartCntWrsWatchdog OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Nmber of wrs_watchdog daemon starts"
    ::= { wrsStartCntGroup 8 }

-- wrsSpllState (.7.3)
wrsSpllState            OBJECT IDENTIFIER ::= { wrsExpertStatus 3 }

-- wrsSpllVersionGroup (.7.3.1)
wrsSpllVersionGroup      OBJECT IDENTIFIER ::= { wrsSpllState 1 }

wrsSpllVersion            OBJECT-TYPE
    SYNTAX                DisplayString (SIZE (0..32))
    MAX-ACCESS            read-only
    STATUS                current
    DESCRIPTION
        "The spll version, as returned from 'git describe' at build time"
    ::= { wrsSpllVersionGroup 1 }

wrsSpllBuildDate          OBJECT-TYPE
    SYNTAX                DisplayString (SIZE (0..32))
    MAX-ACCESS            read-only
    STATUS                current
    DESCRIPTION
        "The build date of the spll, '__DATE__' at build time"
    ::= { wrsSpllVersionGroup 2 }

-- wrsSpllStatusGroup (.7.3.2)
wrsSpllStatusGroup      OBJECT IDENTIFIER ::= { wrsSpllState 2 }

wrsSpllMode        OBJECT-TYPE
    SYNTAX INTEGER {
                na(0),
                grandmaster(1),
                master(2),
                slave(3)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Mode of Soft PLL (values taken from softpll_ng.h)"
    ::= { wrsSpllStatusGroup 1 }

wrsSpllIrqCnt      OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of interrupts in Soft PLL"
    ::= { wrsSpllStatusGroup 2 }

wrsSpllSeqState    OBJECT-TYPE
    SYNTAX INTEGER {
                startExt(1),
                waitExt(2),
                startHelper(3),
                waitHelper(4),
                startMain(5),
                waitMain(6),
                disabled(7),
                ready(8),
                clearDacs(9),
                waitClearDacs(10)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Sequence state of Soft PLL (values taken from file softpll_ng.c in wrpc-sw repo)"
    ::= { wrsSpllStatusGroup 3 }

wrsSpllAlignState  OBJECT-TYPE
    SYNTAX INTEGER {
                extOff(0),
                start(1),
                initCsync(2),
                waitCsync(3),
                waitSample(4),
                compensateDelay(5),
                locked(6),
                startAlignment(7),
                startMain(8)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Align state of Soft PLL (values taken from file spll_external.c in wrpc-sw repo)"
    ::= { wrsSpllStatusGroup 4 }

wrsSpllHlock       OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "HLock in Soft PLL"
    ::= { wrsSpllStatusGroup 5 }

wrsSpllMlock       OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "MLock at Soft PLL"
    ::= { wrsSpllStatusGroup 6 }

wrsSpllHY          OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "H_y at Soft PLL"
    ::= { wrsSpllStatusGroup 7 }

wrsSpllMY          OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "M_y at Soft PLL"
    ::= { wrsSpllStatusGroup 8 }

wrsSpllDelCnt      OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Del counter at Soft PLL"
    ::= { wrsSpllStatusGroup 9 }

-- wrsPstatsTable (.7.4)
wrsPstatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF WrsPstatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Pstats counters for each port"
    ::= { wrsExpertStatus 4 }

wrsPstatsEntry OBJECT-TYPE
    SYNTAX      WrsPstatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing pstats counters"
    INDEX   { wrsPstatsIndex }
    ::= { wrsPstatsTable 1 }

WrsPstatsEntry ::=
    SEQUENCE {
        wrsPstatsIndex                 Unsigned32,
        wrsPstatsPortName              DisplayString,
        wrsPstatsTXUnderrun            Counter32,
        wrsPstatsRXOverrun             Counter32,
        wrsPstatsRXInvalidCode         Counter32,
        wrsPstatsRXSyncLost            Counter32,
        wrsPstatsRXPauseFrames         Counter32,
        wrsPstatsRXPfilterDropped      Counter32,
        wrsPstatsRXPCSErrors           Counter32,
        wrsPstatsRXGiantFrames         Counter32,
        wrsPstatsRXRuntFrames          Counter32,
        wrsPstatsRXCRCErrors           Counter32,
        wrsPstatsRXPclass0             Counter32,
        wrsPstatsRXPclass1             Counter32,
        wrsPstatsRXPclass2             Counter32,
        wrsPstatsRXPclass3             Counter32,
        wrsPstatsRXPclass4             Counter32,
        wrsPstatsRXPclass5             Counter32,
        wrsPstatsRXPclass6             Counter32,
        wrsPstatsRXPclass7             Counter32,
        wrsPstatsTXFrames              Counter32,
        wrsPstatsRXFrames              Counter32,
        wrsPstatsRXDropRTUFull         Counter32,
        wrsPstatsRXPrio0               Counter32,
        wrsPstatsRXPrio1               Counter32,
        wrsPstatsRXPrio2               Counter32,
        wrsPstatsRXPrio3               Counter32,
        wrsPstatsRXPrio4               Counter32,
        wrsPstatsRXPrio5               Counter32,
        wrsPstatsRXPrio6               Counter32,
        wrsPstatsRXPrio7               Counter32,
        wrsPstatsRTUValid              Counter32,
        wrsPstatsRTUResponses          Counter32,
        wrsPstatsRTUDropped            Counter32,
        wrsPstatsFastMatchPriority     Counter32,
        wrsPstatsFastMatchFastForward  Counter32,
        wrsPstatsFastMatchNonForward   Counter32,
        wrsPstatsFastMatchRespValid    Counter32,
        wrsPstatsFullMatchRespValid    Counter32,
        wrsPstatsForwarded             Counter32,
        wrsPstatsTRURespValid          Counter32
    }

wrsPstatsIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
            "Index for wrsPstatsTable"
    ::= { wrsPstatsEntry 1 }

wrsPstatsPortName OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..12))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Port name of port"
    ::= { wrsPstatsEntry 2 }

wrsPstatsTXUnderrun OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of TX underrun errors"
    ::= { wrsPstatsEntry 3 }

wrsPstatsRXOverrun OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX overrun errors"
    ::= { wrsPstatsEntry 4 }

wrsPstatsRXInvalidCode OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received invalid 8B10B code errors"
    ::= { wrsPstatsEntry 5 }

wrsPstatsRXSyncLost OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX link synchronization lost"
    ::= { wrsPstatsEntry 6 }

wrsPstatsRXPauseFrames OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received pause frames"
    ::= { wrsPstatsEntry 7 }

wrsPstatsRXPfilterDropped OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames dropped at pfilter"
    ::= { wrsPstatsEntry 8 }

wrsPstatsRXPCSErrors OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of errors occured during frame reception in PCS"
    ::= { wrsPstatsEntry 9 }

wrsPstatsRXGiantFrames OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received giant frames
            (bigger than Maximum Receive Unit)"
    ::= { wrsPstatsEntry 10 }

wrsPstatsRXRuntFrames OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received runt frames
            (smaller than 64bytes)"
    ::= { wrsPstatsEntry 11 }

wrsPstatsRXCRCErrors OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX CRC errors"
    ::= { wrsPstatsEntry 12 }

wrsPstatsRXPclass0 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames assigned to
            class 0 by packet filter in endpoint"
    ::= { wrsPstatsEntry 13 }

wrsPstatsRXPclass1 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames assigned to
            class 1 by packet filter in endpoint"
    ::= { wrsPstatsEntry 14 }

wrsPstatsRXPclass2 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames assigned to
            class 2 by packet filter in endpoint"
    ::= { wrsPstatsEntry 15 }

wrsPstatsRXPclass3 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames assigned to
            class 3 by packet filter in endpoint"
    ::= { wrsPstatsEntry 16 }

 wrsPstatsRXPclass4 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames assigned to
            class 4 by packet filter in endpoint"
    ::= { wrsPstatsEntry 17 }

wrsPstatsRXPclass5 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames assigned to
            class 5 by packet filter in endpoint"
    ::= { wrsPstatsEntry 18 }

wrsPstatsRXPclass6 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames assigned to
            class 6 by packet filter in endpoint"
    ::= { wrsPstatsEntry 19 }

wrsPstatsRXPclass7 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames assigned to
            class 7 by packet filter in endpoint"
    ::= { wrsPstatsEntry 20 }

wrsPstatsTXFrames OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of transmitted frames"
    ::= { wrsPstatsEntry 21 }

wrsPstatsRXFrames OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames"
    ::= { wrsPstatsEntry 22 }

wrsPstatsRXDropRTUFull OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX frames dropped due to RTU full"
    ::= { wrsPstatsEntry 23 }

wrsPstatsRXPrio0 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX frames at internal priority 0"
    ::= { wrsPstatsEntry 24 }

wrsPstatsRXPrio1 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX frames at internal priority 1"
    ::= { wrsPstatsEntry 25 }

wrsPstatsRXPrio2 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX frames at internal priority 2"
    ::= { wrsPstatsEntry 26 }

wrsPstatsRXPrio3 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX frames at internal priority 3"
    ::= { wrsPstatsEntry 27 }

wrsPstatsRXPrio4 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX frames at internal priority 4"
    ::= { wrsPstatsEntry 28 }

wrsPstatsRXPrio5 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX frames at internal priority 5"
    ::= { wrsPstatsEntry 29 }

wrsPstatsRXPrio6 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX frames at internal priority 6"
    ::= { wrsPstatsEntry 30 }

wrsPstatsRXPrio7 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX frames at internal priority 7"
    ::= { wrsPstatsEntry 31 }

wrsPstatsRTUValid OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of valid RTU requests"
    ::= { wrsPstatsEntry 32 }

wrsPstatsRTUResponses OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of valid RTU responses"
    ::= { wrsPstatsEntry 33 }

wrsPstatsRTUDropped OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of frames dropped at RTU"
    ::= { wrsPstatsEntry 34 }

wrsPstatsFastMatchPriority OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of priority frames matched by fast match"
    ::= { wrsPstatsEntry 35 }

wrsPstatsFastMatchFastForward OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of forwarded frames matched by fast match"
    ::= { wrsPstatsEntry 36 }

wrsPstatsFastMatchNonForward OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of not forwarded frames matched by fast match"
    ::= { wrsPstatsEntry 37 }

wrsPstatsFastMatchRespValid OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of fast match decisions"
    ::= { wrsPstatsEntry 38 }

wrsPstatsFullMatchRespValid OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of full match decisions"
    ::= { wrsPstatsEntry 39 }

wrsPstatsForwarded OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of forwarded frames"
    ::= { wrsPstatsEntry 40 }

wrsPstatsTRURespValid OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of TRU decisions"
    ::= { wrsPstatsEntry 41 }

-- wrsPtpDataTable (.7.5)
wrsPtpDataTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF WrsPtpDataEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Information for each ptp servo"
    ::= { wrsExpertStatus 5 }

wrsPtpDataEntry OBJECT-TYPE
    SYNTAX      WrsPtpDataEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing ptp servo statuses"
    INDEX   { wrsPtpDataIndex }
    ::= { wrsPtpDataTable 1 }

WrsPtpDataEntry ::=
    SEQUENCE {
        wrsPtpDataIndex         Unsigned32,
        wrsPtpPortName          DisplayString,
        wrsPtpGrandmasterID     OCTET STRING,
        wrsPtpOwnID             OCTET STRING,
        wrsPtpMode              INTEGER,
        wrsPtpServoState        DisplayString,
        wrsPtpServoStateN       INTEGER,
        wrsPtpPhaseTracking     INTEGER,
        wrsPtpSyncSource        DisplayString,
        wrsPtpClockOffsetPs     Counter64,
        wrsPtpClockOffsetPsHR   Integer32,
        wrsPtpSkew              Integer32,
        wrsPtpRTT               Counter64,
        wrsPtpLinkLength        Unsigned32,
        wrsPtpServoUpdates      Counter32,
        wrsPtpDeltaTxM          Integer32,
        wrsPtpDeltaRxM          Integer32,
        wrsPtpDeltaTxS          Integer32,
        wrsPtpDeltaRxS          Integer32,
        wrsPtpServoStateErrCnt  Counter32,
        wrsPtpClockOffsetErrCnt Counter32,
        wrsPtpRTTErrCnt         Counter32
    }

wrsPtpDataIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
            "Index for wrsPtpDataTable"
    ::= { wrsPtpDataEntry 1 }

wrsPtpPortName OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..12))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Port name on which servo instance is running"
    ::= { wrsPtpDataEntry 2 }

wrsPtpGrandmasterID OBJECT-TYPE
    SYNTAX       OCTET STRING (SIZE(8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The ClockID of the current grandmaster"
    ::= { wrsPtpDataEntry 3 }

wrsPtpOwnID OBJECT-TYPE
    SYNTAX       OCTET STRING (SIZE(8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The ClockID of this WR device"
    ::= { wrsPtpDataEntry 4 }

wrsPtpMode OBJECT-TYPE
    SYNTAX INTEGER {
                unknown(0),        -- same as WRC_MODE macros
                grandmaster(1),
                master(2),
                slave(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The mode of this clock"
    ::= { wrsPtpDataEntry 5 }

wrsPtpServoState OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The servo state if slave"
    ::= { wrsPtpDataEntry 6 }

wrsPtpServoStateN OBJECT-TYPE
    SYNTAX INTEGER {
                uninitialized(0),
                syncNsec(1),
                syncSec(2),
                syncPhase(3),
                trackPhase(4),
                waitOffsetStable(5)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Numeric representation of servo state"
    ::= { wrsPtpDataEntry 7 }

wrsPtpPhaseTracking OBJECT-TYPE
    SYNTAX INTEGER {
               na(0),
               notTracking(1),
               tracking(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Whether phase tracking is enabled in the servo"
    ::= { wrsPtpDataEntry 8 }

wrsPtpSyncSource OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The port name that is currently the synchronization source"
    ::= { wrsPtpDataEntry 9 }

wrsPtpClockOffsetPs OBJECT-TYPE
    SYNTAX      Counter64 -- integer64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Current clock offset from master, in picoseconds"
    ::= { wrsPtpDataEntry 10 }

wrsPtpClockOffsetPsHR OBJECT-TYPE
    SYNTAX      Integer32 -- should be something like gauge32, but with int range
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Human Readable current clock offset from master, in picoseconds with saturation to integer"
    ::= { wrsPtpDataEntry 11 }

wrsPtpSkew OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The estimated change of master-to-slave delay, in picoseconds"
    ::= { wrsPtpDataEntry 12 }

wrsPtpRTT OBJECT-TYPE
    SYNTAX      Counter64 -- unsigned64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The round-trip-time, from master, in picoseconds"
    ::= { wrsPtpDataEntry 13 }

wrsPtpLinkLength OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Estimated fiber length, from master-to-slave delay, in meters"
    ::= { wrsPtpDataEntry 14 }

wrsPtpServoUpdates OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "How many time did the servo run"
    ::= { wrsPtpDataEntry 15 }

wrsPtpDeltaTxM OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Fixed Tx latency on Master side"
    ::= { wrsPtpDataEntry 16 }

wrsPtpDeltaRxM OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Fixed Rx latency on Master side"
    ::= { wrsPtpDataEntry 17 }

wrsPtpDeltaTxS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Fixed Tx latency on Slave side"
    ::= { wrsPtpDataEntry 18 }

wrsPtpDeltaRxS OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Fixed Rx latency on Slave side"
    ::= { wrsPtpDataEntry 19 }

wrsPtpServoStateErrCnt OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of servo updates with wrong servo state"
    ::= { wrsPtpDataEntry 20 }

wrsPtpClockOffsetErrCnt OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of servo updates with wrong clock offset"
    ::= { wrsPtpDataEntry 21 }

wrsPtpRTTErrCnt OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of servo updates with wrong RTT"
    ::= { wrsPtpDataEntry 22 }

-- wrsPortStatusTable (.7.6)
wrsPortStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF WrsPortStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Information for each port"
    ::= { wrsExpertStatus 6 }

wrsPortStatusEntry OBJECT-TYPE
    SYNTAX      WrsPortStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing ports statuses"
    INDEX   { wrsPortStatusIndex }
    ::= { wrsPortStatusTable 1 }

WrsPortStatusEntry ::=
    SEQUENCE {
        wrsPortStatusIndex       Unsigned32,
        wrsPortStatusPortName    DisplayString,
        wrsPortStatusLink        INTEGER,
        wrsPortStatusConfiguredMode INTEGER,
        wrsPortStatusLocked      INTEGER,
        wrsPortStatusPeer        OCTET STRING,
        wrsPortStatusSfpVN       DisplayString,
        wrsPortStatusSfpPN       DisplayString,
        wrsPortStatusSfpVS       DisplayString,
        wrsPortStatusSfpInDB     INTEGER,
        wrsPortStatusSfpGbE      INTEGER,
        wrsPortStatusSfpError    INTEGER,
        wrsPortStatusPtpTxFrames Counter32,
        wrsPortStatusPtpRxFrames Counter32,
    }

wrsPortStatusIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
            "Index for wrsPortStatusTable"
    ::= { wrsPortStatusEntry 1 }

wrsPortStatusPortName OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..12))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Name of port"
    ::= { wrsPortStatusEntry 2 }

wrsPortStatusLink OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        down(1),
                        up(2)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Whether the link is up or down"
    ::= { wrsPortStatusEntry 3 }

wrsPortStatusConfiguredMode OBJECT-TYPE
    SYNTAX         INTEGER {
                        unknown(0),
                        master(1),
                        slave(2),
                        nonWr(3),
                        auto(4)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Whether the port is configured as master, slave, non-wr or auto"
    ::= { wrsPortStatusEntry 4 }

wrsPortStatusLocked OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        notLocked(1),
                        locked(2)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Whether the peers are locked or not"
    ::= { wrsPortStatusEntry 5 }

wrsPortStatusPeer OBJECT-TYPE
    SYNTAX         OCTET STRING (SIZE(8))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "the ClockID of the peer, if available. Or 0"
    ::= { wrsPortStatusEntry 6 }

wrsPortStatusSfpVN OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Vendor Name of SFP"
    ::= { wrsPortStatusEntry 7 }

wrsPortStatusSfpPN OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Part Number of SFP"
    ::= { wrsPortStatusEntry 8 }

wrsPortStatusSfpVS OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..32))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Vendor serial number of SFP"
    ::= { wrsPortStatusEntry 9 }

wrsPortStatusSfpInDB OBJECT-TYPE
    SYNTAX         INTEGER {na(0), notInDataBase(1), inDataBase(2)}
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Whether the SFP is in data base or not"
    ::= { wrsPortStatusEntry 10 }

wrsPortStatusSfpGbE OBJECT-TYPE
    SYNTAX         INTEGER {na(0), linkNotGbE(1), linkGbE(2)}
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Whether the SFP is 1 GbE"
    ::= { wrsPortStatusEntry 11 }

wrsPortStatusSfpError OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        sfpOk(1),
                        sfpError(2),
                        portDown(3)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Problem with SFP configuration. Port has to be always 1GbE. Port has to be in data base as long as support WR."
    ::= { wrsPortStatusEntry 12 }

wrsPortStatusPtpTxFrames OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of transmitted PTP frames per port (for all PPSI instances
             running on particular port"
    ::= { wrsPortStatusEntry 13 }

wrsPortStatusPtpRxFrames OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Number of received PTP frames per port (for all PPSI instances
             running on particular port"
    ::= { wrsPortStatusEntry 14 }

--wrsNetworking
--Configuration

END
