diff options
-rw-r--r-- | src/plugins/flowprobe/flowprobe.c | 3 | ||||
-rw-r--r-- | test/test_flowprobe.py | 21 |
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 234cb3b55c7..5cc36ad305a 100644 --- a/test/test_flowprobe.py +++ b/test/test_flowprobe.py @@ -1433,8 +1433,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") |