DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
alarms.h File Reference
#include "runctx.h"
#include "amm/ident.h"
#include "cace/ari/base.h"
#include <m-array.h>
#include <m-dict.h>
#include <pthread.h>
#include <stdint.h>
+ Include dependency graph for alarms.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  refda_alarms_history_item_t
 Each item of an alarm entry history. More...
 
struct  refda_alarms_entry_t
 A single entry of the alarm list. More...
 
struct  refda_alarms_entry_key_t
 Search key for an alarm entry. More...
 
struct  refda_alarms_t
 Storage of the agent alarms list and shelving config. More...
 

Macros

#define M_OPL_refda_alarms_history_item_t()    (INIT(API_2(refda_alarms_history_item_init)), CLEAR(API_2(refda_alarms_history_item_deinit)))
 M*LIB oplist for refda_alarms_history_item_t.
 
#define M_OPL_refda_alarms_entry_t()   (INIT(API_2(refda_alarms_entry_init)), CLEAR(API_2(refda_alarms_entry_deinit)))
 M*LIB oplist for refda_alarms_entry_t.
 
#define M_OPL_refda_alarms_entry_key_t()   M_OPEXTEND(M_POD_OPLIST, CMP(API_6(refda_alarms_entry_cmp)))
 M*LIB oplist for refda_alarms_entry_key_t.
 

Typedefs

typedef struct refda_agent_s refda_agent_t
 

Enumerations

enum  refda_alarms_severity_t {
  REFDA_ALARMS_SEVERITY_CLEARED = 0 , REFDA_ALARMS_SEVERITY_INDETERMINATE = 1 , REFDA_ALARMS_SEVERITY_WARNING = 2 , REFDA_ALARMS_SEVERITY_MINOR = 3 ,
  REFDA_ALARMS_SEVERITY_MAJOR = 4 , REFDA_ALARMS_SEVERITY_CRITICAL = 5
}
 Enumeration of alarm severity levels. More...
 
enum  refda_alarms_mgr_state_t { REFDA_ALARMS_MGR_STATE_NONE = 0 , REFDA_ALARMS_MGR_STATE_ACK = 1 , REFDA_ALARMS_MGR_STATE_CLOSED = 2 , REFDA_ALARMS_MGR_STATE_SHELVED = 3 }
 Enumeration of alarm entry manager state. More...
 

Functions

void refda_alarms_history_item_init (refda_alarms_history_item_t *obj)
 
void refda_alarms_history_item_deinit (refda_alarms_history_item_t *obj)
 
void refda_alarms_entry_init (refda_alarms_entry_t *obj)
 
void refda_alarms_entry_deinit (refda_alarms_entry_t *obj)
 
int refda_alarms_entry_key_cmp (const refda_alarms_entry_key_t *left, const refda_alarms_entry_key_t *right)
 
void refda_alarms_init (refda_alarms_t *obj)
 
void refda_alarms_deinit (refda_alarms_t *obj)
 
void refda_alarms_set_refs (refda_agent_t *agent, const cace_ari_t *resource, const cace_ari_t *category, refda_alarms_severity_t severity)
 Record a new alarm state in the Agent based on object references.
 
int refda_alarms_get_table (refda_runctx_t *runctx, cace_ari_t *out)
 Get a table representing the alarm list.
 
size_t refda_alarms_purge (refda_runctx_t *runctx, const cace_ari_t *filter)
 Purge the list of alarms based on filtered entries.
 
size_t refda_alarms_compress (refda_runctx_t *runctx, const cace_ari_t *filter)
 Compress the history on on filtered entries.
 
size_t refda_alarms_mgr_state (refda_runctx_t *runctx, const cace_ari_t *filter, refda_alarms_mgr_state_t state)
 Set the manager state on on filtered entries.
 

Macro Definition Documentation

◆ M_OPL_refda_alarms_entry_key_t

#define M_OPL_refda_alarms_entry_key_t ( )    M_OPEXTEND(M_POD_OPLIST, CMP(API_6(refda_alarms_entry_cmp)))

M*LIB oplist for refda_alarms_entry_key_t.

◆ M_OPL_refda_alarms_entry_t

#define M_OPL_refda_alarms_entry_t ( )    (INIT(API_2(refda_alarms_entry_init)), CLEAR(API_2(refda_alarms_entry_deinit)))

M*LIB oplist for refda_alarms_entry_t.

◆ M_OPL_refda_alarms_history_item_t

#define M_OPL_refda_alarms_history_item_t ( )     (INIT(API_2(refda_alarms_history_item_init)), CLEAR(API_2(refda_alarms_history_item_deinit)))

M*LIB oplist for refda_alarms_history_item_t.

Typedef Documentation

◆ refda_agent_t

typedef struct refda_agent_s refda_agent_t

Enumeration Type Documentation

◆ refda_alarms_mgr_state_t

Enumeration of alarm entry manager state.

Descriptions are copied from the ADM.

Enumerator
REFDA_ALARMS_MGR_STATE_NONE 

The alarm is not being taken care of.

REFDA_ALARMS_MGR_STATE_ACK 

The alarm is being taken care of.

REFDA_ALARMS_MGR_STATE_CLOSED 

Corrective action taken successfully.

REFDA_ALARMS_MGR_STATE_SHELVED 

The alarm is shelved and moved out of the table.

◆ refda_alarms_severity_t

Enumeration of alarm severity levels.

Descriptions are copied from the ADM.

Enumerator
REFDA_ALARMS_SEVERITY_CLEARED 

There is currently no specific alarm condition on a resource.

REFDA_ALARMS_SEVERITY_INDETERMINATE 

This indicates that the severity level cannot be determined.

REFDA_ALARMS_SEVERITY_WARNING 

This indicates the detection of a potential or impending service affecting fault, before any significant effects have been felt.

REFDA_ALARMS_SEVERITY_MINOR 

This indicates the existence of a non-service affecting fault condition and that corrective action should be taken in order to prevent a more serious (for example, service affecting) fault.

REFDA_ALARMS_SEVERITY_MAJOR 

This indicates that a service affecting condition has developed and an urgent corrective action is required.

REFDA_ALARMS_SEVERITY_CRITICAL 

This indicates that a service affecting condition has occurred and an immediate corrective action is required.

Function Documentation

◆ refda_alarms_compress()

size_t refda_alarms_compress ( refda_runctx_t runctx,
const cace_ari_t filter 
)

Compress the history on on filtered entries.

Parameters
[in]runctxThe context to evaluate expressions and the agent state to modify.
[in]filterThe expression to LABEL-substitute and evaluate for each alarm entry.

References refda_runctx_t::agent, refda_alarms_t::alarm_list, alarm_list_filter_sub_label(), refda_alarms_t::alarm_mutex, refda_agent_t::alarms, cace_amm_ari_is_truthy(), cace_ari_deinit(), CACE_ARI_INIT_UNDEFINED, cace_ari_translate(), CACE_LOG_CRIT, CACE_LOG_ERR, CHKRET, refda_alarms_entry_t::history, cace_ari_translator_t::map_ari, and refda_eval_target().

Referenced by refda_adm_ietf_alarms_ctrl_compress_alarms(), and test_refda_alarms_compress_all().

◆ refda_alarms_deinit()

◆ refda_alarms_entry_deinit()

◆ refda_alarms_entry_init()

◆ refda_alarms_entry_key_cmp()

int refda_alarms_entry_key_cmp ( const refda_alarms_entry_key_t left,
const refda_alarms_entry_key_t right 
)

◆ refda_alarms_get_table()

◆ refda_alarms_history_item_deinit()

void refda_alarms_history_item_deinit ( refda_alarms_history_item_t obj)

◆ refda_alarms_history_item_init()

◆ refda_alarms_init()

◆ refda_alarms_mgr_state()

◆ refda_alarms_purge()

size_t refda_alarms_purge ( refda_runctx_t runctx,
const cace_ari_t filter 
)

◆ refda_alarms_set_refs()

void refda_alarms_set_refs ( refda_agent_t agent,
const cace_ari_t resource,
const cace_ari_t category,
refda_alarms_severity_t  severity 
)