Commit 32166f3e authored by Adam Wujek's avatar Adam Wujek 💬

userspace/snmpd: put object wrsPortStatusTable in correct MIB branch

add wrsPortStatusIndex and wrsPortStatusName
Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent 4ab45153
......@@ -412,135 +412,6 @@ ptpDeltaRxSX OBJECT-TYPE
"Fixed Rx latency on Slave side"
::= { wrsPpsiGlobalsX 17 }
-- per-port (.4)
wrsPortsTableX OBJECT-TYPE
SYNTAX SEQUENCE OF wrsPortsEntryX
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information for each port"
::= { wrsPpsi 4 }
wrsPortsEntryX OBJECT-TYPE
SYNTAX WrsPortsEntryX
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing ports statuses"
INDEX { wrsPortIndex }
::= { wrsPortsTableX 1 }
WrsPortsEntryX ::=
SEQUENCE {
portLink INTEGER,
portMode INTEGER,
portLocked INTEGER,
portPeer OCTET STRING,
portSfpVN DisplayString,
portSfpPN DisplayString,
portSfpVS DisplayString,
portSfpInDB INTEGER,
portSfpGbE INTEGER,
portSfpError INTEGER
}
portLinkX OBJECT-TYPE
SYNTAX INTEGER {
NA(0),
down(1),
up(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether the link is up or down"
::= { wrsPortsEntryX 1 }
portModeX OBJECT-TYPE
SYNTAX INTEGER {
unknown(0),
master(1),
slave(2),
non-wr(3),
auto(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether the port is master or slave"
::= { wrsPortsEntryX 2 }
portLockedX OBJECT-TYPE
SYNTAX INTEGER {
NA(0),
not-locked(1),
locked(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether the peers are locked or not"
::= { wrsPortsEntryX 3 }
portPeerX OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"the ClockID of the peer, if available. Or 0"
::= { wrsPortsEntryX 4 }
portSfpVNX OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Vendor Name of SFP"
::= { wrsPortsEntryX 5 }
portSfpPNX OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Part Number of SFP"
::= { wrsPortsEntryX 6 }
portSfpVSX OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Vendor serial number of SFP"
::= { wrsPortsEntryX 7 }
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"
::= { wrsPortsEntryX 8 }
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"
::= { wrsPortsEntryX 9 }
portSfpErrorX OBJECT-TYPE
SYNTAX INTEGER {
NA(0),
SFP-ok(1),
SFP-Error(2)
}
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."
::= { wrsPortsEntryX 10 }
-- Versions (4) are all just strings, several of them
......@@ -709,7 +580,155 @@ wrsTempThresholdPSR OBJECT-TYPE
--wrsSpllState OBJECT IDENTIFIER ::= { wrsExpertStatus 3 }
--wrsPstatsTable OBJECT IDENTIFIER ::= { wrsExpertStatus 4 }
--wrsPtpDataTable OBJECT IDENTIFIER ::= { wrsExpertStatus 5 }
--wrsPortStatusTable OBJECT IDENTIFIER ::= { wrsExpertStatus 6 }
-- per-port (.6.1.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,
wrsPortStatusMode INTEGER,
wrsPortStatusLocked INTEGER,
wrsPortStatusPeer OCTET STRING,
wrsPortStatusSfpVN DisplayString,
wrsPortStatusSfpPN DisplayString,
wrsPortStatusSfpVS DisplayString,
wrsPortStatusSfpInDB INTEGER,
wrsPortStatusSfpGbE INTEGER,
wrsPortStatusSfpError 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 }
wrsPortStatusMode OBJECT-TYPE
SYNTAX INTEGER {
unknown(0),
master(1),
slave(2),
nonWr(3),
auto(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether the port is master or slave"
::= { wrsPortStatusEntry 4 }
wrsPortStatusLocked OBJECT-TYPE
SYNTAX INTEGER {
na(0),
notLocked(1),
locked(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether the peers are locked or not"
::= { wrsPortStatusEntry 5 }
wrsPortStatusPeer OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"the ClockID of the peer, if available. Or 0"
::= { wrsPortStatusEntry 6 }
wrsPortStatusSfpVN OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Vendor Name of SFP"
::= { wrsPortStatusEntry 7 }
wrsPortStatusSfpPN OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Part Number of SFP"
::= { wrsPortStatusEntry 8 }
wrsPortStatusSfpVS OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Vendor serial number of SFP"
::= { wrsPortStatusEntry 9 }
wrsPortStatusSfpInDB OBJECT-TYPE
SYNTAX INTEGER {na(0), notInDataBase(1), inDataBase(2)}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether the SFP is in data base or not"
::= { wrsPortStatusEntry 10 }
wrsPortStatusSfpGbE OBJECT-TYPE
SYNTAX INTEGER {na(0), linkNotGbE(1), linkGbE(2)}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Whether the SFP is 1 GbE"
::= { wrsPortStatusEntry 11 }
wrsPortStatusSfpError OBJECT-TYPE
SYNTAX INTEGER {
na(0),
sfpOk(1),
sfpError(2),
portDown(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Problem with SFP configuration. Port has to be always 1GbE. Port has to be in data base as long as support WR."
::= { wrsPortStatusEntry 12 }
--wrsNetworking
--Configuration
......
......@@ -5,6 +5,8 @@
struct wrsPortStatusTable_s wrsPortStatusTable_array[WRS_N_PORTS];
static struct pickinfo wrsPortStatusTable_pickinfo[] = {
FIELD(wrsPortStatusTable_s, ASN_UNSIGNED, index), /* not reported */
FIELD(wrsPortStatusTable_s, ASN_OCTET_STR, port_name),
FIELD(wrsPortStatusTable_s, ASN_INTEGER, link_up),
FIELD(wrsPortStatusTable_s, ASN_INTEGER, port_mode),
FIELD(wrsPortStatusTable_s, ASN_INTEGER, port_locked),
......@@ -45,11 +47,11 @@ time_t wrsPortStatusTable_data_fill(unsigned int *n_rows)
for (i = 0; i < hal_nports_local; ++i) {
/* Assume that number of ports does not change between
* reads */
char if_name[10];
snprintf(if_name, 10, "wr%d", i);
snprintf(wrsPortStatusTable_array[i].port_name, 10,
"wr%d", i);
port_state = hal_lookup_port(hal_ports,
hal_nports_local, if_name);
hal_nports_local,
wrsPortStatusTable_array[i].port_name);
/* No need to copy all ports structures, only what
* we're interested in.
* Keep value 0 for Not available */
......@@ -117,7 +119,7 @@ time_t wrsPortStatusTable_data_fill(unsigned int *n_rows)
return time_cur;
}
#define TT_OID WRS_OID, 6, 4
#define TT_OID WRSPORTSTATUSTABLE_OID
#define TT_PICKINFO wrsPortStatusTable_pickinfo
#define TT_DATA_FILL_FUNC wrsPortStatusTable_data_fill
#define TT_DATA_ARRAY wrsPortStatusTable_array
......
......@@ -2,12 +2,16 @@
#define WRS_PORT_STATUS_TABLE_H
#define WRSPORTSTATUSTABLE_CACHE_TIMEOUT 5
#define WRSPORTSTATUSTABLE_OID WRS_OID, 6, 6
#define WRS_PORT_STATUS_SFP_ERROR_SFP_OK 1 /* ok */
#define WRS_PORT_STATUS_SFP_ERROR_SFP_ERROR 2 /* error */
#define WRS_PORT_STATUS_SFP_ERROR_PORT_DOWN 3 /* ok */
struct wrsPortStatusTable_s {
uint32_t index; /* not reported, index fields has to be marked
* as not-accessible in MIB */
char port_name[12]; /* port name */
ClockIdentity peer_id;
/* These can't be "unsigned char" because we scanf a %i in there */
unsigned link_up;
......
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