diff options
author | Martin KaFai Lau <kafai@fb.com> | 2022-08-17 09:18:26 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2022-08-19 03:06:13 +0300 |
commit | ee7f1e1302f5cb29168f70827c12855f1d8c9845 (patch) | |
tree | 39f161413d5ef2e5ceec659d5d8b9bdc76cdfaed /include/net/ipv6_stubs.h | |
parent | 0c751f7071ef98d334ed06ca3f8f4cc1f7458cf5 (diff) | |
download | linux-ee7f1e1302f5cb29168f70827c12855f1d8c9845.tar.xz |
bpf: Change bpf_setsockopt(SOL_IP) to reuse do_ip_setsockopt()
After the prep work in the previous patches,
this patch removes the dup code from bpf_setsockopt(SOL_IP)
and reuses the implementation in do_ip_setsockopt().
The existing optname white-list is refactored into a new
function sol_ip_setsockopt().
NOTE,
the current bpf_setsockopt(IP_TOS) is quite different from the
the do_ip_setsockopt(IP_TOS). For example, it does not take
the INET_ECN_MASK into the account for tcp and also does not adjust
sk->sk_priority. It looks like the current bpf_setsockopt(IP_TOS)
was referencing the IPV6_TCLASS implementation instead of IP_TOS.
This patch tries to rectify that by using the do_ip_setsockopt(IP_TOS).
While this is a behavior change, the do_ip_setsockopt(IP_TOS) behavior
is arguably what the user is expecting. At least, the INET_ECN_MASK bits
should be masked out for tcp.
Reviewed-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/r/20220817061826.4180990-1-kafai@fb.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'include/net/ipv6_stubs.h')
0 files changed, 0 insertions, 0 deletions