On 15/05/20 - 19:22:15, Paolo Abeni wrote: > 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 <pab...@redhat.com> > --- > include/linux/tcp.h | 3 +++ > include/net/mptcp.h | 17 ++++++++++------- > net/ipv4/tcp_minisocks.c | 2 +- > net/mptcp/protocol.c | 7 ------- > net/mptcp/subflow.c | 3 +++ > 5 files changed, 17 insertions(+), 15 deletions(-)
Reviewed-by: Christoph Paasch <cpaa...@apple.com>