The binary encoding of the "learn" action just doesn't support an "output to immediate" action, so some kind of different approach is needed.
On Fri, Apr 06, 2018 at 05:57:14PM -0400, Flavio Fernandes wrote: > > Heh, after sending that msg, I did a little digging in the code [1] and doc > and it seems clear that > integer literals are just not supported as a value for the output action name. > > I imagine that in order to handle that, that code section would need to be > extended to perform > a "parse_int_string(value,...)" and etc. > > All in all, I convinced myself that this is a FAD. One can easily load a > literal > integer into a REG and use that as output [2] anyways. So, that is plenty > good. > > Thanks and sorry for the noise, > > -- flaviof > > > [1]: > https://github.com/openvswitch/ovs/blob/a045e4b03d7603572ae0d503762c52dc40bf6f23/lib/learn.c#L371 > > [2]: load:0x1->NXM_NX_REG1[] ... output:NXM_NX_REG1[] > > > > > On Apr 6, 2018, at 4:18 PM, Flavio Fernandes <fla...@flaviof.com> wrote: > > > > Dear OVS Gurus: > > > > I came across something simple and silly, which is making me think it is > > actually a bug. > > > > In a nutshell, I'm trying to use a literal with the action output nested in > > a learn(). > > If I use a fancier (and more common) notation: > > > > output:NXM_OF_IN_PORT[] > > > > that works fine. However, if I try to use a literal such as: > > > > output:2 > > > > I get: > > > > ovs-ofctl: 2: unknown field `2' > > > > > > Here is a set of steps I use from a sandbox session: > > > > $ ./boot.sh ; ./configure ; make -j4 ; \ > > make sandbox > > > > $ ovs-vsctl add-br br0 \ > > -- add-port br0 p1 -- set interface p1 ofport_request=1 \ > > -- add-port br0 p2 -- set interface p2 ofport_request=2 \ > > -- set Bridge br0 fail-mode=secure > > > > # this works just fine > > $ ovs-ofctl add-flow br0 "table=0 actions=learn(table=1, > > hard_timeout=600, \ > > in_port=1, \ > > NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], \ > > output:NXM_OF_IN_PORT[]), \ > > resubmit(,1)" > > > > $ ovs-ofctl add-flow br0 "table=1 priority=0 actions=flood" > > > > $ ovs-ofctl -OOpenFlow13 --names --no-stat dump-flows br0 > > reset_counts > > actions=learn(table=1,hard_timeout=600,in_port=p1,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[]),resubmit(,1) > > table=1, reset_counts priority=0 actions=FLOOD > > > > # very similar to the learn action done above, except I'm attempting to > > hard code an output value > > $ ovs-ofctl add-flow br0 "table=0 actions=learn(table=1, > > hard_timeout=600, \ > > in_port=2, \ > > NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], \ > > output:2), \ > > resubmit(,1)" > > ovs-ofctl: 2: unknown field `2' > > > > $ echo $? > > 1 > > > > I also played a little bit with the parser test to reproduce this behavior. > > See below. > > > > So... bug or FAD? If you think BUG, I can dig a little more to learn what > > is going on. > > It has been a while, so chances are that most of you will have this fixed > > before I manage > > to blink. :) > > > > Best, > > > > -- flaviof > > > > > > > > > > $ make check TESTSUITEFLAGS=--list 2>/dev/null | grep -m1 -i learn > > 454: learn.at:3 learning action - parsing and formatting > > > > > > $ git diff > > diff --git a/tests/learn.at b/tests/learn.at > > index 5f1d6df..eaf1147 100644 > > --- a/tests/learn.at > > +++ b/tests/learn.at > > @@ -7,6 +7,7 @@ actions=learn(send_flow_rem) > > actions=learn(delete_learned) > > actions=learn(send_flow_rem,delete_learned) > > actions=learn(NXM_OF_VLAN_TCI[0..11], NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], > > output:NXM_OF_IN_PORT[], load:10->NXM_NX_REG0[5..10]) > > +actions=learn(NXM_OF_VLAN_TCI[0..11], NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], > > output:99) > > actions=learn(table=1,idle_timeout=10, hard_timeout=20, fin_idle_timeout=5, > > fin_hard_timeout=10, priority=10, cookie=0xfedcba9876543210, > > in_port=99,eth_dst=eth_src,load:in_port->reg1[16..31]) > > actions=learn(limit=4096) > > actions=learn(limit=4096,result_dst=reg0[0]) > > > > > > $ make check TESTSUITEFLAGS='454' > > ... > > 454: learning action - parsing and formatting FAILED (learn.at:15) > > _______________________________________________ > discuss mailing list > disc...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss