* [PATCH bpf-next] bpftool: Support sysctl hook
@ 2019-04-16 20:13 Andrey Ignatov
2019-04-16 20:38 ` Song Liu
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Andrey Ignatov @ 2019-04-16 20:13 UTC (permalink / raw)
To: netdev; +Cc: Andrey Ignatov, ast, daniel, kernel-team
Add support for recently added BPF_PROG_TYPE_CGROUP_SYSCTL program type
and BPF_CGROUP_SYSCTL attach type.
Example of bpftool output with sysctl program from selftests:
# bpftool p load ./test_sysctl_prog.o /mnt/bpf/sysctl_prog type cgroup/sysctl
# bpftool p l
9: cgroup_sysctl name sysctl_tcp_mem tag 0dd05f81a8d0d52e gpl
loaded_at 2019-04-16T12:57:27-0700 uid 0
xlated 1008B jited 623B memlock 4096B
# bpftool c a /mnt/cgroup2/bla sysctl id 9
# bpftool c t
CgroupPath
ID AttachType AttachFlags Name
/mnt/cgroup2/bla
9 sysctl sysctl_tcp_mem
# bpftool c d /mnt/cgroup2/bla sysctl id 9
# bpftool c t
CgroupPath
ID AttachType AttachFlags Name
Signed-off-by: Andrey Ignatov <rdna@fb.com>
---
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 5 +++--
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 3 ++-
tools/bpf/bpftool/bash-completion/bpftool | 7 ++++---
tools/bpf/bpftool/cgroup.c | 3 ++-
tools/bpf/bpftool/main.h | 1 +
tools/bpf/bpftool/prog.c | 2 +-
6 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
index 5e3b7d9d7599..89b6b10e2183 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
@@ -29,7 +29,7 @@ CGROUP COMMANDS
| *PROG* := { **id** *PROG_ID* | **pinned** *FILE* | **tag** *PROG_TAG* }
| *ATTACH_TYPE* := { **ingress** | **egress** | **sock_create** | **sock_ops** | **device** |
| **bind4** | **bind6** | **post_bind4** | **post_bind6** | **connect4** | **connect6** |
-| **sendmsg4** | **sendmsg6** }
+| **sendmsg4** | **sendmsg6** | **sysctl** }
| *ATTACH_FLAGS* := { **multi** | **override** }
DESCRIPTION
@@ -85,7 +85,8 @@ DESCRIPTION
**sendmsg4** call to sendto(2), sendmsg(2), sendmmsg(2) for an
unconnected udp4 socket (since 4.18);
**sendmsg6** call to sendto(2), sendmsg(2), sendmmsg(2) for an
- unconnected udp6 socket (since 4.18).
+ unconnected udp6 socket (since 4.18);
+ **sysctl** sysctl access (since 5.2).
**bpftool cgroup detach** *CGROUP* *ATTACH_TYPE* *PROG*
Detach *PROG* from the cgroup *CGROUP* and attach type
diff --git a/tools/bpf/bpftool/Documentation/bpftool-prog.rst b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
index bb9bb00c0c2c..2f183ffd8351 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
@@ -39,7 +39,8 @@ PROG COMMANDS
| **cgroup/sock** | **cgroup/dev** | **lwt_in** | **lwt_out** | **lwt_xmit** |
| **lwt_seg6local** | **sockops** | **sk_skb** | **sk_msg** | **lirc_mode2** |
| **cgroup/bind4** | **cgroup/bind6** | **cgroup/post_bind4** | **cgroup/post_bind6** |
-| **cgroup/connect4** | **cgroup/connect6** | **cgroup/sendmsg4** | **cgroup/sendmsg6**
+| **cgroup/connect4** | **cgroup/connect6** | **cgroup/sendmsg4** | **cgroup/sendmsg6** |
+| **cgroup/sysctl**
| }
| *ATTACH_TYPE* := {
| **msg_verdict** | **stream_verdict** | **stream_parser** | **flow_dissector**
diff --git a/tools/bpf/bpftool/bash-completion/bpftool b/tools/bpf/bpftool/bash-completion/bpftool
index b803827d01e8..9f3ffe1e26ab 100644
--- a/tools/bpf/bpftool/bash-completion/bpftool
+++ b/tools/bpf/bpftool/bash-completion/bpftool
@@ -370,7 +370,8 @@ _bpftool()
lirc_mode2 cgroup/bind4 cgroup/bind6 \
cgroup/connect4 cgroup/connect6 \
cgroup/sendmsg4 cgroup/sendmsg6 \
- cgroup/post_bind4 cgroup/post_bind6" -- \
+ cgroup/post_bind4 cgroup/post_bind6 \
+ cgroup/sysctl" -- \
"$cur" ) )
return 0
;;
@@ -619,7 +620,7 @@ _bpftool()
attach|detach)
local ATTACH_TYPES='ingress egress sock_create sock_ops \
device bind4 bind6 post_bind4 post_bind6 connect4 \
- connect6 sendmsg4 sendmsg6'
+ connect6 sendmsg4 sendmsg6 sysctl'
local ATTACH_FLAGS='multi override'
local PROG_TYPE='id pinned tag'
case $prev in
@@ -629,7 +630,7 @@ _bpftool()
;;
ingress|egress|sock_create|sock_ops|device|bind4|bind6|\
post_bind4|post_bind6|connect4|connect6|sendmsg4|\
- sendmsg6)
+ sendmsg6|sysctl)
COMPREPLY=( $( compgen -W "$PROG_TYPE" -- \
"$cur" ) )
return 0
diff --git a/tools/bpf/bpftool/cgroup.c b/tools/bpf/bpftool/cgroup.c
index a81b34343eb8..7e22f115c8c1 100644
--- a/tools/bpf/bpftool/cgroup.c
+++ b/tools/bpf/bpftool/cgroup.c
@@ -25,7 +25,7 @@
" ATTACH_TYPE := { ingress | egress | sock_create |\n" \
" sock_ops | device | bind4 | bind6 |\n" \
" post_bind4 | post_bind6 | connect4 |\n" \
- " connect6 | sendmsg4 | sendmsg6 }"
+ " connect6 | sendmsg4 | sendmsg6 | sysctl }"
static const char * const attach_type_strings[] = {
[BPF_CGROUP_INET_INGRESS] = "ingress",
@@ -41,6 +41,7 @@ static const char * const attach_type_strings[] = {
[BPF_CGROUP_INET6_POST_BIND] = "post_bind6",
[BPF_CGROUP_UDP4_SENDMSG] = "sendmsg4",
[BPF_CGROUP_UDP6_SENDMSG] = "sendmsg6",
+ [BPF_CGROUP_SYSCTL] = "sysctl",
[__MAX_BPF_ATTACH_TYPE] = NULL,
};
diff --git a/tools/bpf/bpftool/main.h b/tools/bpf/bpftool/main.h
index d7dd84d3c660..1ccc46169a19 100644
--- a/tools/bpf/bpftool/main.h
+++ b/tools/bpf/bpftool/main.h
@@ -73,6 +73,7 @@ static const char * const prog_type_name[] = {
[BPF_PROG_TYPE_LIRC_MODE2] = "lirc_mode2",
[BPF_PROG_TYPE_SK_REUSEPORT] = "sk_reuseport",
[BPF_PROG_TYPE_FLOW_DISSECTOR] = "flow_dissector",
+ [BPF_PROG_TYPE_CGROUP_SYSCTL] = "cgroup_sysctl",
};
extern const char * const map_type_name[];
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
index 4b7a307b9fc9..fc495b27f0fc 100644
--- a/tools/bpf/bpftool/prog.c
+++ b/tools/bpf/bpftool/prog.c
@@ -1060,7 +1060,7 @@ static int do_help(int argc, char **argv)
" tracepoint | raw_tracepoint | xdp | perf_event | cgroup/skb |\n"
" cgroup/sock | cgroup/dev | lwt_in | lwt_out | lwt_xmit |\n"
" lwt_seg6local | sockops | sk_skb | sk_msg | lirc_mode2 |\n"
- " sk_reuseport | flow_dissector |\n"
+ " sk_reuseport | flow_dissector | cgroup/sysctl |\n"
" cgroup/bind4 | cgroup/bind6 | cgroup/post_bind4 |\n"
" cgroup/post_bind6 | cgroup/connect4 | cgroup/connect6 |\n"
" cgroup/sendmsg4 | cgroup/sendmsg6 }\n"
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH bpf-next] bpftool: Support sysctl hook
2019-04-16 20:13 [PATCH bpf-next] bpftool: Support sysctl hook Andrey Ignatov
@ 2019-04-16 20:38 ` Song Liu
2019-04-16 22:37 ` Jakub Kicinski
2019-04-17 2:46 ` Alexei Starovoitov
2 siblings, 0 replies; 4+ messages in thread
From: Song Liu @ 2019-04-16 20:38 UTC (permalink / raw)
To: Andrey Ignatov; +Cc: Networking, Alexei Starovoitov, daniel, Kernel Team
> On Apr 16, 2019, at 1:13 PM, Andrey Ignatov <rdna@fb.com> wrote:
>
> Add support for recently added BPF_PROG_TYPE_CGROUP_SYSCTL program type
> and BPF_CGROUP_SYSCTL attach type.
>
> Example of bpftool output with sysctl program from selftests:
>
> # bpftool p load ./test_sysctl_prog.o /mnt/bpf/sysctl_prog type cgroup/sysctl
> # bpftool p l
> 9: cgroup_sysctl name sysctl_tcp_mem tag 0dd05f81a8d0d52e gpl
> loaded_at 2019-04-16T12:57:27-0700 uid 0
> xlated 1008B jited 623B memlock 4096B
> # bpftool c a /mnt/cgroup2/bla sysctl id 9
> # bpftool c t
> CgroupPath
> ID AttachType AttachFlags Name
> /mnt/cgroup2/bla
> 9 sysctl sysctl_tcp_mem
> # bpftool c d /mnt/cgroup2/bla sysctl id 9
> # bpftool c t
> CgroupPath
> ID AttachType AttachFlags Name
>
> Signed-off-by: Andrey Ignatov <rdna@fb.com>
Acked-by: Song Liu <songliubraving@fb.com>
> ---
> tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 5 +++--
> tools/bpf/bpftool/Documentation/bpftool-prog.rst | 3 ++-
> tools/bpf/bpftool/bash-completion/bpftool | 7 ++++---
> tools/bpf/bpftool/cgroup.c | 3 ++-
> tools/bpf/bpftool/main.h | 1 +
> tools/bpf/bpftool/prog.c | 2 +-
> 6 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
> index 5e3b7d9d7599..89b6b10e2183 100644
> --- a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
> +++ b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
> @@ -29,7 +29,7 @@ CGROUP COMMANDS
> | *PROG* := { **id** *PROG_ID* | **pinned** *FILE* | **tag** *PROG_TAG* }
> | *ATTACH_TYPE* := { **ingress** | **egress** | **sock_create** | **sock_ops** | **device** |
> | **bind4** | **bind6** | **post_bind4** | **post_bind6** | **connect4** | **connect6** |
> -| **sendmsg4** | **sendmsg6** }
> +| **sendmsg4** | **sendmsg6** | **sysctl** }
> | *ATTACH_FLAGS* := { **multi** | **override** }
>
> DESCRIPTION
> @@ -85,7 +85,8 @@ DESCRIPTION
> **sendmsg4** call to sendto(2), sendmsg(2), sendmmsg(2) for an
> unconnected udp4 socket (since 4.18);
> **sendmsg6** call to sendto(2), sendmsg(2), sendmmsg(2) for an
> - unconnected udp6 socket (since 4.18).
> + unconnected udp6 socket (since 4.18);
> + **sysctl** sysctl access (since 5.2).
>
> **bpftool cgroup detach** *CGROUP* *ATTACH_TYPE* *PROG*
> Detach *PROG* from the cgroup *CGROUP* and attach type
> diff --git a/tools/bpf/bpftool/Documentation/bpftool-prog.rst b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
> index bb9bb00c0c2c..2f183ffd8351 100644
> --- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst
> +++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
> @@ -39,7 +39,8 @@ PROG COMMANDS
> | **cgroup/sock** | **cgroup/dev** | **lwt_in** | **lwt_out** | **lwt_xmit** |
> | **lwt_seg6local** | **sockops** | **sk_skb** | **sk_msg** | **lirc_mode2** |
> | **cgroup/bind4** | **cgroup/bind6** | **cgroup/post_bind4** | **cgroup/post_bind6** |
> -| **cgroup/connect4** | **cgroup/connect6** | **cgroup/sendmsg4** | **cgroup/sendmsg6**
> +| **cgroup/connect4** | **cgroup/connect6** | **cgroup/sendmsg4** | **cgroup/sendmsg6** |
> +| **cgroup/sysctl**
> | }
> | *ATTACH_TYPE* := {
> | **msg_verdict** | **stream_verdict** | **stream_parser** | **flow_dissector**
> diff --git a/tools/bpf/bpftool/bash-completion/bpftool b/tools/bpf/bpftool/bash-completion/bpftool
> index b803827d01e8..9f3ffe1e26ab 100644
> --- a/tools/bpf/bpftool/bash-completion/bpftool
> +++ b/tools/bpf/bpftool/bash-completion/bpftool
> @@ -370,7 +370,8 @@ _bpftool()
> lirc_mode2 cgroup/bind4 cgroup/bind6 \
> cgroup/connect4 cgroup/connect6 \
> cgroup/sendmsg4 cgroup/sendmsg6 \
> - cgroup/post_bind4 cgroup/post_bind6" -- \
> + cgroup/post_bind4 cgroup/post_bind6 \
> + cgroup/sysctl" -- \
> "$cur" ) )
> return 0
> ;;
> @@ -619,7 +620,7 @@ _bpftool()
> attach|detach)
> local ATTACH_TYPES='ingress egress sock_create sock_ops \
> device bind4 bind6 post_bind4 post_bind6 connect4 \
> - connect6 sendmsg4 sendmsg6'
> + connect6 sendmsg4 sendmsg6 sysctl'
> local ATTACH_FLAGS='multi override'
> local PROG_TYPE='id pinned tag'
> case $prev in
> @@ -629,7 +630,7 @@ _bpftool()
> ;;
> ingress|egress|sock_create|sock_ops|device|bind4|bind6|\
> post_bind4|post_bind6|connect4|connect6|sendmsg4|\
> - sendmsg6)
> + sendmsg6|sysctl)
> COMPREPLY=( $( compgen -W "$PROG_TYPE" -- \
> "$cur" ) )
> return 0
> diff --git a/tools/bpf/bpftool/cgroup.c b/tools/bpf/bpftool/cgroup.c
> index a81b34343eb8..7e22f115c8c1 100644
> --- a/tools/bpf/bpftool/cgroup.c
> +++ b/tools/bpf/bpftool/cgroup.c
> @@ -25,7 +25,7 @@
> " ATTACH_TYPE := { ingress | egress | sock_create |\n" \
> " sock_ops | device | bind4 | bind6 |\n" \
> " post_bind4 | post_bind6 | connect4 |\n" \
> - " connect6 | sendmsg4 | sendmsg6 }"
> + " connect6 | sendmsg4 | sendmsg6 | sysctl }"
>
> static const char * const attach_type_strings[] = {
> [BPF_CGROUP_INET_INGRESS] = "ingress",
> @@ -41,6 +41,7 @@ static const char * const attach_type_strings[] = {
> [BPF_CGROUP_INET6_POST_BIND] = "post_bind6",
> [BPF_CGROUP_UDP4_SENDMSG] = "sendmsg4",
> [BPF_CGROUP_UDP6_SENDMSG] = "sendmsg6",
> + [BPF_CGROUP_SYSCTL] = "sysctl",
> [__MAX_BPF_ATTACH_TYPE] = NULL,
> };
>
> diff --git a/tools/bpf/bpftool/main.h b/tools/bpf/bpftool/main.h
> index d7dd84d3c660..1ccc46169a19 100644
> --- a/tools/bpf/bpftool/main.h
> +++ b/tools/bpf/bpftool/main.h
> @@ -73,6 +73,7 @@ static const char * const prog_type_name[] = {
> [BPF_PROG_TYPE_LIRC_MODE2] = "lirc_mode2",
> [BPF_PROG_TYPE_SK_REUSEPORT] = "sk_reuseport",
> [BPF_PROG_TYPE_FLOW_DISSECTOR] = "flow_dissector",
> + [BPF_PROG_TYPE_CGROUP_SYSCTL] = "cgroup_sysctl",
> };
>
> extern const char * const map_type_name[];
> diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
> index 4b7a307b9fc9..fc495b27f0fc 100644
> --- a/tools/bpf/bpftool/prog.c
> +++ b/tools/bpf/bpftool/prog.c
> @@ -1060,7 +1060,7 @@ static int do_help(int argc, char **argv)
> " tracepoint | raw_tracepoint | xdp | perf_event | cgroup/skb |\n"
> " cgroup/sock | cgroup/dev | lwt_in | lwt_out | lwt_xmit |\n"
> " lwt_seg6local | sockops | sk_skb | sk_msg | lirc_mode2 |\n"
> - " sk_reuseport | flow_dissector |\n"
> + " sk_reuseport | flow_dissector | cgroup/sysctl |\n"
> " cgroup/bind4 | cgroup/bind6 | cgroup/post_bind4 |\n"
> " cgroup/post_bind6 | cgroup/connect4 | cgroup/connect6 |\n"
> " cgroup/sendmsg4 | cgroup/sendmsg6 }\n"
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH bpf-next] bpftool: Support sysctl hook
2019-04-16 20:13 [PATCH bpf-next] bpftool: Support sysctl hook Andrey Ignatov
2019-04-16 20:38 ` Song Liu
@ 2019-04-16 22:37 ` Jakub Kicinski
2019-04-17 2:46 ` Alexei Starovoitov
2 siblings, 0 replies; 4+ messages in thread
From: Jakub Kicinski @ 2019-04-16 22:37 UTC (permalink / raw)
To: Andrey Ignatov; +Cc: netdev, ast, daniel, kernel-team
On Tue, 16 Apr 2019 13:13:47 -0700, Andrey Ignatov wrote:
> Add support for recently added BPF_PROG_TYPE_CGROUP_SYSCTL program type
> and BPF_CGROUP_SYSCTL attach type.
>
> Example of bpftool output with sysctl program from selftests:
>
> # bpftool p load ./test_sysctl_prog.o /mnt/bpf/sysctl_prog type cgroup/sysctl
> # bpftool p l
> 9: cgroup_sysctl name sysctl_tcp_mem tag 0dd05f81a8d0d52e gpl
> loaded_at 2019-04-16T12:57:27-0700 uid 0
> xlated 1008B jited 623B memlock 4096B
> # bpftool c a /mnt/cgroup2/bla sysctl id 9
> # bpftool c t
> CgroupPath
> ID AttachType AttachFlags Name
> /mnt/cgroup2/bla
> 9 sysctl sysctl_tcp_mem
> # bpftool c d /mnt/cgroup2/bla sysctl id 9
> # bpftool c t
> CgroupPath
> ID AttachType AttachFlags Name
>
> Signed-off-by: Andrey Ignatov <rdna@fb.com>
Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH bpf-next] bpftool: Support sysctl hook
2019-04-16 20:13 [PATCH bpf-next] bpftool: Support sysctl hook Andrey Ignatov
2019-04-16 20:38 ` Song Liu
2019-04-16 22:37 ` Jakub Kicinski
@ 2019-04-17 2:46 ` Alexei Starovoitov
2 siblings, 0 replies; 4+ messages in thread
From: Alexei Starovoitov @ 2019-04-17 2:46 UTC (permalink / raw)
To: Andrey Ignatov
Cc: Network Development, Alexei Starovoitov, Daniel Borkmann, Kernel Team
On Tue, Apr 16, 2019 at 1:13 PM Andrey Ignatov <rdna@fb.com> wrote:
>
> Add support for recently added BPF_PROG_TYPE_CGROUP_SYSCTL program type
> and BPF_CGROUP_SYSCTL attach type.
>
> Example of bpftool output with sysctl program from selftests:
>
> # bpftool p load ./test_sysctl_prog.o /mnt/bpf/sysctl_prog type cgroup/sysctl
> # bpftool p l
> 9: cgroup_sysctl name sysctl_tcp_mem tag 0dd05f81a8d0d52e gpl
> loaded_at 2019-04-16T12:57:27-0700 uid 0
> xlated 1008B jited 623B memlock 4096B
> # bpftool c a /mnt/cgroup2/bla sysctl id 9
> # bpftool c t
> CgroupPath
> ID AttachType AttachFlags Name
> /mnt/cgroup2/bla
> 9 sysctl sysctl_tcp_mem
> # bpftool c d /mnt/cgroup2/bla sysctl id 9
> # bpftool c t
> CgroupPath
> ID AttachType AttachFlags Name
>
> Signed-off-by: Andrey Ignatov <rdna@fb.com>
Applied. Thanks
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-04-17 2:47 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-16 20:13 [PATCH bpf-next] bpftool: Support sysctl hook Andrey Ignatov
2019-04-16 20:38 ` Song Liu
2019-04-16 22:37 ` Jakub Kicinski
2019-04-17 2:46 ` Alexei Starovoitov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.