• Yonghong Song's avatar
    tools/bpf: bpftool: improve output format for bpftool net · 7900efc1
    Yonghong Song authored
    This is a followup patch for Commit f6f3bac0
    ("tools/bpf: bpftool: add net support").
    Some improvements are made for the bpftool net output.
    Specially, plain output is more concise such that
    per attachment should nicely fit in one line.
    Compared to previous output, the prog tag is removed
    since it can be easily obtained with program id.
    Similar to xdp attachments, the device name is added
    to tc attachments.
    
    The bpf program attached through shared block
    mechanism is supported as well.
      $ ip link add dev v1 type veth peer name v2
      $ tc qdisc add dev v1 ingress_block 10 egress_block 20 clsact
      $ tc qdisc add dev v2 ingress_block 10 egress_block 20 clsact
      $ tc filter add block 10 protocol ip prio 25 bpf obj bpf_shared.o sec ingress flowid 1:1
      $ tc filter add block 20 protocol ip prio 30 bpf obj bpf_cyclic.o sec classifier flowid 1:1
      $ bpftool net
      xdp:
    
      tc:
      v2(7) clsact/ingress bpf_shared.o:[ingress] id 23
      v2(7) clsact/egress bpf_cyclic.o:[classifier] id 24
      v1(8) clsact/ingress bpf_shared.o:[ingress] id 23
      v1(8) clsact/egress bpf_cyclic.o:[classifier] id 24
    
    The documentation and "bpftool net help" are updated
    to make it clear that current implementation only
    supports xdp and tc attachments. For programs
    attached to cgroups, "bpftool cgroup" can be used
    to dump attachments. For other programs e.g.
    sk_{filter,skb,msg,reuseport} and lwt/seg6,
    iproute2 tools should be used.
    
    The new output:
      $ bpftool net
      xdp:
      eth0(2) driver id 198
    
      tc:
      eth0(2) clsact/ingress fbflow_icmp id 335 act [{icmp_action id 336}]
      eth0(2) clsact/egress fbflow_egress id 334
      $ bpftool -jp net
      [{
            "xdp": [{
                    "devname": "eth0",
                    "ifindex": 2,
                    "mode": "driver",
                    "id": 198
                }
            ],
            "tc": [{
                    "devname": "eth0",
                    "ifindex": 2,
                    "kind": "clsact/ingress",
                    "name": "fbflow_icmp",
                    "id": 335,
                    "act": [{
                            "name": "icmp_action",
                            "id": 336
                        }
                    ]
                },{
                    "devname": "eth0",
                    "ifindex": 2,
                    "kind": "clsact/egress",
                    "name": "fbflow_egress",
                    "id": 334
                }
            ]
        }
      ]
    Signed-off-by: default avatarYonghong Song <yhs@fb.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    7900efc1
main.h 5.51 KB