X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Frmr%2Fcommon%2Finclude%2Frmr_agnostic.h;fp=src%2Frmr%2Fcommon%2Finclude%2Frmr_agnostic.h;h=c956e5eef4e3c0c0508577c374464b847ac10fa3;hb=26864559bd7ae1b0fd2054ae07c3080fa9121e08;hp=31e2c4da7b279c495541ff18e394000ae70a127e;hpb=c1c70b9063270159319be48bb091051da906b6d0;p=ric-plt%2Flib%2Frmr.git diff --git a/src/rmr/common/include/rmr_agnostic.h b/src/rmr/common/include/rmr_agnostic.h index 31e2c4d..c956e5e 100644 --- a/src/rmr/common/include/rmr_agnostic.h +++ b/src/rmr/common/include/rmr_agnostic.h @@ -71,6 +71,10 @@ typedef struct uta_ctx uta_ctx_t; #define ENV_CTL_PORT "RMR_CTL_PORT" // route collector will listen here for control messages (4561 default) #define ENV_RTREQ_FREA "RMR_RTREQ_FREQ" // frequency we will request route table updates when we want one (1-300 inclusive) + +#define ENV_AM_NAME "ALARM_MGR_SERVICE_NAME" // alarm manager env vars that we need +#define ENV_AM_PORT "ALARM_MGR_SERVICE_PORT" + #define NO_FLAGS 0 // no flags to pass to a function #define FL_NOTHREAD 0x01 // do not start an additional thread (must be 'user land' to support rtg @@ -148,6 +152,17 @@ typedef struct uta_ctx uta_ctx_t; #define HFL_SUBID 0x02 // subscription ID is populated #define HFL_CALL_MSG 0x04 // msg sent via blocking call +/* + Alarm action constants describe the type (e.g. dropping messages) and whether or not + this is a "raise" or "clear" action. Raise/clear is determined by the least significant + bit; 1 == raise. +*/ +#define ALARM_RAISE 0x01 +#define ALARM_CLEAR 0x00 +#define ALARM_KIND(a) (a&ALARM_MASK) +#define ALARM_DROPS 0x02 +#define ALARM_MASK 0xfffe + /* Message header; interpreted by the other side, but never seen by the user application. @@ -313,6 +328,10 @@ static inline int uta_ring_insert( void* vr, void* new_data ); static int ie_test( void* r, int i_factor, long inserts ); +// --- internal alarm generation --------------------- +static void uta_alarm( void* vctx, int kind, int prob_id, char* info ); +static void uta_alarm_send( void* vctx, rmr_mbuf_t* msg ); + // ----- route table generic static things --------- static inline uint64_t build_rt_key( int32_t sub_id, int32_t mtype ); static void collect_things( void* st, void* entry, char const* name, void* thing, void* vthing_list );