On Tue, 2018-01-23 at 23:57 -0800, Lawrence Brakmo wrote: > 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_cb_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 > v6: Made fixes based on comments form Eric Dumazet: > The field bpf_sock_ops_cb_flags was addded in a hole on 64bit kernels > Field bpf_sock_ops_cb_flags is now set through a helper function > which returns an error when a BPF program tries to set bits for > callbacks that are not supported in the current kernel. > Added a comment indicating that when adding fields to bpf_sock_ops_kern > they should be added before the field named "temp" if they need to be > cleared before calling the BPF function. > v7: Enfornced fields "op" and "replylong[1] .. replylong[3]" not be writable > based on comments form Eric Dumazet and Alexei Starovoitov. > Filled 32 bit hole in bpf_sock_ops struct with sk_txhash based on > comments from Daniel Borkmann. > Removed unused functions (tcp_call_bpf_1arg, tcp_call_bpf_4arg) based > on comments from Daniel Borkmann.
Please independently lets fix the congestion control bug before pushing more stuff. Fix needs to be backported to 4.13, so would target net tree. Fixes: 91b5b21c7c16 ("bpf: Add support for changing congestion control") Then your new functionalities can target net-next By mixing all the stuff, you make stable trees maintainer life more difficult than needed. Thanks.