Intel所推出的處理封包的open source平台,在User space寫應用程式去處理每個封包
速度比原本的Linux networking stack還快,原本的基本上每個封包都要被複製兩次
因為是bypass kernel network stack機制,輸入ifconfig是看不到此網路介面
以下就是這兩種方式的比較
➠ Environment Abstraction Layer (EAL)
• Intel® DPDK loading and launching
• Support for multi-process and multi-thread execution types
• Core affinity/assignment procedures
• System memory allocation/de-allocation
• Atomic/lock operations
• Time reference
• PCI bus access
• Trace and debug functions
• CPU feature identification
• Interrupt handling
• Alarm operations
➠ Processor affinity
separate cores
➠ Poll Mode Driver (PMD)
no interrupts overhead
➠ Userspace I/O (UIO)
no copying from kernel
➠ Huge pages
no swap, TLB
➠ Lockless synchronization
avoid waiting
Run-Time Environment (RTE)
# cd dpdk-stable-17.05.2/
# make
/home/bh0322/workspace/dpdk-stable-17.05.2/drivers/net/pcap/rte_eth_pcap.c:39:18: fatal error: pcap.h: No such file or directory
#include <pcap.h>
# apt-get install libpcap-dev
Some sample applications can be tested after building them.
# make -C examples RTE_SDK=$(pwd) RTE_TARGET=build O=$(pwd)/build/examples
./build/examples/l3fwd/build/app/l3fwd -l 1,2 -n 4 -- -p 0x3 --config="(0,0,1),(1,0,2)" --parse-ptype
.
├── app //rte.app.mk
├── build
├── buildtools
├── config
├── devtools
├── doc
├── drivers
├── examples //rte.extapp.mk
├── lib
├── mk
├── pkg
├── test
├── usertools
└── x86_64-native-linuxapp-gcc
examples/
├── bond
├── cmdline
├── distributor
├── ethtool
├── exception_path
├── helloworld
├── ip_fragmentation
├── ip_pipeline
├── ip_reassembly
├── ipsec-secgw
├── ipv4_multicast
├── kni
├── l2fwd
├── l2fwd-cat
├── l2fwd-crypto
├── l2fwd-jobstats
├── l2fwd-keepalive
├── l3fwd
├── l3fwd-acl
├── l3fwd-power
├── l3fwd-vf
├── link_status_interrupt
├── load_balancer
├── multi_process
├── netmap_compat
├── packet_ordering
├── performance-thread
├── ptpclient
├── qos_meter
├── qos_sched
├── quota_watermark
├── rxtx_callbacks
├── server_node_efd
├── skeleton
├── tep_termination
├── timer
├── vhost
├── vhost_xen
├── vmdq
├── vmdq_dcb
參考資料
➠ http://dpdk.org/doc/guides-17.05/prog_guide/kernel_nic_interface.html#figure-kernel-nic-intf
➠ http://www.cnblogs.com/yhp-smarthome/p/7102557.html
➠ https://ifun01.com/ZEE4F54.html
➠ https://dpdksummit.com/Archive/pdf/2017India/DPDK-India2017-RamiaJain-ArchitectureRoadmap.pdf
➠ http://fast.dpdk.org/doc/pdf-guides/howto-17.08.pdf
➠ http://www.jianshu.com/p/bc2bde0e4442
➠ https://www.slideshare.net/MichelleHolley1/dpdk-multi-architecture-high-performance-packet-processing-72911726
➠ DPDK
➠ Quick start
➠ Understanding DPDK
➠ DPDK交流社区
沒有留言:
張貼留言