On Wed, 11 May 2022, Geliang Tang wrote:
> 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.
Thanks for those updates.
As we talked about in the meeting this week, I think it's still good to
revise this to be able to return multiple subflows (whether in a bitmap or
array) from the BPF scheduler function. That is more likely to be workable
with __mptcp_subflow_push_pending() and the way it chains to send on
different subflows with mptcp_subflow_delegate().
- Mat
>
> v1:
>
> Implements the redundant BPF MPTCP scheduler, which sends all packets
> redundantly on all available subflows.
>
> depends on:
> - BPF round-robin scheduler, v13
>
> Geliang Tang (5):
> Squash to "mptcp: add get_subflow wrappers"
> mptcp: add redundant subflows support
> mptcp: add call_again flag in mptcp_sched_ops
> selftests/bpf: add bpf_red scheduler
> selftests/bpf: add bpf_red test
>
> include/net/mptcp.h | 1 +
> net/mptcp/protocol.c | 64 ++++++++++++++-----
> net/mptcp/protocol.h | 4 +-
> net/mptcp/sched.c | 11 +++-
> .../testing/selftests/bpf/prog_tests/mptcp.c | 38 +++++++++++
> .../selftests/bpf/progs/mptcp_bpf_red.c | 54 ++++++++++++++++
> 6 files changed, 151 insertions(+), 21 deletions(-)
> create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c
>
> --
> 2.34.1
>
>
>
--
Mat Martineau
Intel