Date: Wed, 29 Apr 2020 09:53:39 -0700 From: Stanislav Fomichev <sdf@xxxxxxxxxx> To: Martin KaFai Lau <kafai@xxxxxx> Cc: netdev@xxxxxxxxxxxxxxx, bpf@xxxxxxxxxxxxxxx, davem@xxxxxxxxxxxxx, ast@xxxxxxxxxx, daniel@xxxxxxxxxxxxx Subject: Re: [PATCH bpf-next] bpf: bpf_{g,s}etsockopt for struct bpf_sock Message-ID: <20200429165339.GA40941@xxxxxxxxxx> References: <20200428185719.46815-1-sdf@xxxxxxxxxx> <20200429164550.xmlklvypzlcjagvw@kafai-mbp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200429164550.xmlklvypzlcjagvw@kafai-mbp> On 04/29, Martin KaFai Lau wrote:
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.
Oops, good catch, will follow up with a v2, thanks!
> 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>