[P4] két control plane kérdés (főleg) Sanyihoz

Sandor Laki lakis at elte.hu
Wed Nov 4 21:02:15 CET 2015


Szia,

Válaszok a szövegben:

2015.11.04. 11:50 keltezéssel, Kitlei Róbert írta:
>
> Szia, Sanyi!
>
> Az a legvalószínűbb, hogy te tudsz hozzászólni az alábbiakhoz.
>
> 1. Az users/laki/p4API/test_controller programot, majd a 
> trunk/tests/dpdk_actions+tables/test.sh-t elindítva HDani (DPDK 2.0, 
> és nincsen teljes DPDK rendszer konfigurálva nála) a következő 
> kimenetet kapja (csak a releváns részletet mellékelve, a felesleges 
> üres sorok nélkül):
>
> ### Control plane initialized.
> ### Waiting for fake digests to be applied...
>   :::: ADD_TABLE_ENTRY
>     :: rval=0
> LPM: Added 0x41d0e4df / 32 (0)
>   :::: Handle msg: 0
>   :::: ADD_TABLE_ENTRY
>     :: rval=0
> LPM: Added 0x41d0e4df / 24 (1)
>   :::: Handle msg: 0
> ### Control plane filled the tables.
>
>
> Nálam viszont (DPDK 2.1, a doc.md szerint konfigurálva) csak ennyi jön 
> ki:
>
>
> ### Control plane initialized.
> ### Waiting for fake digests to be applied...
> ### Control plane filled the tables.
>
>
> ... újra lefuttattam a leírtakat, és most kiírta az "LPM: Added" 
> részeket, de a kettőspontosakat (azok jeleznék a control plane 
> válaszának megkapását) nem).
>
> Nálad melyik a helyzet a kettő közül? Van-e ötleted arra, hogy nálam 
> miért nem válaszol a control plane? (Illetve, mivel nincsen :::: 
> Handle sor, el sem jut hozzá.)
>

Itt nem a dpdk verzió a gond. Mindkettővel megy. Azonban csak a 
trunk-ban írtam át a controllert, azaz a 
/repos/trunk/src/hardware_dep/dpdk/ctrl_plane alatti controller.c-t kell 
fordítani és futtatni.

gcc controller.c fifo.c dpdk_controller.c handlers.c messages.c 
sock_helpers.c threadpool.c -o controller -lpthread

Nem adtam még hozzá a make fájlhoz. Ezzel menni fog.

>
>
> 2. Megtaláltam, hogy a /trunk/test_dpdk1.sh hol száll el: a 
> trunk/src/hardware_dep/dpdk/ctrl_plane/ctrl_plane_backend.c 284-es 
> sorában (a touch_mem_cell ilyen sorában: bgt->unused_head = 
> result->next;). Pl. ha a nemiver debugger telepítve van, a
>
> sudo nemiver ./build/example_dpdk1 ${P4DPDK_OPTS}
>
> parancs, majd egy "Continue" gyorsan megmutatja, ha a common.mk 
> fájlban szerepel egy  CFLAGS += -g  is.
>
> Ez van akkor is, ha
>
> export P4DPDK_OPTS="-c 0x3 -n 2 -- -P -p 0x3 --config 
> \"(0,0,0),(1,0,0)\""
>
> és akkor is, ha
>
> export P4DPDK_OPTS="-c 0x1 -n 1 -- -P -p 0x1 --config \"(0,0,0)\""
>
> konfigurációval indítom el, és akkor is, ha a 
> trunk/src/hardware_dep/dpdk/main_ctrl_plane.c fájlban az 
> init_control_plane nem 3, csak 1 szállal indítja a create_backend-et.
>
> Tudsz-e ezzel kapcsolatban valami okosat mondani?
Itt annyit sikerült kiderítenem, hogy a create, launch és a 
touch_mem_cell egyszer-egyszer fut le összesen. A create és a launch 
esetén még ugyanaz a memória cím a mem_cell lista elején, majd a 
touch_mem_cell hívásnál teljesen más cím van ott. A kód alapján nem az 
a  backend van használva a generate_digest hívásban, mint amelyik létre 
lett hozva és el lett indítva korábban. Így nem is csoda a seg fault. 
Backend-ből csak egy kellene, hogy legyen! Azt kellene mindütt használni.

> Más, ugyanide: a touch_mem_cell kódján belül a teljes lockolt résznek 
> az if törzsének kellene lennie (a kód behúzása erre utal), vagy csak 
> az első utasításnak (amit a kód jelenleg jelent)?
>
>

Igen, ez nem volt jó. Túl sokat pythonoztam mostanában... Javítottam.

Üdv.
Sanyi

> Robi
>
> _______________________________________________
> P4 mailing list
> P4 at plc.inf.elte.hu
> https://plc.inf.elte.hu/mailman/listinfo/p4


-- 
Sándor Laki, PhD
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



More information about the P4 mailing list