Disruptive IP Networking with Intel DPDK on Linux

16,722 views

Published on

Disruptive IP Networking with Intel DPDK on Linux

07 Jan, 2013
SAKURA Internet Research Center
Senior Researcher / Naoto MATSUMOTO

Published in: Technology
4 Comments
28 Likes
Statistics
Notes
  • Unfortunately, We did not checked 1GbE NICs.
    May be, best way is talk about it on DPDK ML.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi, Thank you for answer my question! It was very helpful

    I checked your link and some release notes(intel) about my NIC. Unfortunately the 82571EB NIC can handle only one TX per port.

    Would you know if its possible run the l3fwd with only one TX queue per port by change the code?

    Thanks!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi, camilobom! Please check DPDK support NIC device list (http://dpdk.org/doc/nics), and Check this article:Cannot run l3fwd with the problem of ' nb_tx_queues' http://comments.gmane.org/gmane.comp.networking.dpdk.devel/766
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi,

    My name is Camilo and I am studying about DPDK. I would you like your help about some question.

    I have 3 PCs, and a Dual port Intel NIC 1 Gb....but when i will run the l3fwd example, this following error appears:

    Initializing port 0 ... Creating queues: nb_rxq=1 nb_txq=2... EAL: Error - exiting with code: 1
    Cause: Cannot configure device: err=-22, port=0

    If you could help I will thank you so much!

    Thanks!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
16,722
On SlideShare
0
From Embeds
0
Number of Embeds
243
Actions
Shares
0
Downloads
7
Comments
4
Likes
28
Embeds 0
No embeds

No notes for slide

Disruptive IP Networking with Intel DPDK on Linux

  1. 1. 07 Jan, 2013 SAKURA Internet Research CenterSenior Researcher / Naoto MATSUMOTO
  2. 2. DPDK TESTING Overview 1) Intel ® DPDK source codes for linux were released at End of 2012. http://www.intel.com/p/en_US/embedded/hwsw/technology/packet-processing Running Intel® DPDK Applications in a Linux Environment To run an Intel® DPDK application, some customization must be done on the target machine. Running an Intel® DPDK application requires some kernel configuration customization (done at build time) and some dynamic kernel tweaks (modules, procfs): Required: • glibc >= 2.7 (for features related to cpuset) ..etc Intel® 10Gbps Dual-port Network AdapterLinux DPDK Layer3 Router is Evolutionary Network Technology. Source: SAKURA Internet Research Center. 11/2012: Project THORN
  3. 3. Build/Execute Sample Application 1) Install Intel® DPDK # mkdir /hugepages # vi /etc/fstab hugetlbfs /hugepages hugetlbfs rw,mode=0777 0 0 # mount /hugepages # cd /opt; unzip INTELDPDK.L.1.2.3_3.zip ; cd DPDK # make install T=x86_64-default-linuxapp-gcc # modprobe uio # insmod /opt/dpdktest/DPDK/x86_64-default-linuxapp-gcc/kmod/igb_uio.ko 2) Configure Intel® DPDK L3 Forwarding Sample Application # cd examples/l3fwd # diff main.c.orig main.c 284a285,286 > {IPv4(10,0,0,11), 24, 1}, > {IPv4(10,0,0,22), 24, 0}, 478c480 < *((uint64_t *)tmp) = 0x000000c00900 + (dst_port << 24); --- > *((uint64_t *)tmp) = 0x9d0223bae290 ; /* MAC Addr 90:E2:BA:23:02:9D */ # RTE_SDK=/opt/DPDK make /* Source: Intel DPDK Step by Step instructions by Hisaki Ohara*/ Source: SAKURA Internet Research Center. 11/2012: Project THORN
  4. 4. Build Packet Generator /w NETMAP 1) Creat Bootable USB memory for Packet Generator/Receiver Download Bin image from http://info.iet.unipi.it/~luigi/netmap/ Burn to USB Memory using Win32 Disk Imager Source: SAKURA Internet Research Center. 11/2012: Project THORN
  5. 5. DPDK Layer 3 Fwd Benchmark [Layer 3 Fowarder with Intel® DPDK] Intel® Core™ i7-3960X CPU @ 3.30GHz Intel 82599EB 10GbE-NIC /PCI Epxress 3.0 Linux 2.6.32-220.23.1.el6.x86_64 # ./build/l3fwd -c 0x3 -n 2 -- -p 0x3 --config="(0,0,0),(1,0,1)" : done: Port 0 Link Up - speed 10000 Mbps - full-duplex done: Port 1 Link Up - speed 10000 Mbps - full-duplex L3FWD: entering main loop on lcore 1 VXLAN Network L3FWD: -- lcoreid=1 portid=1 rxqueueid=0 :[Traffic Generator] MTU64Byte Short Pkt. [Packet Receiver]Intel® Core™ i7-3930K CPU @ 3.20GHz AMD E-350 1.76MHz / DDR3 8GBIntel 82599EB 10GbE-NIC/PCI Express 2.0 Intel XXXXX 10GbE-NIC/PCI Express 2.010.0.0.11 / 00:0C:BD:00:E8:1B 10.0.0.22 / 90:E2:BA:23:02:9D# pkt-gen –i ix1 –f tx –l 64 -d 10.0.0.22 # pkt-gen –i ix1 –f rxmain [1042] map size is 207712 Kb main [1071] map size is 207712 Kbmain [1064] mmapping 207712 Kbytes main [1093] mmapping 207712 Kbytesmain [1119] Ready... main [1146] Wait 2 secs for phy resetsender_body [607] start main [1148] Ready...sender_body [644] drop copy main [1257] 1206448 ppsmain [1231] 14115785 pps main [1257] 13602560 ppsmain [1231] 14118009 pps main [1257] 13573141 pps: [14.1Mpps] : [13.5Mpps] Source: SAKURA Internet Research Center. 11/2012: Project THORN
  6. 6. DPDK Layer 3 Fwd perf report [Layer 3 Fowarder with Intel® DPDK] Intel(R) Core(TM) i7-3960X CPU @ 3.30GHz Intel 82599EB 10GbE-NIC /PCI Epxress 3.0 Linux 2.6.32-220.23.1.el6.x86_64 # perf record ./build/l3fwd -c 0x3 -n 2 -- -p 0x3 --config="(0,0,0),(1,0,1)" # perf report :Events: 94K cycles 49.17% l3fwd l3fwd [.] main_loop VXLAN Network 42.14% l3fwd l3fwd [.] ixgbe_recv_pkts 5.40% l3fwd l3fwd [.] rte_delay_us 2.86% l3fwd l3fwd [.] ixgbe_xmit_pkts 0.18% l3fwd l3fwd [.] send_burst 0.07% l3fwd libc-2.12.so [.] __memset_sse2 0.03% l3fwd l3fwd [.] ixgbe_poll_eerd_eewr_done 0.02% l3fwd [kernel.kallsyms] [k] apic_timer_interrupt 0.02% l3fwd [kernel.kallsyms] [k] tty_write 0.01% l3fwd [kernel.kallsyms] [k] native_write_msr_safe 0.01% l3fwd [kernel.kallsyms] [k] _spin_lock 0.00% l3fwd l3fwd [.] ixgbe_read_eerd_generic 0.00% l3fwd [kernel.kallsyms] [k] account_user_time 0.00% l3fwd [kernel.kallsyms] [k] smp_apic_timer_interrupt 0.00% l3fwd [kernel.kallsyms] [k] scheduler_tick :[Traffic Generator] MTU64Byte Short Pkt. [Packet Receiver] Source: SAKURA Internet Research Center. 11/2012: Project THORN
  7. 7. DPDK Layer 3 Fwd perf stat [Layer 3 Fowarder with Intel® DPDK] Intel(R) Core(TM) i7-3960X CPU @ 3.30GHz Intel 82599EB 10GbE-NIC /PCI Epxress 3.0 Linux 2.6.32-220.23.1.el6.x86_64 # perf rstat ./build/l3fwd -c 0x3 -n 2 -- -p 0x3 --config="(0,0,0),(1,0,1)" : Performance counter stats for ./build/l3fwd -c 0x3 -n 2 -- -p 0x3 --config=(0,0,0),(1,0,1): VXLAN Network 92805.936402 task-clock # 1.853 CPUs utilized 133 context-switches # 0.000 M/sec 13 CPU-migrations # 0.000 M/sec 1,958 page-faults # 0.000 M/sec 370,566,087,852 cycles # 3.993 GHz [83.33%] 102,860,504,930 stalled-cycles-frontend # 27.76% frontend cycles idle [83.33%] 32,572,874,185 stalled-cycles-backend # 8.79% backend cycles idle [66.67%] 663,418,320,041 instructions # 1.79 insns per cycle # 0.16 stalled cycles per insn [83.33%] 106,088,555,938 branches # 1143.123 M/sec [83.33%] 63,608,468 branch-misses # 0.06% of all branches [83.33%] 50.077399637 seconds time elapsed[Traffic Generator] MTU64Byte Short Pkt. [Packet Receiver] Source: SAKURA Internet Research Center. 11/2012: Project THORN
  8. 8. Thank you for your interest.

×