def create_vxlan_flood_test_bd(cls, vni, n_ucast_tunnels): # Create 10 ucast vxlan tunnels under bd ip_range_start = 10 ip_range_end = ip_range_start + n_ucast_tunnels next_hop_address = cls.pg0.remote_ip4n for dest_ip4n in ip4n_range(next_hop_address, ip_range_start, ip_range_end): # add host route so dest_ip4n will not be resolved cls.vapi.ip_add_del_route(dest_ip4n, 32, next_hop_address) r = cls.vapi.vxlan_add_del_tunnel(src_addr=cls.pg0.local_ip4n, dst_addr=dest_ip4n, vni=vni) cls.vapi.sw_interface_set_l2_bridge(r.sw_if_index, bd_id=vni)
def add_del_mcast_tunnels_load(cls, is_add): """ add or del tunnels to test vxlan stability """ n_distinct_dst_tunnels = 200 ip_range_start = 10 ip_range_end = ip_range_start + n_distinct_dst_tunnels for dest_ip4n in ip4n_range(cls.mcast_ip4n, ip_range_start, ip_range_end): vni = bytearray(dest_ip4n)[3] cls.vapi.vxlan_add_del_tunnel(src_address=cls.pg0.local_ip4n, dst_address=dest_ip4n, mcast_sw_if_index=1, is_add=is_add, vni=vni)
def add_del_mcast_tunnels_load(cls, is_add): """ add or del tunnels to test gtpu stability """ n_distinct_dst_tunnels = 20 ip_range_start = 10 ip_range_end = ip_range_start + n_distinct_dst_tunnels for dest_ip4n in ip4n_range(cls.mcast_ip4n, ip_range_start, ip_range_end): teid = bytearray(dest_ip4n)[3] cls.vapi.gtpu_add_del_tunnel(src_addr=cls.pg0.local_ip4n, dst_addr=dest_ip4n, mcast_sw_if_index=1, teid=teid, is_add=is_add)
def create_vxlan_flood_test_bd(cls, vni, n_ucast_tunnels): # Create 10 ucast vxlan tunnels under bd ip_range_start = 10 ip_range_end = ip_range_start + n_ucast_tunnels next_hop_address = cls.pg0.remote_ip4n for dest_ip4n in ip4n_range(next_hop_address, ip_range_start, ip_range_end): # add host route so dest_ip4n will not be resolved cls.vapi.ip_add_del_route(dst_address=dest_ip4n, dst_address_length=32, next_hop_address=next_hop_address) r = cls.vapi.vxlan_add_del_tunnel(src_address=cls.pg0.local_ip4n, dst_address=dest_ip4n, vni=vni) cls.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=r.sw_if_index, bd_id=vni)
def add_del_mcast_tunnels_load(cls, is_add): """ add or del tunnels to test geneve stability """ n_distinct_dst_tunnels = 10 ip_range_start = 10 ip_range_end = ip_range_start + n_distinct_dst_tunnels for dest_ip4n in ip4n_range(cls.mcast_ip4n, ip_range_start, ip_range_end): vni = bytearray(dest_ip4n)[3] cls.vapi.geneve_add_del_tunnel(local_addr=cls.pg0.local_ip4n, remote_addr=dest_ip4n, mcast_sw_if_index=1, vni=vni, is_add=is_add)
def create_gtpu_flood_test_bd(cls, teid, n_ucast_tunnels): # Create 10 ucast gtpu tunnels under bd ip_range_start = 10 ip_range_end = ip_range_start + n_ucast_tunnels next_hop_address = cls.pg0.remote_ip4n for dest_ip4n in ip4n_range(next_hop_address, ip_range_start, ip_range_end): # add host route so dest_ip4n will not be resolved cls.vapi.ip_add_del_route(dst_address=dest_ip4n, dst_address_length=32, next_hop_address=next_hop_address) r = cls.vapi.gtpu_add_del_tunnel(src_addr=cls.pg0.local_ip4n, dst_addr=dest_ip4n, teid=teid) cls.vapi.sw_interface_set_l2_bridge(rx_sw_if_index=r.sw_if_index, bd_id=teid)
def add_del_mcast_tunnels_load(cls, is_add): """ add or del tunnels to test gtpu stability """ n_distinct_dst_tunnels = 20 ip_range_start = 10 ip_range_end = ip_range_start + n_distinct_dst_tunnels for dest_ip4n in ip4n_range(cls.mcast_ip4n, ip_range_start, ip_range_end): teid = bytearray(dest_ip4n)[3] cls.vapi.gtpu_add_del_tunnel( src_addr=cls.pg0.local_ip4n, dst_addr=dest_ip4n, mcast_sw_if_index=1, teid=teid, is_add=is_add)