最小数据面项目设计
本文对应 成长路径 高优先级:定义一个可落地的 DPDK 小项目 范围,便于写总结博文与面试陈述。
项目目标
- 功能:L2 转发 或 L3 echo(二选一起步)。
- 多 worker:每核一条 RX 队列,RSS 分流。
- 统计:PPS、丢包、按端口/队列计数。
- 配置:命令行或 Unix socket 动态查统计(可选)。
模块划分
main.c # EAL init、lcore launch
port.c # ethdev 配置、RSS
worker.c # poll → process → tx
stats.c # per-lcore 计数器
config.c # 命令行参数最小数据路径(echo)
rte_eth_rx_burst → 校验 → rte_eth_tx_burst(同 port 或指定 port)转发:
查 MAC / 简单路由表 → 选 egress port → tx验收标准
| 项 | 标准 |
|---|---|
| 稳定运行 | 1 小时无 crash |
| 性能 | 记录 64B PPS baseline |
| 绑核 | 数据核 idle 管理面可 ssh |
| 文档 | README:构建、运行、已知限制 |
与教程对应
按顺序完成:
- DPDK 教程 1:Hugepage、绑核、dpdk-devbind 与跑通 testpmd
- DPDK 教程 2:mbuf、mempool、ethdev 的数据路径
- DPDK 教程 3:多队列 + RSS + 多 worker 的最小转发 or Echo
再按 DPDK 性能剖析与绑核 checklist 优化一轮。
实践清单
- 仓库 README 含 依赖 DPDK 版本
- 提交 一次 perf 前后对比 笔记链接到本站