Stanislav Fomichev <s...@google.com> [Wed, 2021-01-27 11:32 -0800]:
> At the moment, BPF_CGROUP_INET{4,6}_BIND hooks can rewrite user_port
> to the privileged ones (< ip_unprivileged_port_start), but it will
> be rejected later on in the __inet_bind or __inet6_bind.
> 
> Let's add another return value to indicate that CAP_NET_BIND_SERVICE
> check should be ignored. Use the same idea as we currently use
> in cgroup/egress where bit #1 indicates CN. Instead, for
> cgroup/bind{4,6}, bit #1 indicates that CAP_NET_BIND_SERVICE should
> be bypassed.
> 
> v5:
> - rename flags to be less confusing (Andrey Ignatov)
> - rework BPF_PROG_CGROUP_INET_EGRESS_RUN_ARRAY to work on flags
>   and accept BPF_RET_SET_CN (no behavioral changes)
> 
> v4:
> - Add missing IPv6 support (Martin KaFai Lau)
> 
> v3:
> - Update description (Martin KaFai Lau)
> - Fix capability restore in selftest (Martin KaFai Lau)
> 
> v2:
> - Switch to explicit return code (Martin KaFai Lau)
> 
> Acked-by: Andrey Ignatov <r...@fb.com>
> Reviewed-by: Martin KaFai Lau <ka...@fb.com>
> Signed-off-by: Stanislav Fomichev <s...@google.com>

Thanks for cleaning up the flags workflow, incl. BPF_RET_SET_CN. This is
more readable indeed.

-- 
Andrey Ignatov

Reply via email to