[P4] Helyzetjelentés

Brunner Márton brmarci at caesar.elte.hu
Sun May 13 23:41:33 CEST 2018


Sziasztok!

A hétvégén igyekeztem egy kicsit előrehaladni a legutóbb felmerült 
problémákkal, de több akadályba is ütköztem.

Két fontosabb probléma a segfault és a tábla lookup esetleges rossz 
működése. Sajnos ezek egyike sem jött elő a no_nic-es változatok 
futtatásakor. Nem tudom, hogy a benti gépeken én tudom-e tesztelni a 
kódot és ha igen, akkor hogyan (ezt a wiki oldalt megtaláltam: 
https://plc.inf.elte.hu/p4/trac/wiki/Env10gNICs). Annyi, hogy korábban 
én csak saját gépen futtattam a no_nic-es kódot a scripttel, így nincs 
semmi tapasztalatom bármilyen további konfigurálás terén.

A másik probléma, amivel foglalkoztam a lokális/globális változók 
kérdése. Itt a Robi által javasolt is_local_var() metódust és 
használatát néztem. Robi javíts ki ha tévednék, de én arra jutottam, 
hogy ez a control-ok lokális változói és az action paraméterek közti 
különbséget képes felismerni. A mi problémánk viszont az, hogy a control 
lokális változói a control függvényben vannak deklarálva (pl. 
control_ingress), így az action hívásokon belül ezek nem elérhetőek. 
(Jelenleg az action-ökön belül is legenerálódik egy lokális változó 
deklaráció, így nem kapunk fordítási hibát, viszont a kontrollban nem 
módosul a változó.)

Volt egy olyan gondolatom, hogy ezt esetleg globális változókkal lehetne 
(akár csak ideiglenesen) orvosolni, de az a többszálúság miatt nem 
működne. A másik lehetőség, hogy a pd (packet_descriptor) és a 
táblák-hoz hasonlóan valami control_context-et is átadunk az actionöknek 
és a kontrollok változóit azon keresztül érhetnék el.

Ha van jobb ötletetek, vagy ha valamit rosszul értelmeztem, akkor 
szóljatok. Az első problémával kapcsolatban meg a fent említett wiki 
oldal alapján tudok esetleg elindulni, ha nincs más javaslat.

Marci



More information about the P4 mailing list