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

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to