上一篇文章已经讲过DPDK相关的学习资料,但是DPDK开源社区非常活跃,版本更新迭代很快,所以相对来说,最全最新的资料一定是官方的dpdk 文档。
Linux 入门指南链接:
3. 程序员指南
程序员的编程手册,适合需要基于DPDK编程的程序员。 包含三个部分:
在DPDK的开发中,需要使用哪些函数取决于相应的函数描述。
程序员指南链接:
4.API参考
函数 API 套接字文档,提供有关 DPDK 函数、数据结构和其他编程结构的详细信息。
这里列出了相关模块的外部API套接字和参数说明。
API参考链接:
5. 示例应用程序用户指南
示例应用程序用户手册,描述一组示例应用程序。 每一章都描述了一个示例应用程序,该应用程序演示了特定功能并提供了有关如何编译、运行和使用示例应用程序的说明。
1. dpdk-ethtool:类ethtool API的实现,并提供控制台环境,允许使用它来查询和修改以太网卡参数
2. dpdk-helloworld:最简单的DPDK应用程序示例。 应用程序只需在每个启用的 lcore 上复制一条“helloworld”消息。
3. dpdk-sculpture:转发应用程序的简单骨架示例。 演示 DPDK 转发应用程序的基本组件。 有关更详细的实现,请参阅 L2 和 L3 转发示例应用程序。
4. dpdk-rxtx_callbacks:RX/TX 反弹示例应用程序是一个数据包转发应用程序,演示如何在接收和传输的数据包上使用用户定义的反弹。 应用程序使用反弹来执行简单的延迟检测,以确定数据包在应用程序中花费的时间。
5. dpdk-flow_classify:演示使用流分类库 API 的 DPDK 转发应用程序。
6. dpdk-flow_filtering:创建rte流规则的简单示例。
7. dpdk-ip_fragmentation:使用IPv4和IPv6分片进行L3转发
8. dpdk-ipv4_multicast:实现第 3 层多播以进行数据包处理的应用程序的简单示例。
9. dpdk-ip_reassemble:应用程序对分片的IPv4和IPv6数据包进行三层转发和重组
10. dpdk-l2fwd-keepalive:演示如何检查“失败”的 DPDK 内核并将此失败通知故障管理实体。 其目的是确保核心故障不会导致受管实体难以测量的故障。
11. dpdk-dma:使用 DMAdev API 创建数据包复制应用程序的示例
12. dpdk-l2fwd-crypto:带加密的 L2 转发 (l2fwd-crypto) 示例应用程序,使用 Cryptodev 库进行数据包处理
13. dpdk-l2fwd-jobstats:虚拟化环境下使用SR-IOV特性的L2层转发程序(包括job stats库)
14. dpdk-l2fwd:虚拟化环境下利用SR-IOV特性的L2层转发程序
15. dpdk-l2fwd-event:L2层转发器,演示协程和事件模式数据包I/O机制
16. dpdk-l2fwd-cat:通过扩展命令行选项和libpqos库链接演示缓存分配技术CAT的使用
17. dpdk-l3fwd:L3转发器,演示协程和事件模式数据包I/O机制
18. dpdk-l3fwd-graph:使用Graph框架的L3转发以及为Graph框架编译的节点
19. dpdk-l3fwd_power:使用电源管理算法,通过电源管理库控制Intel处理器的P状态和C状态,进行功耗感知消息处理
20. dpdk-link_status_interrupt:演示DPDK应用程序如何捕获和使用网络端口的网络链路状态变化
21. dpdk-server:使用efd库作为流级负载均衡器
22. dpdk-service_cores:演示DPDK的服务核心功能。服务核心基础设施是DPDK EAL的一部分,允许任何DPDK组件注册服务
23. dpdk-simple_mp:演示DPDK的主辅多进程
24. dpdk-qos_meter:演示如何使用DPDK提供QoS标记和计量
25. dpdk-qos_sched:演示如何使用DPDK提供QoS调度
26. dpdk-timer:演示如何在DPDK应用程序中使用定时器
27. dpdk-packet_ordering:显示重新排序流量的影响。用于指示不同配置的库的性能
28. dpdk-vmdq_dcb:通过VMDQ和DCB进行L2转发,并将传入流量定义为队列。通过Intel82599和X710/XL710以太网控制器的VMDQ和DCB功能在硬件中进行流量拆分
29. dpdk-vmdq:应用程序使用VMDq进行L2转发,并将传入流量定义为队列。通过Intel82599和X710/XL710以太网控制器的VMDq功能在硬件中进行流量分段
30. dpdk-vhost:演示数据平面开发套件 (DPDK) 与 Linux* KVM 管理程序的集成
31. dpdk-vhost_blk:实现一个简单的块设备,用作Qemu vhost-user-blk设备的前端
32. dpdk-vhost_crypto:实现一个简单的Crypto设备,用作Qemu vhost-user-crypto设备的前端
33. dpdk-vdpa:使用vdpa前端创建vhost-user套接字
34. dpdk-ip_pipeline :DPDK管道模式处理数据包的示例
35、dpdk-test-pipeline:演示单表管道模式下DPDK处理数据包的性能
36. dpdk-pipeline:演示与P4语言一致的软件交换(SWX)管道的特性
37. dpdk-eventdev_pipeline:使用软件PMD使用eventdev API。 它显示了应用程序如何配置管道并分配一组工作核心来执行所需的处理。
38. dpdk-distributor:将数据包分发到核心的简单示例
39. dpdk-vm_power_manager:一个示例,展示 DPDK 应用程序如何使用仅 VM 的本地信息(vCPU/lcore 等)来向驻留主机的 VM 电源管理器指示其处理需求
40、dpdk-ptpclient:使用DPDK IEEE1588 API与PTP主时钟通信,同步网卡上的时间,也可以同步Linux系统上的时间
41. dpdk-fips_validation:用于解析和执行 NIST 加密算法验证程序 (CAVP) 和手动加密验证合约 (ACVP) 测试向量的对称加密估计
42. dpdk-ipsec-secgw:使用DPDK加密开发框架的“真实世界”应用程序
43. dpdk-bbdev:基带工作负载数据包处理的简单示例
44. dpdk-ntb:展示如何使用 ntb rawdev 驱动程序
每个示例程序都以代码示例的形式演示了特定的功能。 当我们开发使用其中一项功能时,可以基于相应的示例程序进行扩展。
示例应用程序用户指南链接:
6. DPDK工具用户指南
DPDK工具用户手册详细解释了DPDK工具的参数和使用方法。 包含工具:
1. dpdk-hugepages:设置和查看大页显存
2. dpdk-devbind:绑定和解绑网卡驱动
3. dpdk-proc-info:作为DPDK的辅助进程运行,可以检索端口统计信息、重置端口统计信息、打印DPDK内存信息和显示端口调试信息
4. dpdk-pmdinfo:以JSON格式轮询PMDs硬件支持信息
5、dpdk-dumpcap:抓包工具,支持条件过滤。 它作为辅助DPDK进程运行网卡源码编译模块网卡源码编译模块,捕获进入和离开DPDK主进程的数据包。 dpdk-dumpcap可以以Pcapng消息格式写入文件,
6. dpdk-pdump:抓包工具,不支持条件过滤抓包
7. dpdk-test-flow_perf:提供测试特定rte_flow规则的插入率的能力,通过对网卡施加压力,并估计插入和删除率。
8. dpdk-test-security-perf:用于测试rte_security会话的创建/销毁率
9. test-bbdev.py:测量bbdev框架中可用的pmd的性能参数
10. dpdk-test-crypto-perf:测量加密树中可用的pmd的性能参数
11. dpdk-test-compress-perf:测量压缩树中可用的pmd的性能参数
12. dpdk-test-eventdev:验证DPDK Storm开发设备的功能和检测性能参数
13. dpdk-test-regex:RegEx pmd 的功能测试和性能测试。
14. dpdk-test-mldev:测试各种mldev用例
15. DPDK Test Suite:一个Python测试框架,该测试套件用于测试DPDK的功能和性能
这些工具对于配置或查询DPDK配置以及定位问题非常有用,例如配置和查看大页内存、抓包等。
DPDK 工具用户指南链接:
7. Testpmd 应用程序用户指南
Testpmd 应用程序用户手册,展示如何构建和运行 testpmd 应用程序,以及如何从命令行和运行时环境配置应用程序。
testpmd应用程序可用于在数据包转发模式下测试DPDK,也可用于访问Flow Director等NIC硬件功能。 它还作为如何使用 DPDK SDK 构建功能更齐全的应用程序的示例。
由于Testpmd应用涉及到的功能参数较多,因此单独拿出Testpmd。
Testpmd 应用程序用户指南链接:
8. 网络接口控制器驱动程序
网络接口控制器驱动程序,在相应的示例程序中讲解了各种网卡驱动程序的功能和特点以及如何使用它们。 如常见的ixgbe、igb、i40e等驱动。
9.其他设备驱动
发表评论