[PATCH mptcp-next v8 0/8] The infinite mapping support

Geliang Tang posted 8 patches 2 years, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/cover.1635481641.git.geliang.tang@suse.com
Maintainers: Shuah Khan <shuah@kernel.org>, "David S. Miller" <davem@davemloft.net>, Matthieu Baerts <matthieu.baerts@tessares.net>, Mat Martineau <mathew.j.martineau@linux.intel.com>, Jakub Kicinski <kuba@kernel.org>
include/net/mptcp.h                           |   3 +-
net/mptcp/mib.c                               |   1 +
net/mptcp/mib.h                               |   1 +
net/mptcp/options.c                           |   2 +-
net/mptcp/pm.c                                |   6 +
net/mptcp/protocol.c                          |  22 ++++
net/mptcp/protocol.h                          |  13 ++
net/mptcp/subflow.c                           |  56 +++++----
tools/testing/selftests/net/mptcp/config      |   5 +
.../testing/selftests/net/mptcp/mptcp_join.sh | 111 ++++++++++++++++--
10 files changed, 186 insertions(+), 34 deletions(-)
[PATCH mptcp-next v8 0/8] The infinite mapping support
Posted by Geliang Tang 2 years, 5 months ago
v8:
 - Patches 1-6 are unchanged, only updated the selftests scripts.
 - The patch (Squash to "mptcp: infinite mapping receiving" for v7) is
dropped too. Since this series only implemented MP_FAIL in one direction.
The TODO items, "MP_FAIL echo" and "MP_FAIL retrans", will implement later
as new patches.

v7:
 - drop the patch "mptcp: add last_ack_dss_start in the msk" in v6
 - set allow_infinite_fallback to false in __mptcp_subflow_connect and
   mptcp_finish_join.

v6:
 - use allow_infinite_fallback instead of last_retrans_seq.
 - rename mptcp_is_data_contiguous to mptcp_allow_infinite_fallback.
 - rename last_fully_acked_dss_start_seq to last_ack_dss_start.

v5:
 - move last_retrans_seq from msk to mptcp_subflow_context

v4:
 - update patch 1 and patch 2

v3:
 - drop MPTCP_INFINITE_DONE flag
 - drop MAPPING_INFINITE
 - add mptcp_is_data_contiguous helper
 - add the fallback check
 - The u32 target testcase has not been completed yet.

v2:
 - add MPTCP_INFINITE_DONE flag
 - add MAPPING_INFINITE mapping status
 - add start_seq in the msk

v1:
 - add noncontiguous flag
 - add the mibs check
 - tag: export/20210904T080009

Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/216

Geliang Tang (8):
  mptcp: don't send RST for single subflow
  mptcp: add the fallback check
  mptcp: track and update contiguous data status
  mptcp: infinite mapping sending
  mptcp: infinite mapping receiving
  mptcp: add mib for infinite map sending
  selftests: mptcp: add infinite map mibs check
  selftests: mptcp: add mp_fail testcases

 include/net/mptcp.h                           |   3 +-
 net/mptcp/mib.c                               |   1 +
 net/mptcp/mib.h                               |   1 +
 net/mptcp/options.c                           |   2 +-
 net/mptcp/pm.c                                |   6 +
 net/mptcp/protocol.c                          |  22 ++++
 net/mptcp/protocol.h                          |  13 ++
 net/mptcp/subflow.c                           |  56 +++++----
 tools/testing/selftests/net/mptcp/config      |   5 +
 .../testing/selftests/net/mptcp/mptcp_join.sh | 111 ++++++++++++++++--
 10 files changed, 186 insertions(+), 34 deletions(-)

-- 
2.26.2


Re: [PATCH mptcp-next v8 0/8] The infinite mapping support
Posted by Paolo Abeni 2 years, 5 months ago
On Fri, 2021-10-29 at 12:40 +0800, Geliang Tang wrote:
> v8:
>  - Patches 1-6 are unchanged, only updated the selftests scripts.
>  - The patch (Squash to "mptcp: infinite mapping receiving" for v7) is
> dropped too. Since this series only implemented MP_FAIL in one direction.
> The TODO items, "MP_FAIL echo" and "MP_FAIL retrans", will implement later
> as new patches.
> 
> v7:
>  - drop the patch "mptcp: add last_ack_dss_start in the msk" in v6
>  - set allow_infinite_fallback to false in __mptcp_subflow_connect and
>    mptcp_finish_join.
> 
> v6:
>  - use allow_infinite_fallback instead of last_retrans_seq.
>  - rename mptcp_is_data_contiguous to mptcp_allow_infinite_fallback.
>  - rename last_fully_acked_dss_start_seq to last_ack_dss_start.
> 
> v5:
>  - move last_retrans_seq from msk to mptcp_subflow_context
> 
> v4:
>  - update patch 1 and patch 2
> 
> v3:
>  - drop MPTCP_INFINITE_DONE flag
>  - drop MAPPING_INFINITE
>  - add mptcp_is_data_contiguous helper
>  - add the fallback check
>  - The u32 target testcase has not been completed yet.
> 
> v2:
>  - add MPTCP_INFINITE_DONE flag
>  - add MAPPING_INFINITE mapping status
>  - add start_seq in the msk
> 
> v1:
>  - add noncontiguous flag
>  - add the mibs check
>  - tag: export/20210904T080009
> 
> Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/216
> 
> Geliang Tang (8):
>   mptcp: don't send RST for single subflow
>   mptcp: add the fallback check
>   mptcp: track and update contiguous data status
>   mptcp: infinite mapping sending
>   mptcp: infinite mapping receiving
>   mptcp: add mib for infinite map sending
>   selftests: mptcp: add infinite map mibs check
>   selftests: mptcp: add mp_fail testcases
> 
>  include/net/mptcp.h                           |   3 +-
>  net/mptcp/mib.c                               |   1 +
>  net/mptcp/mib.h                               |   1 +
>  net/mptcp/options.c                           |   2 +-
>  net/mptcp/pm.c                                |   6 +
>  net/mptcp/protocol.c                          |  22 ++++
>  net/mptcp/protocol.h                          |  13 ++
>  net/mptcp/subflow.c                           |  56 +++++----
>  tools/testing/selftests/net/mptcp/config      |   5 +
>  .../testing/selftests/net/mptcp/mptcp_join.sh | 111 ++++++++++++++++--
>  10 files changed, 186 insertions(+), 34 deletions(-)

I haven't reviewed the patch yet, but I have to say: nice new email
address :)

/P


Re: [PATCH mptcp-next v8 0/8] The infinite mapping support
Posted by Geliang Tang 2 years, 5 months ago
On Fri, Oct 29, 2021 at 10:17:13AM +0200, Paolo Abeni wrote:
> On Fri, 2021-10-29 at 12:40 +0800, Geliang Tang wrote:
> > v8:
> >  - Patches 1-6 are unchanged, only updated the selftests scripts.
> >  - The patch (Squash to "mptcp: infinite mapping receiving" for v7) is
> > dropped too. Since this series only implemented MP_FAIL in one direction.
> > The TODO items, "MP_FAIL echo" and "MP_FAIL retrans", will implement later
> > as new patches.
> > 
> > v7:
> >  - drop the patch "mptcp: add last_ack_dss_start in the msk" in v6
> >  - set allow_infinite_fallback to false in __mptcp_subflow_connect and
> >    mptcp_finish_join.
> > 
> > v6:
> >  - use allow_infinite_fallback instead of last_retrans_seq.
> >  - rename mptcp_is_data_contiguous to mptcp_allow_infinite_fallback.
> >  - rename last_fully_acked_dss_start_seq to last_ack_dss_start.
> > 
> > v5:
> >  - move last_retrans_seq from msk to mptcp_subflow_context
> > 
> > v4:
> >  - update patch 1 and patch 2
> > 
> > v3:
> >  - drop MPTCP_INFINITE_DONE flag
> >  - drop MAPPING_INFINITE
> >  - add mptcp_is_data_contiguous helper
> >  - add the fallback check
> >  - The u32 target testcase has not been completed yet.
> > 
> > v2:
> >  - add MPTCP_INFINITE_DONE flag
> >  - add MAPPING_INFINITE mapping status
> >  - add start_seq in the msk
> > 
> > v1:
> >  - add noncontiguous flag
> >  - add the mibs check
> >  - tag: export/20210904T080009
> > 
> > Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/216
> > 
> > Geliang Tang (8):
> >   mptcp: don't send RST for single subflow
> >   mptcp: add the fallback check
> >   mptcp: track and update contiguous data status
> >   mptcp: infinite mapping sending
> >   mptcp: infinite mapping receiving
> >   mptcp: add mib for infinite map sending
> >   selftests: mptcp: add infinite map mibs check
> >   selftests: mptcp: add mp_fail testcases
> > 
> >  include/net/mptcp.h                           |   3 +-
> >  net/mptcp/mib.c                               |   1 +
> >  net/mptcp/mib.h                               |   1 +
> >  net/mptcp/options.c                           |   2 +-
> >  net/mptcp/pm.c                                |   6 +
> >  net/mptcp/protocol.c                          |  22 ++++
> >  net/mptcp/protocol.h                          |  13 ++
> >  net/mptcp/subflow.c                           |  56 +++++----
> >  tools/testing/selftests/net/mptcp/config      |   5 +
> >  .../testing/selftests/net/mptcp/mptcp_join.sh | 111 ++++++++++++++++--
> >  10 files changed, 186 insertions(+), 34 deletions(-)
> 
> I haven't reviewed the patch yet, but I have to say: nice new email
> address :)

Thanks :)

-Geliang
> 
> /P
> 


Re: [PATCH mptcp-next v8 0/8] The infinite mapping support
Posted by Matthieu Baerts 2 years, 5 months ago
Hi Geliang, Mat,

On 29/10/2021 06:40, Geliang Tang wrote:
> v8:
>  - Patches 1-6 are unchanged, only updated the selftests scripts.
>  - The patch (Squash to "mptcp: infinite mapping receiving" for v7) is
> dropped too. Since this series only implemented MP_FAIL in one direction.
> The TODO items, "MP_FAIL echo" and "MP_FAIL retrans", will implement later
> as new patches.

(...)

Thank you for the patches and the reviews!

As discussed at the meeting yesterday, to help you moving forward, I
applied the first seven patches (without Mat's RvB tag for the moment).

What is then left to do if I'm not mistaken:

- drop more data from the receive queue c.f. discussions with Mat and
Christoph on the ML on v7

- Improvements around the tests for patch 8/8:
  - Comment around the TC command
  - Add 'tcp_flags 0x10/0xff'
  - Comment around the parsing (example of what you are parsing)
  - Break if jq returns 'null' or nothing.
  - Sleep in the while loop for "tc show"
  - Look for "pedit" counter ("packets" - "overlimits")
  - Not compare the output file if it is normal they are different
  - Remove/Reduce data sent by the host not having the tc command (send
only in one direction)
  - Insert the TC rules, then start the test, then look at counters
  - Force checksum=1 for "fail_tests()"


And for later:

- "MP_FAIL echo"

- "MP_FAIL retrans"

Did I miss anything?


The first patches are now in our tree (features for net-next):

- 19ca240f0cdf: mptcp: don't send RST for single subflow
- 89de2a435c1e: mptcp: add the fallback check
- df3d448153f1: mptcp: track and update contiguous data status
- 44b73ea648cc: mptcp: infinite mapping sending
- e35a1a951132: mptcp: infinite mapping receiving
- 9feb4bc20bf6: mptcp: add mib for infinite map sending
- ac67c5b1d612: selftests: mptcp: add infinite map mibs check
- Results: c1d29ad013b4..0fad1b3cf9ef


Builds and tests are now in progress:

https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20211105T130530
https://github.com/multipath-tcp/mptcp_net-next/actions/workflows/build-validation.yml?query=branch:export


> Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/216

Because there are still stuff to implement, this ticket has not been closed.

Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net