# dpdk-sniffer **Repository Path**: sinzuo/dpdk-sniffer ## Basic Information - **Project Name**: dpdk-sniffer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-25 - **Last Updated**: 2021-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 0x01 介绍
此项目主要完成数据包的嗅探。
# 0x02 目的
主要采取学和练的方式熟悉DPDK开发框架。
# 0x03 编译
(1)编译DPDK环境,利用脚本。
(2)进入源码目录make。
(3)运行:./dpdk_sniffer -l 0-1 -n 1 -- --rx "(1,0,0)" --flow "1"
# 0x04 版本计划
v1.0.0 主要单网卡、单队列、流管理。 每个版本会持续更新。
2017.11.27 使用struct rte_ring 将IO线程和流管理线程解耦。
2017.11.28 添加:添加流表;更新:添加定时器打印流表信息;
2017.11.29 添加:添加流超时周期,流管理的一部分
2017.11.30 修复:流超时断错误问题,定时器回调函数的格式
# 0x05 遇到的问题
(1)编译程序没问题,运行时报内存ops没初始化。
原因:constructor在main函数运行,有些对应的静态库没连接进来。因为我的makefile没有按照DPDK编程手册的建议编写,
所以导致某些静态库没连接进来。
(2)流表五元组做key存在将一条流分为了两个不同方向的流,因为五元组顺序不同。
(3)如果流表mbuf指针不释放空间,那边接收队列包缓存会满,导致只能处理部分包,这个问题也是考虑后面处理流表的效率的问题。
(4)定时器回调函数传入的参数总是发生变化,通过参考DPDK例子解决。