In all the backup tests we have, the backup flag is set on one side, and
the expected behaviour is to have both sides respecting this decision.
On the scheduler side, only the 'backup' field is checked, which is
supposed to be set only if the other peer flagged a subflow as backup.
But in various places, this flag is set when the local host flagged the
subflow as backup.
One last thing that has been fixed is the backup flag in 'signal'
endpoints: it was working only when setting the backup flag while the
connection was already opened. That's what the MPJ selftests were doing
to check that the signal endpoint were supporting the backup flag (on
purpose I guess, because the support was broken in MP_JOIN...).
The last two patches adapt the BPF selftests to mimic what is now done
by the in-kernel packets scheduler.
Note that the Packetdrill tests need to be updated because the behaviour
has been changed / fixed:
https://github.com/multipath-tcp/packetdrill/pull/152
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
Matthieu Baerts (NGI0) (6):
mptcp: sched: check both directions for backup
mptcp: distinguish rcv vs sent backup flag in requests
mptcp: pm: only set request_bkup flag when sending MP_PRIO
mptcp: pm: fix backup support in signal endpoints
Squash to "selftests/bpf: Add bpf_bkup scheduler & test"
Squash to "selftests/bpf: Add bpf_burst scheduler & test"
include/trace/events/mptcp.h | 2 +-
net/mptcp/options.c | 2 +-
net/mptcp/pm.c | 9 ++++++---
net/mptcp/pm_netlink.c | 5 +++--
net/mptcp/pm_userspace.c | 6 ++++--
net/mptcp/protocol.c | 10 ++++++----
net/mptcp/protocol.h | 10 +++++++---
net/mptcp/subflow.c | 8 ++++++--
tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c | 3 ++-
tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c | 12 ++++++++----
tools/testing/selftests/net/mptcp/mptcp_join.sh | 19 ++++++++++++++++---
11 files changed, 60 insertions(+), 26 deletions(-)
---
base-commit: 3b378b48c0eb39df55dacebebb958187fd68d802
change-id: 20240711-mptcp-backup-mpj-2f8369fad366
Best regards,
--
Matthieu Baerts (NGI0) <matttbe@kernel.org>