Projet

Général

Profil

DPDK » Historique » Version 106

Laurent GUERBY, 08/06/2017 14:46

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