from framework import VppTestCase, VppTestRunner
from vpp_ip_route import VppIpRoute, VppRoutePath
-from vpp_papi_provider import L2_PORT_TYPE, BRIDGE_FLAGS
+from vpp_l2 import L2_PORT_TYPE, BRIDGE_FLAGS
from scapy.packet import Raw
from scapy.layers.l2 import Ether
#
# Create a single bridge Domain
#
- self.vapi.bridge_domain_add_del(1)
+ self.vapi.bridge_domain_add_del(bd_id=1)
#
# add each interface to the BD. 3 interfaces per split horizon group
#
for i in self.pg_interfaces[0:4]:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, 0)
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, shg=0)
for i in self.pg_interfaces[4:8]:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, 1)
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, shg=1)
for i in self.pg_interfaces[8:12]:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, 2)
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, shg=2)
for i in self.lo_interfaces:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, 2,
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, shg=2,
port_type=L2_PORT_TYPE.BVI)
p = (Ether(dst="ff:ff:ff:ff:ff:ff",
# cleanup
#
for i in self.pg_interfaces[:12]:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, enable=0)
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, enable=0)
for i in self.lo_interfaces:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, 2,
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, shg=2,
port_type=L2_PORT_TYPE.BVI,
enable=0)
- self.vapi.bridge_domain_add_del(1, is_add=0)
+ self.vapi.bridge_domain_add_del(bd_id=1, is_add=0)
def test_flood_one(self):
""" L2 no-Flood Test """
#
# Create a single bridge Domain
#
- self.vapi.bridge_domain_add_del(1)
+ self.vapi.bridge_domain_add_del(bd_id=1)
#
# add 2 interfaces to the BD. this means a flood goes to only
# one member
#
for i in self.pg_interfaces[:2]:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, 0)
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, shg=0)
p = (Ether(dst="ff:ff:ff:ff:ff:ff",
src="00:00:de:ad:be:ef") /
# cleanup
#
for i in self.pg_interfaces[:2]:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, enable=0)
- self.vapi.bridge_domain_add_del(1, is_add=0)
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, enable=0)
+ self.vapi.bridge_domain_add_del(bd_id=1, is_add=0)
def test_uu_fwd(self):
""" UU Flood """
#
# Create a single bridge Domain
#
- self.vapi.bridge_domain_add_del(1, uu_flood=1)
+ self.vapi.bridge_domain_add_del(bd_id=1, uu_flood=1)
#
# add each interface to the BD. 3 interfaces per split horizon group
#
for i in self.pg_interfaces[0:4]:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, 0)
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, shg=0)
#
# an unknown unicast and braodcast packets
#
# use pg8 as the uu-fwd interface
#
- self.vapi.sw_interface_set_l2_bridge(self.pg8.sw_if_index, 1, 0,
- port_type=L2_PORT_TYPE.UU_FWD)
+ self.vapi.sw_interface_set_l2_bridge(
+ rx_sw_if_index=self.pg8.sw_if_index, bd_id=1, shg=0,
+ port_type=L2_PORT_TYPE.UU_FWD)
#
# expect the UU packet on the uu-fwd interface and not be flooded
#
# remove the uu-fwd interface and expect UU to be flooded again
#
- self.vapi.sw_interface_set_l2_bridge(self.pg8.sw_if_index, 1, 0,
- port_type=L2_PORT_TYPE.UU_FWD,
- enable=0)
+ self.vapi.sw_interface_set_l2_bridge(
+ rx_sw_if_index=self.pg8.sw_if_index, bd_id=1, shg=0,
+ port_type=L2_PORT_TYPE.UU_FWD, enable=0)
self.pg0.add_stream(p_uu*65)
self.pg_enable_capture(self.pg_interfaces)
#
# change the BD config to not support UU-flood
#
- self.vapi.bridge_flags(1, 0, BRIDGE_FLAGS.UU_FLOOD)
+ self.vapi.bridge_flags(bd_id=1, is_set=0, flags=BRIDGE_FLAGS.UU_FLOOD)
self.send_and_assert_no_replies(self.pg0, p_uu)
#
# re-add the uu-fwd interface
#
- self.vapi.sw_interface_set_l2_bridge(self.pg8.sw_if_index, 1, 0,
- port_type=L2_PORT_TYPE.UU_FWD)
+ self.vapi.sw_interface_set_l2_bridge(
+ rx_sw_if_index=self.pg8.sw_if_index, bd_id=1, shg=0,
+ port_type=L2_PORT_TYPE.UU_FWD)
self.logger.info(self.vapi.cli("sh bridge 1 detail"))
self.pg0.add_stream(p_uu*65)
#
# remove the uu-fwd interface
#
- self.vapi.sw_interface_set_l2_bridge(self.pg8.sw_if_index, 1, 0,
- port_type=L2_PORT_TYPE.UU_FWD,
- enable=0)
+ self.vapi.sw_interface_set_l2_bridge(
+ rx_sw_if_index=self.pg8.sw_if_index, bd_id=1, shg=0,
+ port_type=L2_PORT_TYPE.UU_FWD, enable=0)
self.send_and_assert_no_replies(self.pg0, p_uu)
#
# cleanup
#
for i in self.pg_interfaces[:4]:
- self.vapi.sw_interface_set_l2_bridge(i.sw_if_index, 1, enable=0)
+ self.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=i.sw_if_index,
+ bd_id=1, enable=0)
- self.vapi.bridge_domain_add_del(1, is_add=0)
+ self.vapi.bridge_domain_add_del(bd_id=1, is_add=0)
if __name__ == '__main__':