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 @@
#include "wrsMemoryGroup.h"
#include "wrsCpuLoadGroup.h"
#include "wrsDiskTable.h"
#include "wrsVersionGroup.h"
#include "wrsOSStatusGroup.h"
#define WRSMEMORYFREELOW_TRESHOLD_ERROR 80
......@@ -55,6 +56,8 @@ time_t wrsOSStatus_data_fill(void)
struct wrsCpuLoad_s *c;
struct wrsDiskTable_s *d;
struct wrsTemperature_s *t;
struct wrsVersion_s *v;
char *unknown = "UNKNOWN";
time_boot = wrsBootStatus_data_fill();
time_temp = wrsTemperature_data_fill();
......@@ -81,6 +84,7 @@ time_t wrsOSStatus_data_fill(void)
slog_obj_name = wrsBootSuccessful_str;
b = &wrsBootStatus_s;
v = &wrsVersion_s;
/* check if error */
if (b->wrsBootCnt == 0) {
......@@ -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",
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 */
......
......@@ -21,19 +21,19 @@ struct wrs_v_item {
};
static struct pickinfo wrsVersion_pickinfo[] = {
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[0]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[1]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[2]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[3]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[4]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[5]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[6]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[7]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[8]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[9]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[10]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[11]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[12]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwVersion_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwBuildBy_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwBuildDate_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionBackplaneVersion_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionFpgaType_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionManufacturer_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwitchSerialNumber_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionScbVersion_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionGwVersion_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionGwBuild_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionSwitchHdlCommitId_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionGeneralCoresCommitId_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersions[wrsVersionWrCoresCommitId_i]),
FIELD(wrsVersion_s, ASN_OCTET_STR, wrsVersionLastUpdateDate),
};
......@@ -42,19 +42,19 @@ struct wrsVersion_s wrsVersion_s;
static struct wrs_v_item wrs_version[] = {
/* Warning: the order here must match the MIB file
* wrs_version has to have the same size as wrsVersion_s.wrsVersions */
[0] = {.key = "software-version:"},
[1] = {"bult-by:"},
[2] = {"build-date:"},
[3] = {"backplane-version:"},
[4] = {"fpga-type:"},
[5] = {"manufacturer:"},
[6] = {"serial-number:"},
[7] = {"scb-version:"},
[8] = {"gateware-version:"},
[9] = {"gateware-build:"},
[10] = {"wr_switch_hdl-commit:"},
[11] = {"general-cores-commit:"},
[12] = {"wr-cores-commit:"},
[wrsVersionSwVersion_i] = {.key = "software-version:"},
[wrsVersionSwBuildBy_i] = {"bult-by:"},
[wrsVersionSwBuildDate_i] = {"build-date:"},
[wrsVersionBackplaneVersion_i] = {"backplane-version:"},
[wrsVersionFpgaType_i] = {"fpga-type:"},
[wrsVersionManufacturer_i] = {"manufacturer:"},
[wrsVersionSwitchSerialNumber_i] = {"serial-number:"},
[wrsVersionScbVersion_i] = {"scb-version:"},
[wrsVersionGwVersion_i] = {"gateware-version:"},
[wrsVersionGwBuild_i] = {"gateware-build:"},
[wrsVersionSwitchHdlCommitId_i] = {"wr_switch_hdl-commit:"},
[wrsVersionGeneralCoresCommitId_i] = {"general-cores-commit:"},
[wrsVersionWrCoresCommitId_i] = {"wr-cores-commit:"},
};
......
......@@ -3,6 +3,20 @@
#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 {
char wrsVersions[13][32]; /* array of version strings */
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