mptcp.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH mptcp-next v15 00/19] BPF redundant scheduler
@ 2022-10-21 10:59 Geliang Tang
  2022-10-21 10:59 ` [PATCH mptcp-next v15 01/19] mptcp: refactor push_pending logic Geliang Tang
                   ` (18 more replies)
  0 siblings, 19 replies; 24+ messages in thread
From: Geliang Tang @ 2022-10-21 10:59 UTC (permalink / raw)
  To: mptcp; +Cc: Geliang Tang

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


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2022-10-26  0:21 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-21 10:59 [PATCH mptcp-next v15 00/19] BPF redundant scheduler Geliang Tang
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).