Use separate port numbers for RDMA-CM

This commit is contained in:
Vitaliy Filippov
2025-04-01 16:16:03 +03:00
parent 58af897e73
commit 3e5f0be52c
9 changed files with 35 additions and 29 deletions
+2 -1
View File
@@ -376,7 +376,8 @@ void osd_t::bind_socket()
{
for (auto & bind_address: bind_addresses)
{
auto listener = msgr.rdmacm_listen(bind_address, listening_port, &listening_port, log_level);
// iWARP shares port numbers with TCP traffic and can't listen on the same port with TCP and RDMACM
auto listener = msgr.rdmacm_listen(bind_address, rdmacm_port, &rdmacm_port, log_level);
if (listener)
rdmacm_listeners.push_back(listener);
}
+1
View File
@@ -206,6 +206,7 @@ class osd_t
std::vector<int> listen_fds;
#ifdef WITH_RDMACM
std::vector<rdma_cm_id *> rdmacm_listeners;
int rdmacm_port = 0;
#endif
ring_consumer_t consumer;
+1 -1
View File
@@ -174,7 +174,7 @@ json11::Json osd_t::get_osd_state()
st["port"] = listening_port;
#ifdef WITH_RDMACM
if (rdmacm_listeners.size())
st["rdmacm"] = true;
st["rdmacm_port"] = rdmacm_port;
#endif
st["primary_enabled"] = run_primary;
st["blockstore_enabled"] = bs ? true : false;