diff mbox series

[bpf-next,v11,3/4] tools: Added bpf_get_ns_current_pid_tgid helper

Message ID 20190924152005.4659-4-cneirabustos@gmail.com
State Changes Requested
Delegated to: BPF Maintainers
Headers show
Series BPF: New helper to obtain namespace data from current task | expand

Commit Message

Carlos Antonio Neira Bustos Sept. 24, 2019, 3:20 p.m. UTC
Signed-off-by: Carlos Neira <cneirabustos@gmail.com>
---
 tools/include/uapi/linux/bpf.h | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

Comments

Yonghong Song Sept. 25, 2019, 3:27 a.m. UTC | #1
On 9/24/19 8:20 AM, Carlos Neira wrote:
> Signed-off-by: Carlos Neira <cneirabustos@gmail.com>

Please do add some commit message. A couple of examples,

commit 0fc2e0b84ba725c5e6ee66059936638389e67c80
Author: Alexei Starovoitov <ast@kernel.org>
Date:   Thu Aug 22 22:52:13 2019 -0700

     tools/bpf: sync bpf.h

     sync bpf.h from kernel/ to tools/

     Signed-off-by: Alexei Starovoitov <ast@kernel.org>
     Acked-by: Song Liu <songliubraving@fb.com>
     Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>

commit 1f8919b170318e7e13e303eedac363d44057995f
Author: Peter Wu <peter@lekensteyn.nl>
Date:   Wed Aug 21 00:09:00 2019 +0100

     bpf: sync bpf.h to tools/

     Fix a 'struct pt_reg' typo and clarify when bpf_trace_printk discards
     lines. Affects documentation only.

     Signed-off-by: Peter Wu <peter@lekensteyn.nl>
     Signed-off-by: Alexei Starovoitov <ast@kernel.org>

> ---
>   tools/include/uapi/linux/bpf.h | 18 +++++++++++++++++-
>   1 file changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
> index 77c6be96d676..9272dc8fb08c 100644
> --- a/tools/include/uapi/linux/bpf.h
> +++ b/tools/include/uapi/linux/bpf.h
> @@ -2750,6 +2750,21 @@ union bpf_attr {
>    *		**-EOPNOTSUPP** kernel configuration does not enable SYN cookies
>    *
>    *		**-EPROTONOSUPPORT** IP packet version is not 4 or 6
> + *
> + * int bpf_get_ns_current_pid_tgid(u32 dev, u64 inum)
> + *	Return
> + *		A 64-bit integer containing the current tgid and pid from current task
> + *              which namespace inode and dev_t matches , and is create as such:
> + *		*current_task*\ **->tgid << 32 \|**
> + *		*current_task*\ **->pid**.
> + *
> + *		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.
> + *
> + *		**-ENOENT** if /proc/self/ns does not exists.
> + *
>    */
>   #define __BPF_FUNC_MAPPER(FN)		\
>   	FN(unspec),			\
> @@ -2862,7 +2877,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
>
diff mbox series

Patch

diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
index 77c6be96d676..9272dc8fb08c 100644
--- a/tools/include/uapi/linux/bpf.h
+++ b/tools/include/uapi/linux/bpf.h
@@ -2750,6 +2750,21 @@  union bpf_attr {
  *		**-EOPNOTSUPP** kernel configuration does not enable SYN cookies
  *
  *		**-EPROTONOSUPPORT** IP packet version is not 4 or 6
+ *
+ * int bpf_get_ns_current_pid_tgid(u32 dev, u64 inum)
+ *	Return
+ *		A 64-bit integer containing the current tgid and pid from current task
+ *              which namespace inode and dev_t matches , and is create as such:
+ *		*current_task*\ **->tgid << 32 \|**
+ *		*current_task*\ **->pid**.
+ *
+ *		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.
+ *
+ *		**-ENOENT** if /proc/self/ns does not exists.
+ *
  */
 #define __BPF_FUNC_MAPPER(FN)		\
 	FN(unspec),			\
@@ -2862,7 +2877,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