Projet

Général

Profil

DPDK » Historique » Version 103

Laurent GUERBY, 27/04/2017 18:04

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