ofproto-dpif: Implement self-check of flow translations.
authorBen Pfaff <blp@nicira.com>
Mon, 16 Jan 2012 20:37:44 +0000 (12:37 -0800)
committerBen Pfaff <blp@nicira.com>
Mon, 16 Jan 2012 20:37:44 +0000 (12:37 -0800)
commit6814e51f41074afdfc13ea2ca1a462b873c7cd49
tree9739a5fb87beeb83731f98563af22756510c9c9d
parent15baa734dbe26167aca7b5ed92ff1061209355a9
ofproto-dpif: Implement self-check of flow translations.

One of the major tasks of ofproto-dpif is to translate OpenFlow
actions into "ODP" datapath actions.  These translations are essentially
a cache that requires revalidation when certain state changes occur.  For
best performance it's important to revalidate flows only when necessary,
so from time to time Open vSwitch has gotten this wrong, which meant that
stale flows could persist in the kernel and cause surprising behavior.

This commit implements a simple "self check": every trip through the
Open vSwitch main loop randomly chooses one flow entry and checks that
its actions have been correctly translated.  If not, Open vSwitch logs
the details of the problem.  This should help find problems more
quickly in the future.

Signed-off-by: Ben Pfaff <blp@nicira.com>
lib/odp-util.c
lib/odp-util.h
ofproto/ofproto-dpif.c
ofproto/ofproto-unixctl.man