From: Geliang Tang <geliang.tang@suse.com>
To: mptcp@lists.linux.dev
Cc: Geliang Tang <geliang.tang@suse.com>
Subject: [RFC mptcp-next 0/6] MP_FAIL echo and retrans
Date: Wed, 16 Feb 2022 19:05:07 +0800 [thread overview]
Message-ID: <cover.1645009373.git.geliang.tang@suse.com> (raw)
This patchset added MP_FAIL echo and retrans support. Except the last
patch, others work well.
Here I have some questions about it.
1. How to distinguish an MP_FAIL packet and an MP_FAIL echo packet?
Unlike ADD_ADDR, there's no echo bit in a MP_FAIL packet. Patch 1 used
simple method to distinguish them.
MP_FAIL carries the data sequence number of the checksum failure.
MP_FAIL echo carries the received data sequence number of a MP_FAIL.
2. For the multiple subflow case, MP_FAIL echo is sent on another subflow,
not the subflow receiving this MP_FAIL. Since the receiving subflow will
be closed by MP_RST after a while.
3. Patch 5 added mp_fail_timer as a struct member of struct
mptcp_subflow_context. Is there a better place to add this timer?
4. Just like the way of dropping the ADD_ADDR packets in the ADD_ADDR
timeout testcases, patch 6 tried to use iptables bpf to drop the MP_FAIL
packets too. But it doesn't work.
Drop ADD_ADDR packets using this bpf rule:
"nfbpf_compile '(ip && (ip[54] & 0xf0) == 0x30) ||
(ip6 && (ip6[74] & 0xf0) == 0x30)'"
I used a similar rule to drop MP_FAIL packets:
"nfbpf_compile '(ip && (ip[54] & 0xf0) == 0x60) ||
(ip6 && (ip6[74] & 0xf0) == 0x60)'"
I thinks the offset shouldn't be 54 or 74 here. Matt, could you please
give me some help about how to get the right offset values?
Thanks.
-Geliang
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/261
Depends on: the "add mp_fail testcases" series.
Geliang Tang (6):
mptcp: add MP_FAIL echo support
mptcp: add mibs for MP_FAIL echo
selftests: mptcp: add MP_FAIL echo mibs check
mptcp: add a new sysctl mp_fail_timeout
mptcp: add MP_FAIL retrans support
selftests: mptcp: MP_FAIL timeout testcases TODO
Documentation/networking/mptcp-sysctl.rst | 10 +++
net/mptcp/ctrl.c | 14 ++++
net/mptcp/mib.c | 2 +
net/mptcp/mib.h | 2 +
net/mptcp/options.c | 23 ++++-
net/mptcp/pm.c | 41 ++++++++-
net/mptcp/protocol.c | 1 +
net/mptcp/protocol.h | 7 ++
net/mptcp/subflow.c | 30 ++++++-
.../testing/selftests/net/mptcp/mptcp_join.sh | 84 +++++++++++++++++++
10 files changed, 207 insertions(+), 7 deletions(-)
--
2.34.1
next reply other threads:[~2022-02-16 11:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-16 11:05 Geliang Tang [this message]
2022-02-16 11:05 ` [RFC mptcp-next 1/6] mptcp: add MP_FAIL echo support Geliang Tang
2022-02-16 11:05 ` [RFC mptcp-next 2/6] mptcp: add mibs for MP_FAIL echo Geliang Tang
2022-02-16 11:05 ` [RFC mptcp-next 3/6] selftests: mptcp: add MP_FAIL echo mibs check Geliang Tang
2022-02-16 11:05 ` [RFC mptcp-next 4/6] mptcp: add a new sysctl mp_fail_timeout Geliang Tang
2022-02-16 11:05 ` [RFC mptcp-next 5/6] mptcp: add MP_FAIL retrans support Geliang Tang
2022-02-16 11:05 ` [RFC mptcp-next 6/6] selftests: mptcp: MP_FAIL timeout testcases TODO Geliang Tang
2022-02-17 1:21 ` [RFC mptcp-next 0/6] MP_FAIL echo and retrans 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=cover.1645009373.git.geliang.tang@suse.com \
--to=geliang.tang@suse.com \
--cc=mptcp@lists.linux.dev \
/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.