ofproto: Only zero stats for non exact-match sub-rules.
authorJesse Gross <jesse@nicira.com>
Wed, 28 Oct 2009 23:05:57 +0000 (16:05 -0700)
committerJesse Gross <jesse@nicira.com>
Mon, 2 Nov 2009 19:45:36 +0000 (11:45 -0800)
We zero the stats on sub-rules after they expire to prevent them
from being counted twice in their super-rule if they are reinstalled.
However, for exact-match sub-rules this means that the OpenFlow stats
are always zero.  This changes that to only zero the stats for
non exact match rules.

Bug #1911

secchan/ofproto.c

index 7fb0c64..4266cbf 100644 (file)
@@ -1731,15 +1731,15 @@ rule_post_uninstall(struct ofproto *ofproto, struct rule *rule)
         if (rule->packet_count) {
             super->ip_tos = rule->ip_tos;
         }
-    }
 
-    /* Reset counters to prevent double counting if the rule ever gets
-     * reinstalled. */
-    rule->packet_count = 0;
-    rule->byte_count = 0;
-    rule->accounted_bytes = 0;
-    rule->tcp_flags = 0;
-    rule->ip_tos = 0;
+        /* Reset counters to prevent double counting if the rule ever gets
+         * reinstalled. */
+        rule->packet_count = 0;
+        rule->byte_count = 0;
+        rule->accounted_bytes = 0;
+        rule->tcp_flags = 0;
+        rule->ip_tos = 0;
+    }
 }
 \f
 static void