SlideShare a Scribd company logo
7
Most read
8
Most read
11
Most read
Intel DPDK
Step by Step Instructions

       Hisaki Ohara (@hisak)
Objectives

• Build/Execute sample applications
  (helloworld, L2fwd and L3fwd)
• Packet forwarding by generating with
  Linux/pktgen
Test Environment
      ESXi 5.1                   ESXi 5.1                  ESXi 5.1
     Sender VM                        DPDK VM           Receiver VM
      CentOS 6.3                       CentOS 6.3          CentOS 6.3
           ixgbe                      ixgbe  ixgbe              ixgbe


VMDirectPath (VT-D)        VMDirectPath (VT-D)       VMDirectPath (VT-D)

Intel 10G NIC         Intel 10G NIC                  Intel 10G NIC
    (82599)               (82599)                        (82599)




       - ESXi 5.1
          - CPU: Xeon 5600 Series
          - Guest OS: CentOS 6.3 x86_64
             - # of vCPUs: 2
          - 10G NIC (82599) is passed through
             - In-box driver of ixgbe
Step0: Download source codes
• Source codes and relevant documents
 • http://www.intel.com/go/dpdk
Step1: Prepare Linux Kernel
      •
# uname -a
          Add boot option and fstab for hugepage
Linux cent-dpdk 2.6.32-279.14.1.el6.x86_64 #1 SMP Tue Nov 6 23:43:09 UTC 2012 x86_64
x86_64 x86_64 GNU/Linux
# cat /boot/grub/grub.conf
<snip>
title CentOS (2.6.32-279.14.1.el6.x86_64)
         root (hd0,0)
         kernel /vmlinuz-2.6.32-279.14.1.el6.x86_64 ro root=/dev/mapper/vg_cent6-
lv_root rd_LVM_LV=vg_cent6/lv_swap rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD
rd_LVM_LV=vg_cent6/lv_root SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us
rd_NO_DM rhgb quiet crashkernel=auto hugepages=256
         initrd /initramfs-2.6.32-279.14.1.el6.x86_64.img
<snip>
# mkdir /hugepages
# cat /etc/fstab
<snip>
hugetlbfs                /hugepages               hugetlbfs rw,mode=0777 0 0
# reboot

      •   Confirm hugepage is enabled
# cat /proc/meminfo
<snip>
HugePages_Total:     256
HugePages_Free:      256
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
<snip>
Step2: Build DPDK and samples

$ unzip INTELDPDK.L.1.2.3_3.zip
$ cd DPDK
$ make install T=x86_64-default-linuxapp-gcc
$ pwd
/home/dpdktest/DPDK
$ cd examples/helloworld
$ RTE_SDK=/home/dpdktest/DPDK make
  CC main.o
  LD helloworld
  INSTALL-APP helloworld
  INSTALL-MAP helloworld.map
Step3: helloworld sample
      •   Load required module for DPDK Linux app
# modprobe uio
# insmod /home/dpdktest/DPDK/x86_64-default-linuxapp-gcc/kmod/igb_uio.ko



      •   Execute helloworld sample
# ./build/helloworld -c 3 -n 2
EAL: coremask set to 3
EAL: Detected lcore 0 on socket 0
EAL: Detected lcore 1 on socket 0
EAL: Requesting 256 pages of size 2097152
EAL: Ask a virtual area of 0x20000000 bytes
EAL: Virtual area found at 0x7f4862c00000 (size = 0x20000000)
EAL: WARNING: Cannot mmap /dev/hpet! The TSC will be used instead.
EAL: Master core 0 is ready (tid=82dd0800)
EAL: Core 1 is ready (tid=621fe700)
hello from core 1
hello from core 0
Step4-1: L2fwd Sample Build
           Sender VM                             DPDK VM           Receiver VM
            CentOS 6.3                            CentOS 6.3          CentOS 6.3
                 ixgbe                           ixgbe  ixgbe              ixgbe
          10.0.10.11 eth1                          port0   port1   10.0.10.22     eth1



                                                                                e.g. MAC addr (AA:BB:CC:DD:EE:FF)


      •      L2fwd/L3fwd samples are very simple
            •      One-way only. Don’t expect ping/pong
            •      Dest MAC address is hard-coded...

$ cd examples/l2fwd
$ diff -up main.c.0 main.c
@@ -293,7 +293,7 @@ l2fwd_simple_forward(struct rte_mbuf *m,

    /* 00:09:c0:00:00:xx */
        tmp = &eth->d_addr.addr_bytes[0];
-   *((uint64_t *)tmp) = 0x000000c00900 + (dst_port << 24);
+   *((uint64_t *)tmp) = 0xFFEEDDCCBBAA; /* AA:BB:CC:DD:EE:FF */

    /* src addr */
    ether_addr_copy(&l2fwd_ports_eth_addr[dst_port], &eth->s_addr);
$ RTE_SDK=/home/dpdktest/DPDK make
Step4-2: L2fwd Sample
                    Sender VM                               DPDK VM                  Receiver VM
                     CentOS 6.3                              CentOS 6.3                CentOS 6.3
                          ixgbe                             ixgbe  ixgbe                    ixgbe
                   10.0.10.11 eth1                           port0   port1          10.0.10.22   eth1
                                            (11:22:33:44:55:66)                                     (AA:BB:CC:DD:EE:FF)



#ip address add 10.0.10.11/24 dev eth1    #./build/l2fwd -c 0x3 -n 2 -- -p 0x3   #ip address add 10.0.10.22/24 dev eth1
                                                                                 #vnstat -i eth1 -l
#modprobe pktgen


#echo   “rem_device_all” > /proc/net/pktgen/kpktgend_0
#echo   "add_device eth1" > /proc/net/pktgen/kpktgend_0
#echo   "count 10000000" > /proc/net/pktgen/eth1
#echo   "clone_skb 1000000" > /proc/net/pktgen/eth1
#echo   "pkt_size 60" > /proc/net/pktgen/eth1
#echo   "delay 0" > /proc/net/pktgen/eth1
#echo   "dst 10.0.10.22" > /proc/net/pktgen/eth1
#echo   "dst_mac 11:22:33:44:55:66" > /proc/net/pktgen/eth1
#echo   "start" > /proc/net/pktgen/pgctrl




                                                                                 Packets are dropped at RX ports
                                                                                  of DPDK VM and Receiver VM
Step5-1: L3fwd Sample Build
           Sender VM                               DPDK VM                   Receiver VM
            CentOS 6.3                              CentOS 6.3                  CentOS 6.3
                 ixgbe                             ixgbe  ixgbe                      ixgbe
          10.0.10.11 eth1                           port0   port1            10.0.20.22     eth1




      •      L3 fwd sample has two functions to determine destination port                e.g. MAC addr (AA:BB:CC:DD:EE:FF)


            •      [default] destination IP address (LPM-based)
            •      5-tuples (Hash-based)
$ cd examples/l3fwd
$ diff -up main.c.0 main.c
@@ -282,6 +282,8 @@ static struct l3fwd_route l3fwd_route_ar
        {IPv4(6,1,1,0), 24, 5},
        {IPv4(7,1,1,0), 24, 6},
        {IPv4(8,1,1,0), 24, 7},
+       {IPv4(10,0,10,11), 24, 0},
+       {IPv4(10,0,20,22), 24, 1},
  };

 #define L3FWD_NUM_ROUTES 
@@ -475,7 +477,7 @@ l3fwd_simple_forward(struct rte_mbuf *m,

          /* 00:09:c0:00:00:xx */
          tmp = &eth_hdr->d_addr.addr_bytes[0];
-         *((uint64_t *)tmp) = 0x000000c00900 + (dst_port << 24);
+         *((uint64_t *)tmp) = 0xFFEEDDCCBBAA; /* AA:BB:CC:DD:EE:FF */

$ RTE_SDK=/home/dpdktest/DPDK make
Step5-2: L3fwd Sample
                    Sender VM                               DPDK VM                  Receiver VM
                     CentOS 6.3                              CentOS 6.3                CentOS 6.3
                          ixgbe                             ixgbe  ixgbe                    ixgbe
                   10.0.10.11 eth1                           port0   port1          10.0.20.22   eth1
                                            (11:22:33:44:55:66)                                     (AA:BB:CC:DD:EE:FF)



#ip address add 10.0.10.11/24 dev eth1    #./build/l3fwd -c 0x3 -n 2 -- -p 0x3   #ip address add 10.0.20.22/24 dev eth1
                                          --config="(0,0,0),(1,0,1)"             #vnstat -i eth1 -l
#modprobe pktgen


#echo   “rem_device_all” > /proc/net/pktgen/kpktgend_0
#echo   "add_device eth1" > /proc/net/pktgen/kpktgend_0
#echo   "count 10000000" > /proc/net/pktgen/eth1
#echo   "clone_skb 1000000" > /proc/net/pktgen/eth1
#echo   "pkt_size 60" > /proc/net/pktgen/eth1
#echo   "delay 0" > /proc/net/pktgen/eth1
#echo   "dst 10.0.20.22" > /proc/net/pktgen/eth1
#echo   "dst_mac 11:22:33:44:55:66" > /proc/net/pktgen/eth1
#echo   "start" > /proc/net/pktgen/pgctrl




                                                                                 Need reliable ways and tunings
                                                                                   to measure performance
Notes on this experiment

• No guarantee as usual
• No tuning effort has been made
• References:
 • http://www.intel.com/go/dpdk
 • For pktgen (in Japanese)
   • http://research.sakura.ad.jp/2010/10/08/
      infini01/

More Related Content

What's hot (20)

PPTX
Introduction to DPDK
Kernel TLV
 
PDF
DPDK: Multi Architecture High Performance Packet Processing
Michelle Holley
 
PDF
Network Programming: Data Plane Development Kit (DPDK)
Andriy Berestovskyy
 
PPTX
Debug dpdk process bottleneck & painpoints
Vipin Varghese
 
PDF
1 intro to_dpdk_and_hw
videos
 
PDF
DPDK in Containers Hands-on Lab
Michelle Holley
 
PDF
7 hands on
videos
 
PDF
Faster packet processing in Linux: XDP
Daniel T. Lee
 
PPSX
FD.io Vector Packet Processing (VPP)
Kirill Tsym
 
PDF
netfilter and iptables
Kernel TLV
 
PPTX
Linux Network Stack
Adrien Mahieux
 
PDF
Dpdk pmd
Masaru Oki
 
PPSX
FD.IO Vector Packet Processing
Kernel TLV
 
PDF
Fun with Network Interfaces
Kernel TLV
 
PDF
What are latest new features that DPDK brings into 2018?
Michelle Holley
 
ODP
eBPF maps 101
SUSE Labs Taipei
 
PPTX
Fast Userspace OVS with AF_XDP, OVS CONF 2018
Cheng-Chun William Tu
 
PDF
Xdp and ebpf_maps
lcplcp1
 
ODP
nftables - the evolution of Linux Firewall
Marian Marinov
 
PDF
Open vSwitch - Stateful Connection Tracking & Stateful NAT
Thomas Graf
 
Introduction to DPDK
Kernel TLV
 
DPDK: Multi Architecture High Performance Packet Processing
Michelle Holley
 
Network Programming: Data Plane Development Kit (DPDK)
Andriy Berestovskyy
 
Debug dpdk process bottleneck & painpoints
Vipin Varghese
 
1 intro to_dpdk_and_hw
videos
 
DPDK in Containers Hands-on Lab
Michelle Holley
 
7 hands on
videos
 
Faster packet processing in Linux: XDP
Daniel T. Lee
 
FD.io Vector Packet Processing (VPP)
Kirill Tsym
 
netfilter and iptables
Kernel TLV
 
Linux Network Stack
Adrien Mahieux
 
Dpdk pmd
Masaru Oki
 
FD.IO Vector Packet Processing
Kernel TLV
 
Fun with Network Interfaces
Kernel TLV
 
What are latest new features that DPDK brings into 2018?
Michelle Holley
 
eBPF maps 101
SUSE Labs Taipei
 
Fast Userspace OVS with AF_XDP, OVS CONF 2018
Cheng-Chun William Tu
 
Xdp and ebpf_maps
lcplcp1
 
nftables - the evolution of Linux Firewall
Marian Marinov
 
Open vSwitch - Stateful Connection Tracking & Stateful NAT
Thomas Graf
 

Viewers also liked (8)

PPTX
Vagrant
Denys Haryachyy
 
PDF
cassandra 100 node cluster admin operation
oranie Narut
 
PPTX
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
 
PDF
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
Kentaro Ebisawa
 
PDF
PaaSの作り方 Sqaleの場合
hiboma
 
PDF
コンテナ情報交換会2
Masahide Yamamoto
 
PPTX
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
Gosuke Miyashita
 
PDF
Nosqlの基礎知識(2013年7月講義資料)
CLOUDIAN KK
 
cassandra 100 node cluster admin operation
oranie Narut
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
 
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
Kentaro Ebisawa
 
PaaSの作り方 Sqaleの場合
hiboma
 
コンテナ情報交換会2
Masahide Yamamoto
 
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
Gosuke Miyashita
 
Nosqlの基礎知識(2013年7月講義資料)
CLOUDIAN KK
 
Ad

Similar to Intel DPDK Step by Step instructions (20)

PDF
9 creating cent_os 7_mages_for_dpdk_training
videos
 
PDF
Linux hpc-cluster-setup-guide
jasembo
 
PPTX
RHCE (RED HAT CERTIFIED ENGINEERING)
Sumant Garg
 
DOCX
Kickstart
Dhananjayan Ezhumalai
 
PDF
Picobgp - A simple deamon for routing advertising
Claudio Mignanti
 
PDF
Disruptive IP Networking with Intel DPDK on Linux
Naoto MATSUMOTO
 
PDF
Linux router
Miguel E Arellano Quezada
 
PDF
High Availability With DRBD & Heartbeat
Chris Barber
 
PDF
CloudStackユーザ会〜仮想ルータの謎に迫る
samemoon
 
PDF
CloudStackユーザ会〜仮想ルータの謎に迫る
samemoon
 
PDF
XS Japan 2008 Xen Mgmt English
The Linux Foundation
 
DOC
Ex no1 (1)
basramya
 
PDF
Sockets
Indrasena Reddy
 
PDF
2015.10.05 Updated > Network Device Development - Part 1: Switch
Cheng-Yi Yu
 
PPTX
Vagrant, Ansible, and OpenStack on your laptop
Lorin Hochstein
 
PDF
MIPS-X
Zoltan Balazs
 
PDF
Web Server Free Bsd
Kwanchai Charoennet
 
PPTX
14 network tools
Shay Cohen
 
PPT
Basic Linux kernel
Morteza Nourelahi Alamdari
 
PDF
The Virtualized Server Infrastructure Of The Tiki Wiki Community - Conf. PHP ...
Alexander Mette
 
9 creating cent_os 7_mages_for_dpdk_training
videos
 
Linux hpc-cluster-setup-guide
jasembo
 
RHCE (RED HAT CERTIFIED ENGINEERING)
Sumant Garg
 
Picobgp - A simple deamon for routing advertising
Claudio Mignanti
 
Disruptive IP Networking with Intel DPDK on Linux
Naoto MATSUMOTO
 
High Availability With DRBD & Heartbeat
Chris Barber
 
CloudStackユーザ会〜仮想ルータの謎に迫る
samemoon
 
CloudStackユーザ会〜仮想ルータの謎に迫る
samemoon
 
XS Japan 2008 Xen Mgmt English
The Linux Foundation
 
Ex no1 (1)
basramya
 
2015.10.05 Updated > Network Device Development - Part 1: Switch
Cheng-Yi Yu
 
Vagrant, Ansible, and OpenStack on your laptop
Lorin Hochstein
 
Web Server Free Bsd
Kwanchai Charoennet
 
14 network tools
Shay Cohen
 
Basic Linux kernel
Morteza Nourelahi Alamdari
 
The Virtualized Server Infrastructure Of The Tiki Wiki Community - Conf. PHP ...
Alexander Mette
 
Ad

Intel DPDK Step by Step instructions

  • 1. Intel DPDK Step by Step Instructions Hisaki Ohara (@hisak)
  • 2. Objectives • Build/Execute sample applications (helloworld, L2fwd and L3fwd) • Packet forwarding by generating with Linux/pktgen
  • 3. Test Environment ESXi 5.1 ESXi 5.1 ESXi 5.1 Sender VM DPDK VM Receiver VM CentOS 6.3 CentOS 6.3 CentOS 6.3 ixgbe ixgbe ixgbe ixgbe VMDirectPath (VT-D) VMDirectPath (VT-D) VMDirectPath (VT-D) Intel 10G NIC Intel 10G NIC Intel 10G NIC (82599) (82599) (82599) - ESXi 5.1 - CPU: Xeon 5600 Series - Guest OS: CentOS 6.3 x86_64 - # of vCPUs: 2 - 10G NIC (82599) is passed through - In-box driver of ixgbe
  • 4. Step0: Download source codes • Source codes and relevant documents • http://www.intel.com/go/dpdk
  • 5. Step1: Prepare Linux Kernel • # uname -a Add boot option and fstab for hugepage Linux cent-dpdk 2.6.32-279.14.1.el6.x86_64 #1 SMP Tue Nov 6 23:43:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux # cat /boot/grub/grub.conf <snip> title CentOS (2.6.32-279.14.1.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-279.14.1.el6.x86_64 ro root=/dev/mapper/vg_cent6- lv_root rd_LVM_LV=vg_cent6/lv_swap rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_cent6/lv_root SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet crashkernel=auto hugepages=256 initrd /initramfs-2.6.32-279.14.1.el6.x86_64.img <snip> # mkdir /hugepages # cat /etc/fstab <snip> hugetlbfs /hugepages hugetlbfs rw,mode=0777 0 0 # reboot • Confirm hugepage is enabled # cat /proc/meminfo <snip> HugePages_Total: 256 HugePages_Free: 256 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB <snip>
  • 6. Step2: Build DPDK and samples $ unzip INTELDPDK.L.1.2.3_3.zip $ cd DPDK $ make install T=x86_64-default-linuxapp-gcc $ pwd /home/dpdktest/DPDK $ cd examples/helloworld $ RTE_SDK=/home/dpdktest/DPDK make CC main.o LD helloworld INSTALL-APP helloworld INSTALL-MAP helloworld.map
  • 7. Step3: helloworld sample • Load required module for DPDK Linux app # modprobe uio # insmod /home/dpdktest/DPDK/x86_64-default-linuxapp-gcc/kmod/igb_uio.ko • Execute helloworld sample # ./build/helloworld -c 3 -n 2 EAL: coremask set to 3 EAL: Detected lcore 0 on socket 0 EAL: Detected lcore 1 on socket 0 EAL: Requesting 256 pages of size 2097152 EAL: Ask a virtual area of 0x20000000 bytes EAL: Virtual area found at 0x7f4862c00000 (size = 0x20000000) EAL: WARNING: Cannot mmap /dev/hpet! The TSC will be used instead. EAL: Master core 0 is ready (tid=82dd0800) EAL: Core 1 is ready (tid=621fe700) hello from core 1 hello from core 0
  • 8. Step4-1: L2fwd Sample Build Sender VM DPDK VM Receiver VM CentOS 6.3 CentOS 6.3 CentOS 6.3 ixgbe ixgbe ixgbe ixgbe 10.0.10.11 eth1 port0 port1 10.0.10.22 eth1 e.g. MAC addr (AA:BB:CC:DD:EE:FF) • L2fwd/L3fwd samples are very simple • One-way only. Don’t expect ping/pong • Dest MAC address is hard-coded... $ cd examples/l2fwd $ diff -up main.c.0 main.c @@ -293,7 +293,7 @@ l2fwd_simple_forward(struct rte_mbuf *m, /* 00:09:c0:00:00:xx */ tmp = &eth->d_addr.addr_bytes[0]; - *((uint64_t *)tmp) = 0x000000c00900 + (dst_port << 24); + *((uint64_t *)tmp) = 0xFFEEDDCCBBAA; /* AA:BB:CC:DD:EE:FF */ /* src addr */ ether_addr_copy(&l2fwd_ports_eth_addr[dst_port], &eth->s_addr); $ RTE_SDK=/home/dpdktest/DPDK make
  • 9. Step4-2: L2fwd Sample Sender VM DPDK VM Receiver VM CentOS 6.3 CentOS 6.3 CentOS 6.3 ixgbe ixgbe ixgbe ixgbe 10.0.10.11 eth1 port0 port1 10.0.10.22 eth1 (11:22:33:44:55:66) (AA:BB:CC:DD:EE:FF) #ip address add 10.0.10.11/24 dev eth1 #./build/l2fwd -c 0x3 -n 2 -- -p 0x3 #ip address add 10.0.10.22/24 dev eth1 #vnstat -i eth1 -l #modprobe pktgen #echo “rem_device_all” > /proc/net/pktgen/kpktgend_0 #echo "add_device eth1" > /proc/net/pktgen/kpktgend_0 #echo "count 10000000" > /proc/net/pktgen/eth1 #echo "clone_skb 1000000" > /proc/net/pktgen/eth1 #echo "pkt_size 60" > /proc/net/pktgen/eth1 #echo "delay 0" > /proc/net/pktgen/eth1 #echo "dst 10.0.10.22" > /proc/net/pktgen/eth1 #echo "dst_mac 11:22:33:44:55:66" > /proc/net/pktgen/eth1 #echo "start" > /proc/net/pktgen/pgctrl Packets are dropped at RX ports of DPDK VM and Receiver VM
  • 10. Step5-1: L3fwd Sample Build Sender VM DPDK VM Receiver VM CentOS 6.3 CentOS 6.3 CentOS 6.3 ixgbe ixgbe ixgbe ixgbe 10.0.10.11 eth1 port0 port1 10.0.20.22 eth1 • L3 fwd sample has two functions to determine destination port e.g. MAC addr (AA:BB:CC:DD:EE:FF) • [default] destination IP address (LPM-based) • 5-tuples (Hash-based) $ cd examples/l3fwd $ diff -up main.c.0 main.c @@ -282,6 +282,8 @@ static struct l3fwd_route l3fwd_route_ar {IPv4(6,1,1,0), 24, 5}, {IPv4(7,1,1,0), 24, 6}, {IPv4(8,1,1,0), 24, 7}, + {IPv4(10,0,10,11), 24, 0}, + {IPv4(10,0,20,22), 24, 1}, }; #define L3FWD_NUM_ROUTES @@ -475,7 +477,7 @@ l3fwd_simple_forward(struct rte_mbuf *m, /* 00:09:c0:00:00:xx */ tmp = &eth_hdr->d_addr.addr_bytes[0]; - *((uint64_t *)tmp) = 0x000000c00900 + (dst_port << 24); + *((uint64_t *)tmp) = 0xFFEEDDCCBBAA; /* AA:BB:CC:DD:EE:FF */ $ RTE_SDK=/home/dpdktest/DPDK make
  • 11. Step5-2: L3fwd Sample Sender VM DPDK VM Receiver VM CentOS 6.3 CentOS 6.3 CentOS 6.3 ixgbe ixgbe ixgbe ixgbe 10.0.10.11 eth1 port0 port1 10.0.20.22 eth1 (11:22:33:44:55:66) (AA:BB:CC:DD:EE:FF) #ip address add 10.0.10.11/24 dev eth1 #./build/l3fwd -c 0x3 -n 2 -- -p 0x3 #ip address add 10.0.20.22/24 dev eth1 --config="(0,0,0),(1,0,1)" #vnstat -i eth1 -l #modprobe pktgen #echo “rem_device_all” > /proc/net/pktgen/kpktgend_0 #echo "add_device eth1" > /proc/net/pktgen/kpktgend_0 #echo "count 10000000" > /proc/net/pktgen/eth1 #echo "clone_skb 1000000" > /proc/net/pktgen/eth1 #echo "pkt_size 60" > /proc/net/pktgen/eth1 #echo "delay 0" > /proc/net/pktgen/eth1 #echo "dst 10.0.20.22" > /proc/net/pktgen/eth1 #echo "dst_mac 11:22:33:44:55:66" > /proc/net/pktgen/eth1 #echo "start" > /proc/net/pktgen/pgctrl Need reliable ways and tunings to measure performance
  • 12. Notes on this experiment • No guarantee as usual • No tuning effort has been made • References: • http://www.intel.com/go/dpdk • For pktgen (in Japanese) • http://research.sakura.ad.jp/2010/10/08/ infini01/