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

Reply via email to