Stanislav Fomichev wrote:
> Currently, bpf_getsockopt and bpf_setsockopt helpers operate on the
> 'struct bpf_sock_ops' context in BPF_PROG_TYPE_SOCK_OPS program.
> Let's generalize them and make them available for 'struct bpf_sock_addr'.
> That way, in the future, we can allow those helpers in more places.
>
> As an example, let's expose those 'struct bpf_sock_addr' based helpers to
> BPF_CGROUP_INET{4,6}_CONNECT hooks. That way we can override CC before the
> connection is made.
>
> v3:
> * Expose custom helpers for bpf_sock_addr context instead of doing
> generic bpf_sock argument (as suggested by Daniel). Even with
> try_socket_lock that doesn't sleep we have a problem where context sk
> is already locked and socket lock is non-nestable.
>
> v2:
> * s/BPF_PROG_TYPE_CGROUP_SOCKOPT/BPF_PROG_TYPE_SOCK_OPS/
>
> Cc: John Fastabend <[email protected]>
> Cc: Martin KaFai Lau <[email protected]>
> Signed-off-by: Stanislav Fomichev <[email protected]>
> ---
To bad we had to fall back to ctx here.
Acked-by: John Fastabend <[email protected]>