Skip to content

Allen-Scai/dpdk-sniffer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

学习DPDK的基本开发

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 89.3%
  • Makefile 10.7%