Projet

Général

Profil

DPDK » Historique » Version 108

Laurent GUERBY, 26/08/2017 21:50

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 108 Laurent GUERBY
* https://fd.io/wp-content/uploads/sites/34/2017/07/FDioVPPwhitepaperJuly2017.pdf
20 108 Laurent GUERBY
** FD.io - Vector Packet Processing One Terabit Software Router
21 108 Laurent GUERBY
22 2 Laurent GUERBY
h2. Misc
23 2 Laurent GUERBY
24 104 Laurent GUERBY
25 104 Laurent GUERBY
* http://lists.ceph.com/pipermail/ceph-users-ceph.com/2017-May/017814.html
26 104 Laurent GUERBY
** processor C-state tuning for ceph
27 103 Laurent GUERBY
* https://www.solid-run.com/marvell-armada-family/armada-8040-community-board/
28 102 Laurent GUERBY
* http://dtrace.org/blogs/rm/2016/09/15/turtles-on-the-wire-understanding-how-the-os-uses-the-modern-nic/
29 97 Laurent GUERBY
* https://fd.io/
30 66 Laurent GUERBY
* http://developerblog.redhat.com/2015/06/02/can-you-run-intels-data-plane-development-kit-dpdk-in-a-docker-container-yep/
31 66 Laurent GUERBY
** DPDK like
32 62 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf
33 45 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/datasheets/82599-10-gbe-controller-datasheet.pdf
34 45 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/datasheets/82598-10-gbe-controller-datasheet.pdf
35 44 Laurent GUERBY
* MoonGen: A Scriptable High-Speed Packet Generator
36 44 Laurent GUERBY
** http://arxiv.org/pdf/1410.3322.pdf
37 44 Laurent GUERBY
** http://www.net.in.tum.de/fileadmin/bibtex/publications/papers/MoonGen_IMC2015.pdf
38 44 Laurent GUERBY
** https://github.com/emmericp/MoonGen
39 26 Laurent GUERBY
* https://www.kernel.org/doc/Documentation/networking/switchdev.txt
40 25 Laurent GUERBY
* https://www.usenix.org/conference/osdi14/technical-sessions/presentation/belay
41 25 Laurent GUERBY
** IX: A Protected Dataplane Operating System for High Throughput and Low Latency
42 25 Laurent GUERBY
** http://www.linuxfoundation.org/images/1/1c/Network_data_flow_through_kernel.png
43 25 Laurent GUERBY
** http://www.linuxfoundation.org/collaborate/workgroups/networking/kernel_flow
44 23 Laurent GUERBY
* https://blog.cloudflare.com/how-to-receive-a-million-packets/
45 23 Laurent GUERBY
** How to receive a million packets per second
46 24 Laurent GUERBY
* https://blog.cloudflare.com/how-to-achieve-low-latency/
47 21 Laurent GUERBY
* http://www.cs.cmu.edu/~dongz/papers/cuckooswitch.pdf
48 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.
49 18 Laurent GUERBY
* Improving Linux networking performance https://lwn.net/Articles/629155/
50 18 Laurent GUERBY
** https://www.youtube.com/watch?v=3XG9-X777Jo
51 19 Laurent GUERBY
** http://people.netfilter.org/hawk/presentations/LCA2015/net_stack_challenges_100G_LCA2015.pdf
52 20 Laurent GUERBY
* http://www.bigswitch.com/sites/default/files/presentations/onug-baremetal-2014-final.pdf
53 2 Laurent GUERBY
* Intel PCI id http://www.intel.com/support/network/sb/cs-012904.htm
54 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
55 3 Laurent GUERBY
* Intel Pro/1000 PT vs CT http://hardforum.com/showthread.php?t=1386042
56 4 Laurent GUERBY
* http://images.ncix.com/forumimages/C9864B87-583B-10FB-B0DE80742781CE07.jpg
57 4 Laurent GUERBY
* http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-controllers.html#s1=all&s2=82572EI&s3=all
58 4 Laurent GUERBY
* http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-controllers.html#s1=all&s2=82574L&s3=all
59 5 Laurent GUERBY
* https://github.com/Pktgen/Pktgen-DPDK
60 6 Laurent GUERBY
* Evaluating the Suitability of Server Network Cards for Software Routers http://kfall.net/ucbpage/papers/snc.pdf
61 13 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/guides/intel-dpdk-sample-applications-user-guide.pdf
62 13 Laurent GUERBY
*  rte_eth_rx_burst
63 13 Laurent GUERBY
** http://dpdk.org/doc/api/rte__ethdev_8h.html#a5ac93faa0f3f69545ca121dcfd9433f5
64 13 Laurent GUERBY
** http://dpdk.info/ml/archives/dev/2014-January/001223.html
65 14 Laurent GUERBY
* http://www.intel.fr/content/dam/www/public/us/en/documents/white-papers/aes-ipsec-performance-linux-paper.pdf
66 15 Laurent GUERBY
* http://networkbuilders.intel.com/docs/Network_Builders_RA_vBRAS_Final.pdf
67 101 Laurent GUERBY
* https://reannz.co.nz/news/ruru-visualise-international-traffic-flows-real-time/
68 15 Laurent GUERBY
* https://github.com/SnabbCo/snabbswitch
69 99 Laurent GUERBY
** https://github.com/snabbco/snabb/
70 99 Laurent GUERBY
** https://lwn.net/Articles/713918/
71 15 Laurent GUERBY
** https://github.com/SnabbCo/snabbswitch/blob/master/src/apps/intel/intel10g.lua
72 15 Laurent GUERBY
** http://blog.ipspace.net/2014/06/snabb-switch-and-nfv-on-openstack-in.html
73 15 Laurent GUERBY
** https://github.com/SnabbCo/snabbswitch/wiki/Snabb-Lab
74 15 Laurent GUERBY
** https://twitter.com/lukego/status/327714050219847680
75 7 Mehdi Abaakouk
76 98 Laurent GUERBY
* http://www.lagopus.org/
77 98 Laurent GUERBY
78 7 Mehdi Abaakouk
h2. Note sileht dpdk:
79 7 Mehdi Abaakouk
80 7 Mehdi Abaakouk
Extract from: http://www.intel.com/content/dam/www/public/us/en/documents/guides/intel-dpdk-getting-started-guide.pdf
81 7 Mehdi Abaakouk
82 7 Mehdi Abaakouk
h3. configuration hugepages: 
83 7 Mehdi Abaakouk
84 7 Mehdi Abaakouk
* 2M (1024*2k): hugepages=1024 (at runtime: echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages)
85 7 Mehdi Abaakouk
* 4G (4x1G): default_hugepagesz=1G hugepagesz=1G hugepages=4 (only works at boot time via grub)
86 7 Mehdi Abaakouk
87 7 Mehdi Abaakouk
<pre>
88 7 Mehdi Abaakouk
mkdir /mnt/huge
89 7 Mehdi Abaakouk
mount -t hugetlbfs nodev /mnt/huge
90 7 Mehdi Abaakouk
</pre>
91 7 Mehdi Abaakouk
92 7 Mehdi Abaakouk
h3. Compile and load modules: 
93 7 Mehdi Abaakouk
94 7 Mehdi Abaakouk
_Note: source tools/setup.sh is a helper tools for this but works only with IGB driver not e1000e_
95 7 Mehdi Abaakouk
96 1 Laurent GUERBY
<pre>
97 8 Mehdi Abaakouk
# apt-get install make gcc linux-headers-amd64
98 8 Mehdi Abaakouk
# make config T=x86_64-default-linuxapp-gcc
99 7 Mehdi Abaakouk
# make T=x86_64-default-linuxapp-gcc
100 7 Mehdi Abaakouk
..
101 7 Mehdi Abaakouk
Build complete
102 7 Mehdi Abaakouk
103 7 Mehdi Abaakouk
# modprobe uio  (I think this is not useful)
104 7 Mehdi Abaakouk
# insmod build/kmod/rte_kni.ko (I think this is not useful)
105 7 Mehdi Abaakouk
# insmod build/kmod/igb_uio.ko (I think this is not useful)
106 7 Mehdi Abaakouk
# ./tools/pci_unbind.py --status
107 7 Mehdi Abaakouk
108 7 Mehdi Abaakouk
Network devices using IGB_UIO driver
109 7 Mehdi Abaakouk
====================================
110 7 Mehdi Abaakouk
<none>
111 7 Mehdi Abaakouk
112 7 Mehdi Abaakouk
Network devices using kernel driver
113 7 Mehdi Abaakouk
===================================
114 9 Mehdi Abaakouk
0000:00:19.0 '82579LM Gigabit Network Connection' if=eth1 drv=e1000e unused=<none>
115 9 Mehdi Abaakouk
0000:01:00.0 '82599EB 10-Gigabit SFI/SFP+ Network Connection' if=eth6 drv=ixgbe unused=igb_uio *Active*
116 9 Mehdi Abaakouk
0000:01:00.1 '82599EB 10-Gigabit SFI/SFP+ Network Connection' if=eth7 drv=ixgbe unused=igb_uio
117 9 Mehdi Abaakouk
0000:04:00.0 '82571EB Gigabit Ethernet Controller' if=eth2 drv=e1000e unused=igb_uio *Active*
118 9 Mehdi Abaakouk
0000:04:00.1 '82571EB Gigabit Ethernet Controller' if=eth3 drv=e1000e unused=igb_uio
119 9 Mehdi Abaakouk
0000:05:00.0 '82571EB Gigabit Ethernet Controller' if=eth4 drv=e1000e unused=igb_uio
120 9 Mehdi Abaakouk
0000:05:00.1 '82571EB Gigabit Ethernet Controller' if=eth5 drv=e1000e unused=igb_uio
121 9 Mehdi Abaakouk
0000:06:00.0 'RTL8111/8168B PCI Express Gigabit Ethernet controller' if=eth0 drv=r8169 unused=<none> *Active*
122 1 Laurent GUERBY
123 1 Laurent GUERBY
Other network devices
124 1 Laurent GUERBY
=====================
125 1 Laurent GUERBY
<none>
126 9 Mehdi Abaakouk
</pre>
127 7 Mehdi Abaakouk
128 9 Mehdi Abaakouk
test sur eth7:
129 9 Mehdi Abaakouk
130 9 Mehdi Abaakouk
<pre>
131 9 Mehdi Abaakouk
# ip link set eth7 down
132 9 Mehdi Abaakouk
# ./tools/pci_unbind.py --bind=igb_uio 0000:01:00.1
133 7 Mehdi Abaakouk
</pre>
134 7 Mehdi Abaakouk
135 7 Mehdi Abaakouk
h3. Prepare examples programs:
136 7 Mehdi Abaakouk
137 7 Mehdi Abaakouk
<pre>
138 7 Mehdi Abaakouk
# export RTE_SDK=/root/sileht/dpdk-1.6.0r1
139 7 Mehdi Abaakouk
# export RTE_TARGET=build
140 7 Mehdi Abaakouk
# cd /root/sileht/
141 7 Mehdi Abaakouk
# cp -r $RTE_SDK/examples/helloworld my_rte_app
142 7 Mehdi Abaakouk
# cd my_rte_app
143 7 Mehdi Abaakouk
# make
144 7 Mehdi Abaakouk
</pre>
145 7 Mehdi Abaakouk
146 7 Mehdi Abaakouk
147 7 Mehdi Abaakouk
h3. Tests
148 7 Mehdi Abaakouk
149 7 Mehdi Abaakouk
<pre>
150 1 Laurent GUERBY
</pre>
151 10 Mehdi Abaakouk
152 105 Laurent GUERBY
h2. Limitation SFP carte intel:
153 10 Mehdi Abaakouk
154 11 Mehdi Abaakouk
Une fois le module igb_uio changé sur les:
155 10 Mehdi Abaakouk
156 10 Mehdi Abaakouk
<pre>
157 10 Mehdi Abaakouk
01:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
158 10 Mehdi Abaakouk
</pre>
159 10 Mehdi Abaakouk
160 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:
161 10 Mehdi Abaakouk
162 10 Mehdi Abaakouk
<pre>
163 10 Mehdi Abaakouk
[  563.069683] ixgbe 0000:01:00.0: failed to load because an unsupported SFP+ or QSFP module type was detected.
164 10 Mehdi Abaakouk
[  563.069786] ixgbe 0000:01:00.0: Reload the driver after installing a supported module.
165 10 Mehdi Abaakouk
</pre>
166 10 Mehdi Abaakouk
167 10 Mehdi Abaakouk
Pour contourner le problème:
168 10 Mehdi Abaakouk
169 10 Mehdi Abaakouk
<pre>
170 10 Mehdi Abaakouk
modprobe ixgbe allow_unsupported_sfp=1 # allow_any_sfp=1 suivant le kernel
171 10 Mehdi Abaakouk
</pre>
172 10 Mehdi Abaakouk
173 10 Mehdi Abaakouk
ou 
174 10 Mehdi Abaakouk
175 1 Laurent GUERBY
<pre>
176 1 Laurent GUERBY
echo "options ixgbe allow_unsupported_sfp=1" > /etc/modprobe.d/ixgbe_any_sfp.conf
177 1 Laurent GUERBY
update-initramfs -u -k all
178 11 Mehdi Abaakouk
</pre>
179 11 Mehdi Abaakouk
180 11 Mehdi Abaakouk
La carte fonctionnera à nouveau avec le message suivant:
181 11 Mehdi Abaakouk
182 11 Mehdi Abaakouk
<pre>
183 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.
184 10 Mehdi Abaakouk
</pre>
185 12 Laurent GUERBY
186 27 Laurent GUERBY
h2. Packet Journey
187 1 Laurent GUERBY
188 27 Laurent GUERBY
https://www.gandi.net/news/en/2015-12-16/6308-packet-journey_a_free_software_router_for_linux_based_on_dpdk/
189 27 Laurent GUERBY
https://github.com/gandi/packet-journey
190 27 Laurent GUERBY
191 27 Laurent GUERBY
h2. Atelier 2016
192 27 Laurent GUERBY
193 55 Laurent GUERBY
h3. Atelier Hardware
194 54 Laurent GUERBY
195 95 Laurent GUERBY
En salle milieu a Myrys.
196 67 Laurent GUERBY
197 67 Laurent GUERBY
http://pad.tetaneutral.net/p/dpdk
198 67 Laurent GUERBY
199 1 Laurent GUERBY
<pre>
200 28 Laurent GUERBY
core i7 2600 @ 3.40GHz
201 31 Laurent GUERBY
 fpu vme de pse tsc msr pae mce cx8 
202 31 Laurent GUERBY
 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 
203 31 Laurent GUERBY
 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl 
204 31 Laurent GUERBY
 xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 
205 31 Laurent GUERBY
 cx16 xtpr pdcm pcid sse4_1 sse4_2 
206 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
207 28 Laurent GUERBY
16G RAM
208 56 Laurent GUERBY
SSD 250G
209 56 Laurent GUERBY
</pre>
210 56 Laurent GUERBY
211 95 Laurent GUERBY
http://www.intel.fr/content/dam/www/public/us/en/documents/guides/gbe-server-selection-guide.pdf
212 29 Laurent GUERBY
213 60 Laurent GUERBY
<pre>
214 63 Laurent GUERBY
h7   82599ES 8086:10fb 8086:7a11 
215 63 Laurent GUERBY
g1   82599ES (VM maposmatic)
216 60 Laurent GUERBY
g2   X520    8086:154d 8086:7b11
217 60 Laurent GUERBY
g3   82599ES
218 60 Laurent GUERBY
g4   X520 
219 60 Laurent GUERBY
g5   X520
220 60 Laurent GUERBY
g6   X520
221 63 Laurent GUERBY
n7   X520 (VM openstack)
222 60 Laurent GUERBY
g8   X520
223 60 Laurent GUERBY
g9   82598EB 8086:10f1 8086:a21f
224 60 Laurent GUERBY
g10  X520
225 60 Laurent GUERBY
g11  82598EB
226 60 Laurent GUERBY
g12  82598EB
227 1 Laurent GUERBY
stri X520
228 1 Laurent GUERBY
229 1 Laurent GUERBY
t1   82598EB 
230 1 Laurent GUERBY
t2   82598EB 
231 1 Laurent GUERBY
t3   82598EB 
232 1 Laurent GUERBY
233 1 Laurent GUERBY
stock 82598EB
234 1 Laurent GUERBY
stock 82598EB
235 1 Laurent GUERBY
stock X520
236 67 Laurent GUERBY
</pre>
237 67 Laurent GUERBY
238 67 Laurent GUERBY
old obsolete:
239 67 Laurent GUERBY
<pre>
240 67 Laurent GUERBY
host eth DHCP          10G-a                                           10G-b
241 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)
242 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)
243 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)
244 67 Laurent GUERBY
245 67 Laurent GUERBY
1G e1000e
246 67 Laurent GUERBY
t1 00:15:17:a6:cb:19
247 67 Laurent GUERBY
t3 00:15:17:16:bd:de
248 60 Laurent GUERBY
</pre>
249 60 Laurent GUERBY
250 55 Laurent GUERBY
h3. Atelier Liens
251 54 Laurent GUERBY
252 33 Laurent GUERBY
https://github.com/Gandi/packet-journey
253 30 Laurent GUERBY
http://dpdk.org/doc/guides/linux_gsg/build_dpdk.html
254 40 Laurent GUERBY
http://dpdk.org/doc/quick-start
255 50 Laurent GUERBY
http://dpdk.org/browse/apps/pktgen-dpdk/tree/README.md
256 1 Laurent GUERBY
http://dpdk.org/doc/guides/testpmd_app_ug/index.html
257 47 Laurent GUERBY
http://dpdk.readthedocs.org/en/v2.2.0/
258 54 Laurent GUERBY
https://github.com/emmericp/MoonGen
259 29 Laurent GUERBY
http://www.slideshare.net/movilforum/7-hands-on
260 33 Laurent GUERBY
http://p4.org/wp-content/uploads/2015/11/Princeton-Demo-Poster.pdf
261 59 Laurent GUERBY
http://dpdk.org/ml/archives/users/
262 59 Laurent GUERBY
http://dpdk.org/ml/archives/dev/
263 59 Laurent GUERBY
http://openvswitch.org/support/ovscon2015/
264 64 Laurent GUERBY
https://events.ccc.de/congress/2015/Fahrplan/events/7523.html lecture: DDoS mitigation EPIC FAIL collection
265 65 Laurent GUERBY
https://github.com/aragua/libpacket
266 96 Laurent GUERBY
https://github.com/groud/dpdkcap
267 96 Laurent GUERBY
268 54 Laurent GUERBY
h3. Atelier Issues
269 1 Laurent GUERBY
270 1 Laurent GUERBY
* Issues opened
271 33 Laurent GUERBY
** https://github.com/Gandi/packet-journey/issues/20 
272 1 Laurent GUERBY
** https://github.com/pktgen/Pktgen-DPDK/issues/52
273 1 Laurent GUERBY
** https://github.com/emmericp/MoonGen/issues/106
274 58 Laurent GUERBY
** http://dpdk.org/ml/archives/dev/2015-December/030798.html
275 1 Laurent GUERBY
** http://dpdk.org/ml/archives/dev/2016-April/037331.html
276 106 Laurent GUERBY
** https://github.com/Gandi/packet-journey/pull/36
277 106 Laurent GUERBY
** https://github.com/Gandi/packet-journey/pull/38
278 106 Laurent GUERBY
279 1 Laurent GUERBY
280 54 Laurent GUERBY
h3. Atelier Build
281 54 Laurent GUERBY
282 92 Laurent GUERBY
http://pad.tetaneutral.net/p/dpdk
283 92 Laurent GUERBY
284 1 Laurent GUERBY
<pre>
285 91 Laurent GUERBY
# From debian jessie basic install
286 91 Laurent GUERBY
287 87 Laurent GUERBY
# Packages
288 87 Laurent GUERBY
289 79 Laurent GUERBY
apt-get -y build-dep linux-image-amd64
290 80 Laurent GUERBY
apt-get -y install linux-headers-$(uname -r)
291 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
292 54 Laurent GUERBY
293 87 Laurent GUERBY
# huge pages, dans /etc/rc.local par exemple
294 87 Laurent GUERBY
295 1 Laurent GUERBY
modprobe uio_pci_generic
296 29 Laurent GUERBY
mkdir -p /mnt/huge
297 1 Laurent GUERBY
mount -t hugetlbfs nodev /mnt/huge
298 91 Laurent GUERBY
# or GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=4" :
299 1 Laurent GUERBY
echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
300 49 Laurent GUERBY
301 54 Laurent GUERBY
# Sources
302 54 Laurent GUERBY
303 1 Laurent GUERBY
mkdir ftp
304 1 Laurent GUERBY
cd ftp
305 1 Laurent GUERBY
wget http://dpdk.org/browse/dpdk/snapshot/dpdk-2.2.0.tar.gz
306 78 Laurent GUERBY
wget http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/pktgen-2.9.12.tar.gz
307 78 Laurent GUERBY
308 1 Laurent GUERBY
cd ..
309 61 Laurent GUERBY
git clone https://github.com/Gandi/packet-journey.git
310 61 Laurent GUERBY
git clone http://dpdk.org/git/apps/pktgen-dpdk
311 61 Laurent GUERBY
git clone http://dpdk.org/git/dpdk-stable
312 61 Laurent GUERBY
git clone https://github.com/emmericp/MoonGen.git
313 1 Laurent GUERBY
314 52 Laurent GUERBY
315 91 Laurent GUERBY
# Build DPDK
316 1 Laurent GUERBY
317 88 Laurent GUERBY
tar xf ftp/dpdk-2.2.0.tar.gz
318 30 Laurent GUERBY
cd dpdk-2.2.0
319 1 Laurent GUERBY
make config T=x86_64-native-linuxapp-gcc
320 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
321 76 Laurent GUERBY
export RTE_SDK=/root/dpdk-2.2.0
322 38 Laurent GUERBY
export RTE_TARGET=x86_64-native-linuxapp-gcc
323 77 Laurent GUERBY
/root/dpdk-2.2.0/tools/dpdk_nic_bind.py -s
324 77 Laurent GUERBY
/root/dpdk-2.2.0/tools/dpdk_nic_bind.py --bind=uio_pci_generic 0000:01:00.0
325 77 Laurent GUERBY
/root/dpdk-2.2.0/tools/dpdk_nic_bind.py --bind=uio_pci_generic 0000:01:00.1
326 90 Laurent GUERBY
/root/dpdk-2.2.0/x86_64-native-linuxapp-gcc/app/testpmd -c 7 -n 2 -- -i
327 1 Laurent GUERBY
328 1 Laurent GUERBY
# http://www.intel.fr/content/dam/www/public/us/en/documents/guides/dpdk-testpmd-application-user-guide.pdf
329 1 Laurent GUERBY
330 91 Laurent GUERBY
# Build pktgen (2.9.13+ doesn't compile)
331 91 Laurent GUERBY
332 78 Laurent GUERBY
cd ..
333 78 Laurent GUERBY
tar xf ftp/pktgen-2.9.12.tar.gz
334 78 Laurent GUERBY
cd pktgen-2.9.12
335 83 Laurent GUERBY
make # about 24s
336 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'
337 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
338 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
339 1 Laurent GUERBY
340 91 Laurent GUERBY
# Build MoonGen
341 91 Laurent GUERBY
342 86 Laurent GUERBY
cd ..
343 86 Laurent GUERBY
cd MoonGen
344 86 Laurent GUERBY
git submodule update --init
345 86 Laurent GUERBY
./build.sh # about 42 seconds
346 1 Laurent GUERBY
./build/MoonGen ./examples/benchmark/udp-throughput.lua 1:1
347 1 Laurent GUERBY
348 91 Laurent GUERBY
# TODO
349 91 Laurent GUERBY
350 78 Laurent GUERBY
cd ../packet-journey
351 78 Laurent GUERBY
make
352 1 Laurent GUERBY
353 33 Laurent GUERBY
cd ../pktgen-dpdk
354 41 Laurent GUERBY
make
355 41 Laurent GUERBY
cd docs
356 41 Laurent GUERBY
make html
357 29 Laurent GUERBY
</pre>
358 100 Matthieu Herrb
359 100 Matthieu Herrb
Patch pour packet journey sur dpdk 16.11: https://github.com/Gandi/packet-journey/pull/36