Provide wrapper functions to retrieve the source and destination addresses. This is based on feedback from Doug Ledford.
Signed-off-by: Sean Hefty <[EMAIL PROTECTED]> --- If there are no objections, I would like to include this change in the next release of librdmacm, and request that it go into OFED 1.3. Makefile.am | 2 ++ include/rdma/rdma_cma.h | 10 ++++++++++ man/rdma_bind_addr.3 | 3 ++- man/rdma_cm.7 | 1 + man/rdma_get_dst_addr.3 | 16 ++++++++++++++++ man/rdma_get_dst_port.3 | 3 ++- man/rdma_get_src_addr.3 | 17 +++++++++++++++++ man/rdma_get_src_port.3 | 3 ++- man/rdma_resolve_addr.3 | 3 ++- 9 files changed, 54 insertions(+), 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index 1195bd9..c688283 100644 --- a/Makefile.am +++ b/Makefile.am @@ -49,6 +49,8 @@ man_MANS = \ man/rdma_get_devices.3 \ man/rdma_get_src_port.3 \ man/rdma_get_dst_port.3 \ + man/rdma_get_src_addr.3 \ + man/rdma_get_dst_addr.3 \ man/rdma_join_multicast.3 \ man/rdma_leave_multicast.3 \ man/rdma_listen.3 \ diff --git a/include/rdma/rdma_cma.h b/include/rdma/rdma_cma.h index b0848d5..8ebcaf6 100644 --- a/include/rdma/rdma_cma.h +++ b/include/rdma/rdma_cma.h @@ -494,6 +494,16 @@ static inline uint16_t rdma_get_dst_port(struct rdma_cm_id *id) ((struct sockaddr_in *) &id->route.addr.dst_addr)->sin_port; } +static inline struct sockaddr *rdma_get_src_addr(struct rdma_cm_id *id) +{ + return &id->route.addr.src_addr; +} + +static inline struct sockaddr *rdma_get_dst_addr(struct rdma_cm_id *id) +{ + return &id->route.addr.dst_addr; +} + /** * rdma_get_devices - Get list of RDMA devices currently available. * @num_devices: If non-NULL, set to the number of devices returned. diff --git a/man/rdma_bind_addr.3 b/man/rdma_bind_addr.3 index bed7f0b..dc7a868 100644 --- a/man/rdma_bind_addr.3 +++ b/man/rdma_bind_addr.3 @@ -25,4 +25,5 @@ address. If used to bind to port 0, the rdma_cm will select an available port and return it to the user. .SH "SEE ALSO" -rdma_create_id(3), rdma_listen(3), rdma_resolve_addr(3), rdma_create_qp(3) +rdma_create_id(3), rdma_listen(3), rdma_resolve_addr(3), rdma_create_qp(3), +rdma_get_src_addr(3), rdma_get_src_port(3) diff --git a/man/rdma_cm.7 b/man/rdma_cm.7 index bfb3493..2e07706 100644 --- a/man/rdma_cm.7 +++ b/man/rdma_cm.7 @@ -110,5 +110,6 @@ rdma_resolve_route(3), rdma_connect(3), rdma_listen(3), rdma_accept(3), rdma_reject(3), rdma_join_multicast(3), rdma_leave_multicast(3), rdma_notify(3), rdma_ack_cm_event(3), rdma_disconnect(3), rdma_destroy_qp(3), rdma_destroy_id(3), rdma_destroy_event_channel(3), rdma_get_devices(3), rdma_free_devices(3), +rdma_get_dst_addr(3), rdma_get_src_addr(3), rdma_get_dst_port(3), rdma_get_src_port(3), rdma_set_option(3) ucmatose(1), udaddy(1), mckey(1), rping(1) diff --git a/man/rdma_get_dst_addr.3 b/man/rdma_get_dst_addr.3 new file mode 100644 index 0000000..054445f --- /dev/null +++ b/man/rdma_get_dst_addr.3 @@ -0,0 +1,16 @@ +.TH "RDMA_GET_DST_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm +.SH NAME +rdma_get_dst_addr \- Returns the remote IP address of a bound rdma_cm_id. +.SH SYNOPSIS +.B "#include <rdma/rdma_cma.h>" +.P +.B "struct sockaddr *" rdma_get_dst_addr +.BI "(struct rdma_cm_id *" id ");" +.SH ARGUMENTS +.IP "id" 12 +RDMA identifier. +.SH "DESCRIPTION" +Returns the remote IP address associated with an rdma_cm_id. +.SH "SEE ALSO" +rdma_resolve_addr(3), rdma_get_src_port(3), rdma_get_dst_port(3), +rdma_get_src_addr(3) diff --git a/man/rdma_get_dst_port.3 b/man/rdma_get_dst_port.3 index 88e6ec2..658c9f7 100644 --- a/man/rdma_get_dst_port.3 +++ b/man/rdma_get_dst_port.3 @@ -13,4 +13,5 @@ RDMA identifier. Returns the remote port number for an rdma_cm_id that has been bound to a remote address. .SH "SEE ALSO" -rdma_connect(3), rdma_accept(3), rdma_get_cm_event(3), rdma_get_src_port(3) +rdma_connect(3), rdma_accept(3), rdma_get_cm_event(3), rdma_get_src_port(3), +rdma_get_src_addr(3), rdma_get_dst_addr(3) diff --git a/man/rdma_get_src_addr.3 b/man/rdma_get_src_addr.3 new file mode 100644 index 0000000..fa9b256 --- /dev/null +++ b/man/rdma_get_src_addr.3 @@ -0,0 +1,17 @@ +.TH "RDMA_GET_SRC_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm +.SH NAME +rdma_get_src_addr \- Returns the local IP address of a bound rdma_cm_id. +.SH SYNOPSIS +.B "#include <rdma/rdma_cma.h>" +.P +.B "struct sockaddr *" rdma_get_src_addr +.BI "(struct rdma_cm_id *" id ");" +.SH ARGUMENTS +.IP "id" 12 +RDMA identifier. +.SH "DESCRIPTION" +Returns the local IP address for an rdma_cm_id that has been bound to +a local device. +.SH "SEE ALSO" +rdma_bind_addr(3), rdma_resolve_addr(3), rdma_get_src_port(3), +rdma_get_dst_port(3), rdma_get_dst_addr(3) diff --git a/man/rdma_get_src_port.3 b/man/rdma_get_src_port.3 index 63ee564..88f0920 100644 --- a/man/rdma_get_src_port.3 +++ b/man/rdma_get_src_port.3 @@ -13,4 +13,5 @@ RDMA identifier. Returns the local port number for an rdma_cm_id that has been bound to a local address. .SH "SEE ALSO" -rdma_bind_addr(3), rdma_resolve_addr(3), rdma_get_dst_port(3) +rdma_bind_addr(3), rdma_resolve_addr(3), rdma_get_dst_port(3), +rdma_get_src_addr(3), rdma_get_dst_addr(3) diff --git a/man/rdma_resolve_addr.3 b/man/rdma_resolve_addr.3 index 32cd5cf..a9b7f61 100644 --- a/man/rdma_resolve_addr.3 +++ b/man/rdma_resolve_addr.3 @@ -33,4 +33,5 @@ an RDMA device. This call is typically made from the active side of a connection before calling rdma_resolve_route and rdma_connect. .SH "SEE ALSO" rdma_create_id(3), rdma_resolve_route(3), rdma_connect(3), rdma_create_qp(3), -rdma_get_cm_event(3), rdma_bind_addr(3) +rdma_get_cm_event(3), rdma_bind_addr(3), rdma_get_src_port(3), +rdma_get_dst_port(3), rdma_get_src_addr(3), rdma_get_dst_addr(3) _______________________________________________ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg