L2-LEARN:fix l2fib entry seq num not updated on hit (VPP-888)

fixed instability in l2bd_multi_instnce test - sometimes failing with extra
packets captured

it appears l2-learn was not updating hit entries but rather a copy of them.

if the ager did not have a chance to run before the test was running the
learning cycle - entries were not updated with the packet's seq num - causing
packets to flood when hitting the stale seq_num in l2-fwd - hence the extra
packets

fixed handling of filter entries

revert workaround for instability in test

Change-Id: I16d918e6310a5bf40bad5b7335b2140c2867cb71
Signed-off-by: Eyal Bari <ebari@cisco.com>
(cherry picked from commit 25ff2ea3a31e422094f6d91eab46222a29a77c4b)
This commit is contained in:
Eyal Bari
2017-06-25 14:42:33 +03:00
committed by eyal bari
parent ed92925f4d
commit 31a71ab497
6 changed files with 97 additions and 120 deletions

View File

@ -403,39 +403,7 @@ class TestL2bdMultiInst(VppTestCase):
self.run_verify_test()
def test_l2bd_inst_02(self):
""" L2BD Multi-instance test 2 - delete 2 BDs
"""
# Config 3
# Delete 2 BDs
self.delete_bd(2)
# Verify 3
for bd_id in self.bd_deleted_list:
self.assertEqual(self.verify_bd(bd_id), 0)
for bd_id in self.bd_list:
self.assertEqual(self.verify_bd(bd_id), 1)
# Test 3
self.run_verify_test()
def test_l2bd_inst_03(self):
""" L2BD Multi-instance test 3 - add 2 BDs
"""
# Config 4
# Create 5 BDs, put interfaces to these BDs and send MAC learning
# packets
self.create_bd_and_mac_learn(2)
# Verify 4
for bd_id in self.bd_list:
self.assertEqual(self.verify_bd(bd_id), 1)
# Test 4
# self.vapi.cli("clear trace")
self.run_verify_test()
def test_l2bd_inst_04(self):
""" L2BD Multi-instance test 4 - update data of 5 BDs
""" L2BD Multi-instance test 2 - update data of 5 BDs
"""
# Config 2
# Update data of 5 BDs (disable learn, forward, flood, uu-flood)
@ -460,6 +428,38 @@ class TestL2bdMultiInst(VppTestCase):
self.verify_bd(self.bd_list[4], learn=False, forward=True,
flood=True, uu_flood=True)
def test_l2bd_inst_03(self):
""" L2BD Multi-instance test 3 - delete 2 BDs
"""
# Config 3
# Delete 2 BDs
self.delete_bd(2)
# Verify 3
for bd_id in self.bd_deleted_list:
self.assertEqual(self.verify_bd(bd_id), 0)
for bd_id in self.bd_list:
self.assertEqual(self.verify_bd(bd_id), 1)
# Test 3
self.run_verify_test()
def test_l2bd_inst_04(self):
""" L2BD Multi-instance test 4 - add 2 BDs
"""
# Config 4
# Create 5 BDs, put interfaces to these BDs and send MAC learning
# packets
self.create_bd_and_mac_learn(2)
# Verify 4
for bd_id in self.bd_list:
self.assertEqual(self.verify_bd(bd_id), 1)
# Test 4
# self.vapi.cli("clear trace")
self.run_verify_test()
def test_l2bd_inst_05(self):
""" L2BD Multi-instance test 5 - delete 5 BDs
"""