On Fri, Mar 14, 2014 at 04:19:52PM +0900, Simon Horman wrote: > When creating a flow in the datapath as the result of an upcall > the match itself is the match supplied in the upcall while > the mask of the match, if supplied, is generated based on the > flow and mask composed during action translation. > > In the case of, for example a UDP packet, the match will include > of L2, L3 and L4 fields. However, if the flow is cleared in > flow_push_mpls() then the mask that is synthesised from it will > not include L3 and L4 fields. This seems incorrect and the kernel > datapath complains about this mismatch. > > Signed-off-by: Simon Horman <ho...@verge.net.au>
The goal of clearing the fields is to ensure that later flow tables can't match on fields that aren't visible anymore. That's important for accurate OpenFlow implementation, so I'd rather not change it. On the other hand, I see the point you're making, but I don't immediately understand why it happens that way. After all, I can change fields with OpenFlow actions and the datapath flows work out OK, why doesn't this work out OK too? Do you understand the reason? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev