On Mon, Aug 3, 2020 at 4:10 PM Martin KaFai Lau <kafai@xxxxxx> wrote: > > The patch adds a function bpf_skops_parse_hdr(). > It will call the bpf prog to parse the TCP header received at > a tcp_sock that has at least reached the ESTABLISHED state. > > For the packets received during the 3WHS (SYN, SYNACK and ACK), > the received skb will be available to the bpf prog during the callback > in bpf_skops_established() introduced in the previous patch and > in the bpf_skops_write_hdr_opt() that will be added in the > next patch. > > Calling bpf prog to parse header is controlled by two new flags in > tp->bpf_sock_ops_cb_flags: > BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG and > BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG. > > When BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG is set, > the bpf prog will only be called when there is unknown > option in the TCP header. > > When BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG is set, > the bpf prog will be called on all received TCP header. > > This function is half implemented to highlight the changes in > TCP stack. The actual codes preparing the bpf running context and > invoking the bpf prog will be added in the later patch with other > necessary bpf pieces. > > Signed-off-by: Martin KaFai Lau <kafai@xxxxxx> Reviewed-by: Eric Dumazet <edumazet@xxxxxxxxxx>