Message ID | 20191022191751.3780-4-cneirabustos@gmail.com |
---|---|
State | Not Applicable |
Delegated to: | BPF Maintainers |
Headers | show |
Series | BPF: New helper to obtain namespace data from current task | expand |
On 10/22/19 12:17 PM, Carlos Neira wrote: > sync tools/include/uapi/linux/bpf.h to include new helper. > > Signed-off-by: Carlos Neira <cneirabustos@gmail.com> Acked-by: Yonghong Song <yhs@fb.com> > --- > 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 4af8b0819a32..4c3e0b0952e6 100644 > --- a/tools/include/uapi/linux/bpf.h > +++ b/tools/include/uapi/linux/bpf.h > @@ -2775,6 +2775,19 @@ union bpf_attr { > * restricted to raw_tracepoint bpf programs. > * Return > * 0 on success, or a negative error in case of failure. > + * > + * int 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 pidns does not exists for the current task. > + * > */ > #define __BPF_FUNC_MAPPER(FN) \ > FN(unspec), \ > @@ -2888,7 +2901,8 @@ union bpf_attr { > FN(sk_storage_delete), \ > FN(send_signal), \ > FN(tcp_gen_syncookie), \ > - FN(skb_output), > + FN(skb_output), \ > + FN(get_ns_current_pid_tgid), > > /* integer value in 'imm' field of BPF_CALL instruction selects which helper > * function eBPF program intends to call > @@ -3639,4 +3653,8 @@ struct bpf_sockopt { > __s32 retval; > }; > > +struct bpf_pidns_info { > + __u32 pid; > + __u32 tgid; > +}; > #endif /* _UAPI__LINUX_BPF_H__ */ >
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index 4af8b0819a32..4c3e0b0952e6 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -2775,6 +2775,19 @@ union bpf_attr { * restricted to raw_tracepoint bpf programs. * Return * 0 on success, or a negative error in case of failure. + * + * int 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 pidns does not exists for the current task. + * */ #define __BPF_FUNC_MAPPER(FN) \ FN(unspec), \ @@ -2888,7 +2901,8 @@ union bpf_attr { FN(sk_storage_delete), \ FN(send_signal), \ FN(tcp_gen_syncookie), \ - FN(skb_output), + FN(skb_output), \ + FN(get_ns_current_pid_tgid), /* integer value in 'imm' field of BPF_CALL instruction selects which helper * function eBPF program intends to call @@ -3639,4 +3653,8 @@ struct bpf_sockopt { __s32 retval; }; +struct bpf_pidns_info { + __u32 pid; + __u32 tgid; +}; #endif /* _UAPI__LINUX_BPF_H__ */
sync tools/include/uapi/linux/bpf.h to include new helper. Signed-off-by: Carlos Neira <cneirabustos@gmail.com> --- tools/include/uapi/linux/bpf.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-)