On Wed, Jun 1, 2011 at 9:43 AM, Ben Pfaff <[email protected]> wrote: > @@ -963,6 +963,8 @@ dpif_netdev_execute(struct dpif *dpif, > return error; > } > > + dpif_netdev_flow_from_nlattrs(key_attrs, key_len, &key); > + > if (mutates) { > /* We need a deep copy of 'packet' since we're going to modify its > * data. */ > @@ -976,7 +978,7 @@ dpif_netdev_execute(struct dpif *dpif, > * if we don't. */ > copy = *packet; > } > - flow_extract(©, 0, -1, &key);
I think we need to be careful about ensuring that the layer pointers are correctly initialized. If we need to execute an action later on it is assumed that the pointers have been set, as they usually are by flow_extract(). It looks like that is true going into this function (although not strictly guaranteed) because in order to generate the flow we would have needed to call flow_extract() in the past. However, if we go down the 'mutates' branch then we put the data in a new ofpbuf and lose those pointers. _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
