Commit 23737c78 authored by Adam Wujek's avatar Adam Wujek 💬

userspace/snmpd: warning when hwinfo is not loaded

When wrsVersionFpgaType or wrsVersionSwitchSerialNumber is UNKNOWN,
or wrsVersionScbVersion = 000 then probably hwinfo was erased or replaced
with the wersion without a serial number.
Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent 72a0f118
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "wrsMemoryGroup.h" #include "wrsMemoryGroup.h"
#include "wrsCpuLoadGroup.h" #include "wrsCpuLoadGroup.h"
#include "wrsDiskTable.h" #include "wrsDiskTable.h"
#include "wrsVersionGroup.h"
#include "wrsOSStatusGroup.h" #include "wrsOSStatusGroup.h"
#define WRSMEMORYFREELOW_TRESHOLD_ERROR 80 #define WRSMEMORYFREELOW_TRESHOLD_ERROR 80
...@@ -55,6 +56,8 @@ time_t wrsOSStatus_data_fill(void) ...@@ -55,6 +56,8 @@ time_t wrsOSStatus_data_fill(void)
struct wrsCpuLoad_s *c; struct wrsCpuLoad_s *c;
struct wrsDiskTable_s *d; struct wrsDiskTable_s *d;
struct wrsTemperature_s *t; struct wrsTemperature_s *t;
struct wrsVersion_s *v;
char *unknown = "UNKNOWN";
time_boot = wrsBootStatus_data_fill(); time_boot = wrsBootStatus_data_fill();
time_temp = wrsTemperature_data_fill(); time_temp = wrsTemperature_data_fill();
...@@ -81,6 +84,7 @@ time_t wrsOSStatus_data_fill(void) ...@@ -81,6 +84,7 @@ time_t wrsOSStatus_data_fill(void)
slog_obj_name = wrsBootSuccessful_str; slog_obj_name = wrsBootSuccessful_str;
b = &wrsBootStatus_s; b = &wrsBootStatus_s;
v = &wrsVersion_s;
/* check if error */ /* check if error */
if (b->wrsBootCnt == 0) { if (b->wrsBootCnt == 0) {
...@@ -198,6 +202,23 @@ time_t wrsOSStatus_data_fill(void) ...@@ -198,6 +202,23 @@ time_t wrsOSStatus_data_fill(void)
snmp_log(LOG_ERR, "SNMP: " SL_W " %s: Last update of the firmware failed\n", snmp_log(LOG_ERR, "SNMP: " SL_W " %s: Last update of the firmware failed\n",
slog_obj_name); slog_obj_name);
} }
if (!strcmp(v->wrsVersions[wrsVersionFpgaType_i], unknown)) {
o->wrsBootSuccessful = WRS_BOOT_SUCCESSFUL_WARNING;
snmp_log(LOG_ERR, "SNMP: " SL_W " %s: wrong data in hwinfo, unknown version of FPGA\n",
slog_obj_name);
}
if (!strcmp(v->wrsVersions[wrsVersionSwitchSerialNumber_i], unknown)) {
o->wrsBootSuccessful = WRS_BOOT_SUCCESSFUL_WARNING;
snmp_log(LOG_ERR, "SNMP: " SL_W " %s: wrong data in hwinfo, unknown Switch's serial number\n",
slog_obj_name);
}
if (!strcmp(v->wrsVersions[wrsVersionScbVersion_i], "000")) {
o->wrsBootSuccessful = WRS_BOOT_SUCCESSFUL_WARNING;
snmp_log(LOG_ERR, "SNMP: " SL_W " %s: wrong data in hwinfo, unknown version of SCB\n",
slog_obj_name);
}
} }
/* check if any of fields equal to 0 */ /* check if any of fields equal to 0 */
......
...@@ -21,19 +21,19 @@ struct wrs_v_item { ...@@ -21,19 +21,19 @@ struct wrs_v_item {
}; };
static struct pickinfo wrsVersion_pickinfo[] = { static struct pickinfo wrsVersion_pickinfo[] = {
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[0]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwVersion_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[1]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwBuildBy_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[2]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwBuildDate_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[3]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionBackplaneVersion_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[4]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionFpgaType_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[5]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionManufacturer_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[6]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwitchSerialNumber_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[7]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionScbVersion_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[8]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionGwVersion_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[9]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionGwBuild_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[10]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwitchHdlCommitId_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[11]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionGeneralCoresCommitId_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[12]), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionWrCoresCommitId_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersionLastUpdateDate), FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersionLastUpdateDate),
}; };
...@@ -42,19 +42,19 @@ struct wrsVersion_s wrsVersion_s; ...@@ -42,19 +42,19 @@ struct wrsVersion_s wrsVersion_s;
static struct wrs_v_item wrs_version[] = { static struct wrs_v_item wrs_version[] = {
/* Warning: the order here must match the MIB file /* Warning: the order here must match the MIB file
* wrs_version has to have the same size as wrsVersion_s.wrsVersions */ * wrs_version has to have the same size as wrsVersion_s.wrsVersions */
[0] = {.key = "software-version:"}, [wrsVersionSwVersion_i] = {.key = "software-version:"},
[1] = {"bult-by:"}, [wrsVersionSwBuildBy_i] = {"bult-by:"},
[2] = {"build-date:"}, [wrsVersionSwBuildDate_i] = {"build-date:"},
[3] = {"backplane-version:"}, [wrsVersionBackplaneVersion_i] = {"backplane-version:"},
[4] = {"fpga-type:"}, [wrsVersionFpgaType_i] = {"fpga-type:"},
[5] = {"manufacturer:"}, [wrsVersionManufacturer_i] = {"manufacturer:"},
[6] = {"serial-number:"}, [wrsVersionSwitchSerialNumber_i] = {"serial-number:"},
[7] = {"scb-version:"}, [wrsVersionScbVersion_i] = {"scb-version:"},
[8] = {"gateware-version:"}, [wrsVersionGwVersion_i] = {"gateware-version:"},
[9] = {"gateware-build:"}, [wrsVersionGwBuild_i] = {"gateware-build:"},
[10] = {"wr_switch_hdl-commit:"}, [wrsVersionSwitchHdlCommitId_i] = {"wr_switch_hdl-commit:"},
[11] = {"general-cores-commit:"}, [wrsVersionGeneralCoresCommitId_i] = {"general-cores-commit:"},
[12] = {"wr-cores-commit:"}, [wrsVersionWrCoresCommitId_i] = {"wr-cores-commit:"},
}; };
......
...@@ -3,6 +3,20 @@ ...@@ -3,6 +3,20 @@
#define WRSVERSION_OID WRS_OID, 6, 3 #define WRSVERSION_OID WRS_OID, 6, 3
#define wrsVersionSwVersion_i 0
#define wrsVersionSwBuildBy_i 1
#define wrsVersionSwBuildDate_i 2
#define wrsVersionBackplaneVersion_i 3
#define wrsVersionFpgaType_i 4
#define wrsVersionManufacturer_i 5
#define wrsVersionSwitchSerialNumber_i 6
#define wrsVersionScbVersion_i 7
#define wrsVersionGwVersion_i 8
#define wrsVersionGwBuild_i 9
#define wrsVersionSwitchHdlCommitId_i 10
#define wrsVersionGeneralCoresCommitId_i 11
#define wrsVersionWrCoresCommitId_i 12
struct wrsVersion_s { struct wrsVersion_s {
char wrsVersions[13][32]; /* array of version strings */ char wrsVersions[13][32]; /* array of version strings */
char wrsVersionLastUpdateDate[32]; char wrsVersionLastUpdateDate[32];
......
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