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