Commit 501f8d1fd75 (ofproto-dpif: Batch interacting with the dpif on flow miss operations.) caused packets handled manually in userspace not to be counted in flow statistics. This patch fixes the problem. --- ofproto/ofproto-dpif.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index bca9b8d..3309472 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -2453,6 +2453,8 @@ handle_flow_miss(struct ofproto_dpif *ofproto, struct flow_miss *miss, miss->initial_tci); LIST_FOR_EACH_SAFE (packet, next_packet, list_node, &miss->packets) { + struct dpif_flow_stats stats; + list_remove(&packet->list_node); ofproto->n_matches++; @@ -2473,6 +2475,12 @@ handle_flow_miss(struct ofproto_dpif *ofproto, struct flow_miss *miss, if (!facet->may_install || !subfacet->actions) { subfacet_make_actions(ofproto, subfacet, packet); } + + /* Credit statistics to subfacet for this packet. We must do this now + * because execute_controller_action() below may destroy 'packet'. */ + dpif_flow_stats_extract(&facet->flow, packet, &stats); + subfacet_update_stats(ofproto, subfacet, &stats); + if (!execute_controller_action(ofproto, &facet->flow, subfacet->actions, subfacet->actions_len, packet)) { -- 1.7.4.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev