bpftool使用方法简介
1、安装bpftool工具
看起来,在不同的linux发行版里,bpftool在不同的软件包里,ubuntu 22上,bpftool是linux-tools-generic的一部分,而树莓派里bpftool是一个单独的软件包。
在ubuntu上:
sudo apt install linux-tools-generic
在树莓派上:
sudo apt install bpftool
然后用whereis命令就可以查看到安装情况
xxx@xxx-pc:~$ whereis bpftool
bpftool: /usr/sbin/bpftool /usr/share/man/man8/bpftool.8.gz
有些发行版本上可能还需要自行从Linux下载源代码后安装(从源代码开始安装的方法介绍to be update)
2、bpftool简介
BPFTOOL 是linux内核自带的用于对eBPF程序和eBPF map进行检查与操作的工具软件。注意,依赖于内核版本和bpftool的版本的不同,实际使用与输出可能会与本文略有出入。
3、bpftool的常用功能
sudo bpftool prog list:
显示所有已经被load到系统里的eBPF程序的信息列表,除了显示功能外,还支持dump等功能,可以通过man bpftool prog来查看具体支持的功能。bpftool net list
显示内核网络子系统里的eBPF程序,除了显示功能外,还支持其它功能,可以通过man bpftool net来查看具体支持的功能。bpftool link list
显示所有激活的链接,除了显示功能外,还支持其它功能,可以通过man bpftool link来查看具体支持的功能。bpftool perf list
显示系统里所有raw_tracepoint, tracepoint, kprobe attachments ,除了显示功能外,还支持其它功能,可以通过man bpftool perf来查看具体支持的功能。bpftool btf list
显示所有BPF Type Format (BTF)数据 ,除了显示功能外,还支持其它功能,可以通过man bpftool btf来查看具体支持的功能。bpftool map list
显示系统内已经载入的所有bpf map数据,除了显示功能外,还支持其它功能,可以通过man bpftool map来查看具体支持的功能。bpftool feature probe dev eth0
查看eth0支持的eBPF特性 。
4、使用bpftool查看eBPF程序运行情况的一个例子
在文章XDP入门–eBPF程序实现网桥/二层交换机转发功能中,我们往eth0和eth1载入了根据目标MAC转发数据包的eBPF字节码,在这个程序中,我们用了
- 一个叫xdp_bridge_prog()数据包处理函数
- 一个叫mac_port_map的map数据库
用以下二条命令我们就可以查看到上述信息,并用bpftool map dump功能来查看map里的内容
xxx@raspberrypi:~ $ sudo bpftool prog list | tail -n 4
xlated 64B not jited memlock 4096B
21: xdp name xdp_bridge_prog tag 610be6df09f4715b gpl
loaded_at 2023-05-31T13:57:17+0800 uid 0
xlated 704B not jited memlock 4096B map_ids 1
xxx@raspberrypi:~ $ sudo bpftool map list
1: hash name mac_port_map flags 0x0
key 8B value 4B max_entries 100 memlock 4096B
xxx@raspberrypi:~ $ sudo bpftool map dump id 1
bpftool使用方法简介的更多相关文章
- 网络神器Greasemonkey(油猴子)使用方法简介+脚本分享【转载】
推荐下,觉得这个方法有用, 今天艾薇百科来介绍一下功能强大的Greasemonkey,俗称"油猴子",Greasemonkey可以自由定制网页,实现你想要的各种功能.堪称" ...
- Redis Cluster搭建方法简介22211111
Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼ Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...
- Monte Carlo方法简介(转载)
Monte Carlo方法简介(转载) 今天向大家介绍一下我现在主要做的这个东东. Monte Carlo方法又称为随机抽样技巧或统计实验方法,属于计算数学的一个分支,它是在上世纪四十年代 ...
- C#——Marshal.StructureToPtr方法简介
目录 MarshalStructureToPtr方法简介 功能及位置 语法 参数说明 异常 备注 举例 本博客(http://blog.csdn.net/livelylittlefish)贴出作者(三 ...
- TabBarController创建及使用方法简介
TabBarController创建及使用方法简介 大致讲解一下TabBarController的创建过程: 首先,我们需要一些视图,如创建UIControllerView类型的view1,view2 ...
- delphi操作文本文件的方法简介
delphi操作文本文件的方法简介减小字体 增大字体 作者佚名来源不详发布时间2008-5-31 10:31:16发布人xuedelphi1 文件类型和标准过程 Delphi同Object ...
- iOS中常用的四种数据持久化方法简介
iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...
- jQuery的AJAX方法简介及与其他文件$符号冲突的解决办法
一.重要的jQuery AJAX方法简介 $.load(url) 从服务器载入数据 $.get(url,callback) 从服务器请求数据,并执行回调函数 $.post(url,data,callb ...
- FragmentActivity与Fragment两者交互方法简介(转)
FragmentActivity与Fragment两者交互方法简介 分类: Fragment 2014-07-07 18:17 88人阅读 评论(0) 收藏 举报 在Android4.0后很多时候我们 ...
- sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十五)
Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁( ...
随机推荐
- c++代码实现 RSA的简易demo【偏向实践】
写在前面 [如果你还没搞明白算法具体步骤建议先去看视频了解,本demo旨在简单实践该算法] 本实践在理论上是成立的,但由于计算x的时候很容易溢出,所以观者可以理解该简易demo后对数据进行处理[以字符 ...
- 7、SpringBoot2之整合事务及AOP
本文在SpringBoot2之整合Mybatis的基础上进行 7.1.整合事务 7.1.1.mapper接口 int deleteEmployeeById(int id); 7.1.2.mapper映 ...
- 【Java】 Springboot+Vue 大文件断点续传
同事在重构老系统的项目时用到了这种大文件上传 第一篇文章是简书的这个: https://www.jianshu.com/p/b59d7dee15a6 是夏大佬写的vue-uploader组件: htt ...
- 【IDEA】DEBUG调试问题
不要将断点打在方法的声明上: 会有一个菱形标志,在标记之后运行DEBUG模式会跑不起来 查看所有的断点标记: 在这里直接找到所有标记位置,弄掉就会跑起来了
- 手把手使用 SVG + CSS 实现渐变进度环效果
效果 轨道 使用 svg 画个轨道 <svg viewBox="0 0 100 100"> <circle cx="50" cy=" ...
- 使用Aspire优雅的进行全栈开发——WinUI使用Semantic Kernel调用智普清言LLM总结Asp.Net Core通过Playwright解析的网页内容
前言 这算是一篇学习记录博客了,主要是学习语义内核(Semantic Kernel)的实践,以及Aspire进行全栈开发的上手体验,我是采用Aspire同时启动API服务,Blazor前端服务以及Wi ...
- 【转载】 SLI导致双显卡被TensorFlow同时占用问题(Windows下) ---------- (windows环境下如何为tensorflow安装多个独立的消费级显卡)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_21368481/article/d ...
- 强化学习baseline论文—— rainbow算法中给出实验结果的54个atari2600游戏名称列表
alien amidar assault asterix asteroids atlantis bank_heist battle_zone beam_rider berzerk bowling bo ...
- Canvas简历编辑器-图形绘制与状态管理(轻量级DOM)
Canvas简历编辑器-图形绘制与状态管理(轻量级DOM) 在前边我们聊了数据结构的设计和剪贴板的数据操作,那么这些操作都还是比较倾向于数据相关的操作,那么我们现在就来聊聊基本的图形绘制以及图形状态管 ...
- springboot2集成oauth2坑二(The bean 'scopedTarget.oauth2ClientContext', defined in class path resource )
码云地址:https://gitee.com/lpxs/lp-springcloud.git 有问题可以多沟通:136358344@qq.com. 由于使用Enableoauth2sso注解一直报错, ...