All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.