mptcp: add new sock flag to deal with join subflows
MP_JOIN subflows must not land into the accept queue. Currently tcp_check_req() calls an mptcp specific helper to detect such scenario. Such helper leverages the subflow context to check for MP_JOIN subflows. We need to deal also with MP JOIN failures, even when the subflow context is not available due allocation failure. A possible solution would be changing the syn_recv_sock() signature to allow returning a more descriptive action/ error code and deal with that in tcp_check_req(). Since the above need is MPTCP specific, this patch instead uses a TCP request socket hole to add a MPTCP specific flag. Such flag is used by the MPTCP syn_recv_sock() to tell tcp_check_req() how to deal with the request socket. This change is a no-op for !MPTCP build, and makes the MPTCP code simpler. It allows also the next patch to deal correctly with MP JOIN failure. v1 -> v2: - be more conservative on drop_req initialization (Mat) RFC -> v1: - move the drop_req bit inside tcp_request_sock (Eric) Signed-off-by:Paolo Abeni <pabeni@redhat.com> Reviewed-by:
Mat Martineau <mathew.j.martineau@linux.intel.com> Reviewed-by:
Christoph Paasch <cpaasch@apple.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- include/linux/tcp.h 3 additions, 0 deletionsinclude/linux/tcp.h
- include/net/mptcp.h 10 additions, 7 deletionsinclude/net/mptcp.h
- net/ipv4/tcp_minisocks.c 1 addition, 1 deletionnet/ipv4/tcp_minisocks.c
- net/mptcp/protocol.c 0 additions, 7 deletionsnet/mptcp/protocol.c
- net/mptcp/subflow.c 3 additions, 0 deletionsnet/mptcp/subflow.c
Loading
Please register or sign in to comment