Motr  M0
net.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2012-2020 Seagate Technology LLC and/or its Affiliates
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * For any questions about this software or licensing,
18  * please email opensource@seagate.com or cortx-questions@seagate.com.
19  *
20  */
21 
22 
23 #pragma once
24 
25 #ifndef __MOTR_NET_NET_H__
26 #define __MOTR_NET_NET_H__
27 
28 #include <stdarg.h>
29 
30 #include "lib/rwlock.h"
31 #include "lib/list.h"
32 #include "lib/tlist.h"
33 #include "lib/queue.h"
34 #include "lib/refs.h"
35 #include "lib/chan.h"
36 #include "lib/cond.h"
37 #include "lib/mutex.h"
38 #include "lib/time.h"
39 #include "lib/thread.h"
40 #include "lib/vec.h"
41 #include "net/ip.h"
42 #include "net/net_otw_types.h"
43 #include "net/net_otw_types_xc.h"
44 #include "sm/sm.h"
45 
77 /* import */
78 struct m0_bitmap;
79 
80 /* export */
81 struct m0_net_xprt;
82 struct m0_net_xprt_ops;
83 struct m0_net_domain;
84 struct m0_net_transfer_mc;
85 struct m0_net_tm_event;
86 struct m0_net_tm_callbacks;
87 struct m0_net_end_point;
88 struct m0_net_buffer;
89 struct m0_net_buf_desc;
90 struct m0_net_buffer_event;
92 struct m0_net_qstats;
93 
94 #ifdef ENABLE_LIBFAB
95 #define M0_NET_XPRT_PREFIX_DEFAULT "libfab"
96 #define USE_LIBFAB 1
97 #else
98 #define M0_NET_XPRT_PREFIX_DEFAULT "lnet"
99 #define USE_LIBFAB 0
100 #endif
101 
105 M0_INTERNAL int m0_net_init(void);
106 
111 M0_INTERNAL void m0_net_fini(void);
112 
113 enum {
119 };
120 
124 struct m0_net_xprt {
125  const char *nx_name;
126  const struct m0_net_xprt_ops *nx_ops;
127 };
128 
139  int (*xo_dom_init)(const struct m0_net_xprt *xprt,
140  struct m0_net_domain *dom);
145  void (*xo_dom_fini)(struct m0_net_domain *dom);
146 
161 
171  const struct m0_bitmap *processors);
172 
189  int (*xo_tm_start)(struct m0_net_transfer_mc *tm, const char *addr);
190 
206  int (*xo_tm_stop)(struct m0_net_transfer_mc *tm, bool cancel);
207 
219  void (*xo_tm_fini)(struct m0_net_transfer_mc *tm);
220 
231  struct m0_net_transfer_mc *tm,
232  const char *addr);
233 
240 
245  void (*xo_buf_deregister)(struct m0_net_buffer *nb);
246 
274  int (*xo_buf_add)(struct m0_net_buffer *nb);
275 
290  void (*xo_buf_del)(struct m0_net_buffer *nb);
291 
302 
315 
322  bool (*xo_bev_pending)(struct m0_net_transfer_mc *tm);
323 
331  void (*xo_bev_notify)(struct m0_net_transfer_mc *tm,
332  struct m0_chan *chan);
333 
340 
347  *dom);
348 
354  int32_t (*xo_get_max_buffer_segments)(const struct m0_net_domain *dom);
355 
360  *dom);
361 
363 
364  uint32_t (*xo_rpc_max_segs_nr) (struct m0_net_domain *ndom);
365 
367  m0_bcount_t rpc_size);
368 
369  uint32_t (*xo_rpc_max_recv_msgs)(struct m0_net_domain *ndom,
370  m0_bcount_t rpc_size);
371 };
372 
382 
385 
390  struct m0_list nd_tms;
391 
394 
396  const struct m0_net_xprt *nd_xprt;
397 
400 
406 
412 
418 
424 
425  uint64_t nd_magix;
426 };
427 
433  const struct m0_net_xprt *xprt);
434 
440 void m0_net_domain_fini(struct m0_net_domain *dom);
441 
447  *dom);
448 
454  *dom);
455 
464  *dom);
465 
469 M0_INTERNAL int32_t m0_net_domain_get_max_buffer_segments(struct m0_net_domain
470  *dom);
471 
489  uint64_t nep_magix;
491  struct m0_ref nep_ref;
503  const char *nep_addr;
506 };
507 
511 M0_TL_DESCR_DECLARE(m0_nep, M0_EXTERN);
512 M0_TL_DECLARE(m0_nep, M0_INTERNAL, struct m0_net_end_point);
513 
539 M0_INTERNAL int m0_net_end_point_create(struct m0_net_end_point **epp,
540  struct m0_net_transfer_mc *tm,
541  const char *addr);
542 
551 M0_INTERNAL void m0_net_end_point_get(struct m0_net_end_point *ep);
552 
563 
594 
597 
604 
611 
618 
625 
627 };
628 
638 };
639 
646 };
647 
692 
697 
702 
715  int32_t nte_status;
716 
724 
730 
739  void *nte_payload;
740 };
741 
752  void (*ntc_event_cb)(const struct m0_net_tm_event *ev);
753 };
754 
764  uint64_t nqs_num_adds;
765 
769  uint64_t nqs_num_dels;
770 
775 
785 
792 
797  uint64_t nqs_total_bytes;
798 
804  uint64_t nqs_max_bytes;
805 };
806 
817 
820 
822 
840 #define ntm_mutex ntm_group.s_lock
841 
851 
854 
857 
869 
875 
878 
881 
884 
887 
892 
897 
903 
909 
915 
921  uint32_t ntm_pool_colour;
922 
928 
934 };
935 
956 M0_INTERNAL int m0_net_tm_init(struct m0_net_transfer_mc *tm,
957  struct m0_net_domain *dom);
958 
974 M0_INTERNAL void m0_net_tm_fini(struct m0_net_transfer_mc *tm);
975 
991 M0_INTERNAL int m0_net_tm_confine(struct m0_net_transfer_mc *tm,
992  const struct m0_bitmap *processors);
993 
1017 M0_INTERNAL int m0_net_tm_start(struct m0_net_transfer_mc *tm,
1018  const char *addr);
1019 
1044 M0_INTERNAL int m0_net_tm_stop(struct m0_net_transfer_mc *tm, bool abort);
1045 
1065 M0_INTERNAL int m0_net_tm_stats_get(struct m0_net_transfer_mc *tm,
1066  enum m0_net_queue_type qtype,
1067  struct m0_net_qstats *qs, bool reset);
1068 
1091 M0_INTERNAL void m0_net_tm_event_post(const struct m0_net_tm_event *ev);
1092 
1112 M0_INTERNAL void m0_net_tm_colour_set(struct m0_net_transfer_mc *tm,
1113  uint32_t colour);
1114 
1119 M0_INTERNAL uint32_t m0_net_tm_colour_get(struct m0_net_transfer_mc *tm);
1120 
1154 M0_INTERNAL int m0_net_tm_pool_attach(struct m0_net_transfer_mc *tm,
1155  struct m0_net_buffer_pool *bufpool,
1156  const struct m0_net_buffer_callbacks
1157  *callbacks, m0_bcount_t min_recv_size,
1158  uint32_t max_recv_msgs,
1159  uint32_t min_recv_queue_len);
1160 
1171 M0_INTERNAL void m0_net_tm_pool_length_set(struct m0_net_transfer_mc *tm,
1172  uint32_t len);
1173 
1188 M0_INTERNAL void
1190 
1195 
1198 
1218  int32_t nbe_status;
1219 
1227 
1239 
1252 };
1253 
1259 typedef void (*m0_net_buffer_cb_proc_t)(const struct m0_net_buffer_event *ev);
1260 
1273 };
1274 
1292 };
1293 
1323 
1335 
1345 
1352 
1358 
1364 
1370 
1388 
1395 
1413 
1425 
1438 
1441 
1444 
1446  uint64_t nb_magic;
1447 
1454 
1462 
1478 
1489  uint64_t nb_flags;
1490 
1497 
1503 
1509 
1512 };
1513 
1532 M0_INTERNAL int m0_net_buffer_register(struct m0_net_buffer *buf,
1533  struct m0_net_domain *dom);
1534 
1543 M0_INTERNAL void m0_net_buffer_deregister(struct m0_net_buffer *buf,
1544  struct m0_net_domain *dom);
1545 
1608 M0_INTERNAL int m0_net_buffer_add(struct m0_net_buffer *buf,
1609  struct m0_net_transfer_mc *tm);
1610 
1633 M0_INTERNAL bool m0_net_buffer_del(struct m0_net_buffer *buf,
1634  struct m0_net_transfer_mc *tm);
1635 
1681 M0_INTERNAL void m0_net_buffer_event_post(const struct m0_net_buffer_event *ev);
1682 
1697 M0_INTERNAL void m0_net_buffer_event_deliver_all(struct m0_net_transfer_mc *tm);
1698 
1717 M0_INTERNAL int
1719 
1728 M0_INTERNAL bool m0_net_buffer_event_pending(struct m0_net_transfer_mc *tm);
1729 
1744 M0_INTERNAL void m0_net_buffer_event_notify(struct m0_net_transfer_mc *tm,
1745  struct m0_chan *chan);
1746 
1748 M0_INTERNAL int m0_net_desc_copy(const struct m0_net_buf_desc *from_desc,
1749  struct m0_net_buf_desc *to_desc);
1750 
1756 M0_INTERNAL void m0_net_desc_free(struct m0_net_buf_desc *desc);
1757 
1758 /* Descriptor for the tlist of buffers. */
1759 M0_TL_DESCR_DECLARE(m0_net_pool, M0_EXTERN);
1760 M0_TL_DESCR_DECLARE(m0_net_tm, M0_EXTERN);
1761 M0_TL_DECLARE(m0_net_pool, M0_INTERNAL, struct m0_net_buffer);
1762 M0_TL_DECLARE(m0_net_tm, M0_INTERNAL, struct m0_net_buffer);
1763 
1764 #ifndef __KERNEL__
1765 
1776 M0_INTERNAL bool m0_net_endpoint_is_valid(const char *endpoint);
1777 
1778 #endif /* __KERNEL__ */
1779 
1780 M0_INTERNAL void m0_net_xprt_default_set(const struct m0_net_xprt *xprt);
1782 M0_INTERNAL void m0_net_xprt_register(const struct m0_net_xprt *xprt);
1784 M0_INTERNAL void m0_net_xprt_deregister(const struct m0_net_xprt *xprt);
1786 struct m0_net_xprt *m0_net_xprt_default_get(void);
1788 struct m0_net_xprt **m0_net_all_xprt_get(void);
1790 int m0_net_xprt_nr(void);
1794 M0_INTERNAL void m0_net_print_xprt(void);
1798 M0_INTERNAL bool m0_net_check_xprt(const struct m0_net_xprt *xprt);
1799 
1800 M0_INTERNAL m0_bcount_t default_xo_rpc_max_seg_size(struct m0_net_domain *ndom);
1801 M0_INTERNAL uint32_t default_xo_rpc_max_segs_nr(struct m0_net_domain *ndom);
1802 M0_INTERNAL m0_bcount_t default_xo_rpc_max_msg_size(struct m0_net_domain *ndom,
1803  m0_bcount_t rpc_size);
1804 M0_INTERNAL uint32_t default_xo_rpc_max_recv_msgs(struct m0_net_domain *ndom,
1805  m0_bcount_t rpc_size);
1806 
1807 
1809 #endif /* __MOTR_NET_NET_H__ */
1810 
1811 /*
1812  * Local variables:
1813  * c-indentation-style: "K&R"
1814  * c-basic-offset: 8
1815  * tab-width: 8
1816  * fill-column: 79
1817  * scroll-step: 1
1818  * End:
1819  */
m0_bcount_t nd_get_max_buffer_size
Definition: net.h:417
M0_INTERNAL m0_bcount_t m0_net_domain_get_max_buffer_segment_size(struct m0_net_domain *dom)
const struct m0_net_xprt_ops * nx_ops
Definition: net.h:126
uint64_t nqs_num_f_events
Definition: net.h:784
m0_bcount_t ntm_recv_queue_min_recv_size
Definition: net.h:927
uint64_t nqs_num_adds
Definition: net.h:764
M0_INTERNAL bool m0_net_endpoint_is_valid(const char *endpoint)
Definition: net.c:99
struct m0_net_transfer_mc * nb_tm
Definition: net.h:1357
uint32_t ntm_recv_queue_min_length
Definition: net.h:908
void m0_net_domain_fini(struct m0_net_domain *dom)
Definition: domain.c:71
m0_time_t nqs_time_in_queue
Definition: net.h:791
M0_INTERNAL int m0_net_tm_start(struct m0_net_transfer_mc *tm, const char *addr)
Definition: tm.c:261
struct m0_net_buffer_pool * nb_pool
Definition: net.h:1508
uint64_t nqs_num_s_events
Definition: net.h:774
void(* xo_bev_deliver_all)(struct m0_net_transfer_mc *tm)
Definition: net.h:314
m0_bindex_t nb_offset
Definition: net.h:1344
void(* xo_dom_fini)(struct m0_net_domain *dom)
Definition: net.h:145
struct m0_bufvec nb_buffer
Definition: net.h:1322
M0_INTERNAL int m0_net_buffer_register(struct m0_net_buffer *buf, struct m0_net_domain *dom)
Definition: buf.c:65
int(* xo_buf_register)(struct m0_net_buffer *nb)
Definition: net.h:239
struct m0_list nd_registered_bufs
Definition: net.h:384
uint64_t nqs_num_dels
Definition: net.h:769
uint64_t m0_time_t
Definition: time.h:37
M0_INTERNAL int m0_net_tm_stats_get(struct m0_net_transfer_mc *tm, enum m0_net_queue_type qtype, struct m0_net_qstats *qs, bool reset)
Definition: tm.c:343
struct m0_sm_group ntm_group
Definition: net.h:821
struct m0_net_qstats ntm_qstats[M0_NET_QT_NR]
Definition: net.h:880
enum m0_net_tm_state ntm_state
Definition: net.h:819
static int max_recv_msgs
m0_bcount_t nb_length
Definition: net.h:1334
uint64_t nb_flags
Definition: net.h:1489
void(* xo_bev_notify)(struct m0_net_transfer_mc *tm, struct m0_chan *chan)
Definition: net.h:331
struct m0_mutex nd_mutex
Definition: net.h:381
struct m0_net_domain * ntm_dom
Definition: net.h:853
M0_INTERNAL void m0_net_xprt_default_set(const struct m0_net_xprt *xprt)
Definition: net.c:143
uint64_t m0_bindex_t
Definition: types.h:80
struct m0_tlink nb_extern_linkage
Definition: net.h:1443
uint64_t m0_bcount_t
Definition: types.h:77
M0_INTERNAL bool m0_net_buffer_del(struct m0_net_buffer *buf, struct m0_net_transfer_mc *tm)
Definition: buf.c:261
uint64_t nqs_total_bytes
Definition: net.h:797
m0_time_t nbe_time
Definition: net.h:1197
m0_bcount_t nb_min_receive_size
Definition: net.h:1496
const char * nep_addr
Definition: net.h:503
m0_bindex_t nbe_offset
Definition: net.h:1238
m0_bcount_t nbe_length
Definition: net.h:1226
struct m0_net_buffer * nbe_buffer
Definition: net.h:1194
void(* m0_net_buffer_cb_proc_t)(const struct m0_net_buffer_event *ev)
Definition: net.h:1259
m0_bcount_t(* xo_get_max_buffer_desc_size)(const struct m0_net_domain *dom)
Definition: net.h:359
M0_INTERNAL void m0_net_buffer_event_post(const struct m0_net_buffer_event *ev)
Definition: buf.c:314
M0_INTERNAL int m0_net_tm_pool_attach(struct m0_net_transfer_mc *tm, struct m0_net_buffer_pool *bufpool, const struct m0_net_buffer_callbacks *callbacks, m0_bcount_t min_recv_size, uint32_t max_recv_msgs, uint32_t min_recv_queue_len)
Definition: tm.c:459
M0_INTERNAL void m0_net_domain_buffer_pool_not_empty(struct m0_net_buffer_pool *pool)
Definition: tm_provision.c:484
struct m0_net_end_point * nbe_ep
Definition: net.h:1251
Definition: sock.c:887
uint32_t(* xo_rpc_max_recv_msgs)(struct m0_net_domain *ndom, m0_bcount_t rpc_size)
Definition: net.h:369
bool ntm_bev_auto_deliver
Definition: net.h:891
M0_INTERNAL uint32_t default_xo_rpc_max_segs_nr(struct m0_net_domain *ndom)
Definition: net.c:247
struct m0_tl ntm_end_points
Definition: net.h:856
void * nte_payload
Definition: net.h:739
Definition: sock.c:754
const struct m0_net_buffer_callbacks * ntm_recv_pool_callbacks
Definition: net.h:902
struct m0_chan ntm_chan
Definition: net.h:874
uint32_t nb_msgs_received
Definition: net.h:1511
static char * addr
Definition: node_k.c:37
M0_INTERNAL void m0_net_xprt_register(const struct m0_net_xprt *xprt)
Definition: net.c:182
int32_t nbe_status
Definition: net.h:1218
M0_TL_DESCR_DECLARE(m0_nep, M0_EXTERN)
enum m0_net_tm_state nte_next_state
Definition: net.h:723
void * ntm_xprt_private
Definition: net.h:886
M0_INTERNAL int m0_net_tm_init(struct m0_net_transfer_mc *tm, struct m0_net_domain *dom)
Definition: tm.c:160
Definition: refs.h:34
uint64_t nep_magix
Definition: net.h:489
enum m0_net_queue_type nb_qtype
Definition: net.h:1363
uint32_t ntm_recv_queue_max_recv_msgs
Definition: net.h:933
int(* xo_tm_start)(struct m0_net_transfer_mc *tm, const char *addr)
Definition: net.h:189
void * nd_xprt_private
Definition: net.h:393
uint64_t nb_magic
Definition: net.h:1446
uint32_t nb_max_receive_msgs
Definition: net.h:1502
struct m0_tlink nb_lru
Definition: net.h:1440
m0_time_t nb_timeout
Definition: net.h:1387
M0_INTERNAL void m0_net_tm_fini(struct m0_net_transfer_mc *tm)
Definition: tm.c:204
const struct m0_net_xprt * nd_xprt
Definition: net.h:396
void * nep_xprt_pvt
Definition: net.h:505
int(* xo_tm_init)(struct m0_net_transfer_mc *tm)
Definition: net.h:160
void(* ntc_event_cb)(const struct m0_net_tm_event *ev)
Definition: net.h:752
M0_INTERNAL void m0_net_tm_pool_length_set(struct m0_net_transfer_mc *tm, uint32_t len)
Definition: tm.c:490
M0_INTERNAL void m0_net_fini(void)
Definition: net.c:69
Definition: tlist.h:251
m0_net_tm_state
Definition: net.h:630
M0_INTERNAL int m0_net_init(void)
Definition: net.c:63
static struct m0_stob_domain * dom
Definition: storage.c:38
m0_time_t nb_add_time
Definition: net.h:1394
M0_INTERNAL void m0_net_print_xprt(void)
Definition: net.c:215
int m0_net_xprt_nr(void)
Definition: net.c:168
void * nb_app_private
Definition: net.h:1477
struct m0_atomic64 ntm_recv_queue_deficit
Definition: net.h:914
uint32_t ntm_callback_counter
Definition: net.h:850
M0_INTERNAL m0_bcount_t default_xo_rpc_max_seg_size(struct m0_net_domain *ndom)
Definition: net.c:239
m0_net_tm_ev_type
Definition: net.h:641
struct m0_net_xprt * m0_net_xprt_default_get(void)
Definition: net.c:151
struct m0_list_link ntm_dom_linkage
Definition: net.h:883
struct m0_net_domain * nb_dom
Definition: net.h:1351
M0_INTERNAL void m0_net_tm_event_post(const struct m0_net_tm_event *ev)
Definition: tm.c:84
const struct m0_net_buffer_callbacks * nb_callbacks
Definition: net.h:1369
struct m0_tlink nep_tm_linkage
Definition: net.h:498
Definition: xcode.h:73
int32_t(* xo_get_max_buffer_segments)(const struct m0_net_domain *dom)
Definition: net.h:354
M0_INTERNAL void m0_net_desc_free(struct m0_net_buf_desc *desc)
Definition: net.c:87
M0_INTERNAL void m0_net_end_point_get(struct m0_net_end_point *ep)
Definition: ep.c:88
M0_INTERNAL m0_bcount_t m0_net_domain_get_max_buffer_size(struct m0_net_domain *dom)
m0_net_buffer_cb_proc_t nbc_cb[M0_NET_QT_NR]
Definition: net.h:1272
Definition: chan.h:229
struct m0_net_transfer_mc * nep_tm
Definition: net.h:493
void(* xo_buf_deregister)(struct m0_net_buffer *nb)
Definition: net.h:245
M0_INTERNAL int m0_net_desc_copy(const struct m0_net_buf_desc *from_desc, struct m0_net_buf_desc *to_desc)
Definition: net.c:74
struct m0_tl ntm_q[M0_NET_QT_NR]
Definition: net.h:877
M0_INTERNAL void m0_net_tm_colour_set(struct m0_net_transfer_mc *tm, uint32_t colour)
Definition: tm.c:436
M0_INTERNAL int m0_net_tm_stop(struct m0_net_transfer_mc *tm, bool abort)
Definition: tm.c:293
M0_INTERNAL void m0_net_buffer_event_deliver_all(struct m0_net_transfer_mc *tm)
Definition: tm.c:397
struct m0_net_end_point * nte_ep
Definition: net.h:729
int(* xo_tm_confine)(struct m0_net_transfer_mc *tm, const struct m0_bitmap *processors)
Definition: net.h:170
struct m0_ref nep_ref
Definition: net.h:491
static struct m0_pool pool
Definition: iter_ut.c:58
uint32_t nd_get_max_buffer_segments
Definition: net.h:405
Definition: list.h:72
void m0_net_end_point_put(struct m0_net_end_point *ep)
Definition: ep.c:98
M0_INTERNAL void m0_net_buffer_event_notify(struct m0_net_transfer_mc *tm, struct m0_chan *chan)
Definition: tm.c:423
void(* xo_buf_del)(struct m0_net_buffer *nb)
Definition: net.h:290
int(* xo_end_point_create)(struct m0_net_end_point **epp, struct m0_net_transfer_mc *tm, const char *addr)
Definition: net.h:230
M0_INTERNAL void m0_net_buffer_deregister(struct m0_net_buffer *buf, struct m0_net_domain *dom)
Definition: buf.c:107
M0_TL_DECLARE(m0_nep, M0_INTERNAL, struct m0_net_end_point)
int m0_net_domain_init(struct m0_net_domain *dom, const struct m0_net_xprt *xprt)
Definition: domain.c:36
struct m0_tlink nb_tm_linkage
Definition: net.h:1437
M0_INTERNAL bool m0_net_buffer_event_pending(struct m0_net_transfer_mc *tm)
Definition: tm.c:409
static struct m0_chan chan[RDWR_REQUEST_MAX]
M0_INTERNAL int m0_net_buffer_event_deliver_synchronously(struct m0_net_transfer_mc *tm)
Definition: tm.c:377
struct m0_net_end_point * ntm_ep
Definition: net.h:868
M0_INTERNAL uint32_t m0_net_tm_colour_get(struct m0_net_transfer_mc *tm)
Definition: tm.c:448
m0_net_queue_type
Definition: net.h:591
M0_INTERNAL bool m0_net_check_xprt(const struct m0_net_xprt *xprt)
Definition: net.c:225
M0_INTERNAL int m0_net_buffer_add(struct m0_net_buffer *buf, struct m0_net_transfer_mc *tm)
Definition: buf.c:247
uint64_t nd_magix
Definition: net.h:425
struct m0_net_xprt ** m0_net_all_xprt_get(void)
Definition: net.c:161
M0_INTERNAL m0_bcount_t m0_net_domain_get_max_buffer_desc_size(struct m0_net_domain *dom)
m0_bcount_t(* xo_rpc_max_seg_size)(struct m0_net_domain *ndom)
Definition: net.h:362
struct m0_list_link nb_dom_linkage
Definition: net.h:1453
m0_bcount_t(* xo_rpc_max_msg_size)(struct m0_net_domain *ndom, m0_bcount_t rpc_size)
Definition: net.h:366
M0_INTERNAL int m0_net_tm_confine(struct m0_net_transfer_mc *tm, const struct m0_bitmap *processors)
Definition: tm.c:356
const char * nx_name
Definition: net.h:125
M0_INTERNAL int32_t m0_net_domain_get_max_buffer_segments(struct m0_net_domain *dom)
bool(* xo_bev_pending)(struct m0_net_transfer_mc *tm)
Definition: net.h:322
M0_INTERNAL void m0_net_xprt_deregister(const struct m0_net_xprt *xprt)
Definition: net.c:197
int(* xo_dom_init)(const struct m0_net_xprt *xprt, struct m0_net_domain *dom)
Definition: net.h:139
struct m0_net_buf_desc nb_desc
Definition: net.h:1412
enum m0_net_tm_ev_type nte_type
Definition: net.h:691
uint32_t ntm_pool_colour
Definition: net.h:921
m0_time_t nte_time
Definition: net.h:701
int(* xo_tm_stop)(struct m0_net_transfer_mc *tm, bool cancel)
Definition: net.h:206
int(* xo_buf_add)(struct m0_net_buffer *nb)
Definition: net.h:274
struct m0_net_xprt * xprt
Definition: module.c:61
void(* xo_tm_fini)(struct m0_net_transfer_mc *tm)
Definition: net.h:219
m0_bcount_t nd_get_max_buffer_desc_size
Definition: net.h:423
M0_INTERNAL uint32_t default_xo_rpc_max_recv_msgs(struct m0_net_domain *ndom, m0_bcount_t rpc_size)
Definition: net.c:267
Definition: mutex.h:47
m0_bcount_t(* xo_get_max_buffer_segment_size)(const struct m0_net_domain *dom)
Definition: net.h:346
int(* xo_bev_deliver_sync)(struct m0_net_transfer_mc *tm)
Definition: net.h:301
M0_INTERNAL m0_bcount_t default_xo_rpc_max_msg_size(struct m0_net_domain *ndom, m0_bcount_t rpc_size)
Definition: net.c:255
void * nb_xprt_private
Definition: net.h:1461
M0_INTERNAL int m0_net_end_point_create(struct m0_net_end_point **epp, struct m0_net_transfer_mc *tm, const char *addr)
Definition: ep.c:56
const struct m0_net_tm_callbacks * ntm_callbacks
Definition: net.h:816
m0_bcount_t(* xo_get_max_buffer_size)(const struct m0_net_domain *dom)
Definition: net.h:339
uint64_t nqs_max_bytes
Definition: net.h:804
struct m0_list nd_tms
Definition: net.h:390
int32_t nte_status
Definition: net.h:715
m0_net_buf_flags
Definition: net.h:1276
m0_bcount_t nd_get_max_buffer_segment_size
Definition: net.h:411
Definition: vec.h:145
uint32_t(* xo_rpc_max_segs_nr)(struct m0_net_domain *ndom)
Definition: net.h:364
struct m0_net_end_point * nb_ep
Definition: net.h:1424
struct m0_tlink nd_app_linkage
Definition: net.h:399
struct m0_net_transfer_mc * nte_tm
Definition: net.h:696
struct m0_net_buffer_pool * ntm_recv_pool
Definition: net.h:896