Hi Ben, Thanks so much for the prompt response.
Looks like I might have been using --flow_format instead of -O. At least what I'm trying to do sounds feasible so I'll keep trying. /Billy. > -----Original Message----- > From: Ben Pfaff [mailto:b...@nicira.com] > Sent: Wednesday, June 17, 2015 5:31 PM > To: O Mahony, Billy > Cc: discuss@openvswitch.org > Subject: Re: [ovs-discuss] packet modification on egress port > > 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