On 25.11.2019 22:45, Ben Pfaff wrote: > On Fri, Nov 01, 2019 at 10:24:39PM +0100, Ilya Maximets wrote: >> Handling of OpenFlow PACKET_OUT implies pushing the packet through >> the datapath and packet processing inside the datapath could trigger >> an upcall. In case of system datapath, 'dpif_execute()' sends packet >> to the kernel module and returns. If any, upcall will be triggered >> inside the kernel and handled by a separate thread in userspace. >> But in case of userspace datapath full processing of the packet happens >> inside the 'dpif_execute()' in the same thread that handled PACKET_OUT. >> This causes an issue if upcall will lead to modification of flow rules. > > Thank you very much for the fix. It is simpler and cleaner than I > expected. It looks correct to me and it passes all of the tests for me > locally. > > Acked-by: Ben Pfaff <[email protected]>
Thanks! Applied to master and backported down to 2.7. There was a big refactoring between branches 2.6 and 2.7, so this patch could not be applied to 2.6. However, IIUC, handle_packet_out() on this branch doesn't take 'ofproto_mutex' at all. Looks a bit dangerous. Best regards, Ilya Maximets. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
