<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
== Architecture<br>
<br>
- (ábra Máté levele szerint)<br>
- switch software is result of linking two carefully separated
components of C source code<br>
- hw-dependent part - the "HAL"<br>
- static library, written by a hw-expert<br>
- the rest (i.e. hw-independent) - the "Core"<br>
- generated by a compiler, based on the HLIR<br>
- well-defined interface between the components (mostly with C
function prototypes)<br>
- separation PRO<br>
- much simpler compiler<br>
- modularity = better maintainability<br>
- exchangeable HAL = retargetable switch (without rewriting a
single line of code)<br>
- HAL is not affected by changes in the P4 program<br>
separation CON<br>
- performance<br>
- hw-dependent parts are not amenable to protocol-dependent
optimization<br>
- communication between the components takes some time (C
function calls)<br>
<br>
== Core<br>
<br>
/DATA/<br>
- defines stateful memory configuration<br>
- data structures declared in the HAL but initialized in the core<br>
- the same idea is used for sharing information on header types<br>
- we could use macros instead, but arrays are more readable and
they are optimized away by the C compiler (via constant propagation)<br>
/ALGORITHMS/<br>
- packet parsing<br>
- determines the positions and types of headers in the packet<br>
- does not do "real" parsing or field extraction (we do it lazy)<br>
- "lightweight parsed representation"<br>
- fields are extracted when needed<br>
- and field modifications also happen in-place<br>
- controls and actions translated to C functions<br>
- key calculation for lookup tables<br>
<br>
== HAL<br>
<br>
- implementation of<br>
- state (tables, counters, meters etc.) and related operations
(table insert/delete/lookup, counter increment etc.)<br>
- packet RX and TX<br>
- primitive actions (header-related + digests)<br>
- helpers for primitive actions (field-related)<br>
- implemented as macros for performance reasons<br>
<br>
== DPDK HAL<br>
<br>
- reuses the current LPM and HASH table implementations<br>
- reuses atomic integers for counters and meters<br>
- NUMA support<br>
- 2 instances of each table on each socket - lock-free solution<br>
- active/passive instances<br>
- lcore always turns to its socket's instance<br>
- counter instances for each lcore on the corresponding socket<br>
- in cpu cache we trust!<br>
- status: we support most constructs of P4 1.0<br>
- missing: variable length fields, parser exceptions, actions
profiles<br>
<br>
== Lessons learned<br>
<br>
- it's not that easy to find the boundary of the HAL<br>
- compared to the first verion, our HAL has become thinner<br>
- P4 primitive actions are not fully implemented in the HAL, in
most cases only small hw-dependent helper functions are defined<br>
- PRO: the hand-written code is smaller<br>
- sometimes gcc does not want to optimize the obvious, so we needed
to inspect the assembly<br>
<br>
<div class="moz-cite-prefix">On 2016-05-18 14:11, Tejfel Máté wrote:<br>
</div>
<blockquote cite="mid:573C5BEC.6060201@caesar.elte.hu" type="cite">
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
Szia Sanyi!<br>
<br>
Jobbulást a családnak.<br>
<br>
Pár gondolat, ami eszünkbe jutott:<br>
<br>
* Who are we?<br>
<br>
Ide jöhetne egy akár animált térkép arról, hogy hol is van
Budapest...<br>
<br>
Gondolkodtunk róla, de leszavaztuk, hogy a honlapos
"csoportkép" felkerüljön (ez közös ellenvetést váltott ki, mivel
messze nem egységesek a képek...)<br>
<br>
<br>
* Multitarget compiler ...<br>
<br>
Ide esetleg be lehetne animálni a sigcomm-ra küldött leíráson
lévő ábra egy finomított változatát, ahol (legalább "..." szinten)
látszik, hogy több HAL-ban gondolkodunk. Esetleg hozzá lehetne
merge-elni pár dolgot a repo/slides/ mappában a 2015_12_16-os
slide-showk 6. slide-járól <br>
<br>
<br>
A következő 3 slide-ról Dani ígért egy kezdeményt, amit majd
alakíthatunk, de pár dolog ami itt felmerült: <br>
<br>
* Core Compiler<br>
<br>
technikai részleteket (pl. template alapú fordítás) szerintünk
nem érdemes a slide-ra rakni<br>
<br>
Ami rákerülhetne:<br>
<br>
- a P4-es HLIR-t használjuk (ez akár még az előző ábrára is
rákerülhetne...) <br>
- C-re fordítunk<br>
- fejlécek nincsenek parse-olva, mezőket on-the-fly csomagoljuk
ki/be <br>
<br>
<br>
* HAL<br>
<br>
- hol a határvonal <br>
csomag kezelés, stateful memories (táblák, counterek) +
műveleteik, <br>
header stack pop, push, <br>
fejléc hozzáadás, törlés (általánosan)<br>
primitívek-hez szükséges hw-dep "primitívek"<br>
<br>
<br>
* HAL for DPDK<br>
<br>
- Numa support (Dani: pár részlet, mi is biztosítja, ha nem is
a slide-ra, de elmondható)<br>
- mit támogatunk: lista (Sanyi majd eldönti ezt megmutatja-e :)
)<br>
<br>
<br>
Folyt. köv...<br>
<br>
M.<br>
<br>
<br>
<div class="moz-cite-prefix">2016-05-18 12:12 keltezéssel, Sándor
Laki írta:<br>
</div>
<blockquote
cite="mid:8f011f04-e2b2-2b63-6bfb-e5443421b4f3@elte.hu"
type="cite">
<meta content="text/html; charset=UTF-8"
http-equiv="Content-Type">
<p>Sziasztok!</p>
<p>Sajnos, nem valószínű, hogy be tudok menni. Feleségem
belázasodott tegnap este, a gyereknek meg taknya-nyála
egybefolyik és folyamatosan orrszívózni kell. <br>
</p>
<p>Azonban ma le kell adnom a ppt-t, amihez mindenféle inputot
megköszönnék. Csatoltam a vázát a tervezett prezentációnak! <br>
</p>
<p>Nyugodtan dobáljátok bele a gondolataitokat és esetleges
teljes részeket és küldjétek át. Várhatóan csak éjjel fogom
elküldeni. A méréseknél a skálázódáshoz ha tudtok bármit
küldeni, ami jobb a semminél az mindenképp jó lenne.
Compilernél érdekességek, amire figyelni kellett (lessons
learnt jelleggel), a dpdklib-nél mi hogyan lett megvalósítva,
hol tartunk most. <br>
</p>
<p>Üdv.</p>
<p>Sanyi<br>
</p>
<div class="moz-cite-prefix">On 2016.05.18. 10:31, Tejfel Máté
wrote:<br>
</div>
<blockquote cite="mid:573C2848.3030200@caesar.elte.hu"
type="cite">Sziasztok! <br>
<br>
Úgy tűnik a 2.702 üres lesz, gyertek majd oda 1-re... <br>
<br>
M. <br>
<br>
2016-05-17 08:55 keltezéssel, Tejfel Máté írta: <br>
<blockquote type="cite">Sziasztok! <br>
<br>
Akkor összegezve maradjon a szerda 13:00. Majd keresünk
egy üres termet :) <br>
<br>
M. <br>
<br>
2016-05-15 23:38 keltezéssel, Péter Vörös írta: <br>
<blockquote type="cite">Sziasztok! <br>
<br>
Nekem is jó. <br>
<br>
Peti <br>
<br>
Dániel Horpácsi <a moz-do-not-send="true"
class="moz-txt-link-rfc2396E"
href="mailto:daniel-h@elte.hu"><daniel-h@elte.hu></a>
írta (2016. május 15. 23:20): <br>
<blockquote type="cite">Sziasztok! <br>
<br>
Nekem is ok a 13-14. <br>
<br>
Dani <br>
<br>
<br>
On 2016-05-14 22:45, Sándor Laki wrote: <br>
<br>
Nekem szerda 13-14 között jó. 14-re már az Ericsson-ban
kell lennem. <br>
<br>
Amúgy nekem 12:30-tól is jó. <br>
<br>
Üdv. <br>
<br>
Sanyi <br>
<br>
<br>
On 2016.05.13. 23:57, Leskó Dániel wrote: <br>
<br>
Akkor szerdán lesz a meeting? <br>
<br>
Dani <br>
<br>
2016.05.13. 15:22 keltezéssel, Brunner Márton írta: <br>
<br>
Sziasztok, <br>
<br>
Nekem jó a szerda 13:00 is, illetve aznap bármi későbbi
időpont is megfelel. <br>
<br>
Marci <br>
<br>
<br>
Brunner Márton <br>
<a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:brmarci@caesar.elte.hu">brmarci@caesar.elte.hu</a>
<br>
<a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:brmarci7@gmail.com">brmarci7@gmail.com</a>
<br>
<br>
_______________________________________________ <br>
P4 mailing list <br>
<a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:P4@plc.inf.elte.hu">P4@plc.inf.elte.hu</a>
<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://plc.inf.elte.hu/mailman/listinfo/p4">https://plc.inf.elte.hu/mailman/listinfo/p4</a>
<br>
<br>
<br>
<br>
<br>
_______________________________________________ <br>
P4 mailing list <br>
<a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:P4@plc.inf.elte.hu">P4@plc.inf.elte.hu</a>
<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://plc.inf.elte.hu/mailman/listinfo/p4">https://plc.inf.elte.hu/mailman/listinfo/p4</a>
<br>
<br>
<br>
-- <br>
Sándor Laki, PhD <br>
Assistant professor <br>
Department of Information Systems <br>
Eötvös Loránd University <br>
Pázmány Péter stny. 1/C <br>
H-1117, Budapest, Hungary <br>
Room 2.506 <br>
Web: <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="http://lakis.web.elte.hu">http://lakis.web.elte.hu</a>
<br>
Phone: +36 1 372 2869 / 8477 <br>
Cell: +36 70 374 2646 <br>
<br>
<br>
<br>
_______________________________________________ <br>
P4 mailing list <br>
<a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:P4@plc.inf.elte.hu">P4@plc.inf.elte.hu</a>
<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://plc.inf.elte.hu/mailman/listinfo/p4">https://plc.inf.elte.hu/mailman/listinfo/p4</a>
<br>
<br>
<br>
<br>
_______________________________________________ <br>
P4 mailing list <br>
<a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:P4@plc.inf.elte.hu">P4@plc.inf.elte.hu</a>
<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://plc.inf.elte.hu/mailman/listinfo/p4">https://plc.inf.elte.hu/mailman/listinfo/p4</a>
<br>
<br>
</blockquote>
_______________________________________________ <br>
P4 mailing list <br>
<a moz-do-not-send="true" class="moz-txt-link-abbreviated"
href="mailto:P4@plc.inf.elte.hu">P4@plc.inf.elte.hu</a>
<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://plc.inf.elte.hu/mailman/listinfo/p4">https://plc.inf.elte.hu/mailman/listinfo/p4</a>
<br>
</blockquote>
<br>
</blockquote>
<br>
_______________________________________________ <br>
P4 mailing list <br>
<a moz-do-not-send="true" class="moz-txt-link-abbreviated"
href="mailto:P4@plc.inf.elte.hu">P4@plc.inf.elte.hu</a> <br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://plc.inf.elte.hu/mailman/listinfo/p4">https://plc.inf.elte.hu/mailman/listinfo/p4</a>
<br>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Sándor Laki, PhD
Assistant professor
Department of Information Systems
Eötvös Loránd University
Pázmány Péter stny. 1/C
H-1117, Budapest, Hungary
Room 2.506
Web: <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lakis.web.elte.hu">http://lakis.web.elte.hu</a>
Phone: +36 1 372 2869 / 8477
Cell: +36 70 374 2646</pre>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
P4 mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:P4@plc.inf.elte.hu">P4@plc.inf.elte.hu</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://plc.inf.elte.hu/mailman/listinfo/p4">https://plc.inf.elte.hu/mailman/listinfo/p4</a>
</pre>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
P4 mailing list
<a class="moz-txt-link-abbreviated" href="mailto:P4@plc.inf.elte.hu">P4@plc.inf.elte.hu</a>
<a class="moz-txt-link-freetext" href="https://plc.inf.elte.hu/mailman/listinfo/p4">https://plc.inf.elte.hu/mailman/listinfo/p4</a>
</pre>
</blockquote>
<br>
</body>
</html>