Stanislav Fomichev <sdf@xxxxxxxxxx> [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 <rdna@xxxxxx> > Reviewed-by: Martin KaFai Lau <kafai@xxxxxx> > Signed-off-by: Stanislav Fomichev <sdf@xxxxxxxxxx> Thanks for cleaning up the flags workflow, incl. BPF_RET_SET_CN. This is more readable indeed. -- Andrey Ignatov