There are a few corner cases where datapaths may fail to dump flows to userspace. If userspace had seen the flow before, then rather than attempt to handle the flow, it would simply delete it. This is the simplest, easiest way to tackle the problem, but has the downside that if the flow is important, then it will be deleted, even if it is still valid.
This series provides two improvements on this behaviour: * Firstly, only delete such flows if they are missed for 3 occasions. This patch still deletes such flows if the udpif->need_revalidate value is set, to prevent the datapath from keeping incorrect flows in the datapath. * Secondly, improve the dpif interface and perform flow_get if the flow is missed and udpif->need_revalidate is set. In this case, perform revalidation and decide whether to keep or delete the flow. This may be related to VMware-BZ: #1271926. Joe Stringer (3): revalidator: Don't delete missed dp flows immediately. dpif: Allow batching flow_get. revalidator: Revalidate missed flows. lib/dpif-linux.c | 70 +++++++++++++++++++++++++----------- lib/dpif-netdev.c | 41 +++++++++++++-------- lib/dpif-provider.h | 19 +++++----- lib/dpif.c | 80 ++++++++++++++++++++++++++--------------- lib/dpif.h | 17 +++++++-- ofproto/ofproto-dpif-upcall.c | 61 ++++++++++++++++++++++++------- 6 files changed, 203 insertions(+), 85 deletions(-) -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev