summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/flowprobe/flowprobe.c3
-rw-r--r--test/test_flowprobe.py21
2 files changed, 23 insertions, 1 deletions
diff --git a/src/plugins/flowprobe/flowprobe.c b/src/plugins/flowprobe/flowprobe.c
index af8b8ce5218..30521b5a0ca 100644
--- a/src/plugins/flowprobe/flowprobe.c
+++ b/src/plugins/flowprobe/flowprobe.c
@@ -527,6 +527,9 @@ flowprobe_clear_state_if_index (u32 sw_if_index)
if (e->key.rx_sw_if_index == sw_if_index ||
e->key.tx_sw_if_index == sw_if_index)
{
+ e->packetcount = 0;
+ e->octetcount = 0;
+ e->prot.tcp.flags = 0;
if (fm->passive_timer > 0)
{
tw_timer_stop_2t_1w_2048sl (
diff --git a/test/test_flowprobe.py b/test/test_flowprobe.py
index f1f8597219d..28ddff8a65e 100644
--- a/test/test_flowprobe.py
+++ b/test/test_flowprobe.py
@@ -1441,8 +1441,27 @@ class DisableFP(MethodHolder):
self.sleep(12, "wait for leftover ip4 flows during three passive intervals")
self.collector.assert_nothing_captured()
+ # re-enable feature for the interface
+ ipfix.enable_flowprobe_feature()
+
+ # template packet should arrive immediately
+ ipfix_decoder = IPFIXDecoder()
+ self.vapi.ipfix_flush()
+ templates = ipfix.verify_templates(ipfix_decoder, count=1)
+
+ # send some ip4 packets
+ self.create_stream(src_if=self.pg3, dst_if=self.pg4, packets=5)
+ capture = self.send_packets(src_if=self.pg3, dst_if=self.pg4)
+
+ # verify meta info - packet/octet delta
+ self.vapi.ipfix_flush()
+ cflow = self.wait_for_cflow_packet(self.collector, templates[0], timeout=8)
+ self.verify_cflow_data(ipfix_decoder, capture, cflow)
+
+ self.collector.get_capture(2)
+
# cleanup
- ipfix.disable_exporter()
+ ipfix.remove_vpp_config()
@unittest.skipUnless(config.extended, "part of extended tests")