X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcommon%2Finclude%2Frmr_agnostic.h;h=418ebbc6d7662a63a39150cafcbaad2e0bb73e79;hb=a012cf63dfdad3656c995cb06c316fd208c63b98;hp=a23cff76bec6c2759df641f24bd1c61be8213efc;hpb=8790bf0c4f4f08fd05853afa67e211112b344a42;p=ric-plt%2Flib%2Frmr.git diff --git a/src/common/include/rmr_agnostic.h b/src/common/include/rmr_agnostic.h index a23cff7..418ebbc 100644 --- a/src/common/include/rmr_agnostic.h +++ b/src/common/include/rmr_agnostic.h @@ -168,6 +168,8 @@ typedef struct { round robin messags across the list. */ typedef struct { + uint64_t key; // key used to reinsert this entry into a new symtab + int refs; // number of symtabs which reference the entry int mtype; // the message type for this list int nrrgroups; // number of rr groups to send to rrgroup_t** rrgroups; // one or more set of endpoints to round robin messages to @@ -178,6 +180,7 @@ typedef struct { */ typedef struct { void* hash; // hash table. + int updates; // counter of update records received } route_table_t; /* @@ -230,14 +233,16 @@ static int ie_test( void* r, int i_factor, long inserts ); // ----- 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 ); static void del_rte( void* st, void* entry, char const* name, void* thing, void* data ); static char* uta_fib( char* fname ); static route_table_t* uta_rt_init( ); static route_table_t* uta_rt_clone( route_table_t* srt ); +static route_table_t* uta_rt_clone_all( route_table_t* srt ); static void uta_rt_drop( route_table_t* rt ); static endpoint_t* uta_add_ep( route_table_t* rt, rtable_ent_t* rte, char* ep_name, int group ); -static rtable_ent_t* uta_add_rte( route_table_t* rt, int mtype, int nrrgroups ); +static rtable_ent_t* uta_add_rte( route_table_t* rt, uint64_t key, int nrrgroups ); static endpoint_t* uta_get_ep( route_table_t* rt, char const* ep_name ); static void read_static_rt( uta_ctx_t* ctx, int vlevel ); static void parse_rt_rec( uta_ctx_t* ctx, char* buf, int vlevel );