[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