[ovs-dev] [PATCH] ofproto: Fix for frequent invalidation of flows due to mismatch in mask bits

Ben Pfaff blp at ovn.org
Tue Jan 21 21:53:01 UTC 2020


On Thu, Jan 16, 2020 at 09:47:23PM +0530, Vishal Deep Ajmera via dev wrote:
> The wildcard bits in the installed megaflow entry could be different from
> the bits originally generated by the ofproto layer. Datapath implementation
> wildcards those match fields which are not present in the incoming packet
> before installing the flow.
> 
> When the revalidator thread validates a megaflow, it will first query the
> ofproto layer to get the wildcard bits and then compare it against the
> wildcard bits in the megaflow. If the bits are different the entry will be
> removed. A subsequent packet will again result in the same megaflow entry
> being installed only for it to be removed by the revalidator thread. This
> cycle will continue and will significantly degrade performance.
> 
> An earlier patch fixing the issue for MPLS and VLAN was sent.
> However similar problem now appears for IPv6 datapath flows.
> 
> This patch addresses the issue in a generic way.
> 
> Signed-off-by: Vishal Deep Ajmera <vishal.deep.ajmera at ericsson.com>

This is clever!  I think that this kind of approach is the right one.

I don't yet understand why this should be moved from xlate_wc_finish()
to revalidate_ukey__().  Can you help me understand that?


More information about the dev mailing list