[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