-#!/usr/bin/env python
+#!/usr/bin/env python3
"""L2BD Multi-instance Test Case HLD:
**NOTES:**
from scapy.layers.l2 import Ether
from scapy.layers.inet import IP, UDP
-from framework import VppTestCase, VppTestRunner
+from framework import VppTestCase, VppTestRunner, running_extended_tests
from util import Host, ppp
for i in cls.pg_interfaces:
i.admin_up()
- # Create list of BDs
- cls.bd_list = list()
-
- # Create list of deleted BDs
- cls.bd_deleted_list = list()
-
- # Create list of pg_interfaces in BDs
- cls.pg_in_bd = list()
-
except Exception:
super(TestL2bdMultiInst, cls).tearDownClass()
raise
+ @classmethod
+ def tearDownClass(cls):
+ super(TestL2bdMultiInst, cls).tearDownClass()
+
def setUp(self):
"""
Clear trace and packet infos before running each test.
"""
self.reset_packet_infos()
super(TestL2bdMultiInst, self).setUp()
+ # Create list of BDs
+ self.bd_list = []
+
+ # Create list of deleted BDs
+ self.bd_deleted_list = []
+
+ # Create list of pg_interfaces in BDs
+ self.pg_in_bd = []
def tearDown(self):
"""
self.bd_deleted_list.remove(b)
for j in self.bd_if_range(b):
pg_if = self.pg_interfaces[j]
- self.vapi.sw_interface_set_l2_bridge(pg_if.sw_if_index,
- bd_id=b)
+ self.vapi.sw_interface_set_l2_bridge(
+ rx_sw_if_index=pg_if.sw_if_index, bd_id=b)
self.logger.info("pg-interface %s added to bridge domain ID %d"
% (pg_if.name, b))
self.pg_in_bd.append(pg_if)
for b in range(start, start + count):
for j in self.bd_if_range(b):
pg_if = self.pg_interfaces[j]
- self.vapi.sw_interface_set_l2_bridge(pg_if.sw_if_index,
- bd_id=b, enable=0)
+ self.vapi.sw_interface_set_l2_bridge(
+ rx_sw_if_index=pg_if.sw_if_index, bd_id=b, enable=0)
self.pg_in_bd.remove(pg_if)
self.vapi.bridge_domain_add_del(bd_id=b, is_add=0)
self.bd_list.remove(b)
try:
ip = packet[IP]
udp = packet[UDP]
- info = self.payload_to_info(str(packet[Raw]))
+ info = self.payload_to_info(packet[Raw])
self.assertEqual(info.dst, dst)
self.logger.debug("Got packet on port %s: src=%u (id=%u)" %
(dst_if.name, info.src, info.index))
else:
raise ValueError("Unknown feature used: %s" % flag)
is_set = 1 if args[flag] else 0
- self.vapi.bridge_flags(bd_id, is_set, feature_bitmap)
+ self.vapi.bridge_flags(bd_id=bd_id, is_set=is_set,
+ flags=feature_bitmap)
self.logger.info("Bridge domain ID %d updated" % bd_id)
def verify_bd(self, bd_id, **args):
# Test 1
# self.vapi.cli("clear trace")
self.run_verify_test()
+ self.delete_bd(5)
def test_l2bd_inst_02(self):
""" L2BD Multi-instance test 2 - update data of 5 BDs
"""
# Config 2
# Update data of 5 BDs (disable learn, forward, flood, uu-flood)
+ self.create_bd_and_mac_learn(5)
self.set_bd_flags(self.bd_list[0], learn=False, forward=False,
flood=False, uu_flood=False)
self.set_bd_flags(self.bd_list[1], forward=False)
flood=True, uu_flood=False)
self.verify_bd(self.bd_list[4], learn=False, forward=True,
flood=True, uu_flood=True)
+ self.delete_bd(5)
def test_l2bd_inst_03(self):
- """ L2BD Multi-instance 3 - delete 2 BDs
+ """ L2BD Multi-instance test 3 - delete 2 BDs
"""
# Config 3
# Delete 2 BDs
+ self.create_bd_and_mac_learn(5)
self.delete_bd(2)
# Verify 3
# Test 3
self.run_verify_test()
+ self.delete_bd(3, 3)
def test_l2bd_inst_04(self):
""" L2BD Multi-instance test 4 - add 2 BDs
# Test 4
# self.vapi.cli("clear trace")
self.run_verify_test()
+ self.delete_bd(2)
def test_l2bd_inst_05(self):
- """ L2BD Multi-instance 5 - delete 5 BDs
+ """ L2BD Multi-instance test 5 - delete 5 BDs
"""
# Config 5
# Delete 5 BDs
+ self.create_bd_and_mac_learn(5)
self.delete_bd(5)
# Verify 5