[PATCH v2 bpf-next 1/3] bpftool: Support new prog types and attach types

2018-04-17 Thread Andrey Ignatov
Add recently added prog types to `bpftool prog` and attach types to
`bpftool cgroup`.

Update bpftool documentation and bash completion appropriately.

Signed-off-by: Andrey Ignatov 
---
 tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 11 +--
 tools/bpf/bpftool/bash-completion/bpftool  |  6 --
 tools/bpf/bpftool/cgroup.c | 15 ---
 tools/bpf/bpftool/prog.c   |  3 +++
 4 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst 
b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
index 0e4e923..d004f63 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
@@ -26,7 +26,8 @@ MAP COMMANDS
 |  **bpftool** **cgroup help**
 |
 |  *PROG* := { **id** *PROG_ID* | **pinned** *FILE* | **tag** *PROG_TAG* }
-|  *ATTACH_TYPE* := { **ingress** | **egress** | **sock_create** | 
**sock_ops** | **device** }
+|  *ATTACH_TYPE* := { **ingress** | **egress** | **sock_create** | 
**sock_ops** | **device** |
+|  **bind4** | **bind6** | **post_bind4** | **post_bind6** | 
**connect4** | **connect6** }
 |  *ATTACH_FLAGS* := { **multi** | **override** }
 
 DESCRIPTION
@@ -63,7 +64,13 @@ DESCRIPTION
  **egress** egress path of the inet socket (since 4.10);
  **sock_create** opening of an inet socket (since 4.10);
  **sock_ops** various socket operations (since 4.12);
- **device** device access (since 4.15).
+ **device** device access (since 4.15);
+ **bind4** call to bind(2) for an inet4 socket (since 4.17);
+ **bind6** call to bind(2) for an inet6 socket (since 4.17);
+ **post_bind4** return from bind(2) for an inet4 socket (since 
4.17);
+ **post_bind6** return from bind(2) for an inet6 socket (since 
4.17);
+ **connect4** call to connect(2) for an inet4 socket (since 
4.17);
+ **connect6** call to connect(2) for an inet6 socket (since 
4.17).
 
**bpftool cgroup detach** *CGROUP* *ATTACH_TYPE* *PROG*
  Detach *PROG* from the cgroup *CGROUP* and attach type
diff --git a/tools/bpf/bpftool/bash-completion/bpftool 
b/tools/bpf/bpftool/bash-completion/bpftool
index 490811b..c01b2de 100644
--- a/tools/bpf/bpftool/bash-completion/bpftool
+++ b/tools/bpf/bpftool/bash-completion/bpftool
@@ -372,7 +372,8 @@ _bpftool()
 ;;
 attach|detach)
 local ATTACH_TYPES='ingress egress sock_create sock_ops \
-device'
+device bind4 bind6 post_bind4 post_bind6 connect4 \
+connect6'
 local ATTACH_FLAGS='multi override'
 local PROG_TYPE='id pinned tag'
 case $prev in
@@ -380,7 +381,8 @@ _bpftool()
 _filedir
 return 0
 ;;
-ingress|egress|sock_create|sock_ops|device)
+
ingress|egress|sock_create|sock_ops|device|bind4|bind6|\
+post_bind4|post_bind6|connect4|connect6)
 COMPREPLY=( $( compgen -W "$PROG_TYPE" -- \
 "$cur" ) )
 return 0
diff --git a/tools/bpf/bpftool/cgroup.c b/tools/bpf/bpftool/cgroup.c
index cae32a6..1351bd6 100644
--- a/tools/bpf/bpftool/cgroup.c
+++ b/tools/bpf/bpftool/cgroup.c
@@ -16,8 +16,11 @@
 #define HELP_SPEC_ATTACH_FLAGS \
"ATTACH_FLAGS := { multi | override }"
 
-#define HELP_SPEC_ATTACH_TYPES \
-   "ATTACH_TYPE := { ingress | egress | sock_create | sock_ops | device }"
+#define HELP_SPEC_ATTACH_TYPES\
+   "   ATTACH_TYPE := { ingress | egress | sock_create |\n"   \
+   "sock_ops | device | bind4 | bind6 |\n"\
+   "post_bind4 | post_bind6 | connect4 |\n"   \
+   "connect6 }"
 
 static const char * const attach_type_strings[] = {
[BPF_CGROUP_INET_INGRESS] = "ingress",
@@ -25,6 +28,12 @@ static const char * const attach_type_strings[] = {
[BPF_CGROUP_INET_SOCK_CREATE] = "sock_create",
[BPF_CGROUP_SOCK_OPS] = "sock_ops",
[BPF_CGROUP_DEVICE] = "device",
+   [BPF_CGROUP_INET4_BIND] = "bind4",
+   [BPF_CGROUP_INET6_BIND] = "bind6",
+   [BPF_CGROUP_INET4_CONNECT] = "connect4",
+   [BPF_CGROUP_INET6_CONNECT] = "connect6",
+   [BPF_CGROUP_INET4_POST_BIND] = "post_bind4",
+   [BPF_CGROUP_INET6_POST_BIND] = "post_bind6",
[__MAX_BPF_ATTACH_TYPE] = NULL,
 };
 
@@ -282,7 +291,7 @@ static 

Re: [PATCH v2 bpf-next 1/3] bpftool: Support new prog types and attach types

2018-04-17 Thread Jakub Kicinski
On Tue, 17 Apr 2018 10:28:44 -0700, Andrey Ignatov wrote:
> Add recently added prog types to `bpftool prog` and attach types to
> `bpftool cgroup`.
> 
> Update bpftool documentation and bash completion appropriately.
> 
> Signed-off-by: Andrey Ignatov 

Acked-by: Jakub Kicinski 

Thank you!!