From: Geliang Tang <geliang.tang@suse.com>
To: mptcp@lists.linux.dev
Cc: Geliang Tang <geliang.tang@suse.com>
Subject: [PATCH mptcp-next v15 00/19] BPF redundant scheduler
Date: Fri, 21 Oct 2022 18:59:52 +0800 [thread overview]
Message-ID: <cover.1666349129.git.geliang.tang@suse.com> (raw)
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 (19):
mptcp: refactor push_pending logic
Squash to "mptcp: add struct mptcp_sched_ops"
mptcp: move last_snd into mptcp_sched_ops
mptcp: move snd_burst into mptcp_sched_ops
Squash to "mptcp: add get_subflow wrappers"
mptcp: add sched_data_set_contexts helper
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: add scheduler wrappers
mptcp: use get_send wrapper in mptcp_push_pending
mptcp: use get_send in mptcp_subflow_push_pending
mptcp: use get_retrans wrapper in mptcp_retrans
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 | 11 +-
net/mptcp/bpf.c | 1 +
net/mptcp/pm.c | 9 +-
net/mptcp/pm_netlink.c | 3 -
net/mptcp/protocol.c | 345 ++++++++++++------
net/mptcp/protocol.h | 20 +-
net/mptcp/sched.c | 62 ++--
tools/testing/selftests/bpf/bpf_tcp_helpers.h | 15 +-
.../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 | 14 +-
13 files changed, 399 insertions(+), 180 deletions(-)
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c
--
2.35.3
next reply other threads:[~2022-10-21 11:00 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-21 10:59 Geliang Tang [this message]
2022-10-21 10:59 ` [PATCH mptcp-next v15 01/19] mptcp: refactor push_pending logic Geliang Tang
2022-10-21 10:59 ` [PATCH mptcp-next v15 02/19] Squash to "mptcp: add struct mptcp_sched_ops" Geliang Tang
2022-10-21 10:59 ` [PATCH mptcp-next v15 03/19] mptcp: move last_snd into mptcp_sched_ops Geliang Tang
2022-10-26 0:21 ` Mat Martineau
2022-10-21 10:59 ` [PATCH mptcp-next v15 04/19] mptcp: move snd_burst " Geliang Tang
2022-10-21 10:59 ` [PATCH mptcp-next v15 05/19] Squash to "mptcp: add get_subflow wrappers" Geliang Tang
2022-10-21 10:59 ` [PATCH mptcp-next v15 06/19] mptcp: add sched_data_set_contexts helper Geliang Tang
2022-10-21 10:59 ` [PATCH mptcp-next v15 07/19] Squash to "bpf: Add bpf_mptcp_sched_ops" Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 08/19] Squash to "bpf: Add bpf_mptcp_sched_kfunc_set" Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 09/19] Squash to "selftests/bpf: Add bpf_first scheduler" Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 10/19] Squash to "selftests/bpf: Add bpf_bkup scheduler" Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 11/19] Squash to "selftests/bpf: Add bpf_rr scheduler" Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 12/19] mptcp: add scheduler wrappers Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 13/19] mptcp: use get_send wrapper in mptcp_push_pending Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 14/19] mptcp: use get_send in mptcp_subflow_push_pending Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 15/19] mptcp: use get_retrans wrapper in mptcp_retrans Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 16/19] mptcp: delay updating first_pending Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 17/19] mptcp: delay updating already_sent Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 18/19] selftests/bpf: Add bpf_red scheduler Geliang Tang
2022-10-21 11:00 ` [PATCH mptcp-next v15 19/19] selftests/bpf: Add bpf_red test Geliang Tang
2022-10-21 11:33 ` selftests/bpf: Add bpf_red test: Build Failure MPTCP CI
2022-10-21 13:08 ` selftests/bpf: Add bpf_red test: Tests Results MPTCP CI
2022-10-22 12:56 ` [PATCH mptcp-next v15 19/19] selftests/bpf: Add bpf_red test Geliang Tang
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.1666349129.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox