v14:
- export subflows number in patch 1, it will be used in redundant
scheduler.
- rebased on "update bpf patches on export branch" v2.
v13:
- add !msk->last_snd check in patch 2
- use ASSERT_OK_PTR instead of CHECK in patch 3
- base-commit: export/20220509T115202
v12:
- init ssk from data->contexts[0], instead of msk->first.
- cycle through all the subflows, instead of the first two.
v11:
- rename array to contexts.
- drop number of subflows in mptcp_sched_data.
- set unused array elements to NULL.
- add MPTCP_SUBFLOWS_MAX check in mptcp_sched_data_init.
v10:
- init subflows array in mptcp_sched_data_init.
- for (int i = 0; i < data->subflows; i++) is not allowed in BPF, using
this instead:
for (int i = 0; i < MPTCP_SUBFLOWS_MAX && i < data->subflows; i++)
- deponds on: "BPF packet scheduler" series v18.
v9:
- add subflows array in mptcp_sched_data
- deponds on: "BPF packet scheduler" series v17 +
Squash to "mptcp: add struct mptcp_sched_ops v17".
v8:
- use struct mptcp_sched_data.
- deponds on: "BPF packet scheduler" series v14.
v7:
- rename retrans to reinject.
- drop last_snd setting.
- deponds on: "BPF packet scheduler" series v13.
v6:
- set call_me_again flag.
- deponds on: "BPF packet scheduler" series v12.
v5:
- update patch 2, use temporary storage instead.
- update patch 3, use new helpers.
- deponds on: "BPF packet scheduler" series v11.
v4:
- add retrans argment for get_subflow()
v3:
- add last_snd write access.
- keep msk->last_snd setting in get_subflow().
- deponds on: "BPF packet scheduler" series v10.
v2:
- merge the squash-to patch.
- implement bpf_mptcp_get_subflows helper, instead of
bpf_mptcp_get_next_subflow.
- deponds on: "BPF packet scheduler v9".
This patchset implements round-robin scheduler using BPF. Address to
some commends for the RFC version:
https://patchwork.kernel.org/project/mptcp/cover/cover.1631011068.git.geliangtang@xiaomi.com/
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/75
Geliang Tang (3):
mptcp: add subflows array in sched data
selftests/bpf: add bpf_rr scheduler
selftests/bpf: add bpf_rr test
include/net/mptcp.h | 3 ++
net/mptcp/sched.c | 15 ++++++
tools/testing/selftests/bpf/bpf_tcp_helpers.h | 9 ++++
.../testing/selftests/bpf/prog_tests/mptcp.c | 38 +++++++++++++++
.../selftests/bpf/progs/mptcp_bpf_rr.c | 47 +++++++++++++++++++
5 files changed, 112 insertions(+)
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c
--
2.34.1