netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next 0/9] bpf: Network Resource Manager (NRM)
@ 2019-02-19  5:38 brakmo
  2019-02-19 10:13 ` Daniel Borkmann
  0 siblings, 1 reply; 2+ messages in thread
From: brakmo @ 2019-02-19  5:38 UTC (permalink / raw)
  To: netdev; +Cc: Martin Lau, Alexei Starovoitov, Daniel Borkmann --cc=Kernel Team

Network Resource Manager is a framework for limiting the bandwidth used
by v2 cgroups. It consists of 4 BPF helpers and a sample BPF program to
limit egress bandwdith as well as a sample user program and script to
simplify NRM testing.

The sample NRM BPF program is not meant to be production quality, it is
provided as proof of concept. A lot more information, including sample
runs in some cases, are provided in the commit messages of the individual
patches.

Two more BPF programs, one to limit ingress and one that limits egress
and uses fq's Earliest Departure Time feature, will be provided in an
upcomming patchset.

brakmo (9):
  bpf: Add bpf helper bpf_tcp_enter_cwr
  bpf: Test bpf_tcp_enter_cwr in test_verifier
  bpf: add bpf helper bpf_skb_set_ecn
  bpf: Add bpf helper bpf_tcp_check_probe_timer
  bpf: sync bpf.h to tools and update bpf_helpers.h
  bpf: Sample program to load cg skb BPF programs
  bpf: Sample NRM BPF program to limit egress bw
  bpf: User program for testing NRM
  bpf: NRM test script

 include/linux/bpf.h                         |   1 +
 include/uapi/linux/bpf.h                    |  27 +-
 kernel/bpf/verifier.c                       |   4 +
 net/core/filter.c                           |  70 ++++
 samples/bpf/Makefile                        |   7 +
 samples/bpf/do_nrm_test.sh                  | 429 +++++++++++++++++++
 samples/bpf/load_cg_skb.c                   | 109 +++++
 samples/bpf/nrm.c                           | 439 ++++++++++++++++++++
 samples/bpf/nrm.h                           |  31 ++
 samples/bpf/nrm_kern.h                      | 109 +++++
 samples/bpf/nrm_out_kern.c                  | 213 ++++++++++
 tools/include/uapi/linux/bpf.h              |  27 +-
 tools/testing/selftests/bpf/bpf_helpers.h   |   6 +
 tools/testing/selftests/bpf/verifier/sock.c |  33 ++
 14 files changed, 1503 insertions(+), 2 deletions(-)
 create mode 100755 samples/bpf/do_nrm_test.sh
 create mode 100644 samples/bpf/load_cg_skb.c
 create mode 100644 samples/bpf/nrm.c
 create mode 100644 samples/bpf/nrm.h
 create mode 100644 samples/bpf/nrm_kern.h
 create mode 100644 samples/bpf/nrm_out_kern.c

-- 
2.17.1


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

* Re: [PATCH bpf-next 0/9] bpf: Network Resource Manager (NRM)
  2019-02-19  5:38 [PATCH bpf-next 0/9] bpf: Network Resource Manager (NRM) brakmo
@ 2019-02-19 10:13 ` Daniel Borkmann
  0 siblings, 0 replies; 2+ messages in thread
From: Daniel Borkmann @ 2019-02-19 10:13 UTC (permalink / raw)
  To: brakmo
  Cc: netdev, Martin Lau, Alexei Starovoitov, Daniel Borkmann, edumazet,
	ycheng, ncardwell

On 02/19/2019 06:38 AM, brakmo wrote:
> Network Resource Manager is a framework for limiting the bandwidth used
> by v2 cgroups. It consists of 4 BPF helpers and a sample BPF program to
> limit egress bandwdith as well as a sample user program and script to
> simplify NRM testing.
> 
> The sample NRM BPF program is not meant to be production quality, it is
> provided as proof of concept. A lot more information, including sample
> runs in some cases, are provided in the commit messages of the individual
> patches.
> 
> Two more BPF programs, one to limit ingress and one that limits egress
> and uses fq's Earliest Departure Time feature, will be provided in an
> upcomming patchset.
> 
> brakmo (9):
>   bpf: Add bpf helper bpf_tcp_enter_cwr
>   bpf: Test bpf_tcp_enter_cwr in test_verifier
>   bpf: add bpf helper bpf_skb_set_ecn
>   bpf: Add bpf helper bpf_tcp_check_probe_timer
>   bpf: sync bpf.h to tools and update bpf_helpers.h
>   bpf: Sample program to load cg skb BPF programs
>   bpf: Sample NRM BPF program to limit egress bw
>   bpf: User program for testing NRM
>   bpf: NRM test script
> 
>  include/linux/bpf.h                         |   1 +
>  include/uapi/linux/bpf.h                    |  27 +-
>  kernel/bpf/verifier.c                       |   4 +
>  net/core/filter.c                           |  70 ++++
>  samples/bpf/Makefile                        |   7 +
>  samples/bpf/do_nrm_test.sh                  | 429 +++++++++++++++++++
>  samples/bpf/load_cg_skb.c                   | 109 +++++
>  samples/bpf/nrm.c                           | 439 ++++++++++++++++++++
>  samples/bpf/nrm.h                           |  31 ++
>  samples/bpf/nrm_kern.h                      | 109 +++++
>  samples/bpf/nrm_out_kern.c                  | 213 ++++++++++
>  tools/include/uapi/linux/bpf.h              |  27 +-
>  tools/testing/selftests/bpf/bpf_helpers.h   |   6 +
>  tools/testing/selftests/bpf/verifier/sock.c |  33 ++
>  14 files changed, 1503 insertions(+), 2 deletions(-)
>  create mode 100755 samples/bpf/do_nrm_test.sh
>  create mode 100644 samples/bpf/load_cg_skb.c
>  create mode 100644 samples/bpf/nrm.c
>  create mode 100644 samples/bpf/nrm.h
>  create mode 100644 samples/bpf/nrm_kern.h
>  create mode 100644 samples/bpf/nrm_out_kern.c

Looks okay to me modulo few minor comments, but lets also Cc TCP maintainers
to given them a chance to comment/ACK helper functions.

Thanks,
Daniel

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

end of thread, other threads:[~2019-02-19 10:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-19  5:38 [PATCH bpf-next 0/9] bpf: Network Resource Manager (NRM) brakmo
2019-02-19 10:13 ` Daniel Borkmann

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).