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
