[PATCH mptcp-next v6 00/11] BPF packet scheduler

Geliang Tang posted 11 patches 3 years, 3 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/cover.1654092153.git.geliang.tang@suse.com
Maintainers: Eric Dumazet <edumazet@google.com>, Mat Martineau <mathew.j.martineau@linux.intel.com>, Shuah Khan <shuah@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Song Liu <songliubraving@fb.com>, John Fastabend <john.fastabend@gmail.com>, Alexei Starovoitov <ast@kernel.org>, KP Singh <kpsingh@kernel.org>, Jakub Kicinski <kuba@kernel.org>, Andrii Nakryiko <andrii@kernel.org>, Matthieu Baerts <matthieu.baerts@tessares.net>, Yonghong Song <yhs@fb.com>, "David S. Miller" <davem@davemloft.net>, Martin KaFai Lau <kafai@fb.com>, Daniel Borkmann <daniel@iogearbox.net>
There is a newer version of this series
include/net/mptcp.h                           |  7 +-
net/mptcp/bpf.c                               | 34 ++++---
net/mptcp/protocol.h                          |  3 +
net/mptcp/sched.c                             | 60 ++++++++++---
tools/testing/selftests/bpf/bpf_tcp_helpers.h | 17 +++-
.../testing/selftests/bpf/prog_tests/mptcp.c  | 89 ++++++++++++++++++-
.../selftests/bpf/progs/mptcp_bpf_bkup.c      | 43 +++++++++
.../selftests/bpf/progs/mptcp_bpf_first.c     |  5 +-
.../selftests/bpf/progs/mptcp_bpf_rr.c        | 46 ++++++++++
9 files changed, 272 insertions(+), 32 deletions(-)
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c
[PATCH mptcp-next v6 00/11] BPF packet scheduler
Posted by Geliang Tang 3 years, 3 months ago
v6:
 - fix the warning reported by kernel test robot:

>> net/mptcp/bpf.c:165:6: warning: no previous prototype for 'bpf_mptcp_subflow_set_scheduled' [-Wmissing-prototypes]
     165 | void bpf_mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 - rename bpf_mptcp_subflow_set_scheduled to mptcp_subflow_set_scheduled

v5:
 - add bpf_mptcp_subflow_set_scheduled helper.
 - drop padding bits before backup, use BPF_CORE_READ_BITFIELD_PROBED()
   instead.
 - The new patch "mptcp: add bpf set scheduled helper" should be inserted
   between the commits "mptcp: add bpf_mptcp_sched_ops" and
   "selftests/bpf: add bpf_first scheduler"

v4:
 - merge "mptcp: move is_scheduled into mptcp_subflow_context"
 - rename bpf_backup tp bpf_bkup
 - full patches of this series: https://github.com/geliangtang/mptcp_net-next

v3:
 - use new BPF scheduler API:
 - add backup scheduler
 - add round-robin scheduler
 - check bytes_sent of 'ss' output.

v2:
- Use new BPF scheduler API:
 unsigned long (*get_subflow)(const struct mptcp_sock *msk, bool reinject,
                              struct mptcp_sched_data *data);

Geliang Tang (11):
  Squash to "mptcp: add struct mptcp_sched_ops"
  Squash to "mptcp: add sched in mptcp_sock"
  Squash to "mptcp: add get_subflow wrappers"
  Squash to "mptcp: add bpf_mptcp_sched_ops"
  mptcp: add subflow_set_scheduled helper
  Squash to "selftests/bpf: add bpf_first scheduler"
  Squash to "selftests/bpf: add bpf_first test"
  selftests/bpf: add bpf_bkup scheduler
  selftests/bpf: add bpf_bkup test
  selftests/bpf: add bpf_rr scheduler
  selftests/bpf: add bpf_rr test

 include/net/mptcp.h                           |  7 +-
 net/mptcp/bpf.c                               | 34 ++++---
 net/mptcp/protocol.h                          |  3 +
 net/mptcp/sched.c                             | 60 ++++++++++---
 tools/testing/selftests/bpf/bpf_tcp_helpers.h | 17 +++-
 .../testing/selftests/bpf/prog_tests/mptcp.c  | 89 ++++++++++++++++++-
 .../selftests/bpf/progs/mptcp_bpf_bkup.c      | 43 +++++++++
 .../selftests/bpf/progs/mptcp_bpf_first.c     |  5 +-
 .../selftests/bpf/progs/mptcp_bpf_rr.c        | 46 ++++++++++
 9 files changed, 272 insertions(+), 32 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c
 create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c

-- 
2.34.1


Re: [PATCH mptcp-next v6 00/11] BPF packet scheduler
Posted by Mat Martineau 3 years, 3 months ago
On Wed, 1 Jun 2022, Geliang Tang wrote:

> v6:
> - fix the warning reported by kernel test robot:
>
>>> net/mptcp/bpf.c:165:6: warning: no previous prototype for 'bpf_mptcp_subflow_set_scheduled' [-Wmissing-prototypes]
>     165 | void bpf_mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow)
>         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> - rename bpf_mptcp_subflow_set_scheduled to mptcp_subflow_set_scheduled
>

I think these should be squashed/applied to the export branch. Any other 
fixes can be squashed later.

I have a minor change to suggest in patch 5, I'll reply to that 
separately.

- Mat

> v5:
> - add bpf_mptcp_subflow_set_scheduled helper.
> - drop padding bits before backup, use BPF_CORE_READ_BITFIELD_PROBED()
>   instead.
> - The new patch "mptcp: add bpf set scheduled helper" should be inserted
>   between the commits "mptcp: add bpf_mptcp_sched_ops" and
>   "selftests/bpf: add bpf_first scheduler"
>
> v4:
> - merge "mptcp: move is_scheduled into mptcp_subflow_context"
> - rename bpf_backup tp bpf_bkup
> - full patches of this series: https://github.com/geliangtang/mptcp_net-next
>
> v3:
> - use new BPF scheduler API:
> - add backup scheduler
> - add round-robin scheduler
> - check bytes_sent of 'ss' output.
>
> v2:
> - Use new BPF scheduler API:
> unsigned long (*get_subflow)(const struct mptcp_sock *msk, bool reinject,
>                              struct mptcp_sched_data *data);
>
> Geliang Tang (11):
>  Squash to "mptcp: add struct mptcp_sched_ops"
>  Squash to "mptcp: add sched in mptcp_sock"
>  Squash to "mptcp: add get_subflow wrappers"
>  Squash to "mptcp: add bpf_mptcp_sched_ops"
>  mptcp: add subflow_set_scheduled helper
>  Squash to "selftests/bpf: add bpf_first scheduler"
>  Squash to "selftests/bpf: add bpf_first test"
>  selftests/bpf: add bpf_bkup scheduler
>  selftests/bpf: add bpf_bkup test
>  selftests/bpf: add bpf_rr scheduler
>  selftests/bpf: add bpf_rr test
>
> include/net/mptcp.h                           |  7 +-
> net/mptcp/bpf.c                               | 34 ++++---
> net/mptcp/protocol.h                          |  3 +
> net/mptcp/sched.c                             | 60 ++++++++++---
> tools/testing/selftests/bpf/bpf_tcp_helpers.h | 17 +++-
> .../testing/selftests/bpf/prog_tests/mptcp.c  | 89 ++++++++++++++++++-
> .../selftests/bpf/progs/mptcp_bpf_bkup.c      | 43 +++++++++
> .../selftests/bpf/progs/mptcp_bpf_first.c     |  5 +-
> .../selftests/bpf/progs/mptcp_bpf_rr.c        | 46 ++++++++++
> 9 files changed, 272 insertions(+), 32 deletions(-)
> create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c
> create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c
>
> -- 
> 2.34.1
>
>
>

--
Mat Martineau
Intel