Lines Matching refs:stats
64 struct sw_flow_stats *stats; in ovs_flow_stats_update() local
68 stats = rcu_dereference(flow->stats[cpu]); in ovs_flow_stats_update()
71 if (likely(stats)) { in ovs_flow_stats_update()
72 spin_lock(&stats->lock); in ovs_flow_stats_update()
77 stats = rcu_dereference(flow->stats[0]); /* Pre-allocated. */ in ovs_flow_stats_update()
78 spin_lock(&stats->lock); in ovs_flow_stats_update()
90 likely(!rcu_access_pointer(flow->stats[cpu]))) { in ovs_flow_stats_update()
108 rcu_assign_pointer(flow->stats[cpu], in ovs_flow_stats_update()
119 stats->used = jiffies; in ovs_flow_stats_update()
120 stats->packet_count++; in ovs_flow_stats_update()
121 stats->byte_count += len; in ovs_flow_stats_update()
122 stats->tcp_flags |= tcp_flags; in ovs_flow_stats_update()
124 spin_unlock(&stats->lock); in ovs_flow_stats_update()
141 struct sw_flow_stats *stats = rcu_dereference_ovsl(flow->stats[cpu]); in ovs_flow_stats_get() local
143 if (stats) { in ovs_flow_stats_get()
147 spin_lock_bh(&stats->lock); in ovs_flow_stats_get()
148 if (!*used || time_after(stats->used, *used)) in ovs_flow_stats_get()
149 *used = stats->used; in ovs_flow_stats_get()
150 *tcp_flags |= stats->tcp_flags; in ovs_flow_stats_get()
151 ovs_stats->n_packets += stats->packet_count; in ovs_flow_stats_get()
152 ovs_stats->n_bytes += stats->byte_count; in ovs_flow_stats_get()
153 spin_unlock_bh(&stats->lock); in ovs_flow_stats_get()
166 struct sw_flow_stats *stats = ovsl_dereference(flow->stats[cpu]); in ovs_flow_stats_clear() local
168 if (stats) { in ovs_flow_stats_clear()
169 spin_lock_bh(&stats->lock); in ovs_flow_stats_clear()
170 stats->used = 0; in ovs_flow_stats_clear()
171 stats->packet_count = 0; in ovs_flow_stats_clear()
172 stats->byte_count = 0; in ovs_flow_stats_clear()
173 stats->tcp_flags = 0; in ovs_flow_stats_clear()
174 spin_unlock_bh(&stats->lock); in ovs_flow_stats_clear()