Skip to content

bpftool ​

bpftool 工具的组件清单如下:

组件依赖类型
BPF必选

在内核未开启某些选项或支持某些操作时会导致程序无法正常运行:

  • bpf_link 遍历, 若不支持, 则 bpftool net 命令的打印中会有如下报错:
    Error: can't get next link: Invalid argument (id 0)
  • NETLINK_EXT_ACK sockopt, 若不支持, 则 bpftool net 命令的打印中会有如下报错:
    Error: Netlink error reporting not supported

bpftool 工具的程序清单如下:

程序依赖类型
libbpf 库必选

在所依赖的程序无法正常运行时会导致程序无法正常运行:

  • libbpf 库的 bpf_prog_get_next_id, 若调用失败, 则:
    • bpftool prog 命令无法使用, 并打印如下报错:
      Error: can't get next program: Invalid argument -- kernel too old?
    • bpftool btf 命令无法使用, 并打印如下报错:
      Error: can't get next prog: Invalid argument -- kernel too old?
  • libbpf 库的 bpf_map_get_next_id, 若调用失败, 则 bpftool map 命令无法使用, 并打印如下报错:
    Error: can't get next map: Invalid argument -- kernel too old?
  • libbpf 库的 bpf_link_get_next_id, 若调用失败, 则 bpftool link 命令无法使用, 并打印如下报错:
    Error: can't get next link: Invalid argument -- kernel too old?
  • libbpf 库的 bpf_task_fd_query, 若调用失败, 则 bpftool perf 命令无法使用, 并打印如下报错:
    Error: perf_query_support: Invalid argument
    HINT: non root or kernel doesn't support TASK_FD_QUERY