From: Geliang Tang <geliang.tang@suse.com>
To: mptcp@lists.linux.dev
Cc: Geliang Tang <geliang.tang@suse.com>
Subject: [PATCH mptcp-next v17 00/15] BPF redundant scheduler
Date: Tue, 8 Nov 2022 14:44:59 +0800 [thread overview]
Message-ID: <cover.1667889809.git.geliang.tang@suse.com> (raw)
v17:
- address to Mat's comments in v16
- rebase to export/20221108T055508.
v16:
- keep last_snd and snd_burst in struct mptcp_sock.
- drop "mptcp: register default scheduler".
- drop "mptcp: add scheduler wrappers", move it into "mptcp: use
get_send wrapper" and "mptcp: use get_retrans wrapper".
- depends on 'v2, Revert "mptcp: add get_subflow wrappers" - fix
divide error in mptcp_subflow_get_send'
v15:
1: "refactor push pending" v10
2-11: "register default scheduler" v3
- move last_snd and snd_burst into struct mptcp_sched_ops
12-19: "BPF redundant scheduler" v15
- split "use get_send wrapper" into two patches
- rebase to export/20221021T061837.
v14:
- add "mptcp: refactor push_pending logic" v10 as patch 1
- drop update_first_pending in patch 4
- drop update_already_sent in patch 5
v13:
- deponds on "refactor push pending" v9.
- Simply 'goto out' after invoking mptcp_subflow_delegate in patch 1.
- All selftests (mptcp_connect.sh, mptcp_join.sh and simult_flows.sh) passed.
v12:
- fix WARN_ON_ONCE(reuse_skb) and WARN_ON_ONCE(!msk->recovery) errors
in kernel logs.
v11:
- address to Mat's comments in v10.
- rebase to export/20220908T063452
v10:
- send multiple dfrags in __mptcp_push_pending().
v9:
- drop the extra *err paramenter of mptcp_sched_get_send() as Florian
suggested.
v8:
- update __mptcp_push_pending(), send the same data on each subflow.
- update __mptcp_retrans, track the max sent data.
= add a new patch.
v7:
- drop redundant flag in v6
- drop __mptcp_subflows_push_pending in v6
- update redundant subflows support in __mptcp_push_pending
- update redundant subflows support in __mptcp_retrans
v6:
- Add redundant flag for struct mptcp_sched_ops.
- add a dedicated function __mptcp_subflows_push_pending() to deal with
redundat subflows push pending.
v5:
- address to Paolo's comment, keep the optimization to
mptcp_subflow_get_send() for the non eBPF case.
- merge mptcp_sched_get_send() and __mptcp_sched_get_send() in v4 into one.
- depends on "cleanups for bpf sched selftests".
v4:
- small cleanups in patch 1, 2.
- add TODO in patch 3.
- rebase patch 5 on 'cleanups for bpf sched selftests'.
v3:
- use new API.
- fix the link failure tests issue mentioned in ("https://patchwork.kernel.org/project/mptcp/cover/cover.1653033459.git.geliang.tang@suse.com/").
v2:
- add MPTCP_SUBFLOWS_MAX limit to avoid infinite loops when the
scheduler always sets call_again to true.
- track the largest copied amount.
- deal with __mptcp_subflow_push_pending() and the retransmit loop.
- depends on "BPF round-robin scheduler" v14.
v1:
Implements the redundant BPF MPTCP scheduler, which sends all packets
redundantly on all available subflows.
Geliang Tang (15):
mptcp: refactor push_pending logic
mptcp: drop last_snd and MPTCP_RESET_SCHEDULER
mptcp: add sched_data_set_contexts helper
Squash to "mptcp: add struct mptcp_sched_ops"
Squash to "bpf: Add bpf_mptcp_sched_ops"
Squash to "bpf: Add bpf_mptcp_sched_kfunc_set"
Squash to "selftests/bpf: Add bpf_first scheduler"
Squash to "selftests/bpf: Add bpf_bkup scheduler"
Squash to "selftests/bpf: Add bpf_rr scheduler"
mptcp: use get_send wrapper
mptcp: use get_retrans wrapper
mptcp: delay updating first_pending
mptcp: delay updating already_sent
selftests/bpf: Add bpf_red scheduler
selftests/bpf: Add bpf_red test
include/net/mptcp.h | 6 +-
net/mptcp/bpf.c | 1 +
net/mptcp/pm.c | 9 +-
net/mptcp/pm_netlink.c | 3 -
net/mptcp/protocol.c | 333 +++++++++++-------
net/mptcp/protocol.h | 19 +-
net/mptcp/sched.c | 88 ++++-
tools/testing/selftests/bpf/bpf_tcp_helpers.h | 8 +-
.../testing/selftests/bpf/prog_tests/mptcp.c | 34 ++
.../selftests/bpf/progs/mptcp_bpf_bkup.c | 10 +-
.../selftests/bpf/progs/mptcp_bpf_first.c | 10 +-
.../selftests/bpf/progs/mptcp_bpf_red.c | 45 +++
.../selftests/bpf/progs/mptcp_bpf_rr.c | 10 +-
13 files changed, 433 insertions(+), 143 deletions(-)
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c
--
2.35.3
next reply other threads:[~2022-11-08 6:45 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-08 6:44 Geliang Tang [this message]
2022-11-08 6:45 ` [PATCH mptcp-next v17 01/15] mptcp: refactor push_pending logic Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 02/15] mptcp: drop last_snd and MPTCP_RESET_SCHEDULER Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 03/15] mptcp: add sched_data_set_contexts helper Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 04/15] Squash to "mptcp: add struct mptcp_sched_ops" Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 05/15] Squash to "bpf: Add bpf_mptcp_sched_ops" Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 06/15] Squash to "bpf: Add bpf_mptcp_sched_kfunc_set" Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 07/15] Squash to "selftests/bpf: Add bpf_first scheduler" Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 08/15] Squash to "selftests/bpf: Add bpf_bkup scheduler" Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 09/15] Squash to "selftests/bpf: Add bpf_rr scheduler" Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 10/15] mptcp: use get_send wrapper Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 11/15] mptcp: use get_retrans wrapper Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 12/15] mptcp: delay updating first_pending Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 13/15] mptcp: delay updating already_sent Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 14/15] selftests/bpf: Add bpf_red scheduler Geliang Tang
2022-11-08 6:45 ` [PATCH mptcp-next v17 15/15] selftests/bpf: Add bpf_red test Geliang Tang
2022-11-08 7:13 ` selftests/bpf: Add bpf_red test: Build Failure MPTCP CI
2022-11-08 8:28 ` selftests/bpf: Add bpf_red test: Tests Results MPTCP CI
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.1667889809.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.