From e5e22dcf8168f0b791b5d922ecc9501ddd5c0039 Mon Sep 17 00:00:00 2001 From: Anand Kumar Date: Fri, 27 Apr 2018 10:00:30 -0700 Subject: datapath-windows: Prevent ct-counters from getting redundantly incremented The conntrack-counters ought to be incremented only if it's a new lookup or if it's recirculated through a different zone for the first time. Signed-off-by: Anand Kumar Acked-by: Alin Gabriel Serdean --- datapath-windows/ovsext/Conntrack.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'datapath-windows') diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c index 678bedb65..add1491ed 100644 --- a/datapath-windows/ovsext/Conntrack.c +++ b/datapath-windows/ovsext/Conntrack.c @@ -886,10 +886,11 @@ OvsCtExecute_(OvsForwardingContext *fwdCtx, return NDIS_STATUS_RESOURCES; } - /* Increment the counters soon after the lookup, since we set ct.state - * to OVS_CS_F_TRACKED after processing the ct entry. + /* Increment stats for the entry if it wasn't tracked previously or + * if they are on different zones */ - if (entry && (!(key->ct.state & OVS_CS_F_TRACKED))) { + if (entry && (entry->key.zone != key->ct.zone || + (!(key->ct.state & OVS_CS_F_TRACKED)))) { OvsCtIncrementCounters(entry, ctx.reply, curNbl); } -- cgit v1.2.1