Library
概述
参考:
DPDK 的主要对外函数接口通常以 rte_(runtime environment) 作为前缀。
内存管理
CPU 管理
- etc.
CPU 包处理
- etc.
Device Libraries
- etc.
Protocol Processing Libraries
- etc.
High-Level Libraries
- Graph Library
- etc.
Utility Libraries
- Metrics Library
- Telemetry Library(遥测库) # 遥测库提供了一个接口,用于从各种 DPDK 库中检索信息。该库通过 Unix Socket 提供这些信息,接收来自客户端的请求,并回复包含所请求遥测信息的 JSON 响应。
- etc.
Telemetry Library
参考:
在 Telemetry Library 相关代码 telemetry_v2_init 进行初始化,注册了几个基本的命令(/, /info, /help)。其他注册的命令则需要到各种 Libraries 的代码中查看。可以通过搜索 init_telemetry 关键字找到各种 Library 注册到 Telemetry 的命令,e.g. ethdev, mempool, etc.
简单示例如下:
~]# dpdk-telemetry.py
Connecting to /var/run/dpdk/rte/dpdk_telemetry.v2
{
"version": "DPDK 23.11.0",
"pid": 4054033,
"max_output_len": 16384
}
Connected to application: "usps"
--> /ethdev/list
{
"/ethdev/list": [
0,
1
]
}
--> /ethdev/stats,0
{
"/ethdev/stats": {
"ipackets": 0,
"opackets": 0,
"ibytes": 0,
"obytes": 0,
"imissed": 0,
"ierrors": 0,
"oerrors": 0,
"rx_nombuf": 0,
"q_ipackets": [
0,
......
Tips: 在个人的学习项目中使用 Go 语言通过使用 unixpacket 与 Socket 文件建立连接后,也可以实现 dpdk-telemetry.py 的效果
从 DPDK 的 API 也可以查看一些,各种命令返回信息的含义

TODO: 还有没有其它官方文档来代替 API 文档或者源码中来了解各种命令返回的信息?
TODO: 根据 https://github.com/search?q=repo%3ADPDK%2Fdpdk%20init_telemetry&type=code 总结一下都有哪些库注册了 Telemetry
cnxk_mempool_init_telemetry
cnxk_ethdev_init_telemetry
ring_init_telemetry
librawdev_init_telemetry
dmadev_init_telemetry
security_init_telemetry
mempool_init_telemetry
eventdev_init_telemetry
cryptodev_init_telemetry
cnxk_ipsec_init_telemetry
ta_init_telemetry
ethdev_init_telemetry
rxa_init_telemetry
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.