net/mptcp/protocol.c | 242 ++++++++++++------ net/mptcp/protocol.h | 18 +- net/mptcp/sched.c | 67 +++++ .../testing/selftests/bpf/prog_tests/mptcp.c | 34 +++ .../selftests/bpf/progs/mptcp_bpf_red.c | 45 ++++ 5 files changed, 320 insertions(+), 86 deletions(-) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c
v20: - rebased on "Squash to "mptcp: refactor push_pending logic" v19" v19: - patch 1, use 'continue' instead of 'goto again'. v18: - some cleanups - update commit logs. 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 (7): mptcp: add scheduler wrappers 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 net/mptcp/protocol.c | 242 ++++++++++++------ net/mptcp/protocol.h | 18 +- net/mptcp/sched.c | 67 +++++ .../testing/selftests/bpf/prog_tests/mptcp.c | 34 +++ .../selftests/bpf/progs/mptcp_bpf_red.c | 45 ++++ 5 files changed, 320 insertions(+), 86 deletions(-) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c -- 2.35.3
On Wed, 16 Nov 2022, Geliang Tang wrote: > v20: > - rebased on "Squash to "mptcp: refactor push_pending logic" v19" > > v19: > - patch 1, use 'continue' instead of 'goto again'. > > v18: > - some cleanups > - update commit logs. > > v17: > - address to Mat's comments in v16 > - rebase to export/20221108T055508. > > v16: > - keep last_snd and snd_burst in struct mptcp_sock. I didn't notice this back in v16 - why has last_snd returned? At the end of the series, it still doesn't appear to do anything. Is it useful for some future feature? - Mat > - 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 (7): > mptcp: add scheduler wrappers > 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 > > net/mptcp/protocol.c | 242 ++++++++++++------ > net/mptcp/protocol.h | 18 +- > net/mptcp/sched.c | 67 +++++ > .../testing/selftests/bpf/prog_tests/mptcp.c | 34 +++ > .../selftests/bpf/progs/mptcp_bpf_red.c | 45 ++++ > 5 files changed, 320 insertions(+), 86 deletions(-) > create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c > > -- > 2.35.3 > > > -- Mat Martineau Intel
On Fri, Nov 18, 2022 at 01:42:48PM -0800, Mat Martineau wrote: > On Wed, 16 Nov 2022, Geliang Tang wrote: > > > v20: > > - rebased on "Squash to "mptcp: refactor push_pending logic" v19" > > > > v19: > > - patch 1, use 'continue' instead of 'goto again'. > > > > v18: > > - some cleanups > > - update commit logs. > > > > v17: > > - address to Mat's comments in v16 > > - rebase to export/20221108T055508. > > > > v16: > > - keep last_snd and snd_burst in struct mptcp_sock. > > I didn't notice this back in v16 - why has last_snd returned? At the end of > the series, it still doesn't appear to do anything. Is it useful for some > future feature? last_snd is now used for BPF round-robin packet scheduler in "selftests/bpf: Add bpf_rr scheduler". Thanks, -Geliang > > - Mat > > > - 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 (7): > > mptcp: add scheduler wrappers > > 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 > > > > net/mptcp/protocol.c | 242 ++++++++++++------ > > net/mptcp/protocol.h | 18 +- > > net/mptcp/sched.c | 67 +++++ > > .../testing/selftests/bpf/prog_tests/mptcp.c | 34 +++ > > .../selftests/bpf/progs/mptcp_bpf_red.c | 45 ++++ > > 5 files changed, 320 insertions(+), 86 deletions(-) > > create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c > > > > -- > > 2.35.3 > > > > > > > > -- > Mat Martineau > Intel
© 2016 - 2023 Red Hat, Inc.