<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Sziasztok!</p>
<p>Megtaláltam a hibát. Ez az én hülyeségem volt, csak valami
megmagyarázhatatlan oknál fogva volt olyan eset amikor működött a
totál rossz kód.</p>
<p>Kijavítottam és kipróbálva elvileg most már jól lekezelődik a
hit/miss.</p>
<p>Marci<br>
</p>
<br>
<div class="moz-cite-prefix">On 2018-05-28 13:23, Péter Vörös wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAD-BF=WmOCF2C8AbagQO=9JGACm1xzpu1=43UTrZFWdHhyCdaA@mail.gmail.com">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>Sziasztok,<br>
<br>
</div>
Az l2fwd jól működik!!!<br>
</div>
Az l3fwd-nél a hit belseje viszont még nem jó.<br>
<br>
control ingress {<br>
apply(macfwd) {<br>
hit {<br>
apply(ipv4_lpm); //EZEK A TÁBLÁK NEM
KERÜLNEK ELŐ<br>
apply(nexthops); //EZEK A TÁBLÁK NEM
KERÜLNEK ELŐ<br>
}<br>
}<br>
}<br>
<br>
<br>
[CORE 0@0] ( dataplane.c@547) HANDLING PACKET (port
0, 64 bytes) : cc cc cc cc 00 00 30 9c 23 5f 2e 4c 08
00 45 00 00 14 00 01 00 00 40 00 81 da c0 a8 00 65 32
00 06 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <br>
[CORE 0@0] ( parser.c@073) entering parser state
start...<br>
[CORE 0@0] ( parser.c@037) entering parser state
parse_ethernet...<br>
[CORE 0@0] ( parser.c@059) entering parser state
parse_ipv4...<br>
[CORE 0@0] ( parser.c@080) entering parser state
accept...<br>
[CORE 0@0] ( dataplane.c@534) Parsed packet<br>
[CORE 0@0] ( dataplane.c@537) :::: Header ethernet
(14 bytes): cc cc cc cc 00 00 30 9c 23 5f 2e 4c 08 00
<br>
[CORE 0@0] ( dataplane.c@537) :::: Header ipv4
(20 bytes): 45 00 00 14 00 01 00 00 40 00 81 da c0 a8
00 65 32 00 06 02 <br>
[CORE 0@0] ( dataplane.c@387) entering control
verifyChecksum...<br>
[CORE 0@0] ( dataplane.c@396) entering control
ingress...<br>
[CORE 0@0] ( dataplane.c@078) :::: EXECUTING TABLE
macfwd<br>
[CORE 0@0] ( dataplane.c@089) :: EXECUTING ACTION
_nop_0... #### EZ ITT MÉG JÓ<br>
[CORE 0@0] ( dataplane.c@144) :::: EXECUTING TABLE
tbl_act #### ITT KELLENE HOGY LEGYEN A HIT RÉSZ<br>
[CORE 0@0] ( dataplane.c@153) :: EXECUTING ACTION
act...<br>
[CORE 0@0] ( dataplane.c@429) entering control
egress...<br>
[CORE 0@0] ( dataplane.c@438) entering control
computeChecksum...<br>
[CORE 0@0] ( dataplane.c@447) entering control
DeparserImpl...<br>
[CORE 0@0] ( dataplane.c@525) :::: Reordering emit<br>
[CORE 0@0] ( dataplane.c@483) :: Preparing 3
header instances for storage...<br>
[CORE 0@0] ( dataplane.c@492) : Storing 14 bytes
(ethernet) : cc cc cc cc 00 00 30 9c 23 5f 2e 4c 08
00 <br>
[CORE 0@0] ( dataplane.c@489) : Skipping header
( arp) : (invalid header)<br>
[CORE 0@0] ( dataplane.c@492) : Storing 20 bytes
( ipv4) : 45 00 00 14 00 01 00 00 40 00 81 da c0
a8 00 65 32 00 06 02 <br>
[CORE 0@0] ( dataplane.c@497) :: Stored 34
bytes : cc cc cc cc 00 00 30 9c 23 5f 2e
4c 08 00 45 00 00 14 00 01 00 00 40 00 81 da c0 a8 00
65 32 00 06 02 <br>
[CORE 0@0] ( dataplane.c@514) :: To emit 34 bytes
(no resize)<br>
[CORE 0@0] ( dataplane.c@519) :: Packet: 34 bytes
from storage : cc cc cc cc 00 00 30 9c 23 5f 2e 4c 08
00 45 00 00 14 00 01 00 00 40 00 81 da c0 a8 00 65 32
00 06 02 <br>
[CORE 0@0] ( main_loop.c@323) :::: EGRESSING<br>
[CORE 0@0] ( main_loop.c@331) :: sending packet
on port 0 (lcore 0)<br>
<br>
</div>
Így lehet futtatni:<br>
</div>
dpdk-switch:<br>
</div>
P4_GCC_OPTS="-DP4DPDK_DEBUG" ./t4p4s.sh launch ctrl
dpdk_l3fwd_controller ctrcfg examples/l3fwd_table.txt
examples/l3fwd-wo-chksm.p4<br>
</div>
pktgen:<br>
</div>
a run_pktgen-ben át kell írni a pcap foldert.<br>
PCAP_FOLDER=/home/jenkins/t4p4s/examples/l3fwd_traffic.pcap<br>
<div>
<div><br>
</div>
<div>Üdv,<br>
</div>
<div>Peti<br>
</div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2018. május 27. 13:25 Brunner Márton
írta, <span dir="ltr"><<a
href="mailto:brmarci@caesar.elte.hu" target="_blank"
moz-do-not-send="true">brmarci@caesar.elte.hu</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p>Sziasztok!</p>
<p><b>A field_standard_metadata_t_<wbr>checksum_error
hibáról:</b></p>
<p>Ennek elvileg a $P4C/build/p4include/v1model.<wbr>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?)</p>
<p><b>examples.cfg és <a href="http://dpdk_backend.mk"
target="_blank" moz-do-not-send="true">dpdk_backend.mk</a>
hibák:</b></p>
<p>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 <a
href="http://dpdk_backend.mk" target="_blank"
moz-do-not-send="true">dpdk_backend.mk</a> 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 <a
href="http://dpdk_backend.mk" target="_blank"
moz-do-not-send="true">dpdk_backend.mk</a> fájlt, de
ennél biztosan lehetne szebben is.</p>
<p><b>Esetlegesen más branchen javított hibák:</b><br>
</p>
<p>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.)</p>
<p><b>Ezek után én sikeresen futtattam az l2fwd példát a
benti gépen.</b></p>
<p>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.</p>
<br>
<p>Marci<br>
</p>
<div>
<div class="h5"> <br>
<div class="m_-2656047098212589758moz-cite-prefix">On
2018-05-25 12:50, Péter Vörös wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>Szia,<br>
<br>
A field_standard_metadata_t_chec<wbr>ksum_error
hiba nálam előjött, de a komment megoldotta.<br>
<br>
</div>
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.<br>
</div>
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.<br>
<br>
A mostani config generálásnál viszont a sok
kötőjel szerintem picit bekavar. Így ugyanis nem
indul el a program.<br>
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)\""<br>
<br>
DPDK options : v1model dpdk_default l2fwd
2cores 2x1ports<br>
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)\""<br>
<br>
<div><br>
</div>
<div>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.<br>
<br>
</div>
<div>Üdv,<br>
</div>
<div>Peti<br>
</div>
<div>
<div><br>
[CORE 0@0] ( dpdk_lib.c@581) Initializing
stateful memories...<br>
[CORE 0@0] ( dpdk_lib.c@481) Initializing
tables on socket 0...<br>
[CORE 0@0] ( dpdk_lib.c@485) Creating
instances for table smac on socket 0 (2
copies)<br>
[CORE 0@0] ( dpdk_lib.c@474) Created table
smac on socket 0.<br>
[CORE 0@0] ( dpdk_lib.c@474) Created table
smac on socket 0.<br>
[CORE 0@0] ( dpdk_lib.c@510) Initializing
counters on socket 0...<br>
[CORE 0@0] ( dpdk_lib.c@533) Initializing
registers...<br>
[CORE 0@0] ( dpdk_lib.c@603) Configuring
lcore structs...<br>
[CORE 0@0] (controlplane.c@096) Creating
control plane connection...<br>
[CTRL] :::: SET_DEFAULT_ACTION<br>
[CTRL] :: rval=0<br>
[NO-CORE] MSG from controller 103 smac<br>
[NO-CORE] Action name: mac_learn<br>
[NO-CORE] Message from the control plane
arrived.<br>
[NO-CORE] Set default action for smac with
action mac_learn<br>
[NO-CORE] Default value set for table smac (on
socket 0).<br>
[NO-CORE] Default value set for table smac (on
socket 0).<br>
[CTRL] Handle msg: 0<br>
[CTRL] :::: SET_DEFAULT_ACTION<br>
[CTRL] :: rval=0<br>
[NO-CORE] MSG from controller 103 dmac<br>
[NO-CORE] Table setdefault: table name
mismatch (dmac), expected one of (smac).<br>
[CTRL] Handle msg: 0<br>
[CTRL] :::: ADD_TABLE_ENTRY<br>
[CTRL] :: rval=0<br>
[NO-CORE] MSG from controller 104 dmac<br>
[NO-CORE] Table add entry: table name mismatch
(dmac), expected one of (smac).<br>
[CTRL] Handle msg: 0<br>
[CTRL] :::: ADD_TABLE_ENTRY<br>
[CTRL] :: rval=0<br>
[NO-CORE] MSG from controller 104 smac<br>
[NO-CORE] Reply from the control plane
arrived.<br>
[NO-CORE] Adding new entry to smac with action
_nop_0<br>
[NO-CORE] EXACT: Added key:
aa:cc:dd:cc:00:01 <wbr>
0 (0x7fd484000900)<br>
[NO-CORE] EXACT: Added key:
aa:cc:dd:cc:00:01 <wbr>
0 (0x7fd484000920)<br>
[CTRL] Handle msg: 0<br>
[CTRL] :::: ADD_TABLE_ENTRY<br>
[CTRL] :: rval=0<br>
[NO-CORE] MSG from controller 104 dmac<br>
[NO-CORE] Table add entry: table name mismatch
(dmac), expected one of (smac).<br>
<br>
</div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2018. május 25. 12:31
Kitlei Róbert írta, <span dir="ltr"><<a
href="mailto:kitlei@elte.hu" target="_blank"
moz-do-not-send="true">kitlei@elte.hu</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0
0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p><br>
</p>
Sziasztok,<br>
<br>
<br>
<blockquote type="cite"><span>
<div>[NO-CORE] Table add entry: table
name mismatch (dmac).<br>
</div>
</span> Nincs dmac nevű táblánk?</blockquote>
<br>
Futtasd a legújabb committal, kiírja majd,
hogy szerinte milyen táblák érhetőek el.<span><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>1. dolog amibe belefutottam:
a t4p4s nem jól oldja fel az
examples.cfg-ben a
dpdk_paramétereket.<br>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</span> Épp most frissítettem a konfig
szerkezetét és felolvasását.<span><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div>Futtatásnál látszik is.<br>
- DPDK options :
2cores,2x1ports<br>
- DPDK params : -c 0x3 -n
1 -- -p 0x3 --config
"\"(0,0,0),(1,0,1)\""<br>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</span> 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?<span><br>
<br>
<blockquote type="cite">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000"
bgcolor="#FFFFFF">
<p>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. </p>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</span> Megnéztem, mindegyik példánk
v1model-es. Nálam mégsem generálódik a
field_standard_metadata_t_chec<wbr>ksum_error,
amit annyira hiányol a rendszer, nálad igen?<span><br>
<br>
<blockquote type="cite">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000"
bgcolor="#FFFFFF">
<p>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_pla<wbr>ne/dpdk_v1model_extern.c
fájlban kicommentezni a
checksum_error-os int-et.)<br>
</p>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</span> Így van, a hack-et nem is akartam
feltölteni, de saját akarata van. :)<br>
Mostanra lett elég okos a konfigurációk
kiválasztása.<br>
<br>
<blockquote type="cite">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000"
bgcolor="#FFFFFF">
<p> </p>
<div
class="m_-2656047098212589758m_-4473156891489526950m_-8485115735240349856moz-forward-container">
<p>... 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:</p>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
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...<br>
<br>
Robi<br>
<br>
</div>
<br>
______________________________<wbr>_________________<br>
P4 mailing list<br>
<a href="mailto:P4@plc.inf.elte.hu"
target="_blank" moz-do-not-send="true">P4@plc.inf.elte.hu</a><br>
<a
href="https://plc.inf.elte.hu/mailman/listinfo/p4"
rel="noreferrer" target="_blank"
moz-do-not-send="true">https://plc.inf.elte.hu/mailma<wbr>n/listinfo/p4</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset
class="m_-2656047098212589758mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
P4 mailing list
<a class="m_-2656047098212589758moz-txt-link-abbreviated" href="mailto:P4@plc.inf.elte.hu" target="_blank" moz-do-not-send="true">P4@plc.inf.elte.hu</a>
<a class="m_-2656047098212589758moz-txt-link-freetext" href="https://plc.inf.elte.hu/mailman/listinfo/p4" target="_blank" moz-do-not-send="true">https://plc.inf.elte.hu/<wbr>mailman/listinfo/p4</a>
</pre>
</blockquote>
<br>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
P4 mailing list<br>
<a href="mailto:P4@plc.inf.elte.hu" moz-do-not-send="true">P4@plc.inf.elte.hu</a><br>
<a href="https://plc.inf.elte.hu/mailman/listinfo/p4"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://plc.inf.elte.hu/<wbr>mailman/listinfo/p4</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</body>
</html>