On 10/17/19 8:00 AM, Carlos Neira wrote: > sync tools/include/uapi/linux/bpf.h to include new helper. > > Signed-off-by: Carlos Neira <cneirabustos@xxxxxxxxx> > --- > tools/include/uapi/linux/bpf.h | 20 +++++++++++++++++++- > 1 file changed, 19 insertions(+), 1 deletion(-) > > diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h > index a65c3b0c6935..a17583ae9aa3 100644 > --- a/tools/include/uapi/linux/bpf.h > +++ b/tools/include/uapi/linux/bpf.h > @@ -2750,6 +2750,19 @@ union bpf_attr { > * **-EOPNOTSUPP** kernel configuration does not enable SYN cookies > * > * **-EPROTONOSUPPORT** IP packet version is not 4 or 6 > + * > + * u64 bpf_get_ns_current_pid_tgid(u64 dev, u64 ino, struct bpf_pidns_info *nsdata, u32 size) > + * Description > + * Returns 0 on success, values for *pid* and *tgid* as seen from the current > + * *namespace* will be returned in *nsdata*. > + * > + * On failure, the returned value is one of the following: > + * > + * **-EINVAL** if dev and inum supplied don't match dev_t and inode number > + * with nsfs of current task, or if dev conversion to dev_t lost high bits. > + * > + * **-ENOENT** if /proc/self/ns does not exists. The same return type and description changes as suggested in my previous comment. > + * > */ > #define __BPF_FUNC_MAPPER(FN) \ > FN(unspec), \ > @@ -2862,7 +2875,8 @@ union bpf_attr { > FN(sk_storage_get), \ > FN(sk_storage_delete), \ > FN(send_signal), \ > - FN(tcp_gen_syncookie), > + FN(tcp_gen_syncookie), \ > + FN(get_ns_current_pid_tgid), > > /* integer value in 'imm' field of BPF_CALL instruction selects which helper > * function eBPF program intends to call > @@ -3613,4 +3627,8 @@ struct bpf_sockopt { > __s32 retval; > }; > > +struct bpf_pidns_info { > + __u32 pid; > + __u32 tgid; > +}; > #endif /* _UAPI__LINUX_BPF_H__ */ >