-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add "bpftool net" support. Networking devices are enumerated to dump device index/name associated with xdp progs. For each networking device, tc classes and qdiscs are enumerated in order to check their bpf filters. In addition, root handle and clsact ingress/egress are also checked for bpf filters. Not all filter information is printed out. Only ifindex, kind, filter name, prog_id and tag are printed out, which are good enough to show attachment information. If the filter action is a bpf action, its bpf program id, bpf name and tag will be printed out as well. For example, $ ./bpftool net xdp [ ifindex 2 devname eth0 prog_id 198 ] tc_filters [ ifindex 2 kind qdisc_htb name prefix_matcher.o:[cls_prefix_matcher_htb] prog_id 111727 tag d08fe3b4319bc2fd act [] ifindex 2 kind qdisc_clsact_ingress name fbflow_icmp prog_id 130246 tag 3f265c7f26db62c9 act [] ifindex 2 kind qdisc_clsact_egress name prefix_matcher.o:[cls_prefix_matcher_clsact] prog_id 111726 tag 99a197826974c876 ifindex 2 kind qdisc_clsact_egress name cls_fg_dscp prog_id 108619 tag dc4630674fd72dcc act [] ifindex 2 kind qdisc_clsact_egress name fbflow_egress prog_id 130245 tag 72d2d830d6888d2c ] $ ./bpftool -jp net [{ "xdp": [{ "ifindex": 2, "devname": "eth0", "prog_id": 198 } ], "tc_filters": [{ "ifindex": 2, "kind": "qdisc_htb", "name": "prefix_matcher.o:[cls_prefix_matcher_htb]", "prog_id": 111727, "tag": "d08fe3b4319bc2fd", "act": [] },{ "ifindex": 2, "kind": "qdisc_clsact_ingress", "name": "fbflow_icmp", "prog_id": 130246, "tag": "3f265c7f26db62c9", "act": [] },{ "ifindex": 2, "kind": "qdisc_clsact_egress", "name": "prefix_matcher.o:[cls_prefix_matcher_clsact]", "prog_id": 111726, "tag": "99a197826974c876" },{ "ifindex": 2, "kind": "qdisc_clsact_egress", "name": "cls_fg_dscp", "prog_id": 108619, "tag": "dc4630674fd72dcc", "act": [] },{ "ifindex": 2, "kind": "qdisc_clsact_egress", "name": "fbflow_egress", "prog_id": 130245, "tag": "72d2d830d6888d2c" } ] } ] Signed-off-by: Yonghong Song <yhs@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
- Loading branch information
Yonghong Song
authored and
Alexei Starovoitov
committed
Sep 7, 2018
1 parent
36f1678
commit f6f3bac
Showing
8 changed files
with
676 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
================ | ||
bpftool-net | ||
================ | ||
------------------------------------------------------------------------------- | ||
tool for inspection of netdev/tc related bpf prog attachments | ||
------------------------------------------------------------------------------- | ||
|
||
:Manual section: 8 | ||
|
||
SYNOPSIS | ||
======== | ||
|
||
**bpftool** [*OPTIONS*] **net** *COMMAND* | ||
|
||
*OPTIONS* := { [{ **-j** | **--json** }] [{ **-p** | **--pretty** }] } | ||
|
||
*COMMANDS* := | ||
{ **show** | **list** } [ **dev** name ] | **help** | ||
|
||
NET COMMANDS | ||
============ | ||
|
||
| **bpftool** **net { show | list } [ dev name ]** | ||
| **bpftool** **net help** | ||
DESCRIPTION | ||
=========== | ||
**bpftool net { show | list } [ dev name ]** | ||
List all networking device driver and tc attachment in the system. | ||
|
||
Output will start with all xdp program attachment, followed by | ||
all tc class/qdisc bpf program attachments. Both xdp programs and | ||
tc programs are ordered based on ifindex number. If multiple bpf | ||
programs attached to the same networking device through **tc filter**, | ||
the order will be first all bpf programs attached to tc classes, then | ||
all bpf programs attached to non clsact qdiscs, and finally all | ||
bpf programs attached to root and clsact qdisc. | ||
|
||
**bpftool net help** | ||
Print short help message. | ||
|
||
OPTIONS | ||
======= | ||
-h, --help | ||
Print short generic help message (similar to **bpftool help**). | ||
|
||
-v, --version | ||
Print version number (similar to **bpftool version**). | ||
|
||
-j, --json | ||
Generate JSON output. For commands that cannot produce JSON, this | ||
option has no effect. | ||
|
||
-p, --pretty | ||
Generate human-readable JSON output. Implies **-j**. | ||
|
||
EXAMPLES | ||
======== | ||
|
||
| **# bpftool net** | ||
:: | ||
|
||
xdp [ | ||
ifindex 2 devname eth0 prog_id 198 | ||
] | ||
tc_filters [ | ||
ifindex 2 kind qdisc_htb name prefix_matcher.o:[cls_prefix_matcher_htb] | ||
prog_id 111727 tag d08fe3b4319bc2fd act [] | ||
ifindex 2 kind qdisc_clsact_ingress name fbflow_icmp | ||
prog_id 130246 tag 3f265c7f26db62c9 act [] | ||
ifindex 2 kind qdisc_clsact_egress name prefix_matcher.o:[cls_prefix_matcher_clsact] | ||
prog_id 111726 tag 99a197826974c876 | ||
ifindex 2 kind qdisc_clsact_egress name cls_fg_dscp | ||
prog_id 108619 tag dc4630674fd72dcc act [] | ||
ifindex 2 kind qdisc_clsact_egress name fbflow_egress | ||
prog_id 130245 tag 72d2d830d6888d2c | ||
] | ||
|
||
| | ||
| **# bpftool -jp net** | ||
:: | ||
|
||
[{ | ||
"xdp": [{ | ||
"ifindex": 2, | ||
"devname": "eth0", | ||
"prog_id": 198 | ||
} | ||
], | ||
"tc_filters": [{ | ||
"ifindex": 2, | ||
"kind": "qdisc_htb", | ||
"name": "prefix_matcher.o:[cls_prefix_matcher_htb]", | ||
"prog_id": 111727, | ||
"tag": "d08fe3b4319bc2fd", | ||
"act": [] | ||
},{ | ||
"ifindex": 2, | ||
"kind": "qdisc_clsact_ingress", | ||
"name": "fbflow_icmp", | ||
"prog_id": 130246, | ||
"tag": "3f265c7f26db62c9", | ||
"act": [] | ||
},{ | ||
"ifindex": 2, | ||
"kind": "qdisc_clsact_egress", | ||
"name": "prefix_matcher.o:[cls_prefix_matcher_clsact]", | ||
"prog_id": 111726, | ||
"tag": "99a197826974c876" | ||
},{ | ||
"ifindex": 2, | ||
"kind": "qdisc_clsact_egress", | ||
"name": "cls_fg_dscp", | ||
"prog_id": 108619, | ||
"tag": "dc4630674fd72dcc", | ||
"act": [] | ||
},{ | ||
"ifindex": 2, | ||
"kind": "qdisc_clsact_egress", | ||
"name": "fbflow_egress", | ||
"prog_id": 130245, | ||
"tag": "72d2d830d6888d2c" | ||
} | ||
] | ||
} | ||
] | ||
|
||
|
||
SEE ALSO | ||
======== | ||
**bpftool**\ (8), **bpftool-prog**\ (8), **bpftool-map**\ (8) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.