

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Add status entries in the order as the appear in the MIB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\snmpentrys{WR-SWITCH-MIB}{}{wrsGeneralStatusGroup}{
  Group containing collective status of the switch and its various
  subsystems.}

  \snmpentrys{WR-SWITCH-MIB}{wrsGeneralStatusGroup}{wrsMainSystemStatus}{
    \underline{Description:}
    WRS general status of a switch can be \texttt{OK}, \texttt{Warning} or
    \texttt{Error}. In case of an error or warning, please check the values of
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsOSStatus}},
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsTimingStatus}} and
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsNetworkingStatus}} to find out which
    subsystem causes the problem.
    \glspar \underline{Related problems:}}
  \snmpentrys{WR-SWITCH-MIB}{wrsGeneralStatusGroup}{wrsOSStatus}{
    \underline{Description:}
    Collective status of the operating system running on WR switch. In case of
    an error or warning, please check status objects in the
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsOSStatusGroup}}.
    \glspar \underline{Related problems:}}
  \snmpentrys{WR-SWITCH-MIB}{wrsGeneralStatusGroup}{wrsTimingStatus}{
    \underline{Description:}
    Collective status of the synchronization subsystem. In case of an
    error or warning, please check status objects in the
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsTimingStatusGroup}}.
    \glspar \underline{Related problems:}}
  \snmpentrys{WR-SWITCH-MIB}{wrsGeneralStatusGroup}{wrsNetworkingStatus}{
    \underline{Description:}
    Collective status of the Ethernet switching subsystem. In case of an error
    or warning, please check status objects in the
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsNetworkingStatusGroup}}.
    \glspar \underline{Related problems:}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\snmpentrys{WR-SWITCH-MIB}{}{wrsDetailedStatusesGroup}{
  Branch with collective statuses of various switch subsystems.}

  %------------------------------------------------------------------------

  \snmpentrys{WR-SWITCH-MIB}{wrsDetailedStatusesGroup}{wrsOSStatusGroup}{
    \underline{Description:}
    Group with collective statuses of the embedded operating system running on
    the switch.}

  \snmpentrys{WR-SWITCH-MIB}{wrsOSStatusGroup}{wrsBootSuccessful}{
    \underline{Description:}
    Grouped status of \texttt{\glshyperlink{WR-SWITCH-MIB::wrsBootStatusGroup}},
    indicating whether boot was
    successful. \texttt{Error} when dot-config source is wrong, unable to get
    the dot-config, unable to get URL to the dot-config, dot-config contains
    errors, unable to read the hwinfo, unable to load the FPGA bitstream, unable
    to load the LM32 software, any kernel modules or userspace daemons are
    missing, failed to update firmware due to checksum error, unable to
    download custom boot script, custom boot script fails during execution,
    fails setting up auxclk on connector clk2, fails setting up a limit on
    the Rx bandwidth of the traffic that goes from WR ports to Linux
    (throttling), fails setting up VLANs.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Dump state
      \item Check \texttt{\glshyperlink{WR-SWITCH-MIB::wrsBootConfigStatus}},
        \texttt{\glshyperlink{WR-SWITCH-MIB::wrsCustomBootScriptStatus}}
        if it reports an error, please verify your WRS configuration.
      \item Restart the switch
      \item Please consult WR experts if the problem persists.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsOSStatusGroup}{wrsTemperatureWarning}{
    \underline{Description:}
    Reports whether the temperature thresholds are not set or are exceeded.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Dump state
      \item Verify if your switch configuration contains valid temperature
        thresholds. By default, they are all set to 80 \textdegree C.
      \item Verify if cooling of the rack where WR Switch is installed works
        properly.
      \item Verify if both cooling fans in the back of the WR Switch case are
        working.
      \item Replace the switch with a new unit and consult the WR Switch
        manufacturer for a repair.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsOSStatusGroup}{wrsMemoryFreeLow}{
    \underline{Description:}
    Reports \texttt{Warning} when more than 50\%, or \texttt{Error} when more
    than 80\% of the memory is used.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Dump state
      \item Restart the switch
      \item Send the dumped state of the switch to WR experts for analysis as
        this might mean there is some internal problem in the WRS firmware.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsOSStatusGroup}{wrsCpuLoadHigh}{
    \underline{Description:}
    Reports \texttt{Warning} when the average CPU load is more than 2 for the past 1min,
    1.5 for 5min or 1 for 15min. \texttt{Error} when the average CPU load is
    more than 3 for the past 1min, 2 for 5min or 1.5 for 15min.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Dump state
      \item Restart the switch
      \item Send the dumped state of the switch to WR experts for analysis as
        this might mean there is some internal problem in the WRS firmware.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

	\snmpentrys{WR-SWITCH-MIB}{wrsOSStatusGroup}{wrsDiskSpaceLow}{
    \underline{Description:}
    \texttt{Warning} when more than 80\% of any disk partition is used.
    \texttt{Error} when more than 90\% of any disk partition is used.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Dump state
      \item Check the values of \emph{CONFIG\_WRS\_LOG\_*} configuration options
        on the switch. These are the parameters describing where log messages
        should be sent from various processes in the switch. Normally users
        don't need to modify them, but if any of them is set to a file in the
        WRS filesystem (e.g. /tmp/snmp.log) this may reduce the free space after
        some time of operation.
      \item Restart the switch
      \item Send the dumped state of the switch to WR experts for analysis as
        this might mean there is some internal problem in the WRS firmware.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  %------------------------------------------------------------------------

  \snmpentrys{WR-SWITCH-MIB}{wrsDetailedStatusesGroup}{wrsTimingStatusGroup} {
    \underline{Description:}
    Group with collective statuses of the timing subsystem.} %}

  \snmpentrys{WR-SWITCH-MIB}{wrsTimingStatusGroup}{wrsPTPStatus}{
    \underline{Description:}
    Reports the status of PTP daemon running on the switch.\\
    \texttt{Error} when any of PTP error counters in
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsPtpDataTable}}\\
    (\texttt{\glshyperlink{WR-SWITCH-MIB::wrsPtpServoStateErrCnt.<n>}},
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsPtpClockOffsetErrCnt.<n>}} or\\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsPtpRTTErrCnt.<n>}})
    has increased since the last scan (issue
    \ref{fail:timing:ppsi_track_phase},
    \ref{fail:timing:offset_jump}, \ref{fail:timing:rtt_jump}), at least one of
    the $\Delta_{TXM}$, $\Delta_{RXM}$, $\Delta_{TXS}$, $\Delta_{RXS}$ is 0
    (issue \ref{fail:timing:deltas_report}), \emph{T24P} phase transition value
    was not provided for at least one port (issue \ref{fail:timing:t24p}) or PTP
    servo update counter is not increasing.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Dump state
      \item Check to configuration of WR Switch to make sure proper
	$\Delta_{TXM}$, $\Delta_{RXM}$, $\Delta_{TXS}$, $\Delta_{RXS}$ and
	\emph{T24P} are defined for each port.
      \item Check \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSoftPLLStatus}} on the
        Master (WR device one step higher in a timing hierarchy). Eventually
        proceed to investigate the problem on the Master switch. Otherwise,
        continue with the primary WRS.
      \item Verify if the link to WR Master was not lost by checking the
        object\\ \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSlaveLinksStatus}}.
      \item If this is not the case, restart the switch.
      \item If the problem persists replace the switch with a new unit.
        %(see \ref{cern:wrs_replacement}).
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsTimingStatusGroup}{wrsSoftPLLStatus}{
    \underline{Description:}
    Reports the status of the PLLs inside the switch.\\
    \texttt{Error} when \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSpllSeqState}}
    is not \emph{Ready}, or 
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSpllAlignState}} is not
    \emph{Locked} (for Grand Master mode), or any of
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSpllHlock}},
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSpllMlock}} equals to 0 (for
    Boundary Clock mode).\\
    \texttt{Warning} when \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSpllDelCnt}}
    has changed (for all modes). The \texttt{Warning} is asserted only during
    the first SNMP read of the object (or related group) and is de-asserted
    afterwords.\\
    \underline{On error:}\\
    For GrandMaster WRS:
    \begin{pck_proc}
      \item Dump state
      \item Check 1-PPS and 10 MHz signals coming from an external source.
        Verify if they are properly connected and, in case of a GPS receiver,
        check if it is synchronized and locked.
      \item Restart the GrandMaster switch.
      \item If the problem persists, replace the switch with a new unit.
        %(see \ref{cern:wrs_replacement}).
    \end{pck_proc}
    \glspar For Boundary Clock WRS:
    \begin{pck_proc}
      \item Dump state
      \item Check \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSoftPLLStatus}} on the
        Master. Eventually proceed to investigate the problem on the Master
        switch.
      \item Verify if the link to WR Master was not lost by checking the
        object\\ \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSlaveLinksStatus}}.
      \item Restart the switch.
      \item If the problem persists, replace the switch with a new unit.
        %(see \ref{cern:wrs_replacement}).
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsTimingStatusGroup}{wrsSlaveLinksStatus}{
    \underline{Description:}
    Reports the status of the link on WR ports configured to slave role.\\
    \texttt{Error} when link to master is down or softpll mode is not slave for
    a switch in the Boundary Clock mode.
    Additionally, \texttt{Error} is generated when the
    link to master is up for a switch in the Free-running Master or Grand
    Master mode.\\
    \underline{On error:}\\
    For Master/GrandMaster WRS:
    \begin{pck_proc}
      \item Check the configuration of the switch. Especially if the
        \emph{Timing Mode} is correctly set (i.e. if it was not accidentally set
        to \emph{Boundary Clock}).
      \item Check the role of each port timing configuration. They should be all
        set to \emph{master}. If any of them is set to \emph{slave} you should
        verify if there is no WR Master connected to it.
    \end{pck_proc}
    \glspar For Boundary Clock WRS:
    \begin{pck_proc}
      \item Check the fiber connection on the slave port of the WRS.
      \item Check the configuration of the switch. Especially if the
        \emph{Timing Mode} is correctly set (i.e. if it was not accidentally set
        to \emph{Grand-Master} or \emph{Free-Running Master}).
      \item Check the VLANs configuration. Whether both switches are configured
        to use the same VLAN.
      \item Check the status of the WR Master connected to the slave port of the
        WRS.
      \item Replace the faulty switch with a new unit, if this does not solve
        the problem, make sure your fiber link is not broken.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsTimingStatusGroup}{wrsPTPFramesFlowing}{
    \underline{Description:}
    Reports \texttt{Error} when PTP frames are not being sent and received on
    active WR ports - Tx/Rx frame counters on active links (master / slave
    ports) are not being incremented. Reports also \texttt{FirstRead} value.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Check Syslog message to determine the WR port on which the
        problem is reported. You should see a message similar to this one:\\
        \texttt{SNMP: wrsPTPFramesFlowing failed for port 1}
      \item Check your network layout and the WR Switch configuration. If you
        have some non-WR devices connected to ports of the WR Switch (e.g.
        computer sending/receiving only data, without the need of
        synchronization), for firmware versions up to 5.0.1
        these ports should have their role in the timing
        configuration set to \emph{non-wr} to avoid PTP traffic or \emph{none}
        to disable PTP traffic at all. For newer releases the parameter
        \emph{monitor} shall be set to \emph{n} to ignore all errors on
        a given port.
      \item Check the status of a WR device connected to the reported port.
      \item Restart the switch.
      \item If the problem persists, please contact WR experts for in-depth
        investigation.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsTimingStatusGroup}{wrsSystemClockStatus}{
    \underline{Description:}
    Reports the status of system time. \texttt{Error} when either the system
    clock diverged from the reference NTP time more than the configured
    threshold or incorrect leap seconds file was provided to the switch. The
    \texttt{Error} is also generated when any of the related services failed.
    Please refer to related SNMP detailed objects for more information on the
    type of failure. \texttt{Warning} when the switch is configured in Master or
    GrandMaster mode and the currently used leap seconds file has expired.
    In case of error or warning, please check the values of \\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSystemClockStatusDetails}} ,\\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSystemClockDrift}} ,\\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSystemClockDriftThreshold}} ,\\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSystemClockCheckInterval}} ,\\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSystemClockCheckIntervalUnit}} ,\\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsLeapSecStatusDetails}} ,\\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsLeapSecSource}} ,\\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsLeapSecSourceURL}}.\\
     to find out which subsystem causes the problem and to verify your configuration.\\ 
    \underline{On error:}
    \begin{pck_proc}
      \item Check Syslog message to find one of the messages similar to:\\
        \texttt{SNMP: wrsSystemClockStatusDetails failed} \\
        \texttt{SNMP: wrsLeapSecStatus failed} \\
        \texttt{SNMP: wrsLeapSecStatusDetails failed} \\
        \texttt{SNMP: wrsLeapSecSourceStatus failed}  \\
        \texttt{SNMP: wrsLeapSecSourceStatusDetails failed} \\
        It may help you to retrieve the configuration problem.
      \item Check that your configured NTP server is reachable using the 
        'ping' command in the switch.
      \item Check that your configuration of leap seconds file points to the
	local file and that it has not expired. In case you configured the
	switch to fetch the leap seconds file from remote server, verify the URL
	entered in the configuration.
      \item Restart the switch.
      \item If the problem persists, please contact WR experts for in-depth
        investigation.        
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  %------------------------------------------------------------------------

  \snmpentrys{WR-SWITCH-MIB}{wrsDetailedStatusesGroup}{wrsNetworkingStatusGroup}{
    \underline{Description:}
    Group with collective statuses of the networking subsystem.}

  \snmpentrys{WR-SWITCH-MIB}{wrsNetworkingStatusGroup}{wrsSFPsStatus}{
    \underline{Description:}
    Reports the status of SFP transceivers inserted to the switch.\\
    \texttt{Error} when any of the SFPs reports an error. To find out which SFP
    caused the problem check
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsPortStatusSfpError.<n>}}.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Check \texttt{\glshyperlink{WR-SWITCH-MIB::wrsPortStatusSfpError.<n>}}
        SNMP objects or Syslog
        messages to determine the WR port on which the problem is reported. In
        case of Syslog, you should see a message similar to this one:\\
        \texttt{Unknown SFP vn="AVAGO" pn="ABCU-5710RZ" vs="AN1151PD8A" on port
        wri2}
      \item If the reported port is intended to be used with WR not compatible
        equipment (e.g. using a copper SFP module), to avoid SNMP errors set
        on this port the \emph{role} to \emph{non-wr} or set \emph{monitor=y}
        (firmware after 5.0.1). To disable WR traffic on this port set
        the \emph{role} to \emph{non-wr}, to disable PTP traffic set to
        \emph{none}.
      \item Otherwise, you should use a WR-supported SFP module and make sure it
        is declared together with calibration values in the WRS configuration.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsNetworkingStatusGroup}{wrsEndpointStatus}{
    \underline{Description:}
    Reports the status of Ethernet MAC endpoints on WR ports\\
    \texttt{Error} when there is a fault in the Endpoint's
    transmission/reception path.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Make several state dumps.
      \item Restart the switch.
      \item Check Syslog messages to determine the WR port on which the problem
        is reported. You should see a message similar to this one:\\
        \texttt{SNMP: wrsEndpointStatus failed for port 1}
      \item Check the fiber link on a reported port, i.e. try replacing SFP
        transceivers on both sides of the link, try using another fiber.
      \item If the problem persists, please contact WR experts for in-depth
        investigation.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsNetworkingStatusGroup}{wrsSwcoreStatus}{
    \underline{Description:}
    Reports the status of the Ethernet switching module.\\
    Status object not implemented in the current firmware release. Always
    reports \texttt{OK}.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Dump state.
      \item Restart the switch.
      \item Please contact WR experts since this might mean that either there is
        too much high priority traffic in your network, or there is some
        internal problem in the WRS firmware.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  \snmpentrys{WR-SWITCH-MIB}{wrsNetworkingStatusGroup}{wrsRTUStatus}{
    \underline{Description:}
    Reports the status of the routing module responsible for deciding where (to
    which port) incoming Ethernet frames should be forwarded.\\
    \texttt{Error} when RTU is overloaded and cannot accept more requests.\\
    \underline{On error:}
    \begin{pck_proc}
      \item Dump state
      \item Restart the switch.
      \item If possible, try reducing the load of small Ethernet frames flowing
        through your switch. If possible in your application, try using larger
        Ethernet frames with lower load to transfer information.
    \end{pck_proc}
    \glspar \underline{Related problems:}}

  %------------------------------------------------------------------------

  \snmpentrys{WR-SWITCH-MIB}{wrsDetailedStatusesGroup}{wrsVersionGroup}{
    \underline{Description:}
    Hardware, gateware and software versions. Additionally the serial number and
    other hardware information for the WRS.}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionSwVersion}{
    \underline{Description:}
    Software version in the form of release version and eventually git commit
    from the repository (information provided from \emph{git describe} command
    at build time).}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionSwBuildBy}{
    \underline{Description:}
    Information who has built the firmware running on the switch (provided from
    \texttt{git config --get-all user.name} command at build time).}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionSwBuildDate}{
    \underline{Description:}
    Firmware build date (\texttt{\_\_DATE\_\_} at build time).}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionBackplaneVersion}{
    \underline{Description:}
    Hardware version of the Minibackplane board.}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionFpgaType}{
    \underline{Description:}
    FPGA model inside the switch.}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionManufacturer}{
    \underline{Description:}
    Name of the manufacturing company.}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionSwitchSerialNumber}{
    \underline{Description:}
    Serial number of the switch.}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionScbVersion}{
    \underline{Description:}
    Hardware version of the main SCB board.}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionGwVersion}{
    \underline{Description:}
    Version of the FPGA bitstream (Gateware).}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionGwBuild}{
    \underline{Description:}
    Build ID of the FGPA bitstream - the synthesis date}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionSwitchHdlCommitId}{
    \underline{Description:}
    FPGA bitstream commit ID from the main \texttt{wr\_switch\_hdl} repository.}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionGeneralCoresCommitId}{
    \underline{Description:}
    FPGA bitstream commit ID from the \texttt{general-cores} repository.}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionWrCoresCommitId}{
    \underline{Description:}
    FPGA bitstream commit ID from the \texttt{wr-cores} repository.}

  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionLastUpdateDate}{
    \underline{Description:}
    Date and time of the last firmware update. This information may not be
    accurate, due to hard restarts or lack of the proper time during the
    upgrade.}
  \snmpentrys{WR-SWITCH-MIB}{wrsVersionGroup}{wrsVersionFeatures}{
    \underline{Description:}
    Lists additional features of a WRS like Low-JitterDaughter board (LJD).}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Add expert entries in the order as the appear in the MIB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\snmpentrye{WR-SWITCH-MIB}{}{wrsOperationStatus}{}

  \snmpentrye{WR-SWITCH-MIB}{wrsOperationStatus}{wrsCurrentTimeGroup}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsDateTAI}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsDateTAIString}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsSystemClockStatusDetails}{
  Result of the comparison of system clock and the NTP time to detect a drift.}
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsSystemClockDrift}{
  Last measured drift value.}
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsSystemClockDriftThreshold}{
  Configure drift threshold that will be used to rise an error.}
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsSystemClockCheckInterval}{
  Interval between 2 measures of the system clock drift.}
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsSystemClockCheckIntervalUnit}{
  Unit of time used by the system clock check interval (See:
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsSystemClockCheckInterval}})
  }
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsLeapSecSource}{
    Source of the leap seconds file. When it is set to \texttt{tryDhcp}, 
    then a failure of  getting the URL via DHCP does not rise an error in \\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsLeapSecStatusDetails}} and \\
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsLeapSecSourceStatusDetails}}. }
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsLeapSecStatusDetails}{
  Result of the management of the leap second (inserted, deleted, \ldots) }
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsLeapSecSourceStatusDetails}{
    Result of the leap seconds file download. }
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsLeapSecSourceURL}{
  Path to the leap seconds file on a remote server (if local file is not used).}
  \snmpentrye{WR-SWITCH-MIB}{wrsCurrentTimeGroup}{wrsSystemClockDriftUs}{Drift
    of system clock expressed in microseconds with saturation to min/max integer
    values}
  \snmpentrye{WR-SWITCH-MIB}{wrsOperationStatus}{wrsBootStatusGroup}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsBootCnt}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsRebootCnt}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsRestartReason}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsFaultIP}{Not implemented}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsFaultLR}{Not implemented}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsConfigSource}{Source of a
    configuration file. When it is set to \texttt{tryDhcp}, then a failure of
    getting the URL via DHCP does not rise an error in
    \texttt{\glshyperlink{WR-SWITCH-MIB::wrsBootSuccessful}} }
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsConfigSourceUrl}{Path to the
  dot-config on a remote server (if local file is not used).}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsRestartReasonMonit}{
    Process that caused \texttt{monit} to trigger a restart.}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsBootConfigStatus}{Result of
    the dot-config verification.}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsBootHwinfoReadout}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsBootLoadFPGA}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsBootLoadLM32}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsBootKernelModulesMissing}{
    List of kernel modules is defined in the source code.}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsBootUserspaceDaemonsMissing}{
    Number of missing (not running while they should) processes in embedded
    Linux.}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsGwWatchdogTimeouts}{
    Number of times the watchdog has restarted the HDL module responsible for
    the Ethernet switching process}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsFwUpdateStatus}{
    Status of the last firmware update}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsCustomBootScriptSource}{
    Source of the custom script that can be executed once at boot time. It can
    be used to setup a switch in a way not supported by dot-config}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsCustomBootScriptSourceUrl}{
    Path to the custom boot script on a remote server (if local scripts is not
    used)}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsCustomBootScriptStatus}{
    Result of custom boot script execution}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsAuxClkSetStatus}{
    Result of setting up auxclk on connector clk2}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsThrottlingSetStatus}{
    Result of setting up a limit on the Rx bandwidth of the traffic that
    goes from WR ports to Linux (throttling)}
  \snmpentrye{WR-SWITCH-MIB}{wrsBootStatusGroup}{wrsVlansSetStatus}{
    Result of setting up auxclk on connector clk2}

  \snmpentrye{WR-SWITCH-MIB}{wrsOperationStatus}{wrsTemperatureGroup}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsTemperatureGroup}{wrsTempFPGA}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsTemperatureGroup}{wrsTempPLL}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsTemperatureGroup}{wrsTempPSL}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsTemperatureGroup}{wrsTempPSR}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsTemperatureGroup}{wrsTempThresholdFPGA}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsTemperatureGroup}{wrsTempThresholdPLL}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsTemperatureGroup}{wrsTempThresholdPSL}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsTemperatureGroup}{wrsTempThresholdPSR}{}

  \snmpentrye{WR-SWITCH-MIB}{wrsOperationStatus}{wrsMemoryGroup}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsMemoryGroup}{wrsMemoryTotal}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsMemoryGroup}{wrsMemoryUsed}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsMemoryGroup}{wrsMemoryUsedPerc}{Percentage of
    used memory.}
  \snmpentrye{WR-SWITCH-MIB}{wrsMemoryGroup}{wrsMemoryFree}{}

  \snmpentrye{WR-SWITCH-MIB}{wrsOperationStatus}{wrsCpuLoadGroup}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsCpuLoadGroup}{wrsCPULoadAvg1min}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsCpuLoadGroup}{wrsCPULoadAvg5min}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsCpuLoadGroup}{wrsCPULoadAvg15min}{}

  \snmpentrye{WR-SWITCH-MIB}{wrsOperationStatus}{wrsDiskTable}{
    Table with a row for every partition.}
  \snmpentrye{WR-SWITCH-MIB}{wrsDiskTable}{wrsDiskIndex.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsDiskTable}{wrsDiskMountPath.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsDiskTable}{wrsDiskSize.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsDiskTable}{wrsDiskUsed.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsDiskTable}{wrsDiskFree.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsDiskTable}{wrsDiskUseRate.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsDiskTable}{wrsDiskFilesystem.<n>}{}

  \snmpentrye{WR-SWITCH-MIB}{}{wrsStartCntGroup}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntHAL}{issue \ref{fail:timing:hal_crash}, \ref{fail:other:daemon_crash}}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntPTP}{issue \ref{fail:timing:ppsi_crash}, \ref{fail:other:daemon_crash}}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntRTUd}{issue \ref{fail:data:rtu_crash}, \ref{fail:other:daemon_crash}}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntSshd}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntHttpd}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntSnmpd}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntSyslogd}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntWrsWatchdog}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntLldpd}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntLdap}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntRvlan}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsStartCntGroup}{wrsStartCntSPLL}{Not implemented}

  \snmpentrye{WR-SWITCH-MIB}{}{wrsSpllState}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllState}{wrsSpllVersionGroup}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllVersionGroup}{wrsSpllVersion}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllVersionGroup}{wrsSpllBuildDate}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllVersionGroup}{wrsSpllBuildBy}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllState}{wrsSpllStatusGroup}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllStatusGroup}{wrsSpllMode}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllStatusGroup}{wrsSpllIrqCnt}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllStatusGroup}{wrsSpllSeqState}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllStatusGroup}{wrsSpllAlignState}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllStatusGroup}{wrsSpllHlock}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllStatusGroup}{wrsSpllMlock}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllStatusGroup}{wrsSpllHY}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllStatusGroup}{wrsSpllMY}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsSpllStatusGroup}{wrsSpllDelCnt}{}
%		xxx wrsSpllHoldover
%		xxx wrsSpllHoldoverTime
%		xxx (...)
%     \snmpentrye{WR-SWITCH-MIB}{wrsSpllPerPortTable[18]
%	
%		xxx wrsSpllBlock
%		xxx wrsSpllErr
%	

  \snmpentrye{WR-SWITCH-MIB}{}{wrsPstatsHCTable}{Table with pstats values, one row per port.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCIndex.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCPortName.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCTXUnderrun.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXOverrun.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXInvalidCode.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXSyncLost.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPauseFrames.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPfilterDropped.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPCSErrors.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXGiantFrames.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXRuntFrames.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXCRCErrors.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPclass0.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPclass1.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPclass2.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPclass3.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPclass4.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPclass5.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPclass6.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPclass7.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCTXFrames.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXFrames.<n>}{Total number
    of Rx frames on port \emph{n} }
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXDropRTUFull.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPrio0.<n>}{Rx priority 0}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPrio1.<n>}{Rx priority 1}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPrio2.<n>}{Rx priority 2}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPrio3.<n>}{Rx priority 3}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPrio4.<n>}{Rx priority 4}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPrio5.<n>}{Rx priority 5}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPrio6.<n>}{Rx priority 6}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRXPrio7.<n>}{Rx priority 7}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRTUValid.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRTUResponses.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCRTUDropped.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCFastMatchPriority.<n>}{HP
    frames on port \emph{n}}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCFastMatchFastForward.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCFastMatchNonForward.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCFastMatchRespValid.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCFullMatchRespValid.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCForwarded.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPstatsHCTable}{wrsPstatsHCTRURespValid.<n>}{}

  \snmpentrye{WR-SWITCH-MIB}{}{wrsPtpDataTable}{Table with a row per PTP servo instance.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpIndex.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpPortName.<n>}{
    The port on which the instance is running.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpGrandmasterID.<n>}{
    Identity of the PTP Grandmaster in the network.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpOwnID.<n>}{
    PTP clock identity.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpMode.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpServoState.<n>}{PTP servo
  state as string}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpServoStateN.<n>}{PTP servo
  state as number}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpPhaseTracking.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpSyncSource.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpClockOffsetPs.<n>}{value of
  the offset in ps}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpClockOffsetPsHR.<n>}{32-bit
  signed value of the offset in picoseconds, with saturation}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpSkew.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpRTT.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpLinkLength.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpServoUpdates.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDeltaTxM.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDeltaRxM.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDeltaTxS.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDeltaRxS.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpServoStateErrCnt.<n>}{
    Number of the servo updates when servo is out of the \texttt{TRACK\_PHASE}.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpClockOffsetErrCnt.<n>}{
    Number of servo updates when offset is larger than 500ps or smaller than
    -500ps.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpRTTErrCnt.<n>}{
    Number of servo updates when RTT delta between subsequent updates is larger
    than 1000ps or smaller than -1000ps.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpServoUpdateTime.<n>}{
    TAI Nanosecond of the last servo's update.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpServoExt.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpMeanDelay.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDelayMS.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDelayMM.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDelayAsymmetryPS.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDelayCoefficientScaledH.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDelayCoefficientScaledL.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpDelayCoefficientStr.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpIngressLatency.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpDataTable}{wrsPtpEgressLatency.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{}{wrsPortStatusTable}{Table with a port per row.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusIndex.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusPortName.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusLink.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusConfiguredMode.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusLocked.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusPeer.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpVN.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpPN.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpVS.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpInDB.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpGbE.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpError.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusPtpTxFrames.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusPtpRxFrames.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusMonitor.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpDom.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpTemp.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpVcc.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpTxBiax.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpTxPower.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusSfpRxPower.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusT24p.<n>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPortStatusTable}{wrsPortStatusT24pValid.<n>}{}

  \snmpentrye{WR-SWITCH-MIB}{}{wrsPtpInstanceTable}{Table with all PTP instances.
    This table has two indexes. The first one \textit{n}, corresponds to port
    number to which a particular instance is assigned, the second index \textit{m},
    is a serial number of an instance on particular port.}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstancePortIndex.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceOnPortIndex.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceName.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstancePort.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstancePortInstance.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstancePortName.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceState.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceMasterOnly.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceExtPortCfgDesSt.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceMechanism.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceProfile.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceExtension.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceAsymEnabled.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceAsymConstAsymPS.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceAsymScDelayCoef.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceAsymScDelayCoefHR.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceTSCorrEgressLatPS.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceTSCorrIngLatPS.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceTSCorrSemistLatPS.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceProtoDetectState.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceExtState.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstancePeerMac.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstancePeerVid.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceVlanNum.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceVlanListStr.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceStatusError.<n>.<m>}{}
  \snmpentrye{WR-SWITCH-MIB}{wrsPtpInstanceTable}{wrsPtpInstanceExtensionCfg.<n>.<m>}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Add entries from other MIBs.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\snmpentryo{HOST-RESOURCES-MIB}{}{hrSWRunName.<n>}{List of running processes.}
\snmpentryo{HOST-RESOURCES-MIB}{}{hrStorageDescr.<n>}{}
\snmpentryo{HOST-RESOURCES-MIB}{}{hrStorageSize.<n>}{}
\snmpentryo{HOST-RESOURCES-MIB}{}{hrStorageUsed.<n>}{}
\snmpentryo{IF-MIB}{}{ifOperStatus.<n>}{}
\snmpentryo{IF-MIB}{}{ifIndex.<n>}{}

% description of the following OIDs is based on corresponding descriptions in BRIDGE-MIB and Q-BRIDGE-MIB
\snmpentryo{BRIDGE-MIB}{}{dot1dBase}{Basic information about a bridge.}
\snmpentryo{BRIDGE-MIB}  {dot1dBase}{dot1dBaseBridgeAddress}{
	    The MAC address used by this bridge when it must be
	    referred to in a unique fashion.  It is the numerically smallest 
	    MAC address of all ports that belong to this bridge.}
\snmpentryo{BRIDGE-MIB}  {dot1dBase}{dot1dBaseNumPorts}{
	    The number of ports controlled by this bridging
	    entity.}
\snmpentryo{BRIDGE-MIB}  {dot1dBase}{dot1dBaseType}{
	    Indicates what type of bridging this bridge can
	    perform. \\Hardcoded to \texttt{transparent-only(2)}.}
\snmpentryo{BRIDGE-MIB}{}{dot1dBasePortTable}{
	    A table that contains generic information about every
	    port that is associated with this bridge.  Transparent,
	    source-route, and srt ports are included.}
\snmpentryo{BRIDGE-MIB}  {dot1dBasePortTable}{dot1dBasePortIfIndex.<port>}{
	    The value of the instance of
	    the \texttt{\glshyperlink{IF-MIB::ifIndex.<n>}} object,
	    defined in IF-MIB, for the interface corresponding
	    to this port.}
\snmpentryo{BRIDGE-MIB}  {dot1dBasePortTable}{dot1dBasePortCircuit.<port>}{
	    Hardcoded to \texttt{\{0, 0\}} (\texttt{ZeroDotZero}) }
\snmpentryo{BRIDGE-MIB}{}{dot1dTpFdbTable}{
	    A table that contains information about unicast
	    entries for which the bridge has forwarding and/or
	    filtering information.  This information is used
	    by the transparent bridging function in
	    determining how to propagate a received frame.}
\snmpentryo{BRIDGE-MIB}  {dot1dTpFdbTable}{dot1dTpFdbAddress.<mac>}{
	    A unicast MAC address for which the bridge has
	    forwarding and/or filtering information.}
\snmpentryo{BRIDGE-MIB}  {dot1dTpFdbTable}{dot1dTpFdbPort.<mac>}{
	    Either the value '\texttt{0}', or the port number of the port on
	    which a frame having a source address equal to the value
	    of the corresponding instance of
	    \texttt{\glshyperlink{BRIDGE-MIB::dot1dTpFdbAddress.<mac>}} has
	    been seen.  A value of '\texttt{0}' indicates that the port
	    number has not been learned, but that the bridge does
	    have some forwarding/filtering information about this
	    address (e.g., in
the \texttt{\glshyperlink{BRIDGE-MIB::dot1dStaticTable}}).}
\snmpentryo{BRIDGE-MIB}  {dot1dTpFdbTable}{dot1dTpFdbStatus.<mac>}{
	    The status of this entry.  The meanings of the
	    values are:\\
		-- \texttt{learned(3)} - the value of the corresponding instance
		of \texttt{\glshyperlink{BRIDGE-MIB::dot1dTpFdbPort.<mac>}}
		was learned, and is being used.\\
		-- \texttt{mgmt(5)} - the value of the corresponding instance of
		\texttt{\glshyperlink{BRIDGE-MIB::dot1dTpFdbAddress.<mac>}}
		is also the value of an existing instance of
		\texttt{\glshyperlink{BRIDGE-MIB::dot1dStaticAddress.<mac>.<receivePort>}}.}
\snmpentryo{BRIDGE-MIB}{}{dot1dStaticTable}{
	    A table containing filtering information configured
	    into the bridge by (local or network) management
	    specifying the set of ports to which frames received
	    from specific ports and containing specific destination
	    addresses are allowed to be forwarded.  The value of
	    zero in this table, as the port number from which frames
	    with a specific destination address are received, is
	    used to specify all ports for which there is no specific
	    entry in this table for that particular destination
	    address.  Entries are valid for unicast and for
	    group/broadcast addresses.}
\snmpentryo{BRIDGE-MIB}  {dot1dStaticTable}{dot1dStaticAddress.<mac>.<receivePort>}{
	    The destination MAC address in a frame to which this
	    entry's filtering information applies.  This object can
	    take the value of a unicast address, a group address, or
	    the broadcast address.}
\snmpentryo{BRIDGE-MIB}  {dot1dStaticTable}{dot1dStaticReceivePort.<mac>.<receivePort>}{
	    Either the value '\texttt{0}', or the port number of the port
	    from which a frame must be received in order for this
	    entry's filtering information to apply.  A value of zero
	    indicates that this entry applies on all ports of the
	    bridge for which there is no other applicable entry.}
\snmpentryo{BRIDGE-MIB}  {dot1dStaticTable}{dot1dStaticAllowedToGoTo.<mac>.<receivePort>}{
	    The set of ports to which frames received from a
	    specific port and destined for a specific MAC address,
	    are allowed to be forwarded.  Each octet within the
	    value of this object specifies a set of eight ports,
	    with the first octet specifying ports \textit{1} through \textit{8}, the
	    second octet specifying ports \textit{9} through \textit{16}, etc.  Within
	    each octet, the most significant bit represents the
	    lowest numbered port, and the least significant bit
	    represents the highest numbered port.  Thus, each port
	    of the bridge is represented by a single bit within the
	    value of this object.  If that bit has a value of '\texttt{1}',
	    then that port is included in the set of ports; the port
	    is not included if its bit has a value of '\texttt{0}'.  (Note
	    that the setting of the bit corresponding to the port
	    from which a frame is received is irrelevant.)  The
	    default value of this object is a string of ones of
	    appropriate length.}
\snmpentryo{BRIDGE-MIB}  {dot1dStaticTable}{dot1dStaticStatus.<mac>.<receivePort>}{
	    This object indicates the status of this entry.\\
		-- \texttt{permanent(3)} - this entry is currently in use and
		    will remain so after the next reset of the
		    bridge (as long as configured in \textit{dot-config}).}
\snmpentryo{Q-BRIDGE-MIB}{}{dot1qBase}{
	    Group with information specific for IEEE 802.1Q. }
\snmpentryo{Q-BRIDGE-MIB}  {dot1qBase}{dot1qVlanVersionNumber}{
	    The version number of IEEE 802.1Q that this device
	    supports. Hardcoded to \texttt{version(1)}.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qBase}{dot1qMaxVlanId}{
	    The maximum IEEE 802.1Q VLAN-ID that this device
	    supports.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qBase}{dot1qMaxSupportedVlans}{
	    The maximum number of IEEE 802.1Q VLANs that this
	    device supports.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qBase}{dot1qNumVlans}{
	    The current number of IEEE 802.1Q VLANs that are
	    configured in this device.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qBase}{dot1qGvrpStatus}{
	    The administrative status requested by management for
	    GVRP.  The value is set to \texttt{disabled(2)}}
\snmpentryo{Q-BRIDGE-MIB}{}{dot1qFdbTable}{
	    A table that contains configuration and control
	    information for each Filtering Database currently
	    operating on this device.  Entries in this table appear
	    automatically when VLANs are assigned FDB IDs in the
	    \texttt{\glshyperlink{Q-BRIDGE-MIB::dot1qVlanCurrentTable}}.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qFdbTable}{dot1qFdbDynamicCount.fdbId}{
	    The current number of dynamic entries in this
	    Filtering Database.}
\snmpentryo{Q-BRIDGE-MIB}{}{dot1qTpFdbTable}{
	    A table that contains information about unicast entries
	    for which the device has forwarding and/or filtering
	    information.  This information is used by the
	    transparent bridging function in determining how to
	    propagate a received frame.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qTpFdbTable}{dot1qTpFdbPort.<fdbId>.<mac>}{
	    Either the value '\texttt{0}', or the port number of the port on
	    which a frame having a source address equal to the value
	    of the corresponding instance of \texttt{dot1qTpFdbAddress} has
	    been seen.  A value of '\texttt{0}' indicates that the port
	    number has not been learned but that the device does
	    have some forwarding/filtering information about this
	    address.\\
	    The port value is assigned to
	    this object whenever it is learned, even for addresses
	    for which the corresponding value of
	    \texttt{\glshyperlink{Q-BRIDGE-MIB::dot1qTpFdbStatus.<fdbId>.<mac>}}
	    is not \texttt{learned(3)}.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qTpFdbTable}{dot1qTpFdbStatus.<fdbId>.<mac>}{
	    The status of this entry.  The meanings of the values
	    are:\\
		-- \texttt{learned(3)} - the value of the corresponding instance
		    of dot1qTpFdbPort was learned and is being used.\\
		-- \texttt{mgmt(5)} - the value of the corresponding instance of
		    \texttt{dot1qTpFdbAddress} is configured by management.}
\snmpentryo{Q-BRIDGE-MIB}{}{dot1qVlanCurrentTable}{
	    A table containing current configuration information
	    for each VLAN currently configured into the device by
	    (local or network) management.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanCurrentTable}{dot1qVlanFdbId.<creationTime>.<vlan>}{
	    The Filtering Database used by this VLAN.  This is one
	    of the \texttt{dot1qFdbId} values in the \texttt{\glshyperlink{Q-BRIDGE-MIB::dot1qFdbTable}}.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanCurrentTable}{dot1qVlanCurrentEgressPorts.<creationTime>.<vlan>}{
	    The set of ports that are transmitting traffic for
	    this VLAN as either tagged or untagged frames.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanCurrentTable}{dot1qVlanCurrentUntaggedPorts.<creationTime>.<vlan>}{
	    The set of ports that are transmitting traffic for
	    this VLAN as untagged frames.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanCurrentTable}{dot1qVlanStatus.<creationTime>.<vlan>}{
	    This object indicates the status of this entry.\\
	    -- \texttt{permanent(2)} - this entry, corresponding to an entry
		in \texttt{\glshyperlink{Q-BRIDGE-MIB::dot1qVlanStaticTable}}, is currently in use and
		will remain so after the next reset of the
		device.  The port lists for this entry include
		ports from the equivalent \texttt{\glshyperlink{Q-BRIDGE-MIB::dot1qVlanStaticTable}}
		entry and ports learned dynamically.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanCurrentTable}{dot1qVlanCreationTime.<creationTime>.<vlan>}{
	    The value of \texttt{sysUpTime} when this VLAN was created.
	    \texttt{0} if VLAN was created before start of SNMP agent.}
\snmpentryo{Q-BRIDGE-MIB}{}{dot1qVlanStaticTable}{
	    A table containing static configuration information for
	    each VLAN configured into the device by (local or
	    network) management.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanStaticTable}{dot1qVlanStaticName.<vlan>}{
	    An administratively assigned string, which may be used
	    to identify the VLAN. In WRS used as \texttt{VLAN<vlanNumber>}.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanStaticTable}{dot1qVlanStaticEgressPorts.<vlan>}{
	    The set of ports that are permanently assigned to the
	    egress list for this VLAN by management.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanStaticTable}{dot1qVlanForbiddenEgressPorts.<vlan>}{
	    The set of ports that are prohibited by management
	    from being included in the egress list for this VLAN.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanStaticTable}{dot1qVlanStaticUntaggedPorts.<vlan>}{
	    The set of ports that should transmit egress packets
	    for this VLAN as untagged.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qVlanStaticTable}{dot1qVlanStaticRowStatus.<vlan>}{
	    This object indicates the status of this entry.
	    All entries are Hardcoded to \texttt{active(1)}.}
\snmpentryo{Q-BRIDGE-MIB}{}{dot1qPortVlanTable}{
	    A table containing per-port control and status
	    information for VLAN configuration in the device.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qPortVlanTable}{dot1qPvid.<portId>}{
	    The PVID, the VLAN-ID assigned to untagged frames or
	    Priority-Tagged frames received on this port.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qPortVlanTable}{dot1qPortAcceptableFrameTypes.<portId>}{
	    When this is \texttt{admitOnlyVlanTagged(2)}, the device will
	    discard untagged frames or Priority-Tagged frames
	    received on this port.  When \texttt{admitAll(1)}, untagged
	    frames or Priority-Tagged frames received on this port
	    will be accepted and assigned to a VID based on the
	    PVID and VID Set for this port.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qPortVlanTable}{dot1qPortIngressFiltering.<portId>}{
	    When this is \texttt{true(1)}, the device will discard incoming
	    frames for VLANs that do not include this Port in its
	    Member set.  When \texttt{false(2)}, the port will accept all
	    incoming frames.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qPortVlanTable}{dot1qPortGvrpStatus.<portId>}{
	    WRS does not support GVRP. Hardcoded to \texttt{disabled(2)}.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qPortVlanTable}{dot1qPortGvrpFailedRegistrations.<portId>}{
	    WRS does not support GVRP. Hardcoded to \texttt{0}.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qPortVlanTable}{dot1qPortGvrpLastPduOrigin.<portId>}{
	    WRS does not support GVRP. Hardcoded to \texttt{00:00:00:00:00:00}.}
\snmpentryo{Q-BRIDGE-MIB}  {dot1qPortVlanTable}{dot1qPortRestrictedVlanRegistration.<portId>}{
	    WRS does not support Vlan registration via SNMP. Hardcoded to \texttt{false(2)}.}
