From 094e151456b597c278f3b416523cf36b5e8e7f99 Mon Sep 17 00:00:00 2001 From: Jesse Gross Date: Fri, 6 Nov 2009 13:26:42 -0800 Subject: [PATCH] netflow: Only query stats of installed flows. NetFlow active timeouts was querying the stats of all exact match flows that had reached a certain age including those that could not be installed. This was not harmful but it was wasteful and produced log spew. This changes it to only query the flows that are actually installed. Bug #2252 --- secchan/ofproto.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/secchan/ofproto.c b/secchan/ofproto.c index babf01ed..cdb94b50 100644 --- a/secchan/ofproto.c +++ b/secchan/ofproto.c @@ -3318,14 +3318,16 @@ active_timeout(struct ofproto *ofproto, struct rule *rule) /* Get updated flow stats. */ memset(&odp_flow, 0, sizeof odp_flow); - odp_flow.key = rule->cr.flow; - odp_flow.flags = ODPFF_ZERO_TCP_FLAGS; - dpif_flow_get(&ofproto->dpif, &odp_flow); - - if (odp_flow.stats.n_packets) { - update_time(ofproto, rule, &odp_flow.stats); - netflow_flow_update_flags(&rule->nf_flow, odp_flow.stats.ip_tos, - odp_flow.stats.tcp_flags); + if (rule->installed) { + odp_flow.key = rule->cr.flow; + odp_flow.flags = ODPFF_ZERO_TCP_FLAGS; + dpif_flow_get(&ofproto->dpif, &odp_flow); + + if (odp_flow.stats.n_packets) { + update_time(ofproto, rule, &odp_flow.stats); + netflow_flow_update_flags(&rule->nf_flow, odp_flow.stats.ip_tos, + odp_flow.stats.tcp_flags); + } } expired.flow = rule->cr.flow; -- 2.30.2