diff options
author | 2021-03-12 17:47:46 -0800 | |
---|---|---|
committer | 2021-03-12 17:47:46 -0800 | |
commit | 7c678829efa89e23a8556f5e4d9621c51995fb6e (patch) | |
tree | 41536ba695917e42bb3c74c12bae49f3f74db39d /include | |
parent | Merge branch 'resil-nhgroups-netdevsim-selftests' (diff) | |
parent | selftests: mptcp: add testcases for removing addrs (diff) | |
download | linux-rng-7c678829efa89e23a8556f5e4d9621c51995fb6e.tar.xz linux-rng-7c678829efa89e23a8556f5e4d9621c51995fb6e.zip |
Merge branch 'mptcp-Include-multiple-address-ids-in-RM_ADDR'
Mat Martineau says:
====================
mptcp: Include multiple address ids in RM_ADDR
Here's a patch series from the MPTCP tree that extends the capabilities
of the MPTCP RM_ADDR header.
MPTCP peers can exchange information about their IP addresses that are
available for additional MPTCP subflows. IP addresses are advertised
with an ADD_ADDR header type, and those advertisements are revoked with
the RM_ADDR header type. RFC 8684 allows the RM_ADDR header to include
more than one address ID, so multiple advertisements can be revoked in a
single header. Previous kernel versions have only used RM_ADDR with a
single address ID, so multiple removals required multiple packets.
Patches 1-4 plumb address id list structures around the MPTCP code,
where before only a single address ID was passed.
Patches 5-8 make use of the address lists at the path manager layer that
tracks available addresses for both peers.
Patches 9-11 update the selftests to cover the new use of RM_ADDR with
multiple address IDs.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/mptcp.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/net/mptcp.h b/include/net/mptcp.h index 5694370be3d4..cea69c801595 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -34,6 +34,13 @@ struct mptcp_ext { /* one byte hole */ }; +#define MPTCP_RM_IDS_MAX 8 + +struct mptcp_rm_list { + u8 ids[MPTCP_RM_IDS_MAX]; + u8 nr; +}; + struct mptcp_out_options { #if IS_ENABLED(CONFIG_MPTCP) u16 suboptions; @@ -48,7 +55,7 @@ struct mptcp_out_options { u8 addr_id; u16 port; u64 ahmac; - u8 rm_id; + struct mptcp_rm_list rm_list; u8 join_id; u8 backup; u32 nonce; |