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 commented 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, PhysAddress            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 "202005220000Z"
    ORGANIZATION "CERN"
    CONTACT-INFO "postal:   BE-CO-HT, CERN, Geneva
                  email:    ht-drivers@cern.ch
                 "
    DESCRIPTION  "White Rabbit Switch internal details
                 "

    REVISION     "202303260000Z"
    DESCRIPTION
        "Updates for v6.1 WRS firmware release
        Added objects:
         - wrsSystemClockDriftUs
         - wrsVersionFeatures
        "

    REVISION     "202108310000Z"
    DESCRIPTION
        "Add wrsId OIDs to identify WRS version and manufacturer in sysObjectID.
        "

    REVISION     "202005220000Z"
    DESCRIPTION
        "Updates for v6.0 WRS firmware release
        Added objects:
         - wrsLeapSecSource
         - wrsLeapSecStatusDetails
         - wrsLeapSecSourceStatusDetails
         - wrsLeapSecSourceURL
         - wrsSystemClockStatus
         - wrsSystemClockStatusDetails
         - wrsPortStatusT24p
         - wrsPortStatusT24pValid
        "

    REVISION     "201807181400Z"
    DESCRIPTION
        "Add wrsStartCntLldpd
        Add wrsStartCntLdap
        Add in wrsPortStatusTable:
         - wrsPortStatusMonitor
         - wrsPortStatusSfpDom
         - wrsPortStatusSfpTemp
         - wrsPortStatusSfpVcc
         - wrsPortStatusSfpTxBias
         - wrsPortStatusSfpTxPower
         - wrsPortStatusSfpRxPower
         Add wrsPtpInstanceTable
        "

    REVISION     "201602171600Z"
    DESCRIPTION
        "Use 64bit counters for pstats. Make wrsPstats* obsolete,
        use wrsPstatsHC* instead."

    REVISION     "201508121200Z"
    DESCRIPTION
        "First revision."

    ::= { 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 }
wrsId            OBJECT IDENTIFIER ::= { wrSwitchMIB 1000 }


-- 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 - other objects in wrsGeneralStatusGroup are ok
            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 ok
            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 ok
            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 ok
            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, indicating whether boot was
            successful
            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 average load in group wrsCpuLoad.
            Error - average CPU load is more than 3 for 1min, 2 for 5min or 1.5 for 15min
            Warning - average CPU load is more than 2 for 1min, 1.5 for 5min or 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 PTP daemon based on values in wrsPtpDataTable
            ok - Correct values in wrsPtpDataTable
            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 Soft PLL based on values in 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 - all links have proper status
            error - wrong link status of at least one link
            warningNA - there is N/A in one of object used to calculate this value"
    ::= { 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 one of object used to calculate this value
            error - no PTP packets flowing on at least one wr up port
            firstRead - cannot calculate value from only one read"
    ::= { wrsTimingStatusGroup 4 }

wrsSystemClockStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        warning(3),                      
                        warningNA(4)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Grouped status of system clock
            ok - system clock is withing threshold (set in WRS configuration)
                 to NTP time and correct leap seconds file was loaded
            error - system clock problem, either it diverged or incorrect leap
                 seconds file is used
            warning - leapseconds file is not valid anymore and should be
                 updated
            warningNA - some information could not be retrieved to calculate the
                 value of this object"
    ::= { wrsTimingStatusGroup 5 }

-- 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
            warningNA - there is N/A in one of object used to calculate this value
            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
            "Grouped status of all endpoints
             ok - all endpoints are ok
             error - erro in at least one endpoint
             firstRead - cannot calculate value from only one read"
    ::= { wrsNetworkingStatusGroup 2 }

wrsSwcoreStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        firstRead(6)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Overall status of Soft Core.
             ok - correct Soft Core status
             error - erroneous Soft Core status
             firstRead - cannot calculate value from only one read"
    ::= { wrsNetworkingStatusGroup 3 }

wrsRTUStatus OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        firstRead(6)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "RTU status
             ok - correct RTU status
             error - erroneous RTU status
             firstRead - cannot calculate value from only one read"
    ::= { 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 type 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 the 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 ID 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 ID 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
        accurate, due to hard restarts or lack of proper time at update."
    ::= { wrsVersionGroup 14 }

wrsVersionFeatures             OBJECT-TYPE
    SYNTAX                     DisplayString
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "List of extra features available on WR Switch:
         LJD - Low-Jitter-Daughterboard "
    ::= { wrsVersionGroup 15 }

-- 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 }

wrsSystemClockStatusDetails OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        thresholdExceeded(2),
                        ntpError(3),
                        error(4),
                        ioError(5),
                        unknownStatus(6)
                            }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "The system clock is compared to NTP time  
            ok - system clock is under the threshold value
            thresholdExceeded - system clock has exceeded the threshold value
            IOError - IO error detected (error) 
            unknownStatus - Unexpected status (error)
            error - Error detected
            warningNA - there is N/A in one of object used to calculate this value"
    ::= { wrsCurrentTimeGroup 3 }

wrsSystemClockDrift OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Drift of system clock expressed in seconds"  
    ::= { wrsCurrentTimeGroup 4 }

wrsSystemClockDriftThreshold OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Threshold level in seconds for system clock drift"  
    ::= { wrsCurrentTimeGroup 5 }

wrsSystemClockCheckInterval OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Check interval of system clock drift. 
            The unit is given by wrsSystemClockCheckIntervalUnit object."  
            
    ::= { wrsCurrentTimeGroup 6 }

wrsSystemClockCheckIntervalUnit OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        error(1),
                        minutes(2),
                        hours(3),
                        days(4) }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "System clock check interval unit (see wrsSystemClockCheckInterval)
            seconds - System clock check interval expressed in seconds
            minutes - System clock check interval expressed in minutes
            days - System clock check interval expressed in number of days
            "
    ::= { wrsCurrentTimeGroup 7 }

wrsLeapSecSource OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        error(1),
                        errorMinor(2),
                        local(3),
                        tryRemote(4),
                        forceRemote(5)    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Source leap second file (leap-seconds.list)
            local - The local file is used
            tryRemote - Try to download the file, if it fails
                        do not propagate error
            forceRemote - Try to download the file, if it fails
                        the error is propagated
            errorMinor - cannot read the status file, problem is probably somewhere
                     else"
    ::= { wrsCurrentTimeGroup 8 }

wrsLeapSecStatusDetails OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        statusFileMissing(2),
                        unknownStatus(3),
                        leapSecFileExpired(4),
                        internalErrorDetected(5),
                        taiReadError(6),
                        leaSecInserted(7),
                        leapSecDeleted(8) 
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Leap second status
			ok -  Everything ok
			leapSecFileExpired - The current leap second file is out-dated
		    internalErrorDetected - Internal error detected (system,...)
			taiReadError - Cannot read the TAI time
			leaSecInserted - A leap second will be inserted at 00:00 
			leapSecDeleted - A leap second will be deleted at 00:00
            errorMinor - cannot read the status file, problem is probably somewhere
                     else"
    ::= { wrsCurrentTimeGroup 9 }

wrsLeapSecSourceStatusDetails OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        ok(1),
                        statusFileMissing(2),
                        unknownStatus(3),
                        updated(4),
                        dhcpError(5),
                        invalidUrl(6),
                        invalidFile(7),
                        downloadError(8)
                    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Download status of the leap seconds file
             ok - Everything is OK
             updated  - Local leap seconds file has been updated
             dhcpError - DHCP error detected
             invalidUrl - The URL is not reachable or invalid
             invalidFile - The download file is invalid
             downloadError - Error detected during the download
             errorMinor - cannot read the status file, problem is probably somewhere
                     else"
    ::= { wrsCurrentTimeGroup 10 }

wrsLeapSecSourceURL OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..128))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
        "Url to the leap second file"
    ::= { wrsCurrentTimeGroup 11 }

wrsSystemClockDriftUs OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Drift of system clock expressed in microseconds with saturation to
            min/max integer values"
    ::= { wrsCurrentTimeGroup 12 }

--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),
                        restartByMonit(7)
    }
    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)
       restartByMonit(7) - Restart caused by Monit, please check wrsRestartReasonMonit
                           for program that caused problems"
    ::= { 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),
                        remote(4),
                        tryDhcp(5),
                        forceDhcp(6)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Source of used dotconfig
        local - used dot-config was stored on the switch
        remote - dot-config retrieved from the network check the
                 wrsConfigSourceUrl for the path
        tryDhcp - try to get URL to the dot-config via DHCP, if DHCP retrieve
                  fail do not propagate error to the wrsBootSuccessful;
        forceDhcp - get URL to the dot-config via DHCP, if failed propagate error
                    to the wrsBootSuccessful
        errorMinor - cannot read the status file, problem is probably somewhere
                     else"
    ::= { wrsBootStatusGroup 6 }

wrsConfigSourceUrl   OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Url to the dot-config"
    ::= { wrsBootStatusGroup 7 }

wrsRestartReasonMonit  OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..32))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Program's name which caused the monit to restart the switch due to too
         many crashes."
    ::= { wrsBootStatusGroup 8 }

wrsBootConfigStatus  OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        ok(1),
                        error(2),
                        downloadError(3),
                        checkError(4),
                        errorMinor(5),
                        dhcpError(6)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Result of loading or downloading dot-config file
        ok - dot-config downloaded or loaded correctly
        downloadError - unable to download a file from a given source
        checkError - config file is not valid or too short (less than 200 characters).
        errorMinor - cannot read the status file, problem is probably somewhere else
        dhcpError - unable to get URL to dot-config via DHCP (only for forceDhcp)"
    ::= { 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
        ok - hwinfo readout successful
        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
        ok - FPGA loaded successfully
        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
        ok - LM32 loaded successfully
        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 }

wrsFwUpdateStatus  OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        ok(1),
                        checksumError(2)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Status of the last firmware update.
        ok - Update successful
        checksumError - firmware checksum error"
    ::= { wrsBootStatusGroup 16 }

wrsCustomBootScriptSource OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        error(1),
                        errorMinor(2),
                        local(3),
                        remote(4),
                        disabled(5)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Source of the custom boot script
        local - used custom boot script was stored on the switch
        remote - custom boot script was retrieved from the network; check the
                 wrsCustomBootScriptSourceUrl for the path
        disabled - do not run custom boot script
        errorMinor - cannot read the status file, problem is probably somewhere
                     else"
    ::= { wrsBootStatusGroup 17 }

wrsCustomBootScriptSourceUrl OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..128))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Url to the custom boot script"
    ::= { wrsBootStatusGroup 18 }


wrsCustomBootScriptStatus OBJECT-TYPE
    SYNTAX       INTEGER {
                        na(0),
                        ok(1),
                        failed(2),
                        wrongSrc(3),
                        downloadError(4),
                        disabled(5),
                        error(6),
                        errorMinor(7)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The result of execution of the custom boot script
        ok - custom boot script executed successfully
        failed - custom boot script failed during execution
        wrongSrc - no valid source of the custom boot script present in dot-config
        downloadError - unable to download a file from a given source
        disabled - do not run custom boot script
        error - unsupported status
        errorMinor - cannot read the status file, problem is probably somewhere else"
    ::= { wrsBootStatusGroup 19 }


wrsAuxClkSetStatus             OBJECT-TYPE
    SYNTAX                     INTEGER {
                                   na(0),
                                   ok(1),
                                   failed(2),
                                   disabled(3),
                                   error(4),
                                   errorMinor(5)
                               }
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "Result of setting up auxclk on connector clk2
        ok - successful set pu of the auxclk
        failed - error while setting up the auxclk
        disabled - the setting up of the auxclk disabled in dot-config
        error - unsuported status
        errorMinor - cannot read the status file, the problem is probably
                     somewhere else"
    ::= { wrsBootStatusGroup 20 }

wrsThrottlingSetStatus         OBJECT-TYPE
    SYNTAX                     INTEGER {
                                   na(0),
                                   ok(1),
                                   failed(2),
                                   disabled(3),
                                   error(4),
                                   errorMinor(5)
                               }
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "Result of setting up a limit on the Rx bandwidth of the traffic that
        goes from WR ports to Linux.
        ok - successful set up of the throttling
        failed - error while setting up the throttling
        disabled - the setting up of the throttling disabled in dot-config
        error - unsuported status
        errorMinor - cannot read the status file, the problem is probably
                     somewhere else"
    ::= { wrsBootStatusGroup 21 }

wrsVlansSetStatus              OBJECT-TYPE
    SYNTAX                     INTEGER {
                                   na(0),
                                   ok(1),
                                   failed(2),
                                   disabled(3),
                                   error(4),
                                   errorMinor(5)
                               }
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "Result of setting up VLANs
        ok - successful set up of VLANs
        failed - error while setting up VLANs
        disabled - the setting up of VLANs disabled in dot-config
        error - unsuported status
        errorMinor - cannot read the status file, the problem is probably
                     somewhere else"
    ::= { wrsBootStatusGroup 22 }

-- 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 }

wrsStartCntPTP OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of PTP 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
            "Number of SSH daemon starts"
    ::= { wrsStartCntGroup 4 }

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

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

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

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

wrsStartCntLldpd OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of LLDP daemon starts"
    ::= { wrsStartCntGroup 9 }

wrsStartCntLdap OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of LDAP daemon starts"
    ::= { wrsStartCntGroup 10 }

wrsStartCntRvlan   OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of radiusvlan daemon starts"
    ::= { wrsStartCntGroup 11 }

-- 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 Soft PLL 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 Soft PLL, '__DATE__' at build time"
    ::= { wrsSpllVersionGroup 2 }

wrsSpllBuildBy            OBJECT-TYPE
    SYNTAX                DisplayString (SIZE (0..32))
    MAX-ACCESS            read-only
    STATUS                current
    DESCRIPTION
        "The build by of the Soft PLL"
    ::= { wrsSpllVersionGroup 3 }

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

wrsSpllMode        OBJECT-TYPE
    SYNTAX INTEGER {
                na(0),
                grandmaster(1),
                master(2),
                slave(3),
                disabled(4)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Mode of Soft PLL (values taken from softpll_export.h, wrpc-sw repo)"
    ::= { 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_export.h, 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),
                waitClkIn(9),
                waitPlock(10)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Align state of Soft PLL (values taken from file softpll_export.h, 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      deprecated
    DESCRIPTION
            "Pstats counters for each port"
    ::= { wrsExpertStatus 4 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

wrsPstatsRXPclass0 OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         deprecated
    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         deprecated
    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         deprecated
    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         deprecated
    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         deprecated
    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         deprecated
    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         deprecated
    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         deprecated
    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         deprecated
    DESCRIPTION
            "Number of transmitted frames"
    ::= { wrsPstatsEntry 21 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

wrsPstatsTRURespValid OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         deprecated
    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,
        wrsPtpServoUpdateTime   Counter64,
        wrsPtpServoExt          INTEGER
    }

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      obsolete
    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),
                standardPTP(99)
    }
    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 interface name that is currently the synchronization source"
    ::= { wrsPtpDataEntry 9 }

wrsPtpClockOffsetPs OBJECT-TYPE
    SYNTAX      Counter64 -- integer64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Absolute value of 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 }

wrsPtpServoUpdateTime OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "TAI Nanosecond of the last servo's update"
    ::= { wrsPtpDataEntry 23 }

wrsPtpServoExt OBJECT-TYPE
    SYNTAX INTEGER {
                na(0),
                none(1),
                wr(2),
                l1Sync(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Extension with which the servo runs."
    ::= { wrsPtpDataEntry 24 }

-- 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,
        wrsPortStatusMonitor     INTEGER,
        wrsPortStatusSfpDom      INTEGER,
        wrsPortStatusSfpTemp     INTEGER,
        wrsPortStatusSfpVcc      INTEGER,
        wrsPortStatusSfpTxBias   INTEGER,
        wrsPortStatusSfpTxPower  INTEGER,
        wrsPortStatusSfpRxPower  INTEGER,
        wrsPortStatusT24p        INTEGER,
        wrsPortStatusT24pValid   INTEGER
    }

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),
                        none(5)
    }
    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         obsolete
    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 }

wrsPortStatusMonitor OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        enable(1),
                        disable(2)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "If disable, SNMP will not generate any errors for this port."
    ::= { wrsPortStatusEntry 15 }

wrsPortStatusSfpDom    OBJECT-TYPE
    SYNTAX             INTEGER {
                           na(0),
                           enable(1),
                           disable(2),
                           domNotSupported(3)
    }
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "SFP plugged into a given port has extra monitoring (DOM) capabilities."
    ::= { wrsPortStatusEntry 16 }

wrsPortStatusSfpTemp   OBJECT-TYPE
    SYNTAX             Integer32
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "Temperature reported by SFP. According to SFF-8472, accuracy of
            this value must be better than 3 degrees Celsius"
    ::= { wrsPortStatusEntry 17 }

wrsPortStatusSfpVcc    OBJECT-TYPE
    SYNTAX             Integer32
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "Internally measured transceiver supply voltage reported by SFP.
            According to SFF-8472, accuracy of this value must be better than 3%"
    ::= { wrsPortStatusEntry 18 }

wrsPortStatusSfpTxBias OBJECT-TYPE
    SYNTAX             Integer32
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "Measured TX bias current in uA reported by SFP.
            According to SFF-8472, accuracy of this value must be better than 10%"
    ::= { wrsPortStatusEntry 19 }

wrsPortStatusSfpTxPower OBJECT-TYPE
    SYNTAX             Integer32
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "Measured TX output power in uW reported by SFP.
            According to SFF-8472, accuracy of this value must be better than 3dB%"
    ::= { wrsPortStatusEntry 20 }

wrsPortStatusSfpRxPower OBJECT-TYPE
    SYNTAX             Integer32
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "Measured RX output power in uW reported by SFP.
            According to SFF-8472, accuracy of this value must be better than 3dB%"
    ::= { wrsPortStatusEntry 21 }

wrsPortStatusT24p OBJECT-TYPE
    SYNTAX             Integer32
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "T2/T4 phase transition point used for Rx timestamps correction"
    ::= { wrsPortStatusEntry 22 }

wrsPortStatusT24pValid OBJECT-TYPE
    SYNTAX             INTEGER {
                           invalid(0),
                           readFromConfig(1)
    }
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "Validity of wrsPortStatusT24p"
    ::= { wrsPortStatusEntry 23 }

-- wrsPstatsHCTable (.7.7)
wrsPstatsHCTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF WrsPstatsHCEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Pstats counters for each port"
    ::= { wrsExpertStatus 7 }

wrsPstatsHCEntry OBJECT-TYPE
    SYNTAX      WrsPstatsHCEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing pstats counters"
    INDEX   { wrsPstatsHCIndex }
    ::= { wrsPstatsHCTable 1 }

WrsPstatsHCEntry ::=
    SEQUENCE {
        wrsPstatsHCIndex                 Unsigned32,
        wrsPstatsHCPortName              DisplayString,
        wrsPstatsHCTXUnderrun            Counter64,
        wrsPstatsHCRXOverrun             Counter64,
        wrsPstatsHCRXInvalidCode         Counter64,
        wrsPstatsHCRXSyncLost            Counter64,
        wrsPstatsHCRXPauseFrames         Counter64,
        wrsPstatsHCRXPfilterDropped      Counter64,
        wrsPstatsHCRXPCSErrors           Counter64,
        wrsPstatsHCRXGiantFrames         Counter64,
        wrsPstatsHCRXRuntFrames          Counter64,
        wrsPstatsHCRXCRCErrors           Counter64,
        wrsPstatsHCRXPclass0             Counter64,
        wrsPstatsHCRXPclass1             Counter64,
        wrsPstatsHCRXPclass2             Counter64,
        wrsPstatsHCRXPclass3             Counter64,
        wrsPstatsHCRXPclass4             Counter64,
        wrsPstatsHCRXPclass5             Counter64,
        wrsPstatsHCRXPclass6             Counter64,
        wrsPstatsHCRXPclass7             Counter64,
        wrsPstatsHCTXFrames              Counter64,
        wrsPstatsHCRXFrames              Counter64,
        wrsPstatsHCRXDropRTUFull         Counter64,
        wrsPstatsHCRXPrio0               Counter64,
        wrsPstatsHCRXPrio1               Counter64,
        wrsPstatsHCRXPrio2               Counter64,
        wrsPstatsHCRXPrio3               Counter64,
        wrsPstatsHCRXPrio4               Counter64,
        wrsPstatsHCRXPrio5               Counter64,
        wrsPstatsHCRXPrio6               Counter64,
        wrsPstatsHCRXPrio7               Counter64,
        wrsPstatsHCRTUValid              Counter64,
        wrsPstatsHCRTUResponses          Counter64,
        wrsPstatsHCRTUDropped            Counter64,
        wrsPstatsHCFastMatchPriority     Counter64,
        wrsPstatsHCFastMatchFastForward  Counter64,
        wrsPstatsHCFastMatchNonForward   Counter64,
        wrsPstatsHCFastMatchRespValid    Counter64,
        wrsPstatsHCFullMatchRespValid    Counter64,
        wrsPstatsHCForwarded             Counter64,
        wrsPstatsHCTRURespValid          Counter64,
        wrsPstatsHCNICTXFrames		 Counter64
    }

wrsPstatsHCIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
            "Index for wrsPstatsHCTable"
    ::= { wrsPstatsHCEntry 1 }

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

wrsPstatsHCTXUnderrun OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of TX underrun errors"
    ::= { wrsPstatsHCEntry 3 }

wrsPstatsHCRXOverrun OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX overrun errors"
    ::= { wrsPstatsHCEntry 4 }

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

wrsPstatsHCRXSyncLost OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX link synchronization lost"
    ::= { wrsPstatsHCEntry 6 }

wrsPstatsHCRXPauseFrames OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received pause frames"
    ::= { wrsPstatsHCEntry 7 }

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

wrsPstatsHCRXPCSErrors OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of errors occurred during frame reception in PCS"
    ::= { wrsPstatsHCEntry 9 }

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

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

wrsPstatsHCRXCRCErrors OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of RX CRC errors"
    ::= { wrsPstatsHCEntry 12 }

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

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

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

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

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

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

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

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

wrsPstatsHCTXFrames OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of transmitted frames"
    ::= { wrsPstatsHCEntry 21 }

wrsPstatsHCRXFrames OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of received frames"
    ::= { wrsPstatsHCEntry 22 }

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

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

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

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

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

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

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

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

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

wrsPstatsHCRTUValid OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of valid RTU requests"
    ::= { wrsPstatsHCEntry 32 }

wrsPstatsHCRTUResponses OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of valid RTU responses"
    ::= { wrsPstatsHCEntry 33 }

wrsPstatsHCRTUDropped OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of frames dropped at RTU"
    ::= { wrsPstatsHCEntry 34 }

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

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

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

wrsPstatsHCFastMatchRespValid OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of fast match decisions"
    ::= { wrsPstatsHCEntry 38 }

wrsPstatsHCFullMatchRespValid OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of full match decisions"
    ::= { wrsPstatsHCEntry 39 }

wrsPstatsHCForwarded OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of forwarded frames"
    ::= { wrsPstatsHCEntry 40 }

wrsPstatsHCTRURespValid OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of TRU decisions"
    ::= { wrsPstatsHCEntry 41 }

wrsPstatsHCNICTXFrames OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Number of TX frames coming from CPU"
    ::= { wrsPstatsHCEntry 42 }

-- wrsPtpInstanceTable (.7.8)
wrsPtpInstanceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF WrsPtpInstanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Pstats counters for each port"
    ::= { wrsExpertStatus 8 }

wrsPtpInstanceEntry OBJECT-TYPE
    SYNTAX      WrsPtpInstanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing pstats counters"
    INDEX   { wrsPtpInstancePortIndex, wrsPtpInstanceOnPortIndex }
    ::= { wrsPtpInstanceTable 1 }

WrsPtpInstanceEntry ::=
    SEQUENCE {
        wrsPtpInstancePortIndex         Unsigned32,
        wrsPtpInstanceOnPortIndex       Unsigned32,
        wrsPtpInstanceName              DisplayString,
        wrsPtpInstancePort              INTEGER,
        wrsPtpInstancePortInstance      INTEGER,
        wrsPtpInstancePortName          DisplayString,
        wrsPtpInstanceState             INTEGER,
        wrsPtpInstanceMasterOnly        INTEGER,
        wrsPtpInstanceExtPortCfgDesSt   INTEGER,
        wrsPtpInstanceMechanism         INTEGER,
        wrsPtpInstanceProfile           INTEGER,
        wrsPtpInstanceExtension         INTEGER,
        wrsPtpInstanceAsymEnabled       INTEGER,
        wrsPtpInstanceAsymConstAsymPS   Counter64,
        wrsPtpInstanceAsymScDelayCoef   Counter64,
        wrsPtpInstanceAsymScDelayCoefHR DisplayString,
        wrsPtpInstanceTSCorrEgressLatPS Counter64,
        wrsPtpInstanceTSCorrIngLatPS    Counter64,
        wrsPtpInstanceTSCorrSemistLatPS Counter64,
        wrsPtpInstanceProtoDetectState  INTEGER,
        wrsPtpInstanceExtState          INTEGER,
        wrsPtpInstancePeerMac           PhysAddress,
        wrsPtpInstancePeerVid           INTEGER,
        wrsPtpInstanceVlanNum           INTEGER,
        wrsPtpInstanceVlanListStr       DisplayString,
        wrsPtpInstanceStatusError       INTEGER
    }

wrsPtpInstancePortIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
            "Index for wrsPtpInstanceTable"
    ::= { wrsPtpInstanceEntry 1 }

wrsPtpInstanceOnPortIndex OBJECT-TYPE
    SYNTAX         Unsigned32
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
            "Index for wrsPtpInstanceTable"
    ::= { wrsPtpInstanceEntry 2 }

wrsPtpInstanceName OBJECT-TYPE
    SYNTAX         DisplayString (SIZE (0..12))
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Name of an instance"
    ::= { wrsPtpInstanceEntry 3 }

wrsPtpInstancePort OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Port number on which an instance is running"
    ::= { wrsPtpInstanceEntry 4 }

wrsPtpInstancePortInstance OBJECT-TYPE
    SYNTAX         Integer32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Index of an instance running on a port"
    ::= { wrsPtpInstanceEntry 5 }

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

wrsPtpInstanceState OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        initializing(1),
                        faulty(2),
                        disabled(3),
                        listening(4),
                        preMaster(5),
                        master(6),
                        passive(7),
                        uncalibrated(8),
                        slave(9)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Name of instance"
    ::= { wrsPtpInstanceEntry 7 }

wrsPtpInstanceMasterOnly  OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        disabled(1),
                        enabled(2)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "MasterOnly feature enabled/disabled"
    ::= { wrsPtpInstanceEntry 8 }

wrsPtpInstanceExtPortCfgDesSt  OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        initializing(1),
                        faulty(2),
                        disabled(3),
                        listening(4),
                        preMaster(5),
                        master(6),
                        passive(7),
                        uncalibrated(8),
                        slave(9)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "DesiredState to be used if/when externalPortConfiguration feature is enabled"
    ::= { wrsPtpInstanceEntry 9 }

wrsPtpInstanceMechanism  OBJECT-TYPE
    SYNTAX         INTEGER { --- see ppsi/include/ppsi/ieee1588_types.h
                        na(0),
                        e2e(1),
                        p2p(2),
                        commonP2P(3),
                        special(4),
                        noMechanism(254)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Delay Mechanism type used by PTP Instance"
    ::= { wrsPtpInstanceEntry 10 }

wrsPtpInstanceProfile  OBJECT-TYPE
    SYNTAX         INTEGER {              -- ppsi/include/ppsi/ppsi.h
                        na(0),
                        defaultPTP(1),    -- PPSI_PROFILE_PTP
                        whiteRabbit(2),   -- PPSI_PROFILE_WR
                        highAccuracy(3),  -- PPSI_PROFILE_HA
                        custom(4)         -- PPSI_PROFILE_CUSTOM
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Profile/Extension configured on a PTP Instance"
    ::= { wrsPtpInstanceEntry 11 }

wrsPtpInstanceExtension  OBJECT-TYPE
    SYNTAX         INTEGER {               --ppsi/include/ppsi/ppsi.h
                        na(0),
                        none(1),           -- PPSI_EXT_NONE
                        whiteRabbit(2),    -- PPSI_EXT_WR
                        l1Sync(3)          -- PPSI_EXT_L1S
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Extension used on the PTP Instance"
    ::= { wrsPtpInstanceEntry 12 }

wrsPtpInstanceAsymEnabled  OBJECT-TYPE
    SYNTAX         INTEGER {
                        na(0),
                        disabled(1),
                        enabled(2)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Asymmetry Corrections enabled/disabled on the PTP Instance"
    ::= { wrsPtpInstanceEntry 13 }

wrsPtpInstanceAsymConstAsymPS  OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Constant Asymmetry in picoseconds"
    ::= { wrsPtpInstanceEntry 14 }

wrsPtpInstanceAsymScDelayCoef OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Scaled Relative Delay Coefficient"
    ::= { wrsPtpInstanceEntry 15 }

wrsPtpInstanceAsymScDelayCoefHR OBJECT-TYPE
    SYNTAX                     DisplayString (SIZE (0..64))
    MAX-ACCESS                 read-only
    STATUS                     current
    DESCRIPTION
        "Relative Delay Coefficient in a floating form"
    ::= { wrsPtpInstanceEntry 16 }

wrsPtpInstanceTSCorrEgressLatPS OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Egress Latency (Tx Fixed Delay) in picoseconds"
    ::= { wrsPtpInstanceEntry 17 }

wrsPtpInstanceTSCorrIngLatPS OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Ingress Latency (Rx Fixed Delay) in picoseconds"
    ::= { wrsPtpInstanceEntry 18 }

wrsPtpInstanceTSCorrSemistLatPS OBJECT-TYPE
    SYNTAX         Counter64
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Semi-static latency (bitslide) in picoseconds"
    ::= { wrsPtpInstanceEntry 19 }

wrsPtpInstanceProtoDetectState  OBJECT-TYPE
    SYNTAX         INTEGER {             -- ppsi/include/ppsi/pp-instance.h
                        na(0),
                        none(1),         -- PP_PDSTATE_NONE
                        pWaitMsg(2),     -- PP_PDSTATE_WAIT_MSG
                        pDetection(3),   -- PP_PDSTATE_PDETECTION
                        pDetected(4),    -- PP_PDSTATE_PDETECTED
                        pFailure(5)      -- PP_PDSTATE_FAILURE
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "Protocol detection state"
    ::= { wrsPtpInstanceEntry 20 }

    wrsPtpInstanceExtState  OBJECT-TYPE
    SYNTAX         INTEGER {         -- ppsi/include/ppsi/pp-instance.h
                        na(0),
                        disabled(1), -- PP_EXSTATE_DISABLE
                        active(2),   -- PP_EXSTATE_ACTIVE
                        ptp(3)       -- PP_EXSTATE_PTP
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "State of PTP extension (more than one are allowed per 1 physical port)"
    ::= { wrsPtpInstanceEntry 21 }


wrsPtpInstancePeerMac  OBJECT-TYPE
    SYNTAX             PhysAddress
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "MAC used by an instance"
    ::= { wrsPtpInstanceEntry 22 }

wrsPtpInstancePeerVid  OBJECT-TYPE
    SYNTAX             Integer32
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "VID used by an instance"
    ::= { wrsPtpInstanceEntry 23 }

wrsPtpInstanceVlanNum  OBJECT-TYPE
    SYNTAX             Integer32
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "Number of VLANs used by an instance"
    ::= { wrsPtpInstanceEntry 24 }

wrsPtpInstanceVlanListStr  OBJECT-TYPE
    SYNTAX             DisplayString (SIZE (0..160)) --32*5-
    MAX-ACCESS         read-only
    STATUS             current
    DESCRIPTION
            "Comma separated list of VLANs used by an instance"
    ::= { wrsPtpInstanceEntry 25 }

 wrsPtpInstanceStatusError  OBJECT-TYPE
    SYNTAX         INTEGER { 
                        na(0),
                        ok(1), 
                        error(2),
                        warningNA(3) -- at least one field is equal to 0 (NA)
    }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
            "PTP instance status error
             ok - all SFPs are ok
             error - there is an error in SFP
             warningNA - at least one field is equal to 0 (NA),
                         shouldn't happen in normal operation 
             "
    ::= { wrsPtpInstanceEntry 26 }

--wrsNetworking
--Configuration

-- wrsId (.1000)
wrsIdUnkn                 OBJECT IDENTIFIER ::= { wrsId 1 }
wrsIdOther                OBJECT IDENTIFIER ::= { wrsId 2 }
wrsId3                    OBJECT IDENTIFIER ::= { wrsId 3 }

-- wrsId (.1000.1)
wrsIdUnknUnkn             OBJECT IDENTIFIER ::= { wrsIdUnkn 1 }

-- wrsIdOther (.1000.2)

-- wrsId3 (.1000.3)
wrsId3Unkn                OBJECT IDENTIFIER ::= { wrsId3 1 }
wrsId3Ssol                OBJECT IDENTIFIER ::= { wrsId3 2 }
wrsId3Cti                 OBJECT IDENTIFIER ::= { wrsId3 3 }
wrsId3St                  OBJECT IDENTIFIER ::= { wrsId3 4 }
wrsId3Opnt                OBJECT IDENTIFIER ::= { wrsId3 5 }

-- wrsId3Unkn (.1000.3.1)
wrsId3UnknUnkn            OBJECT IDENTIFIER ::= { wrsId3Unkn 1 }
wrsId3Unkn3               OBJECT IDENTIFIER ::= { wrsId3Unkn 3 }
wrsId3Unkn4               OBJECT IDENTIFIER ::= { wrsId3Unkn 4 }
wrsId3UnknFL              OBJECT IDENTIFIER ::= { wrsId3Unkn 5 }

-- wrsId3Ssol (.1000.3.2)
wrsId3SsolUnkn            OBJECT IDENTIFIER ::= { wrsId3Ssol 1 }
wrsId3Ssol3               OBJECT IDENTIFIER ::= { wrsId3Ssol 3 }
wrsId3Ssol4               OBJECT IDENTIFIER ::= { wrsId3Ssol 4 }

-- wrsId3Cti (.1000.3.3)
wrsId3CtiUnkn             OBJECT IDENTIFIER ::= { wrsId3Cti 1 }
wrsId3Cti3                OBJECT IDENTIFIER ::= { wrsId3Cti 3 }
wrsId3Cti4                OBJECT IDENTIFIER ::= { wrsId3Cti 4 }

-- wrsId3St (.1000.3.4)
wrsId3StUnkn              OBJECT IDENTIFIER ::= { wrsId3St 1 }
wrsId3St3                 OBJECT IDENTIFIER ::= { wrsId3St 3 }
wrsId3St4                 OBJECT IDENTIFIER ::= { wrsId3St 4 }
wrsId3StFL                OBJECT IDENTIFIER ::= { wrsId3St 5 }

-- wrsId3Opnt (.1000.3.5)
wrsId3OpntUnkn            OBJECT IDENTIFIER ::= { wrsId3Opnt 1 }
wrsId3Opnt3               OBJECT IDENTIFIER ::= { wrsId3Opnt 3 }
wrsId3Opnt4               OBJECT IDENTIFIER ::= { wrsId3Opnt 4 }

END
