bpf: Add BPF_SOCK_OPS_STATE_CB
authorLawrence Brakmo <brakmo@fb.com>
Fri, 26 Jan 2018 00:14:15 +0000 (16:14 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 26 Jan 2018 00:41:15 +0000 (16:41 -0800)
commitd44874910a26f3a8f81edf873a2473363f07f660
tree97438bbc5e9bf77f0cf2bd7f4d8f6eb8f651c605
parenta31ad29e6a30cb0b9084a9425b819cdcd97273ce
bpf: Add BPF_SOCK_OPS_STATE_CB

Adds support for calling sock_ops BPF program when there is a TCP state
change. Two arguments are used; one for the old state and another for
the new state.

There is a new enum in include/uapi/linux/bpf.h that exports the TCP
states that prepends BPF_ to the current TCP state names. If it is ever
necessary to change the internal TCP state values (other than adding
more to the end), then it will become necessary to convert from the
internal TCP state value to the BPF value before calling the BPF
sock_ops function. There are a set of compile checks added in tcp.c
to detect if the internal and BPF values differ so we can make the
necessary fixes.

New op: BPF_SOCK_OPS_STATE_CB.

Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/uapi/linux/bpf.h
net/ipv4/tcp.c