[P4] Hlir16 macerálás
Brunner Márton
brmarci at caesar.elte.hu
Wed Dec 6 00:32:47 CET 2017
Szia!
Az apply_annotations metódusban megkapott extra_args mintha egy
egyelemű, listát tartalmazó lista lenne (a valódi paraméterek egy
szinttel mélyebben vannak). Az argumentumokhoz inkább az extra_args[0]
elemet kéne hozzáadni.
A nagyobb probléma, hogy a metódushívás legenerálásakor figyelembe
vesszük a metódus típusát is (methodCall.method.ref.type). Lényegében
összezipeljük az aktuális paraméterek listáját a paraméter típusok
listájával. (És mivel nálad a típusok listájában kevesebb elem van, így
a paraméterek listájának vége is meg lesz csonkítva.) [A metódushívás
előállítása amúgy a codegen.sugar.py fájl 535. sorában, illetve a
gen_format_method_parameters metódusban történik.]
Viszont a metódus paraméterei típusának módosítása a
methodCall.method.ref-en keresztül nem biztos, hogy szerencsés, mert
szerintem ez minden verify_checksum hívás esetében ugyanarra a
definícióra hivatkozik. (Ha van olyan verify_checksum hívásunk, ami
nincs offloadolva, ahhoz is módosítjuk a metódus deklarációt. Bár az is
lehet, hogy ez első körben nem jelentene gondot, mivel a zipelés abba az
irányba is levágná a felesleget, de hosszútávon ez nem valószínű, hogy
túl szerencsés megközelítés.)
Marci
On 2017-12-05 22:16, Leskó Dániel wrote:
> Sziasztok!
>
> Teoretikusan ha a hlir16-ban egy MethodCall argumentum listáját
> kiegészítem még néhány mezővel, akkor ezek után a generált C kódban az
> érintett függvényhívás is a kiegészített argumentum listával készül el?
>
> Gyakorlatban nem ezt tapasztalom, tud valaki tippet adni, hogy mire
> kellene még figyelnem?
>
> Példa:
> - examples/p4_16_v1model/l3-routing_full.p4
> - a verify_checksum paraméter listáját egészítem ki a felette lévő
> offload kifejezés listájával
>
> Dani
>
> _______________________________________________
> P4 mailing list
> P4 at plc.inf.elte.hu
> https://plc.inf.elte.hu/mailman/listinfo/p4
More information about the P4
mailing list