X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=sim%2Fo1-interface.git;a=blobdiff_plain;f=ntsimulator%2Fsrc%2Fo-ran-notifications%2Fo-ran-notifications.c;h=230fad26bdc949da572725faedfbd94d1ecc56e9;hp=ad282d1854e0c71103339a9c9da59665091bed24;hb=a19f893a70c03dee9312e1208301d079409d84ac;hpb=1f1479ff8ce3a268acb7b70a32bb789d859a915b diff --git a/ntsimulator/src/o-ran-notifications/o-ran-notifications.c b/ntsimulator/src/o-ran-notifications/o-ran-notifications.c index ad282d1..230fad2 100644 --- a/ntsimulator/src/o-ran-notifications/o-ran-notifications.c +++ b/ntsimulator/src/o-ran-notifications/o-ran-notifications.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "sysrepo.h" #include "sysrepo/values.h" @@ -35,6 +36,21 @@ volatile int exit_application = 0; +static counterAlarms netconf_alarm_counter = { + .normal = 0, + .warning = 0, + .minor = 0, + .major = 0, + .critical = 0 +}; +static counterAlarms ves_alarm_counter= { + .normal = 0, + .warning = 0, + .minor = 0, + .major = 0, + .critical = 0 +}; + struct faultAlarms { int faultId; @@ -259,6 +275,30 @@ static int send_dummy_notif(sr_session_ctx_t *sess) printf("Failed to send notification send_dummy_notif\n"); return SR_ERR_OPERATION_FAILED; } + if (oran_fault_alarms[ran].cleared[random_port]) + { + netconf_alarm_counter.normal++; + } + else + { + if (strcmp(oran_fault_alarms[ran].faultSeverity, "WARNING") == 0) + { + netconf_alarm_counter.warning++; + } + else if (strcmp(oran_fault_alarms[ran].faultSeverity, "MINOR") == 0) + { + netconf_alarm_counter.minor++; + } + else if (strcmp(oran_fault_alarms[ran].faultSeverity, "MAJOR") == 0) + { + netconf_alarm_counter.major++; + } + else if (strcmp(oran_fault_alarms[ran].faultSeverity, "CRITICAL") == 0) + { + netconf_alarm_counter.critical++; + } + } + printf("Successfully sent notification with timestamp=\"%s\"\n", dateAndTime); } if (isVesAvailable) @@ -271,7 +311,36 @@ static int send_dummy_notif(sr_session_ctx_t *sess) { printf("Could not send Fault VES message\n"); } + if (oran_fault_alarms[ran].cleared[random_port]) + { + ves_alarm_counter.normal++; + } + else + { + if (strcmp(oran_fault_alarms[ran].faultSeverity, "WARNING") == 0) + { + ves_alarm_counter.warning++; + } + else if (strcmp(oran_fault_alarms[ran].faultSeverity, "MINOR") == 0) + { + ves_alarm_counter.minor++; + } + else if (strcmp(oran_fault_alarms[ran].faultSeverity, "MAJOR") == 0) + { + ves_alarm_counter.major++; + } + else if (strcmp(oran_fault_alarms[ran].faultSeverity, "CRITICAL") == 0) + { + ves_alarm_counter.critical++; + } + } } + printf("Writing counters to file...\n"); + rc = writeStatusNotificationCounters(ves_alarm_counter, netconf_alarm_counter); + if (rc != SR_ERR_OK) + { + printf("Could not write status to file...\n"); + } sr_free_values(vnotif, current_num_of_values); @@ -333,6 +402,14 @@ main(int argc, char **argv) else { sleep(1); + // reset the counters when the notifciation delay period is switched back to 0 + netconf_alarm_counter.normal = netconf_alarm_counter.warning = \ + netconf_alarm_counter.minor = netconf_alarm_counter.major = \ + netconf_alarm_counter.critical = 0; + + ves_alarm_counter.normal = ves_alarm_counter.warning = \ + ves_alarm_counter.minor = ves_alarm_counter.major = \ + ves_alarm_counter.critical = 0; } }