1 Star 1 Fork 0

lcp1208 / dpdk-odp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

####TCP/IP stack for dpdk

Netdp is porting from FreeBSD TCP/IP stack, and provide a userspace TCP/IP stack for use with the Intel dpdk.

  • librte_netdp: TCP/IP stack static library. netdp use dpdk mbuf, ring, memzone, mempool, timer, spinlock. so zero copy mbuf between dpdk and netdp.

  • librte_netdpsock: Netdp socket lib for application, zero copy between netdp and application.

  • netdp_cmd: Command for configure netdp tcp/ip stack.

  • netdp_test: Example application with netdp for testing netdp tcp/ip stack

Support environment

  • EAL is based on dpdk-2.1.0
  • Development enviroment is based on x86_64-native-linuxapp-gcc
  • TCP/IP stack is based on FreeBSD 10.0-RELEASE
  • linux version: 3.16.0-30-generic
  • gcc version: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04)

Support feature:

  • Netdp initialize
  • Ether, zero copy between NIC and netdp TCP/IP stack.
  • ARP, ARP timeout
  • IP layer, IP fragmentation and reassemble
  • Routing
  • ICMP
  • Commands for adding, deleting, showing IP address
  • Commands for adding, deleting, showing static route
  • Commands for showing ARP table
  • UDP protocol
  • Socket layer, share memory.
  • Socket API, socket/close/send/recv/epoll.
  • TCP protocol, no lock, hash table, per tcp stack per lcore.(currently only run in one lcore, will enhance it)

Next Planning

  • Enhance TCP Flow control and Congestion control
  • TCP RSS
  • Performance testing.
  • IPFW

####Wiki Page

You can get more information and instructions from wiki page.

####Performance Testing

  • TCP server performance testing

ENV: CPU- intel xeon 2.3G, NIC- 10G, Test tool:ab

Procedure: ab establish tcp connection to netdp tcp server, ab download one data, netdp tcp server close socket.

Command: ab -n 1000000 -c 500 2.2.2.2:8089/

    |--------------------------------------| 
    |      TCP Server accept performance   |
    |--------------------------------------| 
    | Linux with epoll | NETDP with epoll  | 
    |    (Multi core)  |    (one core)     |
    |--------------------------------------|
    | 53k connection/s | 43k connection/s  | 
    |--------------------------------------| 
  • L3 forwarding performance testing

    ENV: CPU- intel xeon 2.3G, NIC- 10G, one lcore rx packets-->l3 forwarding --> tx packets, Test tool:pktgen-DPDK

    |--------------------------------------| 
    |      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        | 
    |--------------------------------------| 

####Notes

  • Netdp socket application run as a secondary dpdk process, If you got below log, shall execute below commands to disable ASLR.
EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel.
EAL: This may cause issues with mapping memory into secondary processes
$ sudo sysctl -w kernel.randomize_va_space=0

####Support

BSD LICENSE, you may use netdp freely.

For free support, please use netdp team mail list at zimeiw@163.com. or QQ Group:86883521

空文件

简介

Open data plane on dpdk, TCP/IP stack for dpdk. 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/lcp1208/dpdk-odp.git
git@gitee.com:lcp1208/dpdk-odp.git
lcp1208
dpdk-odp
dpdk-odp
master

搜索帮助