c - librdmacm error: rdma_resolve_route failed with errno 19 (No such device) -
i'm going run rdma application using librdmacm
. server , client running on same machine, , using ip 127.0.0.1 , port number 20079 build connection management. client routine failed @ rdma_resolve_route errno 19 (no such device). know happens?
server code:
... /* set rdma cm structures */ cm_channel = rdma_create_event_channel(); if (!cm_channel) return 1; err = rdma_create_id(cm_channel, &listen_id, null, rdma_ps_tcp); if (err) return err; sin.sin_family = af_inet; sin.sin_port = htons(20079); sin.sin_addr.s_addr = inaddr_any; /* bind local port , listen connection request */ err = rdma_bind_addr(listen_id, (struct sockaddr *) &sin); if (err) return 1; err = rdma_listen(listen_id, 1); if (err) return 1; err = rdma_get_cm_event(cm_channel, &event); if (err) return err; if (event->event != rdma_cm_event_connect_request) return 1; cm_id = event->id; rdma_ack_cm_event(event); ...
client code:
... /* set rdma cm structures */ cm_channel = rdma_create_event_channel(); if (!cm_channel) return 1; err = rdma_create_id(cm_channel, &cm_id, null, rdma_ps_tcp); if (err) return err; n = getaddrinfo("127.0.0.1", "20079", &hints, &res); if (n < 0) return 1; /* resolve server address , route */ (t = res; t; t = t->ai_next) { err = rdma_resolve_addr(cm_id, null, t->ai_addr, resolve_timeout_ms); if (!err) break; } if (err) return err; err = rdma_get_cm_event(cm_channel, &event); if (err) return err; if (event->event != rdma_cm_event_addr_resolved) return 1; rdma_ack_cm_event(event); err = rdma_resolve_route(cm_id, resolve_timeout_ms); // call failed! if (err) return err; ...
i noticed after server routine running, port 20079 not open viewing netstat -nltp
. mean error happen in port binding? kernel version 3.10.0.
uname -a linux e07f04260.eu6sqa 3.10.0-327.ali2010.alios7.x86_64 #1 smp mon mar 20 19:58:02 cst 2017 x86_64 x86_64 x86_64 gnu/linux
besides, rdma's utility ibv_rc_pingpong
works on machine, rping
fails same error above. difference ibv_rc_pingpong
don't use librdmacm
Comments
Post a Comment