On Fri, Aug 02, 2013 at 10:57:53PM -0700, Justin Pettit wrote:
> The ODP library has an optimization to not set a header if the field was
> not changed, regardless of whether an action to set the field was
> present.  That library is also responsible for un-wildcarding fields
> that are bieng modified.  This leads to a problem where a packet matches
> a flow that updates a field, but that particular packet's field already
> has that value.  As such, an overly loose megaflow will be generated
> that doesn't match on that field and the actions won't update it.  A
> second packet that should have the field set will match that flow and
> will not be modified.
> 
> This commit changes the behavior to always un-wildcard fields that are
> being modified.  Since the ODP library updates the entire header if a
> field in it is modified, and all those fields will be un-wildcarded, the
> generated flows may be different.  However, they should be correct.
> 
> Bug #18946.
> 
> Reported-by: Jesse Gross <[email protected]>
> Signed-off-by: Justin Pettit <[email protected]>

I would think that in the OFPACT_STRIP_VLAN and OFPACT_PUSH_VLAN cases
we would need to set all the bits in wc->masks.vlan_tci to 1-bits, since
we are potentially modifying all of them.

Otherwise this looks fine to me, thanks.

Acked-by: Ben Pfaff <[email protected]>
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to