[P4] Kérdés BE vs. LE
Brunner Márton
brmarci at caesar.elte.hu
Fri Apr 7 20:24:10 CEST 2017
Sziasztok,
Bocs, hogy ilyen sokára válaszoltam, de egy kicsit nekem is utána
kellett néznem a dolgoknak.
1. Pontosan mire gondolsz field-mask alatt?
* Ha a modify_field primitive action opcionális harmadik paraméterére,
akkor ott big-endian bájt sorrendet feltételezünk. (A modify_field
primitive action továbbra is hibás, ugyanis a nem maszkolt biteket
felülírjuk 0-val.)
* Ha a compileren belüli kódban szereplő mask-okról beszélünk, akkor
meg valószínűleg az arch-nak megfelelőt. (Esélyes, hogy jelenleg ez
is hibás, és az autogenerált field maszkok mindig little-endian bájt
sorrenddel jönnek létre.)
Ezek közül talán a második problémát egy fokkal könnyebb orvosolni, az
elsővel meg több a szívás. Nyilván előbb utóbb mind a kettőt meg kell
oldani.
2. Teljesen igazatok van. A reset_headers valóban lenullázza a frissen
kitöltött ingress_port-ot (és az összes többi metadatát is). A
reset_headers-t még az előtt meg kéne hívni, hogy bármilyen metadata
fieldet módosítanánk. Én úgy látom, hogy ezt úgy tudjuk legegyszerűbben
kijavítani, ha a main_loop-okba kerül a reset_headers hívás a
handle_packet-ből.
Marci
On 2017-04-07 12:57, Sándor Laki wrote:
>
> Sziasztok,
>
> Két gyors kérdés:
>
> 1. field-maskokat milyen bájtsorrendűnek feltételezzük little-endian
> vagy big-endian vagy arch függő???
>
> 2. dataplane.c.py: a reset_headers kinullázza a ingress_port
> metadata-t is, ha jól látjuk.
> void handle_packet(packet_descriptor_t* pd, lookup_table_t** tables)
> 310
> <https://plc.inf.elte.hu/p4/trac/browser/trunk/src/hardware_indep/dataplane.c.py#L310>
> #[ {
> 311
> <https://plc.inf.elte.hu/p4/trac/browser/trunk/src/hardware_indep/dataplane.c.py#L311>
> #[ int value32;
> 312
> <https://plc.inf.elte.hu/p4/trac/browser/trunk/src/hardware_indep/dataplane.c.py#L312>
> #[ EXTRACT_INT32_BITS(pd,
> field_instance_standard_metadata_ingress_port, value32)
> 313
> <https://plc.inf.elte.hu/p4/trac/browser/trunk/src/hardware_indep/dataplane.c.py#L313>
> #[ debug("### HANDLING PACKET ARRIVING AT PORT %" PRIu32 "...\n",
> value32);
> 314
> <https://plc.inf.elte.hu/p4/trac/browser/trunk/src/hardware_indep/dataplane.c.py#L314>
> #[ reset_headers(pd);
> 315
> <https://plc.inf.elte.hu/p4/trac/browser/trunk/src/hardware_indep/dataplane.c.py#L315>
> #[ parse_packet(pd, tables);
> 316
> <https://plc.inf.elte.hu/p4/trac/browser/trunk/src/hardware_indep/dataplane.c.py#L316>
> #[ update_packet(pd);
> 317
> <https://plc.inf.elte.hu/p4/trac/browser/trunk/src/hardware_indep/dataplane.c.py#L317>
> #[ }
>
> Üdv.
> Sanyi
>
> --
> Sándor Laki, PhD
> Assistant professor
> Department of Information Systems
> Eötvös Loránd University
> Pázmány Péter stny. 1/C
> H-1117, Budapest, Hungary
> Room 2.506
> Web:http://lakis.web.elte.hu
> Phone: +36 1 372 2869 / 8477
> Cell: +36 70 374 2646
>
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
> Mentes a vírusoktól. www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>
>
>
>
> _______________________________________________
> P4 mailing list
> P4 at plc.inf.elte.hu
> https://plc.inf.elte.hu/mailman/listinfo/p4
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://plc.inf.elte.hu/pipermail/p4/attachments/20170407/0f20e371/attachment-0001.html>
More information about the P4
mailing list