• Lawrence Brakmo's avatar
    bpf: Add BPF_SOCK_OPS_STATE_CB · d4487491
    Lawrence Brakmo authored
    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: default avatarLawrence Brakmo <brakmo@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    d4487491
tcp.c 94.7 KB