X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Frmr%2Fnng%2Finclude%2Frmr_nng_private.h;h=3c6996ecff59d78bb8290763cf0909e320dffca0;hb=cf4413c47ce274d7fc08c3bcfc8c4de3d465ad4d;hp=9753931ff3bb6a0335e5d05dbd24897ab3a51376;hpb=ab4019f2cdf80f10323e70199d38817d19b7482b;p=ric-plt%2Flib%2Frmr.git diff --git a/src/rmr/nng/include/rmr_nng_private.h b/src/rmr/nng/include/rmr_nng_private.h index 9753931..3c6996e 100644 --- a/src/rmr/nng/include/rmr_nng_private.h +++ b/src/rmr/nng/include/rmr_nng_private.h @@ -44,6 +44,7 @@ struct endpoint { nng_dialer dialer; // the connection specific information (retry timout etc) int open; // set to true if we've connected as socket cannot be checked directly) pthread_mutex_t gate; // we must serialise when we open/link to the endpoint + int notify; // when set we can write connect failure msgs to stderr long long scounts[EPSC_SIZE]; // send counts (indexed by EPSCOUNT_* constants }; @@ -77,6 +78,7 @@ struct uta_ctx { int d1_len; // extra header data 1 length int d2_len; // extra header data 2 length (future) nng_socket nn_sock; // our general listen socket + int rmr_ready; // rmr table has been loaded/recived route_table_t* rtable; // the active route table route_table_t* old_rtable; // the previously used rt, sits here to allow for draining route_table_t* new_rtable; // route table under construction @@ -92,6 +94,10 @@ struct uta_ctx { pthread_t rtc_th; // thread info for the rtc listener pthread_t mtc_th; // thread info for the multi-thread call receive process + + // added for route manager request/states + rmr_whid_t rtg_whid; // wormhole id to the route manager for acks/requests + char* table_id; // table ID of the route table load in progress }; @@ -107,7 +113,7 @@ static void free_ctx( uta_ctx_t* ctx ); // --- rt table things --------------------------- static int uta_link2( endpoint_t* ep ); -static int rt_link2_ep( endpoint_t* ep ); +static int rt_link2_ep( void* vctx, endpoint_t* ep ); static int uta_epsock_byname( route_table_t* rt, char* ep_name, nng_socket* nn_sock, endpoint_t** uepp ); static int uta_epsock_rr( rtable_ent_t* rte, int group, int* more, nng_socket* nn_sock, endpoint_t** uepp ); static rtable_ent_t* uta_get_rte( route_table_t *rt, int sid, int mtype, int try_alt ); @@ -124,6 +130,7 @@ static void* rcv_payload( uta_ctx_t* ctx, rmr_mbuf_t* old_msg ); static inline rmr_mbuf_t* realloc_msg( rmr_mbuf_t* old_msg, int tr_len ); static rmr_mbuf_t* send_msg( uta_ctx_t* ctx, rmr_mbuf_t* msg, nng_socket nn_sock, int retries ); static rmr_mbuf_t* send2ep( uta_ctx_t* ctx, endpoint_t* ep, rmr_mbuf_t* msg ); +static rmr_mbuf_t* realloc_payload( rmr_mbuf_t* mbuf, int new_len, int copy, int clone );