Commit 7b73a18e authored by Alessandro Rubini's avatar Alessandro Rubini

snmp library: fix data types for wr/ppsi items

Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent 854d6e73
......@@ -7,10 +7,9 @@ WR-SWITCH-MIB DEFINITIONS ::= BEGIN
-- IMPORTS: Include definitions from other mibs here
IMPORTS
OBJECT-TYPE, Integer32, Counter32,
MODULE-IDENTITY,enterprises FROM SNMPv2-SMI
DisplayString FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF;
OBJECT-TYPE, Integer32, Counter32, Counter64
MODULE-IDENTITY, enterprises FROM SNMPv2-SMI
DisplayString FROM SNMPv2-TC;
CERN OBJECT IDENTIFIER ::= { enterprises 96 }
......@@ -280,7 +279,7 @@ ppsiMode OBJECT-TYPE
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The mode if this clock"
"The mode of this clock"
::= { wrsPpsiGlobals 3 }
ppsiServoState OBJECT-TYPE
......@@ -298,61 +297,63 @@ ppsiServoState OBJECT-TYPE
"The servo state if slave"
::= { wrsPpsiGlobals 4 }
-- FIXME: what follows is to be defined; they are placeholders so to build
ppsiPhaseTracking OBJECT-TYPE
SYNTAX Counter32
SYNTAX INTEGER {
not-tracking(0)
tracking(1)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"To be described"
"Whether phase tracking is enabled in the servo"
::= { wrsPpsiGlobals 5 }
ppsiSyncSource OBJECT-TYPE
SYNTAX Counter32
SYNTAX DisplayString (SIZE (0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"To be described"
"The port name that is currently the synchronization source"
::= { wrsPpsiGlobals 6 }
ppsiClockOffset OBJECT-TYPE
SYNTAX Counter32
ppsiClockOffsetPs OBJECT-TYPE
SYNTAX Counter64 -- should be integer64 (signed)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"To be described"
"Current clock offset from master, in picoseconds"
::= { wrsPpsiGlobals 7 }
ppsiSkew OBJECT-TYPE
SYNTAX Counter32
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"To be described"
"The estimated change of master-to-slave delay, in picoseconds"
::= { wrsPpsiGlobals 8 }
ppsiRTT OBJECT-TYPE
SYNTAX Counter32
SYNTAX Counter64 -- does unsigned64 exits?
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"To be described"
"The round-trip-time, from master, in picoseconds"
::= { wrsPpsiGlobals 9 }
ppsiLinkLength OBJECT-TYPE
SYNTAX Counter32
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"To be described"
"Estimated fiber length, from master-to-slave delay, in meters"
::= { wrsPpsiGlobals 10 }
ppsiServoUpdates OBJECT-TYPE
SYNTAX Counter32
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"To be described"
"How many time did the servo run"
::= { wrsPpsiGlobals 11 }
-- per-port (.3.2)
......
......@@ -26,12 +26,12 @@ static struct wrs_p_globals {
int ppsi_mode;
int ppsi_servo_state;
int phase_tracking;
int sync_source;
int clock_offset;
int skew;
int rtt;
int llength;
int servo_updates;
char sync_source[32];
int64_t clock_offset;
int32_t skew;
int64_t rtt;
uint32_t llength;
int64_t servo_updates;
} wrs_p_globals;
static struct wrs_p_perport {
......@@ -55,15 +55,15 @@ struct ppsi_pickinfo {
static struct ppsi_pickinfo g_pickinfo[] = {
FIELD(wrs_p_globals, ASN_OCTET_STR, gm_id),
FIELD(wrs_p_globals, ASN_OCTET_STR, my_id),
FIELD(wrs_p_globals, ASN_COUNTER, ppsi_mode),
FIELD(wrs_p_globals, ASN_COUNTER, ppsi_servo_state),
FIELD(wrs_p_globals, ASN_COUNTER, phase_tracking),
FIELD(wrs_p_globals, ASN_COUNTER, sync_source),
FIELD(wrs_p_globals, ASN_COUNTER, clock_offset),
FIELD(wrs_p_globals, ASN_COUNTER, skew),
FIELD(wrs_p_globals, ASN_COUNTER, rtt),
FIELD(wrs_p_globals, ASN_COUNTER, llength),
FIELD(wrs_p_globals, ASN_COUNTER, servo_updates),
FIELD(wrs_p_globals, ASN_INTEGER, ppsi_mode),
FIELD(wrs_p_globals, ASN_INTEGER, ppsi_servo_state),
FIELD(wrs_p_globals, ASN_INTEGER, phase_tracking),
FIELD(wrs_p_globals, ASN_OCTET_STR, sync_source), /* special case! */
FIELD(wrs_p_globals, ASN_COUNTER64, clock_offset),
FIELD(wrs_p_globals, ASN_INTEGER, skew),
FIELD(wrs_p_globals, ASN_COUNTER64, rtt),
FIELD(wrs_p_globals, ASN_INTEGER, llength),
FIELD(wrs_p_globals, ASN_COUNTER64, servo_updates),
};
static struct ppsi_pickinfo p_pickinfo[] = {
......@@ -81,6 +81,8 @@ static int ppsi_g_group(netsnmp_mib_handler *handler,
{
int obj; /* the final index */
struct ppsi_pickinfo *pi;
void *ptr;
int len;
/* FIXME: retrieve information from ppsi itself */
......@@ -97,10 +99,12 @@ static int ppsi_g_group(netsnmp_mib_handler *handler,
return SNMP_ERR_GENERR;
}
pi = g_pickinfo + obj;
ptr = (void *)&wrs_p_globals + pi->offset;
len = pi->len;
if (len > 8) /* special case for strings */
;//len = strlen(ptr);
snmp_set_var_typed_value(requests->requestvb,
pi->type,
(void *)&wrs_p_globals + pi->offset,
pi->len);
pi->type, ptr, len);
break;
default:
snmp_log(LOG_ERR, "unknown mode (%d) in wrs ppsi group\n",
......@@ -151,6 +155,7 @@ static int
ppsi_p_load(netsnmp_cache *cache, void *vmagic)
{
/* FIXME: load information */
strcpy(wrs_p_globals.sync_source, "wr I suppose");
return 0;
}
......
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