tests: verify policer stats in punt tests

Add verification of policer stats in the IP[46] punt paths.

Type: test
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: I8b1035afc2d3abe4e98bdb3a76e87a0dd131ef4b
This commit is contained in:
Brian Russell
2021-01-27 14:45:22 +00:00
committed by Neale Ranns
parent a71ed7869f
commit e988726cbf
3 changed files with 72 additions and 0 deletions

View File

@ -1533,6 +1533,14 @@ class TestIPPunt(IPPuntSetup, VppTestCase):
# but not equal to the number sent, since some were policed
#
rx = self.pg1._get_capture(1)
stats = policer.get_stats()
# Single rate policer - expect conform, violate but no exceed
self.assertGreater(stats['conform_packets'], 0)
self.assertEqual(stats['exceed_packets'], 0)
self.assertGreater(stats['violate_packets'], 0)
self.assertGreater(len(rx), 0)
self.assertLess(len(rx), len(pkts))
@ -1636,6 +1644,24 @@ class TestIPPuntHandoff(IPPuntSetup, VppTestCase):
if worker == 0:
self.logger.debug(self.vapi.cli("show trace max 100"))
# Combined stats, all threads
stats = policer.get_stats()
# Single rate policer - expect conform, violate but no exceed
self.assertGreater(stats['conform_packets'], 0)
self.assertEqual(stats['exceed_packets'], 0)
self.assertGreater(stats['violate_packets'], 0)
# Worker 0, should have done all the policing
stats0 = policer.get_stats(worker=0)
self.assertEqual(stats, stats0)
# Worker 1, should have handed everything off
stats1 = policer.get_stats(worker=1)
self.assertEqual(stats1['conform_packets'], 0)
self.assertEqual(stats1['exceed_packets'], 0)
self.assertEqual(stats1['violate_packets'], 0)
#
# Clean up
#