On Tue, Apr 28, 2020 at 11:57:19AM -0700, Stanislav Fomichev wrote: > Currently, bpf_getsocktop and bpf_setsockopt helpers operate on the > 'struct bpf_sock_ops' context in BPF_PROG_TYPE_CGROUP_SOCKOPT program. > Let's generalize them and make the first argument be 'struct bpf_sock'. > That way, in the future, we can allow those helpers in more places. s/BPF_PROG_TYPE_CGROUP_SOCKOPT/BPF_PROG_TYPE_SOCK_OPS/ Same for the other uses in the commit message and also the document comment in the uapi (and tools) bpf.h. Others LGTM. > > BPF_PROG_TYPE_CGROUP_SOCKOPT still has the existing helpers that operate > on 'struct bpf_sock_ops', but we add new bpf_{g,s}etsockopt that work > on 'struct bpf_sock'. [Alternatively, for BPF_PROG_TYPE_CGROUP_SOCKOPT, > we can enable them both and teach verifier to pick the right one > based on the context (bpf_sock_ops vs bpf_sock).] > > As an example, let's allow those 'struct bpf_sock' based helpers to > be called from the BPF_CGROUP_INET{4,6}_CONNECT hooks. That way > we can override CC before the connection is made. > > Signed-off-by: Stanislav Fomichev <sdf@xxxxxxxxxx>