23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_UT 45 X(nr_conns, 2, 10000) \ 46 X(nr_msgs, 1000, 5000) \ 50 #define X(name, defval, max) unsigned int a_ ## name; 60 #define X(name, defval, max) args->a_ ## name = defval; 67 #define X(name, defval, max) \ 68 && 0 < args->a_ ## name && args->a_ ## name <= max 74 fprintf(stderr,
"Value is out of bounds\n");
95 fprintf(stderr,
"Expecting a comma-separated list of parameter" 96 " specifications:\n");
97 #define X(name, defval, max) \ 98 fprintf(stderr, " %s=NUM\t(default = %u, ulimit = %u)\n", \ 111 const struct match match_tbl[] = {
112 #define X(name, defval, max) { #name "=%u", &dest->a_ ## name }, 124 fprintf(stderr,
"Unable to parse `%s'\n",
token);
146 #ifdef UB_USE_LNET_XPORT 147 # define CLIENT_ENDPOINT_FMT "0@lo:12345:34:%d" 148 # define SERVER_ENDPOINT_ADDR "0@lo:12345:32:1" 149 # define SERVER_ENDPOINT M0_NET_XPRT_PREFIX_DEFAULT":"SERVER_ENDPOINT_ADDR 156 # define CLIENT_ENDPOINT_FMT "127.0.0.1:%d" 157 # define SERVER_ENDPOINT_ADDR "127.0.0.1:1" 158 # define SERVER_ENDPOINT "bulk-mem:" SERVER_ENDPOINT_ADDR 172 #define NAME(ext) "rpc-ub" ext 174 NAME(
""),
"-Q",
"200" ,
"-w",
"10",
175 "-T",
"AD",
"-D",
NAME(
".db"),
"-S",
NAME(
".stob"),
176 "-A",
"linuxstob:"NAME(
".addb-stob"),
187 .rsx_log_file_name =
NAME(
".log")
211 .rcx_net_dom = &
client->rc_net_dom,
251 for (
i = 0;
i <
g_args.a_nr_conns; ++
i) {
306 req->uq_seqn = msg_id;
347 for (k = 0; k <
g_args.a_nr_conns; ++k)
351 for (k = 0; k <
g_args.a_nr_conns; ++k) {
372 #undef M0_TRACE_SUBSYSTEM
struct m0_rpc_client_ctx rc_ctx
M0_INTERNAL int m0_rpc_post(struct m0_rpc_item *item)
#define M0_ALLOC_ARR(arr, nr)
static void ub_item_replied(struct m0_rpc_item *item)
void m0_net_domain_fini(struct m0_net_domain *dom)
static struct args g_args
enum m0_rpc_item_priority ri_prio
static void _client_stop(struct ub_rpc_client *client)
#define M0_UB_ASSERT(cond)
M0_INTERNAL void m0_rpc_ub_fops_init(void)
const struct m0_net_xprt m0_net_lnet_xprt
const m0_time_t M0_TIME_NEVER
static struct io_request req
M0_INTERNAL bool m0_buf_eq(const struct m0_buf *x, const struct m0_buf *y)
static const struct m0_rpc_item_ops ub_item_ops
#define M0_LOG(level,...)
int m0_rpc_server_start(struct m0_rpc_server_ctx *sctx)
static void fop_send(struct m0_rpc_session *session, size_t msg_id)
M0_INTERNAL void m0_buf_init(struct m0_buf *buf, void *data, uint32_t nob)
void * m0_fop_data(const struct m0_fop *fop)
struct m0_ub_set m0_rpc_ub
static void args_help(void)
static struct m0_rpc_item * item
struct m0_cob_domain rc_cob_dom
static struct m0_rpc_session * _session(unsigned int i)
struct m0_net_domain rc_net_dom
static int _start(const char *opts)
#define M0_FID_TINIT(type, container, key)
static struct m0_rpc_server_ctx g_sctx
int m0_rpc_client_stop(struct m0_rpc_client_ctx *cctx)
int m0_rpc_client_start(struct m0_rpc_client_ctx *cctx)
struct m0_net_xprt ** rsx_xprts
struct m0_rpc_item * ri_reply
#define SERVER_ENDPOINT_ADDR
M0_INTERNAL int m0_rpc_session_timedwait(struct m0_rpc_session *session, uint64_t states, const m0_time_t abs_timeout)
#define CLIENT_ENDPOINT_FMT
static void token(struct ff2c_context *ctx, struct ff2c_term *term, struct ff2c_token *tok)
static void args_init(struct args *args)
void(* rio_replied)(struct m0_rpc_item *item)
M0_BASSERT(MIN_RECV_QUEUE_LEN==200)
int32_t m0_rpc_item_error(const struct m0_rpc_item *item)
int m0_net_domain_init(struct m0_net_domain *dom, const struct m0_net_xprt *xprt)
struct m0_rpc_session rcx_session
static int args_parse(const char *src, struct args *dest)
static int args_check_limits(const struct args *args)
const struct m0_rpc_item_ops * ri_ops
#define M0_UT_CONF_PROCESS
m0_time_t m0_time_from_now(uint64_t secs, long ns)
struct m0_rpc_session * ri_session
struct m0_fop * m0_fop_alloc_at(struct m0_rpc_session *sess, struct m0_fop_type *fopt)
struct m0_fop_type m0_rpc_ub_req_fopt
static struct ub_rpc_client * g_clients
void m0_fop_put_lock(struct m0_fop *fop)
static struct m0_fop * fop
static bool token_matches(const char *token, const struct match *tbl)
struct m0_fop * m0_rpc_item_to_fop(const struct m0_rpc_item *item)
void m0_rpc_server_stop(struct m0_rpc_server_ctx *sctx)
static void _client_start(struct ub_rpc_client *client, uint32_t cob_dom_id, const char *ep)
M0_INTERNAL void m0_rpc_ub_fops_fini(void)
static struct m0_net_xprt * g_xprt
static struct m0_addb2_source * s
static void run(int iter M0_UNUSED)
struct m0_rpc_item f_item
struct m0_pdclust_src_addr src
static const char * process_fid
const struct m0_net_xprt m0_net_bulk_mem_xprt