Commit a08d32c7 authored by Adam Wujek's avatar Adam Wujek 💬

userspace/snmpd: Prepare WR-SWITCH-MIB for redesign

Please not that within this git branch there we non backward compatible changes
in MIB.

Move branch wrsPtpGlobals, wrsPortsTable and wrsTemperature to previously
removed wrsPpsi. Moved branches and objects contain "X" at the end.
Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent 30d6a8e5
......@@ -30,12 +30,9 @@ wrSwitchMIB MODULE-IDENTITY
-- we'll prefix everything in this mib with wrs (White Rabbit Switch)
wrsScalar OBJECT IDENTIFIER ::= { wrSwitchMIB 1 }
wrsPstatsTable OBJECT IDENTIFIER ::= { wrSwitchMIB 2 }
--wrsPpsi OBJECT IDENTIFIER ::= { wrSwitchMIB 3 } is obsolete
wrsPpsi OBJECT IDENTIFIER ::= { wrSwitchMIB 3 } -- going to be obsolete
wrsVersion OBJECT IDENTIFIER ::= { wrSwitchMIB 4 }
wrsDate OBJECT IDENTIFIER ::= { wrSwitchMIB 5 }
wrsPtpGlobals OBJECT IDENTIFIER ::= { wrSwitchMIB 6 }
wrsPortsTable OBJECT IDENTIFIER ::= { wrSwitchMIB 7 }
wrsTemperature OBJECT IDENTIFIER ::= { wrSwitchMIB 8 }
-- define one stupid object for a start
......@@ -247,122 +244,34 @@ pstatsWR17 OBJECT-TYPE
"The value of this counter for interface wr17."
::= {pstatsEntry 19 }
-- Versions (4) are all just strings, several of them
wrsVersionSw OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..64))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The software version, as returned from 'git describe' at build time"
::= { wrsVersion 1 }
wrsVersionGw1 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The gateware version: commit of wr_switch_hdl"
::= { wrsVersion 2 }
wrsVersionGw2 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The gateware version: commit of general-cores"
::= { wrsVersion 3 }
wrsVersionGw3 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The gateware version: commit of wr-cores"
::= { wrsVersion 4 }
wrsVersionHw1 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The hardware version: minibackplane PCB"
::= { wrsVersion 5 }
wrsVersionHw2 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The hardware version: FPGA"
::= { wrsVersion 6 }
wrsManufacturer OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..64))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The name of the manufacturing company"
::= { wrsVersion 7 }
wrsSerialNumber OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The serial number (or string) of the switch"
::= { wrsVersion 8 }
wrsScbVersion OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The version of the SCB (motherboard)"
::= { wrsVersion 9 }
-- Date (5), to quickly check wr status
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"
::= { wrsDate 1 }
wrsDateString 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)"
::= { wrsDate 2 }
--following objects will be moved
wrsPpsiGlobalsX OBJECT IDENTIFIER ::= { wrsPpsi 3 }
wrsPortsTableX OBJECT IDENTIFIER ::= { wrsPpsi 4 }
wrsTemperatureX OBJECT IDENTIFIER ::= { wrsPpsi 5 }
-- The Wr/PTP/Ppsi information is two items: an array of scalars
-- and a table. In the table, the "channel" name is the row. But
-- the index is integer, following what ppsi does internally
-- globals (.6)
-- globals (.3)
ptpGrandmasterID OBJECT-TYPE
ptpGrandmasterIDX OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The ClockID of the current grandmaster"
::= { wrsPtpGlobals 1 }
::= { wrsPpsiGlobalsX 1 }
ptpOwnID OBJECT-TYPE
ptpOwnIDX OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The ClockID of this WR device"
::= { wrsPtpGlobals 2 }
::= { wrsPpsiGlobalsX 2 }
ptpMode OBJECT-TYPE
ptpModeX OBJECT-TYPE
SYNTAX INTEGER {
unknown(0), -- same as WRC_MODE macros
grandmaster(1),
......@@ -373,17 +282,17 @@ ptpMode OBJECT-TYPE
STATUS current
DESCRIPTION
"The mode of this clock"
::= { wrsPtpGlobals 3 }
::= { wrsPpsiGlobalsX 3 }
ptpServoState OBJECT-TYPE
ptpServoStateX OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The servo state if slave"
::= { wrsPtpGlobals 4 }
::= { wrsPpsiGlobalsX 4 }
ptpServoStateN OBJECT-TYPE
ptpServoStateNX OBJECT-TYPE
SYNTAX INTEGER {
Uninitialized(0),
SYNC-NSEC(1), -- no idea how to keep "_" instead of "-"
......@@ -397,9 +306,9 @@ ptpServoStateN OBJECT-TYPE
STATUS current
DESCRIPTION
"Numeric representation of servo state"
::= { wrsPtpGlobals 5 }
::= { wrsPpsiGlobalsX 5 }
ptpPhaseTracking OBJECT-TYPE
ptpPhaseTrackingX OBJECT-TYPE
SYNTAX INTEGER {
NA(0),
not-tracking(1),
......@@ -409,115 +318,115 @@ ptpPhaseTracking OBJECT-TYPE
STATUS current
DESCRIPTION
"Whether phase tracking is enabled in the servo"
::= { wrsPtpGlobals 6 }
::= { wrsPpsiGlobalsX 6 }
ptpSyncSource OBJECT-TYPE
ptpSyncSourceX OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port name that is currently the synchronization source"
::= { wrsPtpGlobals 7 }
::= { wrsPpsiGlobalsX 7 }
ptpClockOffsetPs OBJECT-TYPE
ptpClockOffsetPsX OBJECT-TYPE
SYNTAX Counter64 -- should be integer64 (signed)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current clock offset from master, in picoseconds"
::= { wrsPtpGlobals 8 }
::= { wrsPpsiGlobalsX 8 }
ptpClockOffsetPsHR OBJECT-TYPE
ptpClockOffsetPsHRX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Human Readable current clock offset from master, in picoseconds with saturation to integer"
::= { wrsPtpGlobals 9 }
::= { wrsPpsiGlobalsX 9 }
ptpSkew OBJECT-TYPE
ptpSkewX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The estimated change of master-to-slave delay, in picoseconds"
::= { wrsPtpGlobals 10 }
::= { wrsPpsiGlobalsX 10 }
ptpRTT OBJECT-TYPE
ptpRTTX OBJECT-TYPE
SYNTAX Counter64 -- does unsigned64 exits?
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The round-trip-time, from master, in picoseconds"
::= { wrsPtpGlobals 11 }
::= { wrsPpsiGlobalsX 11 }
ptpLinkLength OBJECT-TYPE
ptpLinkLengthX OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Estimated fiber length, from master-to-slave delay, in meters"
::= { wrsPtpGlobals 12 }
::= { wrsPpsiGlobalsX 12 }
ptpServoUpdates OBJECT-TYPE
ptpServoUpdatesX OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"How many time did the servo run"
::= { wrsPtpGlobals 13 }
::= { wrsPpsiGlobalsX 13 }
ptpDeltaTxM OBJECT-TYPE
ptpDeltaTxMX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Fixed Tx latency on Master side"
::= { wrsPtpGlobals 14 }
::= { wrsPpsiGlobalsX 14 }
ptpDeltaRxM OBJECT-TYPE
ptpDeltaRxMX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Fixed Rx latency on Master side"
::= { wrsPtpGlobals 15 }
::= { wrsPpsiGlobalsX 15 }
ptpDeltaTxS OBJECT-TYPE
ptpDeltaTxSX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Fixed Tx latency on Slave side"
::= { wrsPtpGlobals 16 }
::= { wrsPpsiGlobalsX 16 }
ptpDeltaRxS OBJECT-TYPE
ptpDeltaRxSX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Fixed Rx latency on Slave side"
::= { wrsPtpGlobals 17 }
::= { wrsPpsiGlobalsX 17 }
-- per-port (.7)
wrsPortsTable OBJECT-TYPE
SYNTAX SEQUENCE OF wrsPortsEntry
-- per-port (.4)
wrsPortsTableX OBJECT-TYPE
SYNTAX SEQUENCE OF wrsPortsEntryX
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information for each port"
::= { wrSwitchMIB 7 }
::= { wrsPpsi 4 }
wrsPortsEntry OBJECT-TYPE
SYNTAX WrsPortsEntry
wrsPortsEntryX OBJECT-TYPE
SYNTAX WrsPortsEntryX
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing ports statuses"
INDEX { wrsPortIndex }
::= { wrsPortsTable 1 }
::= { wrsPortsTableX 1 }
WrsPortsEntry ::=
WrsPortsEntryX ::=
SEQUENCE {
portLink INTEGER,
portMode INTEGER,
......@@ -531,7 +440,7 @@ WrsPortsEntry ::=
portSfpError INTEGER
}
portLink OBJECT-TYPE
portLinkX OBJECT-TYPE
SYNTAX INTEGER {
NA(0),
down(1),
......@@ -541,9 +450,9 @@ portLink OBJECT-TYPE
STATUS current
DESCRIPTION
"Whether the link is up or down"
::= { wrsPortsEntry 1 }
::= { wrsPortsEntryX 1 }
portMode OBJECT-TYPE
portModeX OBJECT-TYPE
SYNTAX INTEGER {
unknown(0),
master(1),
......@@ -555,9 +464,9 @@ portMode OBJECT-TYPE
STATUS current
DESCRIPTION
"Whether the port is master or slave"
::= { wrsPortsEntry 2 }
::= { wrsPortsEntryX 2 }
portLocked OBJECT-TYPE
portLockedX OBJECT-TYPE
SYNTAX INTEGER {
NA(0),
not-locked(1),
......@@ -567,57 +476,57 @@ portLocked OBJECT-TYPE
STATUS current
DESCRIPTION
"Whether the peers are locked or not"
::= { wrsPortsEntry 3 }
::= { wrsPortsEntryX 3 }
portPeer OBJECT-TYPE
portPeerX OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"the ClockID of the peer, if available. Or 0"
::= { wrsPortsEntry 4 }
::= { wrsPortsEntryX 4 }
portSfpVN OBJECT-TYPE
portSfpVNX OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Vendor Name of SFP"
::= { wrsPortsEntry 5 }
::= { wrsPortsEntryX 5 }
portSfpPN OBJECT-TYPE
portSfpPNX OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Part Number of SFP"
::= { wrsPortsEntry 6 }
::= { wrsPortsEntryX 6 }
portSfpVS OBJECT-TYPE
portSfpVSX OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Vendor serial number of SFP"
::= { wrsPortsEntry 7 }
::= { wrsPortsEntryX 7 }
portSfpInDB OBJECT-TYPE
portSfpInDBX OBJECT-TYPE
SYNTAX INTEGER {NA(0), not-in-Data-Base(1), in-Data-Base(2)}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether the SFP is in data base or not"
::= { wrsPortsEntry 8 }
::= { wrsPortsEntryX 8 }
portSfpGbE OBJECT-TYPE
portSfpGbEX OBJECT-TYPE
SYNTAX INTEGER {NA(0), not-GbE(1), GbE(2)}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether the SFP is 1 GbE"
::= { wrsPortsEntry 9 }
::= { wrsPortsEntryX 9 }
portSfpError OBJECT-TYPE
portSfpErrorX OBJECT-TYPE
SYNTAX INTEGER {
NA(0),
SFP-ok(1),
......@@ -627,74 +536,74 @@ portSfpError OBJECT-TYPE
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."
::= { wrsPortsEntry 10 }
::= { wrsPortsEntryX 10 }
-- wrsTemperature (.8)
tempFPGA OBJECT-TYPE
-- wrsTemperatureX (.5)
tempFPGAX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"FPGA temperature"
::= { wrsTemperature 1 }
::= { wrsTemperatureX 1 }
tempPLL OBJECT-TYPE
tempPLLX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"PLL temperature"
::= { wrsTemperature 2 }
::= { wrsTemperatureX 2 }
tempPSL OBJECT-TYPE
tempPSLX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Power Supply Left (PSL) temperature"
::= { wrsTemperature 3 }
::= { wrsTemperatureX 3 }
tempPSR OBJECT-TYPE
tempPSRX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Power Supply Right (PSR) temperature"
::= { wrsTemperature 4 }
::= { wrsTemperatureX 4 }
tempTholdFPGA OBJECT-TYPE
tempTholdFPGAX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Threshold level for FPGA temperature"
::= { wrsTemperature 5 }
::= { wrsTemperatureX 5 }
tempTholdPLL OBJECT-TYPE
tempTholdPLLX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Threshold level for PLL temperature"
::= { wrsTemperature 6 }
::= { wrsTemperatureX 6 }
tempTholdPSL OBJECT-TYPE
tempTholdPSLX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Threshold level for Power Supply Left (PSL) temperature"
::= { wrsTemperature 7 }
::= { wrsTemperatureX 7 }
tempTholdPSR OBJECT-TYPE
tempTholdPSRX OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Threshold level for Power Supply Right (PSR) temperature"
::= { wrsTemperature 8 }
::= { wrsTemperatureX 8 }
tempWarning OBJECT-TYPE
tempWarningX OBJECT-TYPE
SYNTAX INTEGER {
NA(0),
Threshold-not-set(1),
......@@ -705,6 +614,100 @@ tempWarning OBJECT-TYPE
STATUS current
DESCRIPTION
"Warning if temperature exceed threshold levels"
::= { wrsTemperature 9 }
::= { wrsTemperatureX 9 }
-- Versions (4) are all just strings, several of them
wrsVersionSw OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..64))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The software version, as returned from 'git describe' at build time"
::= { wrsVersion 1 }
wrsVersionGw1 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The gateware version: commit of wr_switch_hdl"
::= { wrsVersion 2 }
wrsVersionGw2 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The gateware version: commit of general-cores"
::= { wrsVersion 3 }
wrsVersionGw3 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The gateware version: commit of wr-cores"
::= { wrsVersion 4 }
wrsVersionHw1 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The hardware version: minibackplane PCB"
::= { wrsVersion 5 }
wrsVersionHw2 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The hardware version: FPGA"
::= { wrsVersion 6 }
wrsManufacturer OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..64))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The name of the manufacturing company"
::= { wrsVersion 7 }
wrsSerialNumber OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The serial number (or string) of the switch"
::= { wrsVersion 8 }
wrsScbVersion OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The version of the SCB (motherboard)"
::= { wrsVersion 9 }
-- Date (5), to quickly check wr status
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"
::= { wrsDate 1 }
wrsDateString 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)"
::= { wrsDate 2 }
END
......@@ -599,12 +599,12 @@ ppsi_p_handler(netsnmp_mib_handler *handler,
void
init_wrsPpsi(void)
{
const oid wrsPpsiG_oid[] = { WRS_OID, 6 };
const oid wrsPpsiG_oid[] = { WRS_OID, 3, 3 };
netsnmp_handler_registration *hreg;
/* Above for globals, below for per-port */
const oid wrsPpsiP_oid[] = { WRS_OID, 7 };
const oid wrsPpsiP_oid[] = { WRS_OID, 3, 4 };
netsnmp_handler_registration *hreg_temp;
const oid wrsTemperature_oid[] = { WRS_OID, 8 };
const oid wrsTemperature_oid[] = { WRS_OID, 3, 5 };
netsnmp_table_registration_info *table_info;
netsnmp_iterator_info *iinfo;
netsnmp_handler_registration *reginfo;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment