All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Abeni <pabeni@redhat.com>
To: mptcp@lists.linux.dev
Cc: "Othman, Ossama" <ossama.othman@intel.com>
Subject: mptcpd and (default) routes
Date: Tue, 26 Oct 2021 18:49:05 +0200	[thread overview]
Message-ID: <8db4b664f4fe0e102df6da03e57459c3a8c61677.camel@redhat.com> (raw)

Hello,

I'm still experimenting with mptcpd. It looks like the current
'addr_adv' could be improved.

Currently it creates endpoints as soon as new non-link-local addresses
are available in the host, and that in turn causes new subflow creation
using such IP as source.

In a client system, usually we have this sequence of events:

1) <interface X goes up>
2) <dhcp start>
3) <interface X get new ip>
4) <new [default] route is added to X>

Just after 3) mptcpd creates the new endpoint and the kernel tries to
create the new subflows. The kernel can try to create the subflows
before the route (required to reach the server from the relevant
interface) is available.

A possible solution would be let mptcp listen even for route-related NL
events and let the 'addr_adv' plugin create the endpoint only when
there is a new address and a default route using such address/the
underlaying interface.

There are a couple of downside:
- the above condition is quite restrictive - e.g. a network specific
route could be enough, but we can't do a generic check for that. Adding
a configuration flag to enable the above check should suffice/cover
this point
- will be quite invasive for mptcpd

Are there any other options?

Apropos, I don't see any routing related code in mptcpd, so I guess
even the out-of-tree kernel could be subject to some similar
race/critical scenario?!?

Thanks,

Paolo




             reply	other threads:[~2021-10-26 16:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-26 16:49 Paolo Abeni [this message]
2021-10-27 14:31 ` mptcpd and (default) routes Matthieu Baerts
2021-10-27 14:36 ` Othman, Ossama

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=8db4b664f4fe0e102df6da03e57459c3a8c61677.camel@redhat.com \
    --to=pabeni@redhat.com \
    --cc=mptcp@lists.linux.dev \
    --cc=ossama.othman@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.