On 10 May 2014 03:14, Ben Pfaff <b...@nicira.com> wrote: > On Fri, May 09, 2014 at 02:35:44PM +1200, Joe Stringer wrote: > > This was causing a mismatch between the odp flow key in an upcall > > compared to the odp flow key that is serialised upon flow_dump. > > > > Signed-off-by: Joe Stringer <joestrin...@nicira.com> > > I agree that the flow keys that appear in the flow dump and in upcalls > should match. This change implies that flow dumps always include a > recirc_id. But why does that happen? I don't see obvious code in > dpif-netdev.c that does that. >
To be more precise, this is my understanding: * Upcall from dpif-netdev does not contain recirc_id in the odp key. * handle_upcalls() does xlate_actions() which generates a mask that exact-matches recirc_id. * handle_upcalls sends down the original odp flow key (missing recirc_id) with the flow mask (exact matching it). * dpif-netdev creates the flow based on this. * flow_dump_next(), when re-serialising the flow, puts the recirc_id as part of the odp flow key, because the flow masks it.
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev