Lines Matching refs:stats
71 struct flow_stats *stats; in ovs_flow_stats_update() local
75 stats = rcu_dereference(flow->stats[node]); in ovs_flow_stats_update()
78 if (likely(stats)) { in ovs_flow_stats_update()
79 spin_lock(&stats->lock); in ovs_flow_stats_update()
84 stats = rcu_dereference(flow->stats[0]); /* Pre-allocated. */ in ovs_flow_stats_update()
85 spin_lock(&stats->lock); in ovs_flow_stats_update()
97 && likely(!rcu_access_pointer(flow->stats[node]))) { in ovs_flow_stats_update()
115 rcu_assign_pointer(flow->stats[node], in ovs_flow_stats_update()
124 stats->used = jiffies; in ovs_flow_stats_update()
125 stats->packet_count++; in ovs_flow_stats_update()
126 stats->byte_count += len; in ovs_flow_stats_update()
127 stats->tcp_flags |= tcp_flags; in ovs_flow_stats_update()
129 spin_unlock(&stats->lock); in ovs_flow_stats_update()
144 struct flow_stats *stats = rcu_dereference_ovsl(flow->stats[node]); in ovs_flow_stats_get() local
146 if (stats) { in ovs_flow_stats_get()
150 spin_lock_bh(&stats->lock); in ovs_flow_stats_get()
151 if (!*used || time_after(stats->used, *used)) in ovs_flow_stats_get()
152 *used = stats->used; in ovs_flow_stats_get()
153 *tcp_flags |= stats->tcp_flags; in ovs_flow_stats_get()
154 ovs_stats->n_packets += stats->packet_count; in ovs_flow_stats_get()
155 ovs_stats->n_bytes += stats->byte_count; in ovs_flow_stats_get()
156 spin_unlock_bh(&stats->lock); in ovs_flow_stats_get()
167 struct flow_stats *stats = ovsl_dereference(flow->stats[node]); in ovs_flow_stats_clear() local
169 if (stats) { in ovs_flow_stats_clear()
170 spin_lock_bh(&stats->lock); in ovs_flow_stats_clear()
171 stats->used = 0; in ovs_flow_stats_clear()
172 stats->packet_count = 0; in ovs_flow_stats_clear()
173 stats->byte_count = 0; in ovs_flow_stats_clear()
174 stats->tcp_flags = 0; in ovs_flow_stats_clear()
175 spin_unlock_bh(&stats->lock); in ovs_flow_stats_clear()