Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Switch - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
86
Issues
86
List
Board
Labels
Milestones
Merge Requests
4
Merge Requests
4
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Switch - Software
Commits
430ee471
Commit
430ee471
authored
Feb 18, 2019
by
Adam Wujek
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Feature:
#36
] userspace/snmp: add DOM for SFPs
Signed-off-by:
Adam Wujek
<
adam.wujek@cern.ch
>
parent
af8f7c16
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
115 additions
and
2 deletions
+115
-2
snmp_objects.tex
doc/wrs_failures/snmp_objects.tex
+6
-0
WR-SWITCH-MIB.txt
userspace/snmpd/WR-SWITCH-MIB.txt
+73
-2
wrsPortStatusTable.c
userspace/snmpd/wrsPortStatusTable.c
+27
-0
wrsPortStatusTable.h
userspace/snmpd/wrsPortStatusTable.h
+9
-0
No files found.
doc/wrs_failures/snmp_objects.tex
View file @
430ee471
...
...
@@ -637,6 +637,12 @@
\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>
}{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Add entries from other MIBs.
...
...
userspace/snmpd/WR-SWITCH-MIB.txt
View file @
430ee471
...
...
@@ -28,7 +28,14 @@ wrSwitchMIB MODULE-IDENTITY
REVISION "201807181400Z"
DESCRIPTION
"Add wrsStartCntLldpd
Add wrsPortStatusMonitor
Add in wrsPortStatusTable:
- wrsPortStatusMonitor
- wrsPortStatusSfpDom
- wrsPortStatusSfpTemp
- wrsPortStatusSfpVcc
- wrsPortStatusSfpTxBias
- wrsPortStatusSfpTxPower
- wrsPortStatusSfpRxPower
"
REVISION "201602171600Z"
...
...
@@ -1973,7 +1980,13 @@ WrsPortStatusEntry ::=
wrsPortStatusSfpError INTEGER,
wrsPortStatusPtpTxFrames Counter32,
wrsPortStatusPtpRxFrames Counter32,
wrsPortStatusMonitor INTEGER
wrsPortStatusMonitor INTEGER,
wrsPortStatusSfpDom INTEGER,
wrsPortStatusSfpTemp INTEGER,
wrsPortStatusSfpVcc INTEGER,
wrsPortStatusSfpTxBias INTEGER,
wrsPortStatusSfpTxPower INTEGER,
wrsPortStatusSfpRxPower INTEGER
}
wrsPortStatusIndex OBJECT-TYPE
...
...
@@ -2122,6 +2135,64 @@ wrsPortStatusMonitor OBJECT-TYPE
"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
"If disable, SNMP will not generate any errors for this port."
::= { wrsPortStatusEntry 16 }
wrsPortStatusSfpTemp OBJECT-TYPE
SYNTAX INTEGER
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 INTEGER
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 INTEGER
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 INTEGER
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 INTEGER
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 }
-- wrsPstatsHCTable (.7.7)
wrsPstatsHCTable OBJECT-TYPE
SYNTAX SEQUENCE OF WrsPstatsHCEntry
...
...
userspace/snmpd/wrsPortStatusTable.c
View file @
430ee471
...
...
@@ -24,6 +24,12 @@ static struct pickinfo wrsPortStatusTable_pickinfo[] = {
FIELD
(
wrsPortStatusTable_s
,
ASN_COUNTER
,
wrsPortStatusPtpTxFrames
),
FIELD
(
wrsPortStatusTable_s
,
ASN_COUNTER
,
wrsPortStatusPtpRxFrames
),
FIELD
(
wrsPortStatusTable_s
,
ASN_INTEGER
,
wrsPortStatusMonitor
),
FIELD
(
wrsPortStatusTable_s
,
ASN_INTEGER
,
wrsPortStatusSfpDom
),
FIELD
(
wrsPortStatusTable_s
,
ASN_INTEGER
,
wrsPortStatusSfpTemp
),
FIELD
(
wrsPortStatusTable_s
,
ASN_INTEGER
,
wrsPortStatusSfpVcc
),
FIELD
(
wrsPortStatusTable_s
,
ASN_INTEGER
,
wrsPortStatusSfpTxBias
),
FIELD
(
wrsPortStatusTable_s
,
ASN_INTEGER
,
wrsPortStatusSfpTxPower
),
FIELD
(
wrsPortStatusTable_s
,
ASN_INTEGER
,
wrsPortStatusSfpRxPower
),
};
...
...
@@ -132,6 +138,27 @@ time_t wrsPortStatusTable_data_fill(unsigned int *n_rows)
strncpy
(
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpVS
,
port_state
->
calib
.
sfp
.
vendor_serial
,
sizeof
(
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpVS
));
/* Copy DOM data for SFP */
if
(
hal_shmem
->
read_sfp_diag
)
{
if
(
port_state
->
has_sfp_diag
)
{
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpDom
=
WRS_PORT_STATUS_SFP_DOM_ENABLE
;
/* temp in C */
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpTemp
=
ntohs
(
*
port_state
->
calib
.
sfp_dom_raw
.
temp
)
/
256
;
/* vcc in mV */
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpVcc
=
ntohs
(
*
port_state
->
calib
.
sfp_dom_raw
.
vcc
)
/
10
;
/* tx_bias in uA */
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpTxBias
=
ntohs
(
*
port_state
->
calib
.
sfp_dom_raw
.
tx_bias
)
*
2
;
/* tx_pow in uW */
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpTxPower
=
ntohs
(
*
port_state
->
calib
.
sfp_dom_raw
.
tx_pow
)
/
10
;
/* rx_pow in uW */
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpRxPower
=
ntohs
(
*
port_state
->
calib
.
sfp_dom_raw
.
rx_pow
)
/
10
;
}
else
{
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpDom
=
WRS_PORT_STATUS_SFP_DOM_NOT_SUPPORTED
;
}
}
else
{
wrsPortStatusTable_array
[
i
].
wrsPortStatusSfpDom
=
WRS_PORT_STATUS_SFP_DOM_DISABLE
;
}
}
retries
++
;
...
...
userspace/snmpd/wrsPortStatusTable.h
View file @
430ee471
...
...
@@ -26,6 +26,9 @@
#define WRS_PORT_STATUS_MONITOR_ENABLE HAL_PORT_MONITOR_ENABLE
#define WRS_PORT_STATUS_MONITOR_DISABLE HAL_PORT_MONITOR_DISABLE
#define WRS_PORT_STATUS_SFP_DOM_ENABLE 1
#define WRS_PORT_STATUS_SFP_DOM_DISABLE 2
#define WRS_PORT_STATUS_SFP_DOM_NOT_SUPPORTED 3
struct
wrsPortStatusTable_s
{
uint32_t
index
;
/* not reported, index fields has to be marked
...
...
@@ -45,6 +48,12 @@ struct wrsPortStatusTable_s {
unsigned
long
wrsPortStatusPtpTxFrames
;
unsigned
long
wrsPortStatusPtpRxFrames
;
int
wrsPortStatusMonitor
;
/* Ignore errors on this port */
int
wrsPortStatusSfpDom
;
int
wrsPortStatusSfpTemp
;
int
wrsPortStatusSfpVcc
;
int
wrsPortStatusSfpTxBias
;
int
wrsPortStatusSfpTxPower
;
int
wrsPortStatusSfpRxPower
;
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment