}\r
}\r
\r
-Infiniband::Infiniband(CephContext *cct, const std::string &device_name, uint8_t port_num): device_list(cct), net(cct)\r
+Infiniband::Infiniband(CephContext *cct, const std::string &device_name, uint8_t port_num): device_list(cct)\r
{\r
device = device_list.get_device(device_name.c_str());\r
device->binding_port(cct, port_num);\r
assert(device);\r
ib_physical_port = device->active_port->get_port_num();\r
pd = new ProtectionDomain(cct, device);\r
- assert(net.set_nonblock(device->ctxt->async_fd) == 0);\r
+ assert(NetHandler(cct).set_nonblock(device->ctxt->async_fd) == 0);\r
\r
max_recv_wr = device->device_attr->max_srq_wr;\r
if (max_recv_wr < cct->_conf->ms_async_rdma_receive_buffers) {\r
<< cpp_strerror(errno) << dendl;\r
return -1;\r
}\r
- int rc = infiniband.net.set_nonblock(channel->fd);\r
+ int rc = NetHandler(cct).set_nonblock(channel->fd);\r
if (rc < 0) {\r
ibv_destroy_comp_channel(channel);\r
return -1;\r
void gid_to_wire_gid(const union ibv_gid *gid, char wgid[]);\r
\r
public:\r
- NetHandler net;\r
explicit Infiniband(CephContext *c, const std::string &device_name, uint8_t p);\r
\r
/**\r
int RDMAConnectedSocketImpl::try_connect(const entity_addr_t& peer_addr, const SocketOptions &opts) {\r
ldout(cct, 20) << __func__ << " nonblock:" << opts.nonblock << ", nodelay:"\r
<< opts.nodelay << ", rbuf_size: " << opts.rcbuf_size << dendl;\r
- tcp_fd = infiniband->net.connect(peer_addr);\r
+ NetHandler net(cct);\r
+ tcp_fd = net.connect(peer_addr);\r
\r
if (tcp_fd < 0) {\r
return -errno;\r
}\r
- infiniband->net.set_close_on_exec(tcp_fd);\r
+ net.set_close_on_exec(tcp_fd);\r
\r
- int r = infiniband->net.set_socket_options(tcp_fd, opts.nodelay, opts.rcbuf_size);\r
+ int r = net.set_socket_options(tcp_fd, opts.nodelay, opts.rcbuf_size);\r
if (r < 0) {\r
::close(tcp_fd);\r
return -errno;\r
}\r
\r
ldout(cct, 20) << __func__ << " tcp_fd: " << tcp_fd << dendl;\r
- infiniband->net.set_priority(tcp_fd, opts.priority);\r
+ net.set_priority(tcp_fd, opts.priority);\r
my_msg.peer_qpn = 0;\r
r = infiniband->send_msg(cct, tcp_fd, my_msg);\r
if (r < 0)\r
int RDMAServerSocketImpl::listen(entity_addr_t &sa, const SocketOptions &opt)\r
{\r
int rc = 0;\r
- server_setup_socket = infiniband->net.create_socket(sa.get_family(), true);\r
+ server_setup_socket = net.create_socket(sa.get_family(), true);\r
if (server_setup_socket < 0) {\r
rc = -errno;\r
lderr(cct) << __func__ << " failed to create server socket: "\r
}\r
ldout(cct, 20) << __func__ << " accepted a new QP, tcp_fd: " << sd << dendl;\r
\r
- infiniband->net.set_close_on_exec(sd);\r
- int r = infiniband->net.set_nonblock(sd);\r
+ net.set_close_on_exec(sd);\r
+ int r = net.set_nonblock(sd);\r
if (r < 0) {\r
::close(sd);\r
return -errno;\r
}\r
\r
- r = infiniband->net.set_socket_options(sd, opt.nodelay, opt.rcbuf_size);\r
+ r = net.set_socket_options(sd, opt.nodelay, opt.rcbuf_size);\r
if (r < 0) {\r
::close(sd);\r
return -errno;\r
}\r
- infiniband->net.set_priority(sd, opt.priority);\r
+ net.set_priority(sd, opt.priority);\r
\r
RDMAConnectedSocketImpl* server;\r
//Worker* w = dispatcher->get_stack()->get_worker();\r