[ovs-dev] [PACKET_OUT v2] ofproto-dpif: treat non-datapath ports as local port for OFPT_PACKET_OUT

Simon Horman simon at horms.net
Thu May 1 08:20:05 UTC 2014


On Thu, May 01, 2014 at 03:59:20PM +0900, YAMAMOTO Takashi wrote:
> >> Something like this (I have not tested either scenario):
> >>
> >>   I think this will fail to match but that may not be obvious to users:
> >>   packet_out: in_port=CONTROLLER actions=goto_table:1
> >>   table 1: match=in_port=CONTROLLER actions=normal
> >>
> >>   I think this will match but that may not be obvious to users:
> >>   packet_out: in_port=CONTROLLER actions=goto_table:1
> >>   table 1: match=in_port=LOCAL actions=normal
> >>
> >>   Where CONTROLLER could be any port covered by this patch.
> >>
> > Only ODP ports are changed to LOCAL, so simple rule matches as
> > outlined should work.
> > However, this scenario is valid when recirculation is involved.

I completely agree with that analysis.

> > I am
> > not sure what we should
> > do about this edge case either.
> 
> how about having a userspace-only special variant of RECIRC action,
> which can specify in_port as (ofproto, ofp port) and thus can be
> used even when odp port is not available?
> 
> if a translation detects the condition (ie. recirculation is necessary
> but in_port does not have the corresponding odp port), it can use
> the userspace variant with SLOW_ACTION instead of normal RECIRC.

FWIW I am happy with either that approach (assuming it works)
or Andy's approach. But I lean towards the simplicity of Andy's approach.



More information about the dev mailing list