The xcache holds the correct set of modules to attribute stats for a flow that is being deleted, but it may hold an outdated view of the side-effects to perform for the flow. We have no way of knowing whether the flow is valid in this context, so use xcache to attribute stats, but do not use it for performing side-effects. Perform side-effects by flow translation instead.
Signed-off-by: Joe Stringer <[email protected]> --- ofproto/ofproto-dpif-upcall.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c index bd5c07a..276d6a9 100644 --- a/ofproto/ofproto-dpif-upcall.c +++ b/ofproto/ofproto-dpif-upcall.c @@ -1282,9 +1282,9 @@ push_dump_ops__(struct udpif *udpif, struct dump_op *ops, size_t n_ops) may_learn = push->n_packets > 0; ovs_mutex_lock(&op->ukey->mutex); if (op->ukey->xcache) { - xlate_push_stats(op->ukey->xcache, may_learn, push); - ovs_mutex_unlock(&op->ukey->mutex); - continue; + xlate_push_stats(op->ukey->xcache, false, push); + push->n_packets = 0; + push->n_bytes = 0; } ovs_mutex_unlock(&op->ukey->mutex); -- 1.7.10.4 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
