[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