# 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例子解决。