[P4] két control plane kérdés (főleg) Sanyihoz
Kitlei Róbert
kitlei at elte.hu
Wed Nov 4 11:50:45 CET 2015
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á.)
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?
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)?
Robi
More information about the P4
mailing list