On Aug 2, 2013, at 11:07 PM, Ben Pfaff <[email protected]> wrote: > On Fri, Aug 02, 2013 at 10:53:40PM -0700, Justin Pettit wrote: >>> In the case where we do emit a "set" action, we un-wildcard not just the >>> single field but all the fields that have to be set in the datapath in >>> one go. Is that necessary here? My initial thought is "no" but I want >>> to make sure that you have also considered that. >> >> I think we need to do that, since we're overwriting all those fields. >> Isn't it essentially the same issue that unless we un-wildcard it, >> we'll overwrite other header fields regardless of their value based on >> too loose a megaflow? > > Here is my logic. > > For OFPACT_SET_VLAN_VID, we need to un-wildcard the VID and CFI bits > because we want the datapath actions to be correct regardless of the > VLAN in the microflow we're actually looking at. Another way to look at > it: if we do not un-wildcard it, then the datapath actions we emit could > be different depending on whether the VLAN being set is the VLAN in the > microflow for which we're generating actions. > > On the other hand, again for OFPACT_SET_VLAN_VID, I do not think the > same argument applies to the PCP bits. The PCP bits in the microflow > for which we're generating action do not affect whether we generate a > datapath action to set the VLAN tag. If we don't emit such an action, > no problem. If we do emit such an action, then commit_vlan_action() > will ensure that we un-wildcard the whole VLAN tag. > > Does that make sense?
As we discussed off-line, I misunderstood what you were suggesting, and my v2 patch had already addressed your concerns. --Justin _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
