X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Frmr%2Fcommon%2Finclude%2Frmr.h;h=eb24e5584366edefd709b19b845ca94193baaebe;hb=29d871650240d6b4fba0ca46d7f13a90c004003c;hp=e6c1660f1d42e705d067a39688620dd8ee000ce2;hpb=68c1ab2191d9959fde0bd275a560f7c9cf6df485;p=ric-plt%2Flib%2Frmr.git diff --git a/src/rmr/common/include/rmr.h b/src/rmr/common/include/rmr.h index e6c1660..eb24e55 100644 --- a/src/rmr/common/include/rmr.h +++ b/src/rmr/common/include/rmr.h @@ -36,14 +36,17 @@ extern "C" { #define RMR_MAX_XID 32 // space in header reserved for user xaction id -#define RMR_MAX_SID 32 // spece in header reserved for sender id #define RMR_MAX_MEID 32 // spece in header reserved for managed element id #define RMR_MAX_SRC 64 // max length of hostname (which could be IPv6 addr with [...]:port so more than the 39 bytes of a plain addr +#define RMR_MAX_SID 32 // misc sender info/data (reserved) #define RMR_MAX_RCV_BYTES 4096 // max bytes we support in a receive message // various flags for function calls #define RMRFL_NONE 0x00 // no flags -#define RMRFL_AUTO_ALLOC 0x01 // send auto allocates a zerocopy buffer +#define RMRFL_NOTHREAD 0x01 // do not start an additional route collector thread +#define RMRFL_MTCALL 0x02 // set up multi-threaded call support (rmr_init) +#define RMRFL_AUTO_ALLOC 0x03 // send auto allocates a zerocopy buffer +#define RMRFL_NAME_ONLY 0x04 // only the hostname:ip is provided as source information for rts() calls #define RMR_DEF_SIZE 0 // pass as size to have msg allocation use the default msg size @@ -66,6 +69,7 @@ extern "C" { #define RMR_ERR_UNSET 13 // the message hasn't been populated with a transport buffer #define RMR_ERR_TRUNC 14 // received message likely truncated #define RMR_ERR_INITFAILED 15 // initialisation of something (probably message) failed +#define RMR_ERR_NOTSUPP 16 // the request is not supported, or RMr was not initialised for the request #define RMR_WH_CONNECTED(a) (a>=0) // for now whid is integer; it could be pointer at some future date @@ -117,6 +121,9 @@ extern rmr_whid_t rmr_wh_open( void* vctx, char const* target ); extern rmr_mbuf_t* rmr_wh_send_msg( void* vctx, rmr_whid_t whid, rmr_mbuf_t* msg ); extern void rmr_wh_close( void* vctx, int whid ); +// ----- mt call support -------------------------------------------------------------------------------- +extern rmr_mbuf_t* rmr_mt_call( void* vctx, rmr_mbuf_t* mbuf, int call_id, int max_wait ); +extern rmr_mbuf_t* rmr_mt_rcv( void* vctx, rmr_mbuf_t* mbuf, int max_wait ); // ----- msg buffer operations (no context needed) ------------------------------------------------------ extern int rmr_bytes2meid( rmr_mbuf_t* mbuf, unsigned char const* src, int len ); @@ -125,6 +132,7 @@ extern int rmr_bytes2xact( rmr_mbuf_t* mbuf, unsigned char const* src, int len ) extern void rmr_free_msg( rmr_mbuf_t* mbuf ); extern unsigned char* rmr_get_meid( rmr_mbuf_t* mbuf, unsigned char* dest ); extern unsigned char* rmr_get_src( rmr_mbuf_t* mbuf, unsigned char* dest ); +extern unsigned char* rmr_get_srcip( rmr_mbuf_t* msg, unsigned char* dest ); extern rmr_mbuf_t* rmr_realloc_msg( rmr_mbuf_t* mbuf, int new_tr_size ); extern int rmr_str2meid( rmr_mbuf_t* mbuf, unsigned char const* str ); extern void rmr_str2payload( rmr_mbuf_t* mbuf, unsigned char const* str );