On Wed, Jun 17, 2015 at 02:55:40PM +0000, O Mahony, Billy wrote:
> My first problem is:
> ovs-ofctl  add-flow br0 "table=1,priority=1,in_port=1 
> actions=write_actions(output:2),write_metadata:2,goto_table:2"
> ovs-ofctl: none of the usable flow formats (OXM,OpenFlow11) is among the 
> allowed flow formats (OpenFlow10,NXM)
> 
> This sounds like OF version mismatches, but despite much messing about with 
> --flow_format options for ofctl and  ovs-vsctl set bridge br0
> protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13 I could not get rid of 
> this error.

You need to enable later OpenFlow versions in ovs-ofctl, e.g. see the
FAQ:

   All current versions of ovs-ofctl enable only OpenFlow 1.0 by
   default.  Use the -O option to enable support for later versions of
   OpenFlow in ovs-ofctl.  For example:

       ovs-ofctl -O OpenFlow13 dump-flows br0

This is because OpenFlow 1.0, even with Nicira extensions, doesn't have
"write_actions".

I agree that this error message is difficult to interpret.

> Another funny is that goto_table & write_metadata both work (or at least are
> accepted) separately but not together!
> 
> $ ovs-ofctl  add-flow br0 "table=1,priority=1,in_port=2 actions=goto_table:2" 
> $ ovs-ofctl  add-flow br0 "table=1,priority=1,in_port=2 
> actions=write_metadata:1"

This is because OpenFlow 1.0 with Nicira extensions does support
goto_table and write_metadata.  The latter gets transformed into a
"resubmit" Open vSwitch extension however.

> $ ovs-ofctl  add-flow br0 "table=1,priority=1,in_port=2 
> actions=write_metadata:1,goto_table:2" OFPT_ERROR (xid=0x6):
> NXBRC_UNENCODABLE_ERROR

This is a bug one way or another.  When ovs-ofctl encodes the goto_table
into OF1.0, it transforms it into "resubmit".  When ovs-vswitchd decodes
it, it sees that the ordering is wrong--since OF1.1+ always executes
instructions in a particular order, OVS enforces that order for
instruction-like extension actions, including "resubmit" which it
classes as an "apply_actions" instruction--and refuses to accept it.
Probably, OVS should just transform that special case internally back
into goto_table.  I'll make a note to do that.

(But you should just add -O to enable your preferred version of
OpenFlow.)
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to