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

userspace/snmpd: add wrsStartCntGroup using wrsGroupTemplate

Add:
--wrsStartCntHAL
--wrsStartCntPPSI
--update MIB
Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent a63856c5
......@@ -28,6 +28,7 @@ SOURCES = \
init.c \
snmp_shmem.c \
wrsScalar.c \
wrsStartCntGroup.c \
wrsPstatsTable.c \
shmem.c \
wrsPtpDataTable.c \
......
......@@ -138,7 +138,25 @@ wrsTempThresholdPSR OBJECT-TYPE
"Threshold level for Power Supply Right (PSR) temperature"
::= { wrsTemperatureGroup 8 }
--wrsRestartCntGroup OBJECT IDENTIFIER ::= { wrsExpertStatus 2 }
wrsStartCntGroup OBJECT IDENTIFIER ::= { wrsExpertStatus 2 }
-- wrsStartCntGroup (.6.2)
wrsStartCntHAL OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of HAL deamon starts"
::= { wrsStartCntGroup 1 }
wrsStartCntPPSI OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of PPSI deamon starts"
::= { wrsStartCntGroup 2 }
--wrsSpllState OBJECT IDENTIFIER ::= { wrsExpertStatus 3 }
-- wrsPstatsTable (.6.1.4)
wrsPstatsTable OBJECT-TYPE
......
......@@ -8,6 +8,7 @@
/* The sub-init functions */
#include "wrsSnmp.h"
#include "snmp_shmem.h"
#include "wrsStartCntGroup.h"
#include "wrsPstatsTable.h"
#include "wrsPtpDataTable.h"
#include "wrsCurrentTimeGroup.h"
......@@ -22,6 +23,7 @@ void init_wrsSnmp(void)
{
init_shm();
init_wrsScalar();
init_wrsStartCntGroup();
init_wrsPstatsTable();
init_wrsPtpDataTable();
init_wrsCurrentTimeGroup();
......
#include "wrsSnmp.h"
#include "shmem_snmp.h"
#include "wrsStartCntGroup.h"
static struct pickinfo wrsStartCnt_pickinfo[] = {
FIELD(wrsStartCnt_s, ASN_COUNTER, wrsStartCntHAL),
FIELD(wrsStartCnt_s, ASN_COUNTER, wrsStartCntPPSI),
};
struct wrsStartCnt_s wrsStartCnt_s;
time_t wrsStartCnt_data_fill(void){
static time_t time_update;
time_t time_cur;
time_cur = time(NULL);
if (time_update
&& time_cur - time_update < WRSSTARTCNT_CACHE_TIMEOUT) {
/* cache not updated, return last update time */
return time_update;
}
time_update = time_cur;
memset(&wrsStartCnt_s, 0, sizeof(wrsStartCnt_s));
/* get start counters from shmem's */
wrsStartCnt_s.wrsStartCntHAL = hal_head->pidsequence;
wrsStartCnt_s.wrsStartCntPPSI = ppsi_head->pidsequence;
/* there was an update, return current time */
return time_update;
}
#define GT_OID WRSSTARTCNT_OID
#define GT_PICKINFO wrsStartCnt_pickinfo
#define GT_DATA_FILL_FUNC wrsStartCnt_data_fill
#define GT_DATA_STRUCT wrsStartCnt_s
#define GT_GROUP_NAME "wrsStartCnt"
#define GT_INIT_FUNC init_wrsStartCntGroup
#include "wrsGroupTemplate.h"
#ifndef WRS_START_CNT_GROUP_H
#define WRS_START_CNT_GROUP_H
#define WRSSTARTCNT_CACHE_TIMEOUT 5
#define WRSSTARTCNT_OID WRS_OID, 6, 2
struct wrsStartCnt_s {
uint32_t wrsStartCntHAL;
uint32_t wrsStartCntPPSI;
};
extern struct wrsStartCnt_s wrsStartCnt_s;
time_t wrsStartCnt_data_fill(void);
void init_wrsStartCntGroup(void);
#endif /* WRS_START_CNT_GROUP_H */
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