36 #define NET_TEST_MODULE_NAME ut_client_server 70 static char *
addr_get(
const char *nid,
int tmid)
115 char *addr_data_list,
126 strncat(addr_cmd_list, last_node ?
"" :
",", 2);
128 strncat(addr_data_list, last_node ?
"" :
",", 2);
136 LOGD(
"%-21s total/failed/bad = %lu/%lu/%lu",
prefix,
142 size_t nr1_x100 = nr1 * 100;
147 #define nrchk(nr1, nr2) \ 149 size_t total1 = (nr1)->ntmn_total; \ 150 size_t total2 = (nr2)->ntmn_total; \ 151 M0_UT_ASSERT(msg_nr_in_range(total1, total2)); \ 152 M0_UT_ASSERT(msg_nr_in_range(total2, total1)); \ 163 size_t concurrency_client,
164 size_t concurrency_server,
167 size_t bd_buf_nr_client,
168 size_t bd_buf_nr_server,
191 for (
i = 0;
i < clients_nr; ++
i) {
196 i == clients_nr - 1);
200 for (
i = 0;
i < servers_nr; ++
i) {
205 i == servers_nr - 1);
209 for (
i = 0;
i < clients_nr + servers_nr; ++
i) {
213 "net_test node%d",
i);
217 for (
i = 0;
i < clients_nr + servers_nr; ++
i)
224 .ntcc_cmd_send_timeout =
timeout,
225 .ntcc_cmd_recv_timeout =
timeout,
226 .ntcc_buf_send_timeout =
timeout,
227 .ntcc_buf_recv_timeout =
timeout,
228 .ntcc_buf_bulk_timeout =
timeout,
229 .ntcc_test_type =
type,
230 .ntcc_msg_nr = msg_nr,
232 .ntcc_msg_size = msg_size,
233 .ntcc_bd_buf_nr_server = bd_buf_nr_server,
234 .ntcc_bd_buf_nr_client = bd_buf_nr_client,
235 .ntcc_bd_buf_size = bd_buf_size,
236 .ntcc_bd_nr_max = bd_nr_max,
237 .ntcc_concurrency_server = concurrency_server,
238 .ntcc_concurrency_client = concurrency_client,
280 }
while (!
console->ntcc_clients.ntcrc_sd->ntcsd_finished);
299 &
console->ntcc_clients.ntcrc_sd->ntcsd_msg_nr_send);
301 &
console->ntcc_clients.ntcrc_sd->ntcsd_msg_nr_recv);
303 &
console->ntcc_clients.ntcrc_sd->ntcsd_bulk_nr_send);
305 &
console->ntcc_clients.ntcrc_sd->ntcsd_bulk_nr_recv);
307 &
console->ntcc_clients.ntcrc_sd->ntcsd_transfers);
309 &
console->ntcc_servers.ntcrc_sd->ntcsd_msg_nr_send);
311 &
console->ntcc_servers.ntcrc_sd->ntcsd_msg_nr_recv);
313 &
console->ntcc_servers.ntcrc_sd->ntcsd_bulk_nr_send);
315 &
console->ntcc_servers.ntcrc_sd->ntcsd_bulk_nr_recv);
317 &
console->ntcc_servers.ntcrc_sd->ntcsd_transfers);
326 sd_servers =
console->ntcc_servers.ntcrc_sd;
327 sd_clients =
console->ntcc_clients.ntcrc_sd;
348 for (
i = 0;
i < clients_nr + servers_nr; ++
i) {
379 8, 8, 8, 128, 0x1000, 0x1000,
403 8, 16, 0x4000, 0x10000);
431 #undef NET_TEST_MODULE_NAME
static void addr_free(char *addr)
void m0_net_test_node_stop(struct m0_net_test_node_ctx *ctx)
void m0_net_test_xprt_dynamic_reg_dereg_ut(void)
static char * addr_console4clients
int m0_thread_join(struct m0_thread *q)
static char clients_data[NTCS_NODES_MAX *NTCS_NODE_ADDR_MAX]
const struct m0_net_xprt m0_net_lnet_xprt
const m0_time_t M0_TIME_NEVER
static void msg_nr_print(const char *prefix, const struct m0_net_test_msg_nr *msg_nr)
#define M0_LOG(level,...)
static struct m0_uint128 prefix
M0_INTERNAL int m0_mem_xprt_init(void)
#define M0_THREAD_INIT(thread, TYPE, init, func, arg, namefmt,...)
int m0_net_test_slist_init(struct m0_net_test_slist *slist, const char *str, char delim)
struct m0_net_test_msg_nr ntcsd_bulk_nr_send
m0_time_t m0_time(uint64_t secs, long ns)
struct m0_net_test_msg_nr ntcsd_transfers
void m0_net_test_client_server_bulk_ut(void)
static struct m0_net_test_cmd_ctx console
void m0_net_test_console_fini(struct m0_net_test_console_ctx *ctx)
void m0_net_test_client_server_ping_ut(void)
static char * addr_get(const char *nid, int tmid)
static struct m0_net_test_node_cfg node_cfg[NTCS_NODES_MAX *2]
int m0_net_test_node_start(struct m0_net_test_node_ctx *ctx)
size_t m0_net_test_console_cmd(struct m0_net_test_console_ctx *ctx, enum m0_net_test_role role, enum m0_net_test_cmd_type cmd_type)
char * ntcc_addr_console4servers
void m0_net_test_slist_fini(struct m0_net_test_slist *slist)
static char servers[NTCS_NODES_MAX *NTCS_NODE_ADDR_MAX]
struct m0_net_test_msg_nr ntcsd_msg_nr_recv
void m0_thread_fini(struct m0_thread *q)
static struct m0_thread node_thread[NTCS_NODES_MAX *2]
M0_INTERNAL void m0_net_print_xprt(void)
M0_INTERNAL int m0_semaphore_init(struct m0_semaphore *semaphore, unsigned value)
void * m0_alloc(size_t size)
static struct fdmi_ctx ctx
struct m0_net_test_slist ntcc_data_clients
static char * addr_console4servers
struct m0_net_test_msg_nr ntcsd_msg_nr_send
static char * addr_console
M0_INTERNAL void m0_mem_xprt_fini(void)
M0_INTERNAL int m0_net_lnet_init(void)
void m0_net_test_client_server_stub_ut(void)
void m0_net_test_node_fini(struct m0_net_test_node_ctx *ctx)
int m0_net_test_node_init(struct m0_net_test_node_ctx *ctx, struct m0_net_test_node_cfg *cfg)
#define M0_ALLOC_PTR(ptr)
M0_INTERNAL void m0_semaphore_fini(struct m0_semaphore *semaphore)
M0_INTERNAL bool m0_net_check_xprt(const struct m0_net_xprt *xprt)
int m0_net_test_console_init(struct m0_net_test_console_ctx *ctx, struct m0_net_test_console_cfg *cfg)
struct m0_net_test_msg_nr ntcsd_bulk_nr_recv
struct m0_net_test_slist ntcc_servers
static char clients[NTCS_NODES_MAX *NTCS_NODE_ADDR_MAX]
static char servers_data[NTCS_NODES_MAX *NTCS_NODE_ADDR_MAX]
static void node_cfg_fill(struct m0_net_test_node_cfg *ncfg, char *addr_cmd, char *addr_cmd_list, char *addr_data, char *addr_data_list, char *addr_console, bool last_node)
#define M0_MKTIME(secs, ns)
M0_INTERNAL void m0_semaphore_down(struct m0_semaphore *semaphore)
struct m0_net_test_slist ntcc_clients
struct m0_net_test_slist ntcc_data_servers
M0_INTERNAL void m0_semaphore_up(struct m0_semaphore *semaphore)
static void net_test_node(struct m0_net_test_node_cfg *node_cfg)
static void net_test_client_server(const char *nid, enum m0_net_test_type type, size_t clients_nr, size_t servers_nr, size_t concurrency_client, size_t concurrency_server, size_t msg_nr, m0_bcount_t msg_size, size_t bd_buf_nr_client, size_t bd_buf_nr_server, m0_bcount_t bd_buf_size, size_t bd_nr_max)
M0_INTERNAL void m0_net_lnet_fini(void)
static struct m0_semaphore node_init_sem
static bool msg_nr_in_range(size_t nr1, size_t nr2)
const struct m0_net_xprt m0_net_bulk_mem_xprt
int m0_nanosleep(const m0_time_t req, m0_time_t *rem)