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

Reply via email to