最小数据面项目设计

本文对应 成长路径 高优先级:定义一个可落地的 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:构建、运行、已知限制

与教程对应

按顺序完成:

  1. DPDK 教程 1:Hugepage、绑核、dpdk-devbind 与跑通 testpmd
  2. DPDK 教程 2:mbuf、mempool、ethdev 的数据路径
  3. DPDK 教程 3:多队列 + RSS + 多 worker 的最小转发 or Echo

再按 DPDK 性能剖析与绑核 checklist 优化一轮。


实践清单

  • 仓库 README 含 依赖 DPDK 版本
  • 提交 一次 perf 前后对比 笔记链接到本站

延伸阅读