[ovs-dev] [race-fix 0/6] Fix a multithreading race on flow table insertion

Ben Pfaff blp at nicira.com
Tue Aug 27 00:09:59 UTC 2013


There is a race in add_flow() in ofproto.c, in that the flow becomes
visible in the flow table (to the forwarding threads) before it is
initialaized.  This tends to cause crashes under load when the flow table
is changing.  This series of commits fixes the problem.

Ben Pfaff (6):
  Fix typos in a couple of OpenFlow related comments.
  classifier: New function cls_rule_move().
  ofproto-dpif-xlate: Fix fin_timeout to make rules expirable.
  ofp-util: Abstract flow_mod OFPFF_* flags.
  ofproto: Make OFPFC_ADD internally modify a rule instead of swapping.
  ofproto: Fully construct rules before putting them in the classifier.

 OPENFLOW-1.1+                   |    3 -
 include/openflow/openflow-1.0.h |    2 +-
 lib/classifier.c                |   12 +-
 lib/classifier.h                |    3 +-
 lib/flow.c                      |   23 ++
 lib/flow.h                      |    2 +
 lib/learn.c                     |   15 +-
 lib/match.c                     |    9 +
 lib/match.h                     |    3 +-
 lib/ofp-actions.h               |    2 +-
 lib/ofp-errors.h                |    3 +-
 lib/ofp-parse.c                 |   10 +-
 lib/ofp-print.c                 |   28 ++-
 lib/ofp-util.c                  |  145 +++++++++---
 lib/ofp-util.h                  |   14 +-
 ofproto/ofproto-dpif-xlate.c    |   24 +-
 ofproto/ofproto-dpif.c          |   38 +++-
 ofproto/ofproto-provider.h      |  185 ++++++++++------
 ofproto/ofproto.c               |  465 ++++++++++++++++++++++-----------------
 utilities/ovs-ofctl.c           |    3 +-
 20 files changed, 630 insertions(+), 359 deletions(-)

-- 
1.7.10.4




More information about the dev mailing list