[P4] l2 példa dpdk

Dániel Horpácsi daniel-h at elte.hu
Mon Nov 16 15:17:31 CET 2015


Kedves Mindenki!

Hetek óta nem akart összeállni a fordító; rászántam a hétvégémet és 
összerántottam a kódot. Ez persze azzal járt, hogy sok mindent újra 
kellett írnom a milliónyi inkonzisztencia miatt, amit a hetek alatt 
felhalmoztunk, és amit Robi legnagyobb igyekezete ellenére sem tudott 
maradéktalanul feloldani. Kérlek nézzetek majd rá a megbeszélésig, hogy 
mik változtak, hogy tudjunk beszélni a következő lépésekről.

A munkámnak lett eredménye: a tegnap este feltöltött verzió egy (kicsit 
módosított) L2 kódot fordít core kódra, ami most már tökéletesen 
kompatibilis a dpdk backenddel és futtatható. Kipróbálni egyelőre a 
szimulációs móddal lehet, a következő szcenárió zajlik le:
- inicializálás, üres táblákkal elindul a switch,
- érkezik négy kamucsomag négy különböző kamuporton (1, 2, 3, 4), 
amelyek hatására a P4 kód szerint a dataplane megkéri a controlplane-t, 
hogy tanítsa meg neki, hogy ezek a portok tartoznak a kamucsomagok 
_forrás_ mac címeihez (smac és dmac táblák is bővülnek),
- majd érkezik még négy kamucsomag, amelyeknek a _cél_ mac címei az 
előbb tanultak, így a P4 kódnak megfelelően a dataplane beállítja az 
egress portokat az előbbiekben tanult portokra;
- végül a kimeneten látszik, hogy tényleg az 1-estől 4-esig terjedő 
portokra küldi (küldené) ki a dataplane a második körben érkezett 
csomagokat.

Robinak köszönhetően most már nem kell a controller külön fordításával 
és futtatásával sem bajlódni, mert a test_dpdk1 script minden fordítást 
elintéz helyettünk és futtatja a controlplane és dataplane programot is.

Üdv,
Dani


More information about the P4 mailing list