flowprobe: fix accumulation of tcp flags in flow entries 38/40038/2
authorAlexander Chernavin <achernavin@netgate.com>
Thu, 26 Oct 2023 11:18:19 +0000 (11:18 +0000)
committerDave Wallace <dwallacelf@gmail.com>
Fri, 1 Dec 2023 19:28:52 +0000 (19:28 +0000)
commitb8b02937b1a0ef8b02cc1dcf09e93e512d6fc234
treefa84efeee9ebcc6176ba5645ac9cff7ee7f690f1
parent0d7d22cf677c9b88139d907b9c079a7c81afe136
flowprobe: fix accumulation of tcp flags in flow entries

Currently, TCP flags of a flow entry don't get reset once the flow is
exported (unlike other meta information about a flow - packet delta
count and octet delta count). So TCP flags are accumulated as long as
the flow is active. When the flow expires, it is exported the last time,
and its pool entry is freed for further reuse. The next flow that gets
this pool entry will already have non-zero TCP flags. If it's a TCP
flow, the flags will keep being accumulated. This might look fine when
exported. If it's a non-TCP flow, that will definitely look erroneous.

With this fix, reset TCP flags once the flow is exported. Also, cover
the reuse case with tests.

Type: fix
Change-Id: I5f8560afffcfe107909117d3d063e8a69793437e
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
(cherry picked from commit 21922cec7339f48989f230248de36a98816c4b1b)
src/plugins/flowprobe/node.c
test/test_flowprobe.py