From: Florian Westphal <fw@strlen.de>
To: Paolo Abeni <pabeni@redhat.com>
Cc: Florian Westphal <fw@strlen.de>, mptcp@lists.linux.dev
Subject: Re: [PATCH mptcp-next 3/4] mptcp: handle join requests via pernet listen socket
Date: Sat, 12 Feb 2022 01:12:12 +0100 [thread overview]
Message-ID: <20220212001212.GC6497@breakpoint.cc> (raw)
In-Reply-To: <1571d4e58ebf36eb436b0056f3ae7254d3a3114d.camel@redhat.com>
Paolo Abeni <pabeni@redhat.com> wrote:
> On Thu, 2022-02-10 at 16:29 +0100, Florian Westphal wrote:
> > +
> > + /* pernet listener to handle mptcp join requests
> > + * based on the mptcp token.
> > + *
> > + * Has to be pernet because tcp uses
> > + * sock_net(sk_listener) to obtain the net namespace for
> > + * the syn/ack route lookup.
> > + */
>
> A possible alternative would be proving a __tcp_conn_request() variant
> which uses an exiplicit 'net' argument. tcp_conn_request() could be an
> inline on top of the above.
Yes, we could change tcp stack to allow explicit net arg.
> Or we can use a global per-cpu set of "listeners", setting the net
> field just before calling tcp_conn_request.
I would prefer to avoid that, might get messy at least for RT folks?
If you don't want pernet, then I think additional tcp surgery is better.
> > + sock_put((struct sock *)msk);
>
> This should be called under the RCU lock, right? we could have
> __mptcp_token_lookup_sock variant that does not touches the msk
> reference count.
Yes, we should make token api netns safe and then use the 'exist'
variant which takes no reference count.
> > + msk = mptcp_sk(lsk);
> > + ssock = __mptcp_nmpc_socket(msk);
> > + lsk = ssock->sk;
> > + sock_hold(lsk);
>
> If I read correctly, at this point 'refcounted' should be 'false' in
> the caller (either tcp_v4_rcv or tcp_v6_rcv), so we don't need to
> acquire a reference to lsk ?!?
Yes, the refcount increase is wrong for sure, its not needed unless
we go for 'skb->sk = lsk' route.
next prev parent reply other threads:[~2022-02-12 0:12 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-10 15:29 [PATCH mptcp-next 0/4] mptcp: replace per-addr listener sockets Florian Westphal
2022-02-10 15:29 ` [PATCH mptcp-next 1/4] mptcp: prefer ip address in syn skb instead of listen sk bound address Florian Westphal
2022-02-11 10:34 ` Paolo Abeni
2022-02-10 15:29 ` [PATCH mptcp-next 2/4] tcp: add mptcp join demultiplex hooks Florian Westphal
2022-02-10 15:29 ` [PATCH mptcp-next 3/4] mptcp: handle join requests via pernet listen socket Florian Westphal
2022-02-11 2:03 ` Mat Martineau
2022-02-11 11:21 ` Paolo Abeni
2022-02-12 0:08 ` Florian Westphal
2022-02-11 11:03 ` Paolo Abeni
2022-02-12 0:12 ` Florian Westphal [this message]
2022-02-11 11:12 ` Matthieu Baerts
2022-02-12 0:13 ` Florian Westphal
2022-02-10 15:29 ` [PATCH mptcp-next 4/4] mptcp: remove per-address listening sockets Florian Westphal
-- strict thread matches above, loose matches on Subject: below --
2022-02-24 15:50 [PATCH mptcp-next v4 0/4] mptcp: replace per-addr listener sockets Florian Westphal
2022-02-24 15:50 ` [PATCH mptcp-next 3/4] mptcp: handle join requests via pernet listen socket Florian Westphal
2022-03-04 7:36 ` Kishen Maloor
2022-03-08 18:45 ` Florian Westphal
2022-03-08 23:00 ` Kishen Maloor
2022-03-09 12:53 ` Florian Westphal
2022-03-09 17:40 ` Kishen Maloor
2022-03-09 21:37 ` Florian Westphal
2022-03-09 23:40 ` Kishen Maloor
2022-03-10 0:37 ` Mat Martineau
2022-03-10 1:27 ` Kishen Maloor
2022-03-11 1:16 ` Mat Martineau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220212001212.GC6497@breakpoint.cc \
--to=fw@strlen.de \
--cc=mptcp@lists.linux.dev \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox