Skip to content

net/rds: SOL_RDS socket option to explicitly select transport

Sowmini Varadhan lkml netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest3 patches 1 replyIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3net/rds: Declare SO_RDS_TRANSPORT and RDS_TRANS_* constants in uapi/linux/rds.hinclude/uapi/linux/rds.h net/rds/rds.h+10 -50 replies
2/3net/rds: Add setsockopt support for SO_RDS_TRANSPORTnet/rds/af_rds.c net/rds/bind.c net/rds/rds.h +1 more+53 -00 replies
3/3net/rds Add getsockopt support for SO_RDS_TRANSPORTnet/rds/af_rds.c+14 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/3] net/rds: SOL_RDS socket option to explicitly select transport

Today the underlying transport (TCP or IB) for a PF_RDS socket is implicitly selected based on the local address used to bind(2) the PF_RDS socket. This results in some non-deterministic behavior when there are un-numbered and IPoIB interfaces sharing the same IP address. It also places the constraint that the IB interface must have an IP address (and thus, IPoIB) configured on it.

The non-determinism may be avoided by providing the user-space application a socket option that allows it to explicitly select the transport prior to bind(2).

Patch 1 of this series provides the constant definitions needed by the application via <linux/rds.h>.

Patch 2 provides the setsockopt support, and Patch 3 provides the getsockopt support.

Sowmini Varadhan (3):
Declare SO_RDS_TRANSPORT and RDS_TRANS_* constants in
uapi/linux/rds.h
Add setsockopt support for SO_RDS_TRANSPORT Add setsockopt support for SO_RDS_TRANSPORT

 include/uapi/linux/rds.h |   10 ++++++++++
 net/rds/af_rds.c         |   41 +++++++++++++++++++++++++++++++++++++++++
 net/rds/bind.c           |    4 ++++
 net/rds/rds.h            |    6 +-----
 net/rds/transport.c      |   21 +++++++++++++++++++++
 5 files changed, 77 insertions(+), 5 deletions(-)