[P4] Fwd: Re: P4-es dolgok
Brunner Márton
brmarci at caesar.elte.hu
Sun May 27 13:25:17 CEST 2018
Sziasztok!
*A field_standard_metadata_t_checksum_error hibáról:*
Ennek elvileg a $P4C/build/p4include/v1model.p4 fájlban szereplő struct
standard_metadata_t definíció checksum_error mezőjéből automatikusan
kellene generálódnia. Robi meg tudnád nézni, hogy nálad ez a fájl
tartalmazza-e a field-et? (Kis furcsaság ehhez kapcsolódóan, hogy az
@alias annotációval ellátott mezők nem generálódnak nálunk le. Erre tud
esetleg valaki valami magyarázatot?)
*examples.cfg és dpdk_backend.mk hibák:*
Két további apróbb hibát találtam. Az examples.cfg legutóbbi
felcommitolt változatában az l2fwd-hoz kapcsoló sorban no-nic opció
szerepelt (gondolom ez nem volt szándékos, úgyhogy ezt visszaírtam
dpdk_default-os változatra). Valamint amikor a dpdk_backend.mk fájl
végére írjuk az opcionális include-okat, akkor a régi makefájlt
használjuk, így újra és újra bekerülnek az includok, amik fordítási
hibához vezettek. Egyelőre azzal orvosoltam, hogy minden fordításkor
kitöröljük a dpdk_backend.mk fájlt, de ennél biztosan lehetne szebben is.
*Esetlegesen más branchen javított hibák:*
A benti gépen (a p4 user home-ban) levő t4p4s-16 lokális változtatásai
alapján úgy látom, hogy van egy pár hiba, ami úgy rémlik máshol már
javítva lett, de itt szerintem csak a Sanyi javította őket ideiglenesen
a múltkori teszteléskor. Az egyik egyik az volt, hogy a reset_headers
meghívása azután történik, hogy a bejövő portot már beállítottuk és így
az rögtön kinullázódik. A másik meg mintha valami port mérethez
kapcsolódna (1 bájtosként van commit-olva, 2 bájtosra van javítva). (Ezt
csak azért írom le, mert ezeket érdemes lenne itt is javítani, illetve a
további tesztelés folyamán figyelembe venni.)
*Ezek után én sikeresen futtattam az l2fwd példát a benti gépen.*
**Arról fogalmam sincs, hogy pontosan mi történik, helyes-e a
feldolgozás/kiküldés, mert ehhez kéne még egy tutoriál, hogy pontosan
mit kéne figyelni az adatok közül. De a t4p4s-16 fordul, fut és nem
száll el. Nálam van smac és dmac tábla is, látszódik, hogy mindkettőbe
bekerülnek bejegyzések. Amikor elindítom a packet generation-t is,
látszik, hogy jönnek a csomagok (azt már nem tudom eldönteni, hogy mit
csinál velük pontosan). De nem kapok semmi segfault-ot vagy ilyesmit.
Marci
On 2018-05-25 12:50, Péter Vörös wrote:
> Szia,
>
> A field_standard_metadata_t_checksum_error hiba nálam előjött, de a
> komment megoldotta.
>
> Futtattam most az újjal is, de nemúgy tűnik hogy létrejön a dmac
> tábla, created table logja például egyáltalán nincs. Később pedig ezt
> írja ha fel akarjuk tölteni ([NO-CORE] Table setdefault: table name
> mismatch (dmac), expected one of (smac).) Full log ismét alul.
> A config tényleg nem volt rossz, csak a programot a ${DPDK_OPTS}-szal
> nem a ${DPDK_OPTS_TEXT}-tel akarta elindítani, ennyi volt csak a baj.
>
> A mostani config generálásnál viszont a sok kötőjel szerintem picit
> bekavar. Így ugyanis nem indul el a program.
> sudo -E ./build/l2fwd/build/l2fwd - - - -c 0x3 -n 1 -- -p 0x3
> --config "\"(0,0,0),(1,0,1)\"" - - - -c 0x3 -n 1 -- -p 0x3 --config
> "\"(0,0,0),(1,0,1)\""
>
> DPDK options : v1model dpdk_default l2fwd 2cores 2x1ports
> DPDK params : - - - -c 0x3 -n 1 -- -p 0x3 --config
> "\"(0,0,0),(1,0,1)\"" - - - -c 0x3 -n 1 -- -p 0x3 --config
> "\"(0,0,0),(1,0,1)\""
>
>
> Kézzel javítva erre: sudo -E ./build/l2fwd/build/l2fwd -c 0x3 -n 1 --
> -p 0x3 --config "\"(0,0,0),(1,0,1)\"" -- -p 0x3 --config
> "\"(0,0,0),(1,0,1)\"" már fut.
>
> Üdv,
> Peti
>
> [CORE 0 at 0] ( dpdk_lib.c at 581) Initializing stateful memories...
> [CORE 0 at 0] ( dpdk_lib.c at 481) Initializing tables on socket 0...
> [CORE 0 at 0] ( dpdk_lib.c at 485) Creating instances for table smac on
> socket 0 (2 copies)
> [CORE 0 at 0] ( dpdk_lib.c at 474) Created table smac on socket 0.
> [CORE 0 at 0] ( dpdk_lib.c at 474) Created table smac on socket 0.
> [CORE 0 at 0] ( dpdk_lib.c at 510) Initializing counters on socket 0...
> [CORE 0 at 0] ( dpdk_lib.c at 533) Initializing registers...
> [CORE 0 at 0] ( dpdk_lib.c at 603) Configuring lcore structs...
> [CORE 0 at 0] (controlplane.c at 096) Creating control plane connection...
> [CTRL] :::: SET_DEFAULT_ACTION
> [CTRL] :: rval=0
> [NO-CORE] MSG from controller 103 smac
> [NO-CORE] Action name: mac_learn
> [NO-CORE] Message from the control plane arrived.
> [NO-CORE] Set default action for smac with action mac_learn
> [NO-CORE] Default value set for table smac (on socket 0).
> [NO-CORE] Default value set for table smac (on socket 0).
> [CTRL] Handle msg: 0
> [CTRL] :::: SET_DEFAULT_ACTION
> [CTRL] :: rval=0
> [NO-CORE] MSG from controller 103 dmac
> [NO-CORE] Table setdefault: table name mismatch (dmac), expected one
> of (smac).
> [CTRL] Handle msg: 0
> [CTRL] :::: ADD_TABLE_ENTRY
> [CTRL] :: rval=0
> [NO-CORE] MSG from controller 104 dmac
> [NO-CORE] Table add entry: table name mismatch (dmac), expected one of
> (smac).
> [CTRL] Handle msg: 0
> [CTRL] :::: ADD_TABLE_ENTRY
> [CTRL] :: rval=0
> [NO-CORE] MSG from controller 104 smac
> [NO-CORE] Reply from the control plane arrived.
> [NO-CORE] Adding new entry to smac with action _nop_0
> [NO-CORE] EXACT: Added key:
> aa:cc:dd:cc:00:01 0 (0x7fd484000900)
> [NO-CORE] EXACT: Added key:
> aa:cc:dd:cc:00:01 0 (0x7fd484000920)
> [CTRL] Handle msg: 0
> [CTRL] :::: ADD_TABLE_ENTRY
> [CTRL] :: rval=0
> [NO-CORE] MSG from controller 104 dmac
> [NO-CORE] Table add entry: table name mismatch (dmac), expected one of
> (smac).
>
>
> 2018. május 25. 12:31 Kitlei Róbert írta, <kitlei at elte.hu
> <mailto:kitlei at elte.hu>>:
>
>
> Sziasztok,
>
>
>> [NO-CORE] Table add entry: table name mismatch (dmac).
>> Nincs dmac nevű táblánk?
>
> Futtasd a legújabb committal, kiírja majd, hogy szerinte milyen
> táblák érhetőek el.
>
>> 1. dolog amibe belefutottam: a t4p4s nem jól oldja fel az
>> examples.cfg-ben a dpdk_paramétereket.
>
> Épp most frissítettem a konfig szerkezetét és felolvasását.
>
>> Futtatásnál látszik is.
>> - DPDK options : 2cores,2x1ports
>> - DPDK params : -c 0x3 -n 1 -- -p 0x3 --config
>> "\"(0,0,0),(1,0,1)\""
>
> A t4p4s.sh itt jó adatokat vesz fel a dpdk_parameters.cfg-ből,
> ezek a paraméterek felelnek meg a 2cores,2x1ports opcióknak. (Az
> új változatban szóközzel lesznek elválasztva.) Nem ezeknek kellene
> jönniük?
>
>> A kód azért nem megy, mert gondolom a Robi nem v1model-es
>> kódot fordított, viszont a v1model-es externeket tartalmazó
>> fájl is be volt include-olva. Mivel ott hivatkozunk olyan
>> elemre, ami csak v1model-es p4 fájl esetén generálódik le,
>> így ez hibához vezetett.
>>
>
> Megnéztem, mindegyik példánk v1model-es. Nálam mégsem generálódik
> a field_standard_metadata_t_checksum_error, amit annyira hiányol a
> rendszer, nálad igen?
>
>> Viszont az emiatt bevezetett int abban az esetben okoz hibát,
>> ha v1model-es példát fordítanánk. Én a megoldást abban látom
>> (és ez már többször is felmerült), hogy nem kéne minden
>> extern deklarációkat tartalmazó fájlt include-olni, csak az
>> aktuálisan használt architektúrának megfelelőt.
>> (Workaroundként elegendő a
>> src/hardware_dep/dpdk/data_plane/dpdk_v1model_extern.c
>> fájlban kicommentezni a checksum_error-os int-et.)
>>
>
> Így van, a hack-et nem is akartam feltölteni, de saját akarata van. :)
> Mostanra lett elég okos a konfigurációk kiválasztása.
>
>> ... A másik felében ezek között jön egy "PANIC in
>> rte_free():", majd "Fatal error: Invalid memory", ami aztán
>> valami szép hibaüzenettel elszáll:
>>
>
> Ilyen néha nálam is jelentkezik, még nem tudom, miért. Az érdekes,
> hogy egy setdefault kellős közepén történik...
>
> Robi
>
>
> _______________________________________________
> P4 mailing list
> P4 at plc.inf.elte.hu <mailto:P4 at plc.inf.elte.hu>
> https://plc.inf.elte.hu/mailman/listinfo/p4
> <https://plc.inf.elte.hu/mailman/listinfo/p4>
>
>
>
>
> _______________________________________________
> 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/20180527/1fde4981/attachment.html>
More information about the P4
mailing list