linux/net/mptcp
Paolo Abeni 86e39e0448 mptcp: keep track of local endpoint still available for each msk
Include into the path manager status a bitmap tracking the list
of local endpoints still available - not yet used - for the
relevant mptcp socket.

Keep such map updated at endpoint creation/deletion time, so
that we can easily skip already used endpoint at local address
selection time.

The endpoint used by the initial subflow is lazyly accounted at
subflow creation time: the usage bitmap is be up2date before
endpoint selection and we avoid such unneeded task in some relevant
scenarios - e.g. busy servers accepting incoming subflows but
not creating any additional ones nor annuncing additional addresses.

Overall this allows for fair local endpoints usage in case of
subflow failure.

As a side effect, this patch also enforces that each endpoint
is used at most once for each mptcp connection.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-01-07 11:27:07 +00:00
..
crypto_test.c mptcp: move crypto test to KUNIT 2020-06-26 16:21:39 -07:00
crypto.c kunit: mptcp: adhere to KUNIT formatting standard 2021-04-16 17:10:40 -07:00
ctrl.c mptcp: faster active backup recovery 2021-08-14 11:37:25 +01:00
diag.c mptcp: allow dumping subflow context to userspace 2020-03-29 22:14:48 -07:00
Kconfig kunit: mptcp: adhere to KUNIT formatting standard 2021-04-16 17:10:40 -07:00
Makefile kunit: mptcp: adhere to KUNIT formatting standard 2021-04-16 17:10:40 -07:00
mib.c mptcp: use batch snmp operations in mptcp_seq_show() 2021-09-30 14:17:10 +01:00
mib.h mptcp: add the mibs for MP_FAIL 2021-08-25 11:02:35 +01:00
mptcp_diag.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-09-30 14:49:21 -07:00
options.c mptcp: clean-up MPJ option writing 2022-01-07 11:27:07 +00:00
pm_netlink.c mptcp: keep track of local endpoint still available for each msk 2022-01-07 11:27:07 +00:00
pm.c mptcp: keep track of local endpoint still available for each msk 2022-01-07 11:27:07 +00:00
protocol.c mptcp: keep track of local endpoint still available for each msk 2022-01-07 11:27:07 +00:00
protocol.h mptcp: keep track of local endpoint still available for each msk 2022-01-07 11:27:07 +00:00
sockopt.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-12-16 16:13:19 -08:00
subflow.c mptcp: cleanup accept and poll 2022-01-07 11:27:07 +00:00
syncookies.c mptcp: don't return sockets in foreign netns 2021-09-24 10:51:36 +01:00
token_test.c mptcp: don't return sockets in foreign netns 2021-09-24 10:51:36 +01:00
token.c mptcp: full disconnect implementation 2022-01-07 11:27:06 +00:00