MoonGen是一个高性能的基于CPU的收发包工具
DPDK保证其性能强大,用单核x86 CPU可以收发64B 10G
Lua是比较流行的小巧灵活的脚本语言,收发包逻辑修改后不用编译,直接运行,因为是脚本。
LuaJit是Lua的x86即时编译工具。
这三兄弟组合就是灵活的MoonGen引擎,运行Lua脚本用来执行收发包逻辑,很容易写出比专业测试仪还复杂的逻辑。
编译步骤:
[list]
[*]安装cmake
[*]git clone https://github.com/emmericp/MoonGen.git
[*]./build.sh
[*]如果DPDK KNI模块编译出错, 打开libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/.config文件,修改:CONFIG_RTE_KNI_KMOD=n
[/list]
运行基本上就是DPDK常规启动步骤:
[list]
[*]sudo modprobe uio;
[*]sudo insmod libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
[*]sudo ./bind-interfaces.sh
[*]sudo ./setup-hugetlbfs.sh
[*]sudo ./build/MoonGen libmoon/examples/pktgen.lua 0
[/list]
examples目录下有更多demo脚本, 不同协议包的操作api参见:[url]https://github.com/libmoon/libmoon/tree/master/lua/proto[/url]
一个最简单的
DPDK保证其性能强大,用单核x86 CPU可以收发64B 10G
Lua是比较流行的小巧灵活的脚本语言,收发包逻辑修改后不用编译,直接运行,因为是脚本。
LuaJit是Lua的x86即时编译工具。
这三兄弟组合就是灵活的MoonGen引擎,运行Lua脚本用来执行收发包逻辑,很容易写出比专业测试仪还复杂的逻辑。
编译步骤:
[list]
[*]安装cmake
[*]git clone https://github.com/emmericp/MoonGen.git
[*]./build.sh
[*]如果DPDK KNI模块编译出错, 打开libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/.config文件,修改:CONFIG_RTE_KNI_KMOD=n
[/list]
运行基本上就是DPDK常规启动步骤:
[list]
[*]sudo modprobe uio;
[*]sudo insmod libmoon/deps/dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
[*]sudo ./bind-interfaces.sh
[*]sudo ./setup-hugetlbfs.sh
[*]sudo ./build/MoonGen libmoon/examples/pktgen.lua 0
[/list]
examples目录下有更多demo脚本, 不同协议包的操作api参见:[url]https://github.com/libmoon/libmoon/tree/master/lua/proto[/url]
一个最简单的