> 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
probably compose_mpls_push_action should clear these fields in base_flow as well? YAMAMOTO Takashi > 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 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev