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

userspace/snmpd: add portSfpVN, portSfpPN and portSfpVS

Rename portSfpID into portSfpPN, which keeps part number (like AXGE-3454-0531).
Add portSfpVN to keep Vendor name (like Axcen).
Add portSfpVS to keep Vendor serial number (like AX12030003038).
Update MIB.
Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent a4fecbe6
......@@ -17,7 +17,7 @@ CERN OBJECT IDENTIFIER ::= { enterprises 96 }
-- (I follow the CamelCase to be sure I don't mistype. Who knows the rules...
wrSwitchMIB MODULE-IDENTITY
LAST-UPDATED "201502131700Z"
LAST-UPDATED "201502161000Z"
ORGANIZATION "CERN"
CONTACT-INFO "postal: BE-CO-HT, CERN, Geneva
email: ht-drivers@cern.ch
......@@ -423,7 +423,9 @@ PpsiPort ::=
portMode INTEGER,
portLocked INTEGER,
portPeer OCTET STRING,
portSfpID DisplayString,
portSfpVN DisplayString,
portSfpPN DisplayString,
portSfpVS DisplayString,
portSfpInDB INTEGER,
portSfpGbE INTEGER
}
......@@ -460,21 +462,37 @@ portPeer OBJECT-TYPE
"the ClockID of the peer, if available. Or 0"
::= { ppsiPort 4 }
portSfpID OBJECT-TYPE
portSfpVN OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
""
"Vendor Name of SFP"
::= { ppsiPort 5 }
portSfpPN OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Part Number of SFP"
::= { ppsiPort 6 }
portSfpVS OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Vendor serial number of SFP"
::= { ppsiPort 7 }
portSfpInDB 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"
::= { ppsiPort 6 }
::= { ppsiPort 8 }
portSfpGbE OBJECT-TYPE
SYNTAX INTEGER {NA(0), not-GbE(1), GbE(2)}
......@@ -482,7 +500,7 @@ portSfpGbE OBJECT-TYPE
STATUS current
DESCRIPTION
"Whether the SFP is 1 GbE"
::= { ppsiPort 7 }
::= { ppsiPort 9 }
-- Versions (4) are all just strings, several of them
......
......@@ -97,7 +97,9 @@ static struct wrs_p_perport {
unsigned link_up;
unsigned port_mode;
unsigned port_locked;
char sfp_id[16];
char sfp_vn[16]; /* vendor name */
char sfp_pn[16]; /* part name */
char sfp_vs[16]; /* vendor serial */
int sfp_in_db;
int sfp_GbE;
} wrs_p_perport, wrs_p_array[WRS_N_PORTS];
......@@ -107,7 +109,9 @@ static struct ppsi_pickinfo p_pickinfo[] = {
FIELD(wrs_p_perport, ASN_INTEGER, port_mode),
FIELD(wrs_p_perport, ASN_INTEGER, port_locked),
FIELD(wrs_p_perport, ASN_OCTET_STR, peer_id),
FIELD(wrs_p_perport, ASN_OCTET_STR, sfp_id),
FIELD(wrs_p_perport, ASN_OCTET_STR, sfp_vn),
FIELD(wrs_p_perport, ASN_OCTET_STR, sfp_pn),
FIELD(wrs_p_perport, ASN_OCTET_STR, sfp_vs),
FIELD(wrs_p_perport, ASN_INTEGER, sfp_in_db),
FIELD(wrs_p_perport, ASN_INTEGER, sfp_GbE),
};
......@@ -260,9 +264,15 @@ static void wrs_ppsi_get_per_port(void)
port_state->calib.sfp.flags & SFP_FLAG_IN_DB ? 2 : 1;
wrs_p_array[i].sfp_GbE =
port_state->calib.sfp.flags & SFP_FLAG_1GbE ? 2 : 1;
strncpy(wrs_p_array[i].sfp_id,
strncpy(wrs_p_array[i].sfp_vn,
port_state->calib.sfp.vendor_name,
sizeof(wrs_p_array[i].sfp_vn));
strncpy(wrs_p_array[i].sfp_pn,
port_state->calib.sfp.part_num,
sizeof(wrs_p_array[i].sfp_id));
sizeof(wrs_p_array[i].sfp_pn));
strncpy(wrs_p_array[i].sfp_vs,
port_state->calib.sfp.vendor_serial,
sizeof(wrs_p_array[i].sfp_vs));
logmsg("reading ports name %s link %d, mode %d, "
"locked %d\n", port_state->name,
wrs_p_array[i].link_up, wrs_p_array[i].port_mode,
......
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