Projet

Général

Profil

DPDK » Historique » Version 97

Laurent GUERBY, 22/05/2016 12:42

1 1 Laurent GUERBY
{{>toc}}
2 1 Laurent GUERBY
3 1 Laurent GUERBY
h1. DPDK
4 1 Laurent GUERBY
5 1 Laurent GUERBY
Traitement haute performance en logiciel, 10 Gbit/s en petit paquets line rate
6 1 Laurent GUERBY
7 1 Laurent GUERBY
h2. Liens
8 1 Laurent GUERBY
9 1 Laurent GUERBY
* http://dpdk.org
10 1 Laurent GUERBY
* [[AtelierPPS2012]]
11 16 Laurent GUERBY
* GIT http://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/dpdk
12 16 Laurent GUERBY
<pre>
13 16 Laurent GUERBY
$ git clone ssh://git@git.tetaneutral.net/dpdk.git
14 16 Laurent GUERBY
</pre>
15 16 Laurent GUERBY
16 17 Laurent GUERBY
* Nerim Antoine https://twitter.com/nerim_net/status/517592380841930752
17 17 Laurent GUERBY
** Du code maison fondé sur #DPDK en prod dans le réseau : première étape vers l'élimination des systèmes propriétaires ?
18 2 Laurent GUERBY
19 2 Laurent GUERBY
h2. Misc
20 2 Laurent GUERBY
21 97 Laurent GUERBY
* https://fd.io/
22 66 Laurent GUERBY
* http://developerblog.redhat.com/2015/06/02/can-you-run-intels-data-plane-development-kit-dpdk-in-a-docker-container-yep/
23 66 Laurent GUERBY
** DPDK like
24 62 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf
25 45 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/datasheets/82599-10-gbe-controller-datasheet.pdf
26 45 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/datasheets/82598-10-gbe-controller-datasheet.pdf
27 44 Laurent GUERBY
* MoonGen: A Scriptable High-Speed Packet Generator
28 44 Laurent GUERBY
** http://arxiv.org/pdf/1410.3322.pdf
29 44 Laurent GUERBY
** http://www.net.in.tum.de/fileadmin/bibtex/publications/papers/MoonGen_IMC2015.pdf
30 44 Laurent GUERBY
** https://github.com/emmericp/MoonGen
31 26 Laurent GUERBY
* https://www.kernel.org/doc/Documentation/networking/switchdev.txt
32 25 Laurent GUERBY
* https://www.usenix.org/conference/osdi14/technical-sessions/presentation/belay
33 25 Laurent GUERBY
** IX: A Protected Dataplane Operating System for High Throughput and Low Latency
34 25 Laurent GUERBY
** http://www.linuxfoundation.org/images/1/1c/Network_data_flow_through_kernel.png
35 25 Laurent GUERBY
** http://www.linuxfoundation.org/collaborate/workgroups/networking/kernel_flow
36 23 Laurent GUERBY
* https://blog.cloudflare.com/how-to-receive-a-million-packets/
37 23 Laurent GUERBY
** How to receive a million packets per second
38 24 Laurent GUERBY
* https://blog.cloudflare.com/how-to-achieve-low-latency/
39 21 Laurent GUERBY
* http://www.cs.cmu.edu/~dongz/papers/cuckooswitch.pdf
40 22 Laurent GUERBY
** We show that CUCKOOSWITCH can process 92.22 million minimum sized packets per second on a commodity server equipped with eight 10 Gbps Ethernet interfaces while maintaining a forwarding table of one billion forwarding entries.
41 18 Laurent GUERBY
* Improving Linux networking performance https://lwn.net/Articles/629155/
42 18 Laurent GUERBY
** https://www.youtube.com/watch?v=3XG9-X777Jo
43 19 Laurent GUERBY
** http://people.netfilter.org/hawk/presentations/LCA2015/net_stack_challenges_100G_LCA2015.pdf
44 20 Laurent GUERBY
* http://www.bigswitch.com/sites/default/files/presentations/onug-baremetal-2014-final.pdf
45 2 Laurent GUERBY
* Intel PCI id http://www.intel.com/support/network/sb/cs-012904.htm
46 3 Laurent GUERBY
* http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-products.html?iid=embed_portal+hdprod_ethernet#s1=Gigabit%20Ethernet&s2=all&s3=all
47 3 Laurent GUERBY
* Intel Pro/1000 PT vs CT http://hardforum.com/showthread.php?t=1386042
48 4 Laurent GUERBY
* http://images.ncix.com/forumimages/C9864B87-583B-10FB-B0DE80742781CE07.jpg
49 4 Laurent GUERBY
* http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-controllers.html#s1=all&s2=82572EI&s3=all
50 4 Laurent GUERBY
* http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-controllers.html#s1=all&s2=82574L&s3=all
51 5 Laurent GUERBY
* https://github.com/Pktgen/Pktgen-DPDK
52 6 Laurent GUERBY
* Evaluating the Suitability of Server Network Cards for Software Routers http://kfall.net/ucbpage/papers/snc.pdf
53 13 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/guides/intel-dpdk-sample-applications-user-guide.pdf
54 13 Laurent GUERBY
*  rte_eth_rx_burst
55 13 Laurent GUERBY
** http://dpdk.org/doc/api/rte__ethdev_8h.html#a5ac93faa0f3f69545ca121dcfd9433f5
56 13 Laurent GUERBY
** http://dpdk.info/ml/archives/dev/2014-January/001223.html
57 14 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/white-papers/aes-ipsec-performance-linux-paper.pdf
58 15 Laurent GUERBY
* http://networkbuilders.intel.com/docs/Network_Builders_RA_vBRAS_Final.pdf
59 15 Laurent GUERBY
60 15 Laurent GUERBY
* https://github.com/SnabbCo/snabbswitch
61 15 Laurent GUERBY
** https://github.com/SnabbCo/snabbswitch/blob/master/src/apps/intel/intel10g.lua
62 15 Laurent GUERBY
** http://blog.ipspace.net/2014/06/snabb-switch-and-nfv-on-openstack-in.html
63 15 Laurent GUERBY
** https://github.com/SnabbCo/snabbswitch/wiki/Snabb-Lab
64 15 Laurent GUERBY
** https://twitter.com/lukego/status/327714050219847680
65 7 Mehdi Abaakouk
66 7 Mehdi Abaakouk
h2. Note sileht dpdk:
67 7 Mehdi Abaakouk
68 7 Mehdi Abaakouk
Extract from: http://www.intel.com/content/dam/www/public/us/en/documents/guides/intel-dpdk-getting-started-guide.pdf
69 7 Mehdi Abaakouk
70 7 Mehdi Abaakouk
h3. configuration hugepages: 
71 7 Mehdi Abaakouk
72 7 Mehdi Abaakouk
* 2M (1024*2k): hugepages=1024 (at runtime: echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages)
73 7 Mehdi Abaakouk
* 4G (4x1G): default_hugepagesz=1G hugepagesz=1G hugepages=4 (only works at boot time via grub)
74 7 Mehdi Abaakouk
75 7 Mehdi Abaakouk
<pre>
76 7 Mehdi Abaakouk
mkdir /mnt/huge
77 7 Mehdi Abaakouk
mount -t hugetlbfs nodev /mnt/huge
78 7 Mehdi Abaakouk
</pre>
79 7 Mehdi Abaakouk
80 7 Mehdi Abaakouk
h3. Compile and load modules: 
81 7 Mehdi Abaakouk
82 7 Mehdi Abaakouk
_Note: source tools/setup.sh is a helper tools for this but works only with IGB driver not e1000e_
83 7 Mehdi Abaakouk
84 1 Laurent GUERBY
<pre>
85 8 Mehdi Abaakouk
# apt-get install make gcc linux-headers-amd64
86 8 Mehdi Abaakouk
# make config T=x86_64-default-linuxapp-gcc
87 7 Mehdi Abaakouk
# make T=x86_64-default-linuxapp-gcc
88 7 Mehdi Abaakouk
..
89 7 Mehdi Abaakouk
Build complete
90 7 Mehdi Abaakouk
91 7 Mehdi Abaakouk
# modprobe uio  (I think this is not useful)
92 7 Mehdi Abaakouk
# insmod build/kmod/rte_kni.ko (I think this is not useful)
93 7 Mehdi Abaakouk
# insmod build/kmod/igb_uio.ko (I think this is not useful)
94 7 Mehdi Abaakouk
# ./tools/pci_unbind.py --status
95 7 Mehdi Abaakouk
96 7 Mehdi Abaakouk
Network devices using IGB_UIO driver
97 7 Mehdi Abaakouk
====================================
98 7 Mehdi Abaakouk
<none>
99 7 Mehdi Abaakouk
100 7 Mehdi Abaakouk
Network devices using kernel driver
101 7 Mehdi Abaakouk
===================================
102 9 Mehdi Abaakouk
0000:00:19.0 '82579LM Gigabit Network Connection' if=eth1 drv=e1000e unused=<none>
103 9 Mehdi Abaakouk
0000:01:00.0 '82599EB 10-Gigabit SFI/SFP+ Network Connection' if=eth6 drv=ixgbe unused=igb_uio *Active*
104 9 Mehdi Abaakouk
0000:01:00.1 '82599EB 10-Gigabit SFI/SFP+ Network Connection' if=eth7 drv=ixgbe unused=igb_uio
105 9 Mehdi Abaakouk
0000:04:00.0 '82571EB Gigabit Ethernet Controller' if=eth2 drv=e1000e unused=igb_uio *Active*
106 9 Mehdi Abaakouk
0000:04:00.1 '82571EB Gigabit Ethernet Controller' if=eth3 drv=e1000e unused=igb_uio
107 9 Mehdi Abaakouk
0000:05:00.0 '82571EB Gigabit Ethernet Controller' if=eth4 drv=e1000e unused=igb_uio
108 9 Mehdi Abaakouk
0000:05:00.1 '82571EB Gigabit Ethernet Controller' if=eth5 drv=e1000e unused=igb_uio
109 9 Mehdi Abaakouk
0000:06:00.0 'RTL8111/8168B PCI Express Gigabit Ethernet controller' if=eth0 drv=r8169 unused=<none> *Active*
110 1 Laurent GUERBY
111 1 Laurent GUERBY
Other network devices
112 1 Laurent GUERBY
=====================
113 1 Laurent GUERBY
<none>
114 9 Mehdi Abaakouk
</pre>
115 7 Mehdi Abaakouk
116 9 Mehdi Abaakouk
test sur eth7:
117 9 Mehdi Abaakouk
118 9 Mehdi Abaakouk
<pre>
119 9 Mehdi Abaakouk
# ip link set eth7 down
120 9 Mehdi Abaakouk
# ./tools/pci_unbind.py --bind=igb_uio 0000:01:00.1
121 7 Mehdi Abaakouk
</pre>
122 7 Mehdi Abaakouk
123 7 Mehdi Abaakouk
h3. Prepare examples programs:
124 7 Mehdi Abaakouk
125 7 Mehdi Abaakouk
<pre>
126 7 Mehdi Abaakouk
# export RTE_SDK=/root/sileht/dpdk-1.6.0r1
127 7 Mehdi Abaakouk
# export RTE_TARGET=build
128 7 Mehdi Abaakouk
# cd /root/sileht/
129 7 Mehdi Abaakouk
# cp -r $RTE_SDK/examples/helloworld my_rte_app
130 7 Mehdi Abaakouk
# cd my_rte_app
131 7 Mehdi Abaakouk
# make
132 7 Mehdi Abaakouk
</pre>
133 7 Mehdi Abaakouk
134 7 Mehdi Abaakouk
135 7 Mehdi Abaakouk
h3. Tests
136 7 Mehdi Abaakouk
137 7 Mehdi Abaakouk
<pre>
138 1 Laurent GUERBY
</pre>
139 10 Mehdi Abaakouk
140 11 Mehdi Abaakouk
h2. Limitation SPF carte intel:
141 10 Mehdi Abaakouk
142 11 Mehdi Abaakouk
Une fois le module igb_uio changé sur les:
143 10 Mehdi Abaakouk
144 10 Mehdi Abaakouk
<pre>
145 10 Mehdi Abaakouk
01:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
146 10 Mehdi Abaakouk
</pre>
147 10 Mehdi Abaakouk
148 11 Mehdi Abaakouk
Un flags de l'eeprom change et le module ixgbe ne charge plus les ports de la carte qui n'ont pas des SFP+ intel avec le message d'erreur suivant:
149 10 Mehdi Abaakouk
150 10 Mehdi Abaakouk
<pre>
151 10 Mehdi Abaakouk
[  563.069683] ixgbe 0000:01:00.0: failed to load because an unsupported SFP+ or QSFP module type was detected.
152 10 Mehdi Abaakouk
[  563.069786] ixgbe 0000:01:00.0: Reload the driver after installing a supported module.
153 10 Mehdi Abaakouk
</pre>
154 10 Mehdi Abaakouk
155 10 Mehdi Abaakouk
Pour contourner le problème:
156 10 Mehdi Abaakouk
157 10 Mehdi Abaakouk
<pre>
158 10 Mehdi Abaakouk
modprobe ixgbe allow_unsupported_sfp=1 # allow_any_sfp=1 suivant le kernel
159 10 Mehdi Abaakouk
</pre>
160 10 Mehdi Abaakouk
161 10 Mehdi Abaakouk
ou 
162 10 Mehdi Abaakouk
163 1 Laurent GUERBY
<pre>
164 1 Laurent GUERBY
echo "options ixgbe allow_unsupported_sfp=1" > /etc/modprobe.d/ixgbe_any_sfp.conf
165 1 Laurent GUERBY
update-initramfs -u -k all
166 11 Mehdi Abaakouk
</pre>
167 11 Mehdi Abaakouk
168 11 Mehdi Abaakouk
La carte fonctionnera à nouveau avec le message suivant:
169 11 Mehdi Abaakouk
170 11 Mehdi Abaakouk
<pre>
171 11 Mehdi Abaakouk
[  908.361767] ixgbe 0000:01:00.0 (unregistered net_device): WARNING: Intel (R) Network Connections are quality tested using Intel (R) Ethernet Optics.  Using untested modules is not supported and may cause unstable operation or damage to the module or the adapter.  Intel Corporation is not responsible for any harm caused by using untested modules.
172 10 Mehdi Abaakouk
</pre>
173 12 Laurent GUERBY
174 27 Laurent GUERBY
h2. Packet Journey
175 1 Laurent GUERBY
176 27 Laurent GUERBY
https://www.gandi.net/news/en/2015-12-16/6308-packet-journey_a_free_software_router_for_linux_based_on_dpdk/
177 27 Laurent GUERBY
https://github.com/gandi/packet-journey
178 27 Laurent GUERBY
179 27 Laurent GUERBY
h2. Atelier 2016
180 27 Laurent GUERBY
181 55 Laurent GUERBY
h3. Atelier Hardware
182 54 Laurent GUERBY
183 95 Laurent GUERBY
En salle milieu a Myrys.
184 67 Laurent GUERBY
185 67 Laurent GUERBY
http://pad.tetaneutral.net/p/dpdk
186 67 Laurent GUERBY
187 1 Laurent GUERBY
<pre>
188 28 Laurent GUERBY
core i7 2600 @ 3.40GHz
189 31 Laurent GUERBY
 fpu vme de pse tsc msr pae mce cx8 
190 31 Laurent GUERBY
 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 
191 31 Laurent GUERBY
 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl 
192 31 Laurent GUERBY
 xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 
193 31 Laurent GUERBY
 cx16 xtpr pdcm pcid sse4_1 sse4_2 
194 31 Laurent GUERBY
 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
195 28 Laurent GUERBY
16G RAM
196 56 Laurent GUERBY
SSD 250G
197 56 Laurent GUERBY
</pre>
198 56 Laurent GUERBY
199 95 Laurent GUERBY
http://www.intel.fr/content/dam/www/public/us/en/documents/guides/gbe-server-selection-guide.pdf
200 29 Laurent GUERBY
201 60 Laurent GUERBY
<pre>
202 63 Laurent GUERBY
h7   82599ES 8086:10fb 8086:7a11 
203 63 Laurent GUERBY
g1   82599ES (VM maposmatic)
204 60 Laurent GUERBY
g2   X520    8086:154d 8086:7b11
205 60 Laurent GUERBY
g3   82599ES
206 60 Laurent GUERBY
g4   X520 
207 60 Laurent GUERBY
g5   X520
208 60 Laurent GUERBY
g6   X520
209 63 Laurent GUERBY
n7   X520 (VM openstack)
210 60 Laurent GUERBY
g8   X520
211 60 Laurent GUERBY
g9   82598EB 8086:10f1 8086:a21f
212 60 Laurent GUERBY
g10  X520
213 60 Laurent GUERBY
g11  82598EB
214 60 Laurent GUERBY
g12  82598EB
215 1 Laurent GUERBY
stri X520
216 1 Laurent GUERBY
217 1 Laurent GUERBY
t1   82598EB 
218 1 Laurent GUERBY
t2   82598EB 
219 1 Laurent GUERBY
t3   82598EB 
220 1 Laurent GUERBY
221 1 Laurent GUERBY
stock 82598EB
222 1 Laurent GUERBY
stock 82598EB
223 1 Laurent GUERBY
stock X520
224 67 Laurent GUERBY
</pre>
225 67 Laurent GUERBY
226 67 Laurent GUERBY
old obsolete:
227 67 Laurent GUERBY
<pre>
228 67 Laurent GUERBY
host eth DHCP          10G-a                                           10G-b
229 67 Laurent GUERBY
t1   54:04:a6:ef:a8:c7 00:1b:21:d9:28:55 fe80::21b:21ff:fed9:2855(t2b) 00:1b:21:d9:28:54 fe80::21b:21ff:fed9:2854(t3b)
230 67 Laurent GUERBY
t2   e0:69:95:2e:e6:a2 00:1b:21:d9:1a:e1 fe80::21b:21ff:fed9:1ae1(t3a) 00:1b:21:d9:1a:e0 fe80::21b:21ff:fed9:1ae0(t1a)
231 67 Laurent GUERBY
t3   bc:ae:c5:e1:b2:6d 00:1b:21:d9:df:3d fe80::21b:21ff:fed9:df3d(t2a) 00:1b:21:d9:df:3c fe80::21b:21ff:fed9:df3c(t1b)
232 67 Laurent GUERBY
233 67 Laurent GUERBY
1G e1000e
234 67 Laurent GUERBY
t1 00:15:17:a6:cb:19
235 67 Laurent GUERBY
t3 00:15:17:16:bd:de
236 60 Laurent GUERBY
</pre>
237 60 Laurent GUERBY
238 55 Laurent GUERBY
h3. Atelier Liens
239 54 Laurent GUERBY
240 33 Laurent GUERBY
https://github.com/Gandi/packet-journey
241 30 Laurent GUERBY
http://dpdk.org/doc/guides/linux_gsg/build_dpdk.html
242 40 Laurent GUERBY
http://dpdk.org/doc/quick-start
243 50 Laurent GUERBY
http://dpdk.org/browse/apps/pktgen-dpdk/tree/README.md
244 1 Laurent GUERBY
http://dpdk.org/doc/guides/testpmd_app_ug/index.html
245 47 Laurent GUERBY
http://dpdk.readthedocs.org/en/v2.2.0/
246 54 Laurent GUERBY
https://github.com/emmericp/MoonGen
247 29 Laurent GUERBY
http://www.slideshare.net/movilforum/7-hands-on
248 33 Laurent GUERBY
http://p4.org/wp-content/uploads/2015/11/Princeton-Demo-Poster.pdf
249 59 Laurent GUERBY
http://dpdk.org/ml/archives/users/
250 59 Laurent GUERBY
http://dpdk.org/ml/archives/dev/
251 59 Laurent GUERBY
http://openvswitch.org/support/ovscon2015/
252 64 Laurent GUERBY
https://events.ccc.de/congress/2015/Fahrplan/events/7523.html lecture: DDoS mitigation EPIC FAIL collection
253 65 Laurent GUERBY
https://github.com/aragua/libpacket
254 96 Laurent GUERBY
https://github.com/groud/dpdkcap
255 96 Laurent GUERBY
256 33 Laurent GUERBY
257 54 Laurent GUERBY
h3. Atelier Issues
258 1 Laurent GUERBY
259 1 Laurent GUERBY
* Issues opened
260 33 Laurent GUERBY
** https://github.com/Gandi/packet-journey/issues/20 
261 1 Laurent GUERBY
** https://github.com/pktgen/Pktgen-DPDK/issues/52
262 1 Laurent GUERBY
** https://github.com/emmericp/MoonGen/issues/106
263 58 Laurent GUERBY
** http://dpdk.org/ml/archives/dev/2015-December/030798.html
264 93 Laurent GUERBY
** http://dpdk.org/ml/archives/dev/2016-April/037331.html
265 1 Laurent GUERBY
266 54 Laurent GUERBY
h3. Atelier Build
267 54 Laurent GUERBY
268 92 Laurent GUERBY
http://pad.tetaneutral.net/p/dpdk
269 92 Laurent GUERBY
270 1 Laurent GUERBY
<pre>
271 91 Laurent GUERBY
# From debian jessie basic install
272 91 Laurent GUERBY
273 87 Laurent GUERBY
# Packages
274 87 Laurent GUERBY
275 79 Laurent GUERBY
apt-get -y build-dep linux-image-amd64
276 80 Laurent GUERBY
apt-get -y install linux-headers-$(uname -r)
277 1 Laurent GUERBY
apt-get -y install git linux-tools emacs-nox libpcap-dev tcpdump iperf iperf3 screen rsync socat bzip2 xz-utils cmake python-sphinx tcpdump
278 54 Laurent GUERBY
279 87 Laurent GUERBY
# huge pages, dans /etc/rc.local par exemple
280 87 Laurent GUERBY
281 1 Laurent GUERBY
modprobe uio_pci_generic
282 29 Laurent GUERBY
mkdir -p /mnt/huge
283 1 Laurent GUERBY
mount -t hugetlbfs nodev /mnt/huge
284 91 Laurent GUERBY
# or GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=4" :
285 1 Laurent GUERBY
echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
286 49 Laurent GUERBY
287 54 Laurent GUERBY
# Sources
288 54 Laurent GUERBY
289 1 Laurent GUERBY
mkdir ftp
290 1 Laurent GUERBY
cd ftp
291 1 Laurent GUERBY
wget http://dpdk.org/browse/dpdk/snapshot/dpdk-2.2.0.tar.gz
292 78 Laurent GUERBY
wget http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/pktgen-2.9.12.tar.gz
293 78 Laurent GUERBY
294 1 Laurent GUERBY
cd ..
295 61 Laurent GUERBY
git clone https://github.com/Gandi/packet-journey.git
296 61 Laurent GUERBY
git clone http://dpdk.org/git/apps/pktgen-dpdk
297 61 Laurent GUERBY
git clone http://dpdk.org/git/dpdk-stable
298 61 Laurent GUERBY
git clone https://github.com/emmericp/MoonGen.git
299 1 Laurent GUERBY
300 52 Laurent GUERBY
301 91 Laurent GUERBY
# Build DPDK
302 1 Laurent GUERBY
303 88 Laurent GUERBY
tar xf ftp/dpdk-2.2.0.tar.gz
304 30 Laurent GUERBY
cd dpdk-2.2.0
305 1 Laurent GUERBY
make config T=x86_64-native-linuxapp-gcc
306 94 Laurent GUERBY
make install T=x86_64-native-linuxapp-gcc  # about 2mn40s on core i7 2.6 GHz, 4m35s on Celeron 3205U 1.5 GHz
307 76 Laurent GUERBY
export RTE_SDK=/root/dpdk-2.2.0
308 38 Laurent GUERBY
export RTE_TARGET=x86_64-native-linuxapp-gcc
309 77 Laurent GUERBY
/root/dpdk-2.2.0/tools/dpdk_nic_bind.py -s
310 77 Laurent GUERBY
/root/dpdk-2.2.0/tools/dpdk_nic_bind.py --bind=uio_pci_generic 0000:01:00.0
311 77 Laurent GUERBY
/root/dpdk-2.2.0/tools/dpdk_nic_bind.py --bind=uio_pci_generic 0000:01:00.1
312 90 Laurent GUERBY
/root/dpdk-2.2.0/x86_64-native-linuxapp-gcc/app/testpmd -c 7 -n 2 -- -i
313 1 Laurent GUERBY
314 1 Laurent GUERBY
# http://www.intel.fr/content/dam/www/public/us/en/documents/guides/dpdk-testpmd-application-user-guide.pdf
315 1 Laurent GUERBY
316 91 Laurent GUERBY
# Build pktgen (2.9.13+ doesn't compile)
317 91 Laurent GUERBY
318 78 Laurent GUERBY
cd ..
319 78 Laurent GUERBY
tar xf ftp/pktgen-2.9.12.tar.gz
320 78 Laurent GUERBY
cd pktgen-2.9.12
321 83 Laurent GUERBY
make # about 24s
322 84 Laurent GUERBY
./app/app/x86_64-native-linuxapp-gcc/pktgen -c 7 -n 2   --proc-type auto -- -P  -N -m '1.0,2.1'
323 85 Laurent GUERBY
# save toto, edit toto and change both dst.mac start N xxxx and add start 0 and start 1 at the end of the file
324 1 Laurent GUERBY
./app/app/x86_64-native-linuxapp-gcc/pktgen -c 7 -n 2   --proc-type auto -- -P  -N -m '1.0,2.1' -f toto
325 1 Laurent GUERBY
326 91 Laurent GUERBY
# Build MoonGen
327 91 Laurent GUERBY
328 86 Laurent GUERBY
cd ..
329 86 Laurent GUERBY
cd MoonGen
330 86 Laurent GUERBY
git submodule update --init
331 86 Laurent GUERBY
./build.sh # about 42 seconds
332 1 Laurent GUERBY
./build/MoonGen ./examples/benchmark/udp-throughput.lua 1:1
333 1 Laurent GUERBY
334 91 Laurent GUERBY
# TODO
335 91 Laurent GUERBY
336 78 Laurent GUERBY
cd ../packet-journey
337 78 Laurent GUERBY
make
338 1 Laurent GUERBY
339 33 Laurent GUERBY
cd ../pktgen-dpdk
340 41 Laurent GUERBY
make
341 41 Laurent GUERBY
cd docs
342 41 Laurent GUERBY
make html
343 29 Laurent GUERBY
</pre>