[stratum-dev] Table entry from stratum_bmv2 different from ONOS store

1 view
Skip to first unread message

A Sydney

unread,
May 12, 2021, 11:06:36 PM5/12/21
to strat...@lists.stratumproject.org
Hi Stratum folks,
                          
# Context: I'm running standalone stratum_bmv2 instances on Debian 10 connected to ONOS where I've got a custom pipeconfig and app.

# Problem:
When I install flows, ONOS logs an error that table entries in "l2_exact_table" on the switch are different from what's recorded in the ONOS store. However, if you take a look at the rules, they are identical as shown here: https://pastebin.com/i4Jkt26i

I activated the debugger and set a breakpoint near "if (!translatedEntity.get().translated().equals(entry))" (i.e. in P4RuntimeFlowRuleProgrammable.java) and both "translated" and "entry" have the same values.

Have you come across this one? If not, perhaps I should take this up with ONOS folks?

PS. I don't see this issue for other tables.

Thanks,
-Syd

A Sydney

unread,
May 18, 2021, 10:59:19 AM5/18/21
to strat...@lists.stratumproject.org
Hi Stratum folks,
                          I've used the debugger in Intellij to narrow down the issue (@P4RuntimeFlowRuleProgrammable.java line 233). As shown in the attached debugger gui, It appears that "tableAction->runtimeParams->value->value->value->hb" has different values for "translatedEntitity.get().translated()" and "entry". Hence, these flow rules are in a "PENDING ADD" state. Can you kindly provide feedback on this issue? Is this stratum specific, ONOS, or perhaps java?

Thanks,
-Syd
onos_debug_gui.png
 

Maximilian Pudelko

unread,
May 18, 2021, 2:20:16 PM5/18/21
to A Sydney, strat...@lists.stratumproject.org
Hi Syd,

I think this could be related to the recent PI update we did for Stratum-bmv2: https://github.com/stratum/stratum/pull/660
It now returns canonical byte strings in all P4Runtime messages, which confuses ONOS. We're working on fixing it:

Max


On Tue, May 18, 2021 at 7:59 AM A Sydney via stratum-dev <strat...@lists.stratumproject.org> wrote:
Hi Stratum folks,
                          I've used the debugger in Intellij to narrow down the issue (@P4RuntimeFlowRuleProgrammable.java line 233). As shown in the attached debugger gui, It appears that "tableAction->runtimeParams->value->value->value->hb" has different values for "translatedEntitity.get().translated()" and "entry". Hence, these flow rules are in a "PENDING ADD" state. Can you kindly provide feedback on this issue? Is this stratum specific, ONOS, or perhaps java?

Thanks,
-Syd
onos_debug_gui.png
 


On Wed, May 12, 2021 at 11:06 PM A Sydney <asydn...@gmail.com> wrote:
_______________________________________________
stratum-dev mailing list
strat...@lists.stratumproject.org
https://lists.stratumproject.org/listinfo/stratum-dev

A Sydney

unread,
May 18, 2021, 4:10:50 PM5/18/21
to Maximilian Pudelko, strat...@lists.stratumproject.org
Please let me know when a fix is pushed (or if you can provide a tkt/issue #, I can track it from the stratum repo). I'll then rebuild the debian package, create a new image and test out the change.

Thanks!
-Syd

Maximilian Pudelko

unread,
May 18, 2021, 5:22:41 PM5/18/21
to A Sydney, strat...@lists.stratumproject.org
The linked ONOS CL has been merged today. ONOS now supports canonical byte strings.
You might have to update your ONOS apps, depending on how you interact with P4Runtime.
For now there is nothing to be fixed in Stratum.

Max

A Sydney

unread,
May 19, 2021, 2:57:54 PM5/19/21
to Maximilian Pudelko, strat...@lists.stratumproject.org
I pulled in the new changes and everything works great!

Thanks a bunch!
-Syd
Reply all
Reply to author
Forward
0 new messages