All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH bpf-next v5 00/11] bpf: More sock_ops callbacks
@ 2018-01-09 21:06 Lawrence Brakmo
  2018-01-09 21:06 ` [PATCH bpf-next v5 01/11] bpf: Make SOCK_OPS_GET_TCP size independent Lawrence Brakmo
                   ` (10 more replies)
  0 siblings, 11 replies; 16+ messages in thread
From: Lawrence Brakmo @ 2018-01-09 21:06 UTC (permalink / raw)
  To: netdev
  Cc: Kernel Team, Blake Matheny, Alexei Starovoitov, Daniel Borkmann,
	Eric Dumazet, Neal Cardwell, Yuchung Cheng

This patchset adds support for:

- direct R or R/W access to many tcp_sock fields
- passing up to 4 arguments to sock_ops BPF functions
- tcp_sock field bpf_sock_ops_flags for controlling callbacks
- optionally calling sock_ops BPF program when RTO fires
- optionally calling sock_ops BPF program when packet is retransmitted
- optionally calling sock_ops BPF program when TCP state changes
- access to tclass and sk_txhash
- new selftest

v2: Fixed commit message 0/11. The commit is to "bpf-next" but the patch
    below used "bpf" and Patchwork didn't work correctly.
v3: Cleaned RTO callback as per  Yuchung's comment
    Added BPF enum for TCP states as per  Alexei's comment
v4: Fixed compile warnings related to detecting changes between TCP
    internal states and the BPF defined states.
v5: Fixed comment issues in some selftest files
    Fixed accesss issue with u64 fields in bpf_sock_ops struct

Signed-off-by: Lawrence Brakmo <brakmo@fb.com>

Consists of the following patches:
[PATCH bpf-next v5 01/11] bpf: Make SOCK_OPS_GET_TCP size independent
[PATCH bpf-next v5 02/11] bpf: Make SOCK_OPS_GET_TCP struct
[PATCH bpf-next v5 03/11] bpf: Add write access to tcp_sock and sock
[PATCH bpf-next v5 04/11] bpf: Support passing args to sock_ops bpf
[PATCH bpf-next v5 05/11] bpf: Adds field bpf_sock_ops_flags to
[PATCH bpf-next v5 06/11] bpf: Add sock_ops RTO callback
[PATCH bpf-next v5 07/11] bpf: Add support for reading sk_state and
[PATCH bpf-next v5 08/11] bpf: Add sock_ops R/W access to tclass &
[PATCH bpf-next v5 09/11] bpf: Add BPF_SOCK_OPS_RETRANS_CB
[PATCH bpf-next v5 10/11] bpf: Add BPF_SOCK_OPS_STATE_CB
[PATCH bpf-next v5 11/11] bpf: add selftest for tcpbpf

 include/linux/filter.h                         |   4 +
 include/linux/tcp.h                            |   8 +
 include/net/tcp.h                              |  66 ++++++++-
 include/uapi/linux/bpf.h                       |  61 +++++++-
 include/uapi/linux/tcp.h                       |   5 +
 net/core/filter.c                              | 254 +++++++++++++++++++++++++++++---
 net/ipv4/tcp.c                                 |  26 +++-
 net/ipv4/tcp_nv.c                              |   2 +-
 net/ipv4/tcp_output.c                          |   5 +-
 net/ipv4/tcp_timer.c                           |   7 +
 tools/include/uapi/linux/bpf.h                 |  70 ++++++++-
 tools/testing/selftests/bpf/Makefile           |   5 +-
 tools/testing/selftests/bpf/tcp_client.py      |  52 +++++++
 tools/testing/selftests/bpf/tcp_server.py      |  79 ++++++++++
 tools/testing/selftests/bpf/test_tcpbpf.h      |  14 ++
 tools/testing/selftests/bpf/test_tcpbpf_kern.c | 109 ++++++++++++++
 tools/testing/selftests/bpf/test_tcpbpf_user.c | 103 +++++++++++++
 17 files changed, 833 insertions(+), 37 deletions(-)

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

end of thread, other threads:[~2018-01-10  0:32 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-09 21:06 [PATCH bpf-next v5 00/11] bpf: More sock_ops callbacks Lawrence Brakmo
2018-01-09 21:06 ` [PATCH bpf-next v5 01/11] bpf: Make SOCK_OPS_GET_TCP size independent Lawrence Brakmo
2018-01-09 21:06 ` [PATCH bpf-next v5 02/11] bpf: Make SOCK_OPS_GET_TCP struct independent Lawrence Brakmo
2018-01-09 21:06 ` [PATCH bpf-next v5 03/11] bpf: Add write access to tcp_sock and sock fields Lawrence Brakmo
2018-01-09 23:21   ` Eric Dumazet
2018-01-09 23:41     ` Lawrence Brakmo
2018-01-09 21:06 ` [PATCH bpf-next v5 04/11] bpf: Support passing args to sock_ops bpf function Lawrence Brakmo
2018-01-09 21:06 ` [PATCH bpf-next v5 05/11] bpf: Adds field bpf_sock_ops_flags to tcp_sock Lawrence Brakmo
2018-01-09 23:30   ` Eric Dumazet
2018-01-10  0:31     ` Lawrence Brakmo
2018-01-09 21:06 ` [PATCH bpf-next v5 06/11] bpf: Add sock_ops RTO callback Lawrence Brakmo
2018-01-09 21:07 ` [PATCH bpf-next v5 07/11] bpf: Add support for reading sk_state and more Lawrence Brakmo
2018-01-09 21:07 ` [PATCH bpf-next v5 08/11] bpf: Add sock_ops R/W access to tclass & sk_txhash Lawrence Brakmo
2018-01-09 21:07 ` [PATCH bpf-next v5 09/11] bpf: Add BPF_SOCK_OPS_RETRANS_CB Lawrence Brakmo
2018-01-09 21:07 ` [PATCH bpf-next v5 10/11] bpf: Add BPF_SOCK_OPS_STATE_CB Lawrence Brakmo
2018-01-09 21:07 ` [PATCH bpf-next v5 11/11] bpf: add selftest for tcpbpf Lawrence Brakmo

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.