v1->v2: - Initial two patches dropped because they were applied. - New patches "ofproto: Reduce number of "collect" functions taking lots of parameters." and "ofproto: Eliminate 'ofproto_node' member from struct rule." to fix a crash that Ethan reported (off-list) because flow_stats and aggregate_stats would call into translation via rule_get_stats. This also required changes to "ofproto: Add global locking around flow table changes." to adjust lock holding times. - Applied lots of comments from Ethan, biggest changes in "guarded-list: New data structure for thread-safe queue." - Added lots of Acked-bys.
Ben Pfaff (25): ofproto: Factor code out of collect_rules_{loose,strict} into new helper. ofproto: Reduce number of "collect" functions taking lots of parameters. ofproto: Eliminate 'ofproto_node' member from struct rule. ofproto: Correct comments. ofproto: Avoid gratuitous memory allocation and free. ofproto-dpif: Remove vestigial "clogged" feature. ofproto: Merge ofproto_rule_delete() and ofproto_delete_rule(). ofproto: Move function find_meter() into ofpacts as ofpacts_get_meter(). ofproto: Remove soon-to-be-invalid optimizations. ofproto: Break actions out of rule into new rule_actions structure. ofproto: Add a ref_count to "struct rule" to protect it from being freed. guarded-list: New data structure for thread-safe queue. classifier: Allow CLS_CURSOR_FOR_EACH to use a const-qualified iterator. ofproto: Move rule_execute() out of ofopgroup_complete(). ofproto: Drop 'expirable_mutex' in favor of new global 'ofproto_mutex'. ofproto: Protect index by cookie with ofproto_mutex. ofproto: Replace rwlock in struct rule by a mutex. ofproto: Remove ->timeout_mutex from struct rule (just use ->mutex). ofproto: Make some functions for rules private to ofproto.c. ofproto: Mark immutable members of struct rule 'const'. ofproto: New helper any_pending_ops(). ofproto: Refactor eviction cases to use common code. ofproto: Add global locking around flow table changes. ofproto: Remove redundant cls parameter from a few functions. ofproto-dpif: Move "learn" actions into individual threads. lib/automake.mk | 2 + lib/classifier.c | 3 +- lib/classifier.h | 7 +- lib/guarded-list.c | 97 +++ lib/guarded-list.h | 41 ++ lib/ofp-actions.c | 24 + lib/ofp-actions.h | 1 + ofproto/connmgr.c | 15 +- ofproto/connmgr.h | 10 +- ofproto/fail-open.c | 3 +- ofproto/ofproto-dpif-upcall.c | 198 ++---- ofproto/ofproto-dpif-upcall.h | 6 +- ofproto/ofproto-dpif-xlate.c | 45 +- ofproto/ofproto-dpif.c | 278 +++----- ofproto/ofproto-dpif.h | 16 +- ofproto/ofproto-provider.h | 317 ++++++--- ofproto/ofproto.c | 1413 ++++++++++++++++++++++++++--------------- ofproto/ofproto.h | 2 +- 18 files changed, 1519 insertions(+), 959 deletions(-) create mode 100644 lib/guarded-list.c create mode 100644 lib/guarded-list.h -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev