[P4] Helyzetjelentés: L2 example és PISCES

Péter Vörös vpetya at mensa.hu
Tue Dec 20 18:20:52 CET 2016


Sziasztok!

Ahogy beszéltük küldök egy kis helyzetjelentést.

*====L2FWD====*
Sikerült kimérnem egy jónak tűnő referencia L2 switch implementációt. Van
pár dolog ami tetszik a megvalósításban, ezeket át is emelem majd a HAL-ba,
de vannak elég érdekes megoldások is. Ilyen pl a táblakezelésük. Nem tűnik
túl memóriabarátnak. Úgy csinálják, hogy még az initben létrehoznak egy
UINT16_MAX (65535) méretű tömböt. A keresés és beszúrás egy hash
számolással történik a mac címből, a kiszámolt hash lesz a tömb indexe.
Valószínűleg a keresés és a beszúrás is gyors ezzel a módszerrel, de több
tábla esetén kétlem, hogy az irgalmatlan memóriaigény miatt használni
tudnánk.

*Az eredmények:*

*Example: *Core(s)  1     2     4      8
Mpps   1.5  1.6   3.2   6.5
*Miénk:*
Core(s)  1      2      4      8
Mpps    2.3   4.7   8.9   9.6
(https://plc.inf.elte.hu/p4/trac/wiki/Freescale)

Valami még mindig nem tökéletes még az example-el, bárhogy is próbáltam
életet lehelni bele. Nem pontosan értem miért, de csak az egyik porton
bejött csomagokat hajlandó forwardolni, ami azért fura mert mikor elkezdtem
debuggolni akkor egyértelmű lett, hogy a másik port csomagjait is
feldolgozza. Itt lehet, hogy van még valami rejtőző probléma és könnyen
lehet, hogy azért nem tud jobb sebességgel menni a fwd.
Ami még tuti sokat lassít, hogy az example folyamatosan update-eli a táblát
ha a bejövő csomag source MAC-je nem ahhoz a porthoz tartozik a táblában
ahol bejött. Ez plusz 1 hashelést és egy összehasonlítást is jelent minden
bejövő csomagra. Ezt kikapcsolni nem triviális, mert ez alapján "tanul" a
switch. Tehát ha ezt kiszedem akkor nem töltődnek fel a táblák soha.

*====PISCES====*
A vagrant 20-30 perc gépkonfigurálgatás, telepítés, DPDK fordítás után úgy
döntött, hogy fatal error-ral elszáll:
==> switch: ./include/openvswitch/types.h:24:44: fatal error:
p4/src/match/openvswitch/types.h: No such file or directory
==> switch:  #include "p4/src/match/openvswitch/types.h"
Kézzel megnéztem, a p4/src könyvtár a virtuális gépben tök üres... Szóval
teljesen jogos hogy nem találja az include-ot a fordító.

Peti
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://plc.inf.elte.hu/pipermail/p4/attachments/20161220/6423165d/attachment.html>


More information about the P4 mailing list