Skip to content
  • Yonghong Song's avatar
    tools/bpf: bpftool: add net support · f6f3bac0
    Yonghong Song authored
    
    
    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: default avatarYonghong Song <yhs@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    f6f3bac0