ANS(Acceleted Network Stack) 是一个基于 DPDK 的 TCP/IP stack,可以运行在 linux userspace。用户可以自由添加、删除ether 接口和IP地址,添加、删除静态路由。
支持的环境
EAL is based on dpdk-1.7.0
Development enviroment is based on x86_64-native-linuxapp-gcc
TCP/IP stack is based on FreeBSD 10.0-RELEASE
支持的特性
Netdp initialize
Ether layer
ARP
IP layer
Routing
ICMP
TCP
UDP
Commands for adding, deleting, showing IP address
Commands for adding, deleting, showing static route
Testing
TCP 连接建立释放性能
|--------------------------------------| | TCP Server accept performance | |--------------------------------------| | Linux with epoll | NETDP with epoll | | (Multi core) | (one core) | |--------------------------------------| | 53k connection/s | 43k connection/s | |--------------------------------------|
TCP 数据传输性能
一个socket接收190Mbyte tcp payload,一个socket发送130Mbyte tcp playload
Communication(synchronization) 0 runtime: 0.734931 s Communication(synchronization) 1 runtime: 0.469566 s Communication(synchronization) 2 runtime: 0.449729 s Communication(synchronization) 3 runtime: 0.648432 s Communication(synchronization) 4 runtime: 0.449422 s Communication(synchronization) 5 runtime: 0.647259 s Communication(synchronization) 6 runtime: 0.457027 s Communication(synchronization) 7 runtime: 0.457691 s Communication(synchronization) 8 runtime: 0.67568 s Communication(synchronization) 9 runtime: 0.736285 s
三层转发性能
|--------------------------------------| | L3 forwarding performance | | (one lcore) | |--------------------------------------| | Packet size(byte)| Throughput(Mpps) | |--------------------------------------| | 64 | 3.682 | |--------------------------------------| | 128 | 3.682 | |--------------------------------------| | 256 | 3.683 | |--------------------------------------| | 512 | 2.35 | |--------------------------------------| | 1024 | 1.197 | |--------------------------------------| | 1500 | 0.822 | |--------------------------------------|