On Tue, Jul 28, 2020 at 5:31 PM Stanislav Fomichev <sdf@xxxxxxxxxx> wrote: > > This lets us use socket storage from the following hooks: > * BPF_CGROUP_INET_SOCK_CREATE > * BPF_CGROUP_INET_SOCK_RELEASE > * BPF_CGROUP_INET4_POST_BIND > * BPF_CGROUP_INET6_POST_BIND > > Using existing 'bpf_sk_storage_get_proto' doesn't work because > second argument is ARG_PTR_TO_SOCKET. Even though > BPF_PROG_TYPE_CGROUP_SOCK hooks operate on 'struct bpf_sock', > the verifier still considers it as a PTR_TO_CTX. > That's why I'm adding another 'bpf_sk_storage_get_cg_sock_proto' > definition strictly for BPF_PROG_TYPE_CGROUP_SOCK which accepts > ARG_PTR_TO_CTX which is really 'struct sock' for this program type. > > Cc: Martin KaFai Lau <kafai@xxxxxx> > Signed-off-by: Stanislav Fomichev <sdf@xxxxxxxxxx> Acked-by: Song Liu <songliubraving@xxxxxx>