def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces bond_options = {"mode": "802.3ad", "miimon": "100"} m1_lag1 = m1.create_bond(slaves=[m1_if1, m1_if2], options=bond_options, ip=["192.168.101.10/24", "2002::1/64"]) m2_lag1 = m2.create_bond(slaves=[m2_if1, m2_if2], options=bond_options, ip=["192.168.101.11/24", "2002::2/64"]) sw_lag1 = sw.create_bond(slaves=[sw_if1, sw_if2], options=bond_options) sw_lag2 = sw.create_bond(slaves=[sw_if3, sw_if4], options=bond_options) sw.create_bridge(slaves=[sw_lag1, sw_lag2], options={ "vlan_filtering": 1, "multicast_snooping": 0 }) test_ifaces = m1_lag1, m2_lag1, sw_lag1, sw_lag2 tl = TestLib(ctl, aliases, test_ifaces) tl.wait_for_if(ifaces) tl.link_status_show() tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1)
def do_task(ctl, hosts, ifaces, aliases): m1, sw, m2 = hosts m1_if1, sw_if1, sw_if2, sw_if3, m2_if1, m2_if2, m2_if3, m3_if1 = ifaces ecmp_sw_ifaces = [sw_if2, sw_if3] ecmp_m_ifaces = [m2_if1, m2_if2] m2.config("/proc/sys/net/ipv4/ip_forward", "1") m2.config("/proc/sys/net/ipv6/conf/all/forwarding", "1") ecmp_common.create_topology(m1_if1, sw_if1, ecmp_sw_ifaces, ecmp_m_ifaces, m2_if3, m3_if1, num_nexthops=MAX_NEXTHOPS) tl = TestLib(ctl, aliases) tl.wait_for_if(ifaces) tl.ping_simple(m1_if1, m3_if1) tl.netperf_udp(m1_if1, m3_if1) ecmp_common.test_traffic(tl, m1_if1, m3_if1, sw_if1, ecmp_sw_ifaces) routes_filter = "to match %s" % m3_if1.get_ip() dc_routes, nh_routes = sw.get_routes(routes_filter=routes_filter) if len(nh_routes) != 1: tl.custom(sw, "route", "could not find the ecmp route") for nh in nh_routes[0]["nexthops"]: if "offload" not in nh["flags"]: tl.custom(sw, "route", "ecmp route is not offloaded")
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m2_if1, sw_if1, sw_if2 = ifaces m1_if1.reset() m2_if1.reset() m1_if1_10 = m1.create_vlan(m1_if1, 10, ip=test_ip(1, 1)) m2_if1_10 = m2.create_vlan(m2_if1, 10, ip=test_ip(2, 1)) sw_if1_10 = sw.create_vlan(sw_if1, 10, ip=test_ip(1, 2)) sw_if2_10 = sw.create_vlan(sw_if2, 10, ip=test_ip(2, 2)) m1_if1_10.add_nhs_route(ipv4(test_ip(2, 0)), [ipv4(test_ip(1, 2, []))]) m2_if1_10.add_nhs_route(ipv4(test_ip(1, 0)), [ipv4(test_ip(2, 2, []))]) m1_if1.add_nhs_route(ipv6(test_ip(2, 0)), [ipv6(test_ip(1, 2, []))], ipv6=True) m2_if1.add_nhs_route(ipv6(test_ip(1, 0)), [ipv6(test_ip(2, 2, []))], ipv6=True) tl = TestLib(ctl, aliases) tl.wait_for_if(ifaces) tl.ping_simple(m1_if1_10, m2_if1_10) tl.netperf_tcp(m1_if1_10, m2_if1_10) tl.netperf_udp(m1_if1_10, m2_if1_10)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces team_config = '{"runner" : {"name" : "lacp"}}' m1_lag1 = m1.create_team(slaves=[m1_if1, m1_if2], config=team_config, ip=test_ip(1,1)) m2_lag1 = m2.create_team(slaves=[m2_if1, m2_if2], config=team_config, ip=test_ip(2,1)) m1_lag1.add_nhs_route(ipv4(test_ip(2,0)), [ipv4(test_ip(1,2,[]))]); m2_lag1.add_nhs_route(ipv4(test_ip(1,0)), [ipv4(test_ip(2,2,[]))]); m1_if1.add_nhs_route(ipv6(test_ip(2,0)), [ipv6(test_ip(1,2,[]))], ipv6=True); m2_if1.add_nhs_route(ipv6(test_ip(1,0)), [ipv6(test_ip(2,2,[]))], ipv6=True); sw_lag1 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config, ip=test_ip(1,2)) sw_lag2 = sw.create_team(slaves=[sw_if3, sw_if4], config=team_config, ip=test_ip(2,2)) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces team_config = '{"runner" : {"name" : "lacp"}}' m1_lag1 = m1.create_team(slaves=[m1_if1, m1_if2], config=team_config, ip=test_ip(1, 1)) m2_lag1 = m2.create_team(slaves=[m2_if1, m2_if2], config=team_config, ip=test_ip(2, 1)) m1_lag1.add_nhs_route(ipv4(test_ip(2, 0)), [ipv4(test_ip(1, 2, []))]) m2_lag1.add_nhs_route(ipv4(test_ip(1, 0)), [ipv4(test_ip(2, 2, []))]) m1_if1.add_nhs_route(ipv6(test_ip(2, 0)), [ipv6(test_ip(1, 2, []))], ipv6=True) m2_if1.add_nhs_route(ipv6(test_ip(1, 0)), [ipv6(test_ip(2, 2, []))], ipv6=True) sw_lag1 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config, ip=test_ip(1, 2)) sw_lag2 = sw.create_team(slaves=[sw_if3, sw_if4], config=team_config, ip=test_ip(2, 2)) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces bond_options = {"mode": "802.3ad", "miimon": "100"} m1_lag1 = m1.create_bond(slaves=[m1_if1, m1_if2], options=bond_options, ip=test_ip(1, 1)) m2_lag1 = m2.create_bond(slaves=[m2_if1, m2_if2], options=bond_options, ip=test_ip(2, 1)) m1_lag1.add_nhs_route(ipv4(test_ip(2, 0)), [ipv4(test_ip(1, 2, []))]) m2_lag1.add_nhs_route(ipv4(test_ip(1, 0)), [ipv4(test_ip(2, 2, []))]) m1_if1.add_nhs_route(ipv6(test_ip(2, 0)), [ipv6(test_ip(1, 2, []))], ipv6=True) m2_if1.add_nhs_route(ipv6(test_ip(1, 0)), [ipv6(test_ip(2, 2, []))], ipv6=True) sw_lag1 = sw.create_bond(slaves=[sw_if1, sw_if2], options=bond_options, ip=test_ip(1, 2)) sw_lag2 = sw.create_bond(slaves=[sw_if3, sw_if4], options=bond_options, ip=test_ip(2, 2)) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces bond_options = {"mode": "802.3ad", "miimon": "100"} m1_lag1 = m1.create_bond(slaves=[m1_if1, m1_if2], options=bond_options, ip=test_ip(1,1)) m2_lag1 = m2.create_bond(slaves=[m2_if1, m2_if2], options=bond_options, ip=test_ip(2,1)) m1_lag1.add_nhs_route(ipv4(test_ip(2,0)), [ipv4(test_ip(1,2,[]))]); m2_lag1.add_nhs_route(ipv4(test_ip(1,0)), [ipv4(test_ip(2,2,[]))]); m1_if1.add_nhs_route(ipv6(test_ip(2,0)), [ipv6(test_ip(1,2,[]))], ipv6=True); m2_if1.add_nhs_route(ipv6(test_ip(1,0)), [ipv6(test_ip(2,2,[]))], ipv6=True); sw_lag1 = sw.create_bond(slaves=[sw_if1, sw_if2], options=bond_options, ip=test_ip(1,2)) sw_lag2 = sw.create_bond(slaves=[sw_if3, sw_if4], options=bond_options, ip=test_ip(2,2)) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces team_config = '{"runner" : {"name" : "lacp"}}' m1_lag1 = m1.create_team(slaves=[m1_if1, m1_if2], config=team_config, ip=["192.168.101.10/24", "2002::1/64"]) m2_lag1 = m2.create_team(slaves=[m2_if1, m2_if2], config=team_config, ip=["192.168.101.11/24", "2002::2/64"]) sw_lag1 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config) sw_lag2 = sw.create_team(slaves=[sw_if3, sw_if4], config=team_config) sw_br = sw.create_bridge(slaves=[sw_lag1, sw_lag2], options={"vlan_filtering": 1, "multicast_querier": 1}) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1) sw_lag1.slave_del(sw_if1.get_id()) sw_lag1.slave_del(sw_if2.get_id()) m1_lag1.slave_del(m1_if1.get_id()) # Make sure slowpath is working. sw_if1.reset(ip=["192.168.102.10/24", "2003::1/64"]) m1_if1.reset(ip=["192.168.102.11/24", "2003::2/64"]) sleep(30) tl.ping_simple(sw_if1, m1_if1) # Repopulate the LAGs and make sure fastpath is OK. sw_if1.set_addresses([]) # LAG port can't have IP address. sw_lag3 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config) sw_br.slave_add(sw_lag3.get_id()) m1_lag1.slave_add(m1_if1.get_id()) sleep(30) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces team_config = '{"runner" : {"name" : "lacp"}}' m1_lag1 = m1.create_team(slaves=[m1_if1, m1_if2], config=team_config, ip=["192.168.101.10/24", "2002::1/64"]) m2_lag1 = m2.create_team(slaves=[m2_if1, m2_if2], config=team_config, ip=["192.168.101.11/24", "2002::2/64"]) sw_lag1 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config) sw_lag2 = sw.create_team(slaves=[sw_if3, sw_if4], config=team_config) sw_br = sw.create_bridge(slaves=[sw_lag1, sw_lag2], options={ "vlan_filtering": 1, "multicast_querier": 1 }) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1) sw_lag1.slave_del(sw_if1.get_id()) sw_lag1.slave_del(sw_if2.get_id()) m1_lag1.slave_del(m1_if1.get_id()) # Make sure slowpath is working. sw_if1.reset(ip=["192.168.102.10/24", "2003::1/64"]) m1_if1.reset(ip=["192.168.102.11/24", "2003::2/64"]) sleep(30) tl.ping_simple(sw_if1, m1_if1) # Repopulate the LAGs and make sure fastpath is OK. sw_if1.set_addresses([]) # LAG port can't have IP address. sw_lag3 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config) sw_br.slave_add(sw_lag3.get_id()) m1_lag1.slave_add(m1_if1.get_id()) sleep(30) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1)
def do_task(ctl, hosts, ifaces, aliases): m1, sw = hosts m1_if1, sw_if1 = ifaces m1_if1.reset(ip=["192.168.101.10/24", "2002::1/64"]) sw_if1.reset(ip=["192.168.101.11/24", "2002::2/64"]) tl = TestLib(ctl, aliases) tl.wait_for_if(ifaces) tl.ping_simple(m1_if1, sw_if1) tl.netperf_tcp(m1_if1, sw_if1) tl.netperf_udp(m1_if1, sw_if1)
def do_task(ctl, hosts, ifaces, aliases): m1, sw = hosts m1_if1, sw_if1 = ifaces m1_if1.reset(ip=["192.168.101.10/24", "2002::1/64"]) sw_if1.reset(ip=["192.168.101.11/24", "2002::2/64"]) sleep(15) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, sw_if1) tl.netperf_tcp(m1_if1, sw_if1) tl.netperf_udp(m1_if1, sw_if1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m2_if1, sw_if1, sw_if2 = ifaces m1_if1.reset(ip=["192.168.101.10/24", "2002::1/64"]) m2_if1.reset(ip=["192.168.101.11/24", "2002::2/64"]) sw.create_bridge(slaves=[sw_if1, sw_if2], options={"vlan_filtering": 1}) sleep(15) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m2_if1) tl.netperf_tcp(m1_if1, m2_if1) tl.netperf_udp(m1_if1, m2_if1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m2_if1, sw_if1, sw_if2 = ifaces m1_if1.reset(ip=["192.168.101.10/24", "2002::1/64"]) m2_if1.reset(ip=["192.168.101.11/24", "2002::2/64"]) sw.create_bridge(slaves=[sw_if1, sw_if2], options={"vlan_filtering": 1}) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m2_if1) tl.netperf_tcp(m1_if1, m2_if1) tl.netperf_udp(m1_if1, m2_if1)
def do_task(ctl, hosts, ifaces, aliases): m1, sw = hosts m1_if1, sw_if1 = ifaces m1_if1_10 = m1.create_vlan(m1_if1, 10, ip=["192.168.101.10/24", "2002::1/64"]) sw_if1_10 = sw.create_vlan(sw_if1, 10, ip=["192.168.101.11/24", "2002::2/64"]) sleep(15) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1_10, sw_if1_10) tl.netperf_tcp(m1_if1_10, sw_if1_10) tl.netperf_udp(m1_if1_10, sw_if1_10)
def do_task(ctl, hosts, ifaces, aliases): m1, sw, m2 = hosts m1_if1, sw_if1, sw_if2, sw_if3, m2_if1, m2_if2, m2_if3, m3_if1 = ifaces ecmp_sw_ifaces = [sw_if2, sw_if3] ecmp_m_ifaces = [m2_if1, m2_if2] m2.config("/proc/sys/net/ipv4/ip_forward", "1") m2.config("/proc/sys/net/ipv6/conf/all/forwarding", "1") ecmp_common.create_topology(m1_if1, sw_if1, ecmp_sw_ifaces, ecmp_m_ifaces, m2_if3, m3_if1) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m3_if1) tl.netperf_udp(m1_if1, m3_if1) ecmp_common.test_traffic(tl, m1_if1, m3_if1, sw_if1, ecmp_sw_ifaces)
def do_task(ctl, hosts, ifaces, aliases): m1, sw, m2 = hosts m1_if1, sw_if1, sw_if2, sw_if3, m2_if1, m2_if2, m2_if3, m3_if1 = ifaces ecmp_sw_ifaces = [sw_if2, sw_if3] ecmp_m_ifaces = [m2_if1, m2_if2] m2.config("/proc/sys/net/ipv4/ip_forward", "1") m2.config("/proc/sys/net/ipv6/conf/all/forwarding", "1") ecmp_common.create_topology(m1_if1, sw_if1, ecmp_sw_ifaces, ecmp_m_ifaces, m2_if3, m3_if1) tl = TestLib(ctl, aliases) tl.wait_for_if(ifaces) tl.ping_simple(m1_if1, m3_if1) tl.netperf_udp(m1_if1, m3_if1) ecmp_common.test_traffic(tl, m1_if1, m3_if1, sw_if1, ecmp_sw_ifaces)
def do_task(ctl, hosts, ifaces, aliases): m1, sw, m2 = hosts m1_if1, sw_if1, sw_if2, sw_if3, sw_if4, sw_if5, m2_if1, m2_if2, m2_if3, \ m2_if4, m2_if5, m3_if1 = ifaces ecmp_sw_ifaces = [sw_if2, sw_if3, sw_if4, sw_if5] ecmp_m_ifaces = [m2_if1, m2_if2, m2_if3, m2_if4] m2.config("/proc/sys/net/ipv4/ip_forward", "1") ecmp_common.create_topology(m1_if1, sw_if1, ecmp_sw_ifaces, ecmp_m_ifaces, m2_if5, m3_if1) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m3_if1) tl.netperf_udp(m1_if1, m3_if1) ecmp_common.test_traffic(tl, m1_if1, m3_if1, sw_if1, ecmp_sw_ifaces)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m2_if1, sw_if1, sw_if2 = ifaces m1_if1.reset(ip=test_ip(1,1)) m2_if1.reset(ip=test_ip(2,1)) sw_if1.reset(ip=test_ip(1,2)) sw_if2.reset(ip=test_ip(2,2)) m1_if1.add_nhs_route(ipv4(test_ip(2,0)), [ipv4(test_ip(1,2,[]))]); m2_if1.add_nhs_route(ipv4(test_ip(1,0)), [ipv4(test_ip(2,2,[]))]); sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m2_if1) tl.netperf_tcp(m1_if1, m2_if1) tl.netperf_udp(m1_if1, m2_if1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces bond_options = {"mode": "802.3ad", "miimon": "100"} m1_lag1 = m1.create_bond(slaves=[m1_if1, m1_if2], options=bond_options, ip=["192.168.101.10/24", "2002::1/64"]) m2_lag1 = m2.create_bond(slaves=[m2_if1, m2_if2], options=bond_options, ip=["192.168.101.11/24", "2002::2/64"]) sw_lag1 = sw.create_bond(slaves=[sw_if1, sw_if2], options=bond_options) sw_lag2 = sw.create_bond(slaves=[sw_if3, sw_if4], options=bond_options) sw.create_bridge(slaves=[sw_lag1, sw_lag2], options={"vlan_filtering": 1}) sleep(15) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m2_if1, sw_if1, sw_if2 = ifaces m1_if1.reset() m2_if1.reset() m1_if1_10 = m1.create_vlan(m1_if1, 10, ip=test_ip(1, 1)) m2_if1_10 = m2.create_vlan(m2_if1, 10, ip=test_ip(2, 1)) sw_if1_10 = sw.create_vlan(sw_if1, 10, ip=test_ip(1, 2)) sw_if2_10 = sw.create_vlan(sw_if2, 10, ip=test_ip(2, 2)) m1_if1_10.add_nhs_route(ipv4(test_ip(2, 0)), [ipv4(test_ip(1, 2, []))]) m2_if1_10.add_nhs_route(ipv4(test_ip(1, 0)), [ipv4(test_ip(2, 2, []))]) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1_10, m2_if1_10) tl.netperf_tcp(m1_if1_10, m2_if1_10) tl.netperf_udp(m1_if1_10, m2_if1_10)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces bond_options = {"mode": "802.3ad", "miimon": "100"} m1_lag1 = m1.create_bond(slaves=[m1_if1, m1_if2], options=bond_options, ip=["192.168.101.10/24", "2002::1/64"]) m2_lag1 = m2.create_bond(slaves=[m2_if1, m2_if2], options=bond_options, ip=["192.168.101.11/24", "2002::2/64"]) sw_lag1 = sw.create_bond(slaves=[sw_if1, sw_if2], options=bond_options) sw_lag2 = sw.create_bond(slaves=[sw_if3, sw_if4], options=bond_options) sw.create_bridge(slaves=[sw_lag1, sw_lag2], options={"vlan_filtering": 1}) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m2_if1, sw_if1, sw_if2 = ifaces m1_if1.reset(ip=test_ip(1, 1)) m1_if1_10 = m1.create_vlan(m1_if1, 10, ip=test_ip(2, 1)) m1_if1_20 = m1.create_vlan(m1_if1, 20, ip=test_ip(3, 1)) m2_if1.reset(ip=test_ip(1, 2)) m2_if1_10 = m2.create_vlan(m2_if1, 10, ip=test_ip(2, 2)) m2_if1_20 = m2.create_vlan(m2_if1, 20, ip=test_ip(3, 2)) br_options = {"vlan_filtering": 1, "multicast_snooping": 0} sw.create_bridge(slaves=[sw_if1, sw_if2], options=br_options) sw_if1.add_br_vlan(10) sw_if2.add_br_vlan(10) sw_if1.add_br_vlan(20) sw_if2.add_br_vlan(20) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m2_if1) tl.netperf_tcp(m1_if1, m2_if1) tl.netperf_udp(m1_if1, m2_if1) tl.ping_simple(m1_if1_10, m2_if1_10) tl.netperf_tcp(m1_if1_10, m2_if1_10) tl.netperf_udp(m1_if1_10, m2_if1_10) tl.ping_simple(m1_if1_20, m2_if1_20) tl.netperf_tcp(m1_if1_20, m2_if1_20) tl.netperf_udp(m1_if1_20, m2_if1_20) sw_if1.add_br_vlan(500, pvid=True, untagged=True) sw_if2.add_br_vlan(500, pvid=True, untagged=True) sleep(1) tl.ping_simple(m1_if1, m2_if1) tl.netperf_tcp(m1_if1, m2_if1) tl.netperf_udp(m1_if1, m2_if1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m2_if1, sw_if1, sw_if2 = ifaces m1_if1.reset(ip=test_ip(1, 1)) m1_if1_10 = m1.create_vlan(m1_if1, 10, ip=test_ip(2, 1)) m1_if1_20 = m1.create_vlan(m1_if1, 20, ip=test_ip(3, 1)) m2_if1.reset(ip=test_ip(1, 2)) m2_if1_10 = m2.create_vlan(m2_if1, 10, ip=test_ip(2, 2)) m2_if1_20 = m2.create_vlan(m2_if1, 20, ip=test_ip(3, 2)) br_options = {"vlan_filtering": 1} sw.create_bridge(slaves=[sw_if1, sw_if2], options=br_options) sw_if1.add_br_vlan(10) sw_if2.add_br_vlan(10) sw_if1.add_br_vlan(20) sw_if2.add_br_vlan(20) sleep(15) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m2_if1) tl.netperf_tcp(m1_if1, m2_if1) tl.netperf_udp(m1_if1, m2_if1) tl.ping_simple(m1_if1_10, m2_if1_10) tl.netperf_tcp(m1_if1_10, m2_if1_10) tl.netperf_udp(m1_if1_10, m2_if1_10) tl.ping_simple(m1_if1_20, m2_if1_20) tl.netperf_tcp(m1_if1_20, m2_if1_20) tl.netperf_udp(m1_if1_20, m2_if1_20) sw_if1.add_br_vlan(500, pvid=True, untagged=True) sw_if2.add_br_vlan(500, pvid=True, untagged=True) sleep(1) tl.ping_simple(m1_if1, m2_if1) tl.netperf_tcp(m1_if1, m2_if1) tl.netperf_udp(m1_if1, m2_if1)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces bond_options = {"mode": "802.3ad", "miimon": "100"} m1_lag1 = m1.create_bond(slaves=[m1_if1, m1_if2], options=bond_options, ip=test_ip(1, 1)) m1_lag1_10 = m1.create_vlan(m1_lag1, 10, ip=test_ip(2, 1)) m1_lag1_20 = m1.create_vlan(m1_lag1, 20, ip=test_ip(3, 1)) m2_lag1 = m2.create_bond(slaves=[m2_if1, m2_if2], options=bond_options, ip=test_ip(1, 2)) m2_lag1_10 = m2.create_vlan(m2_lag1, 10, ip=test_ip(2, 2)) m2_lag1_21 = m2.create_vlan(m2_lag1, 21, ip=test_ip(3, 2)) sw_lag1 = sw.create_bond(slaves=[sw_if1, sw_if2], options=bond_options) sw_lag2 = sw.create_bond(slaves=[sw_if3, sw_if4], options=bond_options) br_options = {"vlan_filtering": 1, "multicast_snooping": 0} sw.create_bridge(slaves=[sw_lag1, sw_lag2], options=br_options) sw_lag1_10 = sw.create_vlan(sw_lag1, 10) sw_lag2_10 = sw.create_vlan(sw_lag2, 10) sw.create_bridge(slaves=[sw_lag1_10, sw_lag2_10], options={"multicast_snooping": 0}) sw_lag1_20 = sw.create_vlan(sw_lag1, 20) sw_lag2_21 = sw.create_vlan(sw_lag2, 21) sw.create_bridge(slaves=[sw_lag1_20, sw_lag2_21], options={"multicast_snooping": 0}) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1) tl.ping_simple(m1_lag1_10, m2_lag1_10) tl.netperf_tcp(m1_lag1_10, m2_lag1_10) tl.netperf_udp(m1_lag1_10, m2_lag1_10) tl.ping_simple(m1_lag1_20, m2_lag1_21) tl.netperf_tcp(m1_lag1_20, m2_lag1_21) tl.netperf_udp(m1_lag1_20, m2_lag1_21)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces bond_options = {"mode": "802.3ad", "miimon": "100"} m1_lag1 = m1.create_bond(slaves=[m1_if1, m1_if2], options=bond_options, ip=test_ip(1, 1)) m1_lag1_10 = m1.create_vlan(m1_lag1, 10, ip=test_ip(2, 1)) m1_lag1_20 = m1.create_vlan(m1_lag1, 20, ip=test_ip(3, 1)) m2_lag1 = m2.create_bond(slaves=[m2_if1, m2_if2], options=bond_options, ip=test_ip(1, 2)) m2_lag1_10 = m2.create_vlan(m2_lag1, 10, ip=test_ip(2, 2)) m2_lag1_21 = m2.create_vlan(m2_lag1, 21, ip=test_ip(3, 2)) sw_lag1 = sw.create_bond(slaves=[sw_if1, sw_if2], options=bond_options) sw_lag2 = sw.create_bond(slaves=[sw_if3, sw_if4], options=bond_options) br_options = {"vlan_filtering": 1, "multicast_querier": 1} sw.create_bridge(slaves=[sw_lag1, sw_lag2], options=br_options) sw_lag1_10 = sw.create_vlan(sw_lag1, 10) sw_lag2_10 = sw.create_vlan(sw_lag2, 10) sw.create_bridge(slaves=[sw_lag1_10, sw_lag2_10], options={"multicast_querier": 1}) sw_lag1_20 = sw.create_vlan(sw_lag1, 20) sw_lag2_21 = sw.create_vlan(sw_lag2, 21) sw.create_bridge(slaves=[sw_lag1_20, sw_lag2_21], options={"multicast_querier": 1}) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1) tl.ping_simple(m1_lag1_10, m2_lag1_10) tl.netperf_tcp(m1_lag1_10, m2_lag1_10) tl.netperf_udp(m1_lag1_10, m2_lag1_10) tl.ping_simple(m1_lag1_20, m2_lag1_21) tl.netperf_tcp(m1_lag1_20, m2_lag1_21) tl.netperf_udp(m1_lag1_20, m2_lag1_21)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m2_if1, sw_if1, sw_if2 = ifaces m1_if1.reset(ip=test_ip(1, 1)) m1_if1_10 = m1.create_vlan(m1_if1, 10, ip=test_ip(2, 1)) m1_if1_20 = m1.create_vlan(m1_if1, 20, ip=test_ip(3, 1)) m2_if1.reset(ip=test_ip(1, 2)) m2_if1_10 = m2.create_vlan(m2_if1, 10, ip=test_ip(2, 2)) m2_if1_21 = m2.create_vlan(m2_if1, 21, ip=test_ip(3, 2)) br_options = {"vlan_filtering": 1, "multicast_querier": 1} sw.create_bridge(slaves=[sw_if1, sw_if2], options=br_options) sw_if1_10 = sw.create_vlan(sw_if1, 10) sw_if2_10 = sw.create_vlan(sw_if2, 10) sw.create_bridge(slaves=[sw_if1_10, sw_if2_10], options={"multicast_querier": 1}) sw_if1_20 = sw.create_vlan(sw_if1, 20) sw_if2_21 = sw.create_vlan(sw_if2, 21) sw.create_bridge(slaves=[sw_if1_20, sw_if2_21], options={"multicast_querier": 1}) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m2_if1) tl.netperf_tcp(m1_if1, m2_if1) tl.netperf_udp(m1_if1, m2_if1) tl.ping_simple(m1_if1_10, m2_if1_10) tl.netperf_tcp(m1_if1_10, m2_if1_10) tl.netperf_udp(m1_if1_10, m2_if1_10) tl.ping_simple(m1_if1_20, m2_if1_21) tl.netperf_tcp(m1_if1_20, m2_if1_21) tl.netperf_udp(m1_if1_20, m2_if1_21)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m2_if1, sw_if1, sw_if2 = ifaces m1_if1.reset(ip=test_ip(1, 1)) m1_if1_10 = m1.create_vlan(m1_if1, 10, ip=test_ip(2, 1)) m1_if1_20 = m1.create_vlan(m1_if1, 20, ip=test_ip(3, 1)) m2_if1.reset(ip=test_ip(1, 2)) m2_if1_10 = m2.create_vlan(m2_if1, 10, ip=test_ip(2, 2)) m2_if1_21 = m2.create_vlan(m2_if1, 21, ip=test_ip(3, 2)) br_options = {"vlan_filtering": 1, "multicast_snooping": 0} sw.create_bridge(slaves=[sw_if1, sw_if2], options=br_options) sw_if1_10 = sw.create_vlan(sw_if1, 10) sw_if2_10 = sw.create_vlan(sw_if2, 10) sw.create_bridge(slaves=[sw_if1_10, sw_if2_10], options={"multicast_snooping": 0}) sw_if1_20 = sw.create_vlan(sw_if1, 20) sw_if2_21 = sw.create_vlan(sw_if2, 21) sw.create_bridge(slaves=[sw_if1_20, sw_if2_21], options={"multicast_snooping": 0}) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m2_if1) tl.netperf_tcp(m1_if1, m2_if1) tl.netperf_udp(m1_if1, m2_if1) tl.ping_simple(m1_if1_10, m2_if1_10) tl.netperf_tcp(m1_if1_10, m2_if1_10) tl.netperf_udp(m1_if1_10, m2_if1_10) tl.ping_simple(m1_if1_20, m2_if1_21) tl.netperf_tcp(m1_if1_20, m2_if1_21) tl.netperf_udp(m1_if1_20, m2_if1_21)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces team_config = '{"runner" : {"name" : "lacp"}}' m1_lag1 = m1.create_team(slaves=[m1_if1, m1_if2], config=team_config, ip=test_ip(1, 1)) m1_lag1_10 = m1.create_vlan(m1_lag1, 10, ip=test_ip(2, 1)) m1_lag1_20 = m1.create_vlan(m1_lag1, 20, ip=test_ip(3, 1)) m2_lag1 = m2.create_team(slaves=[m2_if1, m2_if2], config=team_config, ip=test_ip(1, 2)) m2_lag1_10 = m2.create_vlan(m2_lag1, 10, ip=test_ip(2, 2)) m2_lag1_21 = m2.create_vlan(m2_lag1, 21, ip=test_ip(3, 2)) sw_lag1 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config) sw_lag2 = sw.create_team(slaves=[sw_if3, sw_if4], config=team_config) br_options = {"vlan_filtering": 1} sw_br1 = sw.create_bridge(slaves=[sw_lag1, sw_lag2], options=br_options) sw_lag1_10 = sw.create_vlan(sw_lag1, 10) sw_lag2_10 = sw.create_vlan(sw_lag2, 10) sw_br2 = sw.create_bridge(slaves=[sw_lag1_10, sw_lag2_10], options=br_options) sw_lag1_20 = sw.create_vlan(sw_lag1, 20) sw_lag2_21 = sw.create_vlan(sw_lag2, 21) sw_br3 = sw.create_bridge(slaves=[sw_lag1_20, sw_lag2_21], options=br_options) sleep(15) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1) tl.ping_simple(m1_lag1_10, m2_lag1_10) tl.netperf_tcp(m1_lag1_10, m2_lag1_10) tl.netperf_udp(m1_lag1_10, m2_lag1_10) tl.ping_simple(m1_lag1_20, m2_lag1_21) tl.netperf_tcp(m1_lag1_20, m2_lag1_21) tl.netperf_udp(m1_lag1_20, m2_lag1_21) sw_lag1.slave_del(sw_if1.get_id()) sw_lag1.slave_del(sw_if2.get_id()) m1_lag1.slave_del(m1_if1.get_id()) # Make sure slowpath is working. sw_if1.reset(ip=test_ip(4, 1)) m1_if1.reset(ip=test_ip(4, 2)) sleep(15) tl.ping_simple(sw_if1, m1_if1) # Repopulate the LAGs and make sure fastpath is OK. sw_lag3 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config) sw_br1.slave_add(sw_lag3.get_id()) sw_lag3_10 = sw.create_vlan(sw_lag3, 10) sw_br2.slave_add(sw_lag3_10.get_id()) sw_lag3_20 = sw.create_vlan(sw_lag3, 20) sw_br3.slave_add(sw_lag3_20.get_id()) m1_lag1.slave_add(m1_if1.get_id()) sleep(15) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1) tl.ping_simple(m1_lag1_10, m2_lag1_10) tl.netperf_tcp(m1_lag1_10, m2_lag1_10) tl.netperf_udp(m1_lag1_10, m2_lag1_10) tl.ping_simple(m1_lag1_20, m2_lag1_21) tl.netperf_tcp(m1_lag1_20, m2_lag1_21) tl.netperf_udp(m1_lag1_20, m2_lag1_21)
def do_task(ctl, hosts, ifaces, aliases): m1, m2, sw = hosts m1_if1, m1_if2, m2_if1, m2_if2, sw_if1, sw_if2, sw_if3, sw_if4 = ifaces team_config = '{"runner" : {"name" : "lacp"}}' m1_lag1 = m1.create_team(slaves=[m1_if1, m1_if2], config=team_config, ip=test_ip(1, 1)) m1_lag1_10 = m1.create_vlan(m1_lag1, 10, ip=test_ip(2, 1)) m1_lag1_20 = m1.create_vlan(m1_lag1, 20, ip=test_ip(3, 1)) m2_lag1 = m2.create_team(slaves=[m2_if1, m2_if2], config=team_config, ip=test_ip(1, 2)) m2_lag1_10 = m2.create_vlan(m2_lag1, 10, ip=test_ip(2, 2)) m2_lag1_21 = m2.create_vlan(m2_lag1, 21, ip=test_ip(3, 2)) sw_lag1 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config) sw_lag2 = sw.create_team(slaves=[sw_if3, sw_if4], config=team_config) br_options = {"vlan_filtering": 1} sw_br1 = sw.create_bridge(slaves=[sw_lag1, sw_lag2], options=br_options) sw_lag1_10 = sw.create_vlan(sw_lag1, 10) sw_lag2_10 = sw.create_vlan(sw_lag2, 10) sw_br2 = sw.create_bridge(slaves=[sw_lag1_10, sw_lag2_10]) sw_lag1_20 = sw.create_vlan(sw_lag1, 20) sw_lag2_21 = sw.create_vlan(sw_lag2, 21) sw_br3 = sw.create_bridge(slaves=[sw_lag1_20, sw_lag2_21]) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1) tl.ping_simple(m1_lag1_10, m2_lag1_10) tl.netperf_tcp(m1_lag1_10, m2_lag1_10) tl.netperf_udp(m1_lag1_10, m2_lag1_10) tl.ping_simple(m1_lag1_20, m2_lag1_21) tl.netperf_tcp(m1_lag1_20, m2_lag1_21) tl.netperf_udp(m1_lag1_20, m2_lag1_21) sw_lag1.slave_del(sw_if1.get_id()) sw_lag1.slave_del(sw_if2.get_id()) m1_lag1.slave_del(m1_if1.get_id()) # Make sure slowpath is working. sw_if1.reset(ip=test_ip(4, 1)) m1_if1.reset(ip=test_ip(4, 2)) sleep(30) tl.ping_simple(sw_if1, m1_if1) # Repopulate the LAGs and make sure fastpath is OK. sw_if1.set_addresses([]) # LAG port can't have IP address. sw_lag3 = sw.create_team(slaves=[sw_if1, sw_if2], config=team_config) sw_br1.slave_add(sw_lag3.get_id()) sw_lag3_10 = sw.create_vlan(sw_lag3, 10) sw_br2.slave_add(sw_lag3_10.get_id()) sw_lag3_20 = sw.create_vlan(sw_lag3, 20) sw_br3.slave_add(sw_lag3_20.get_id()) m1_lag1.slave_add(m1_if1.get_id()) sleep(30) tl.ping_simple(m1_lag1, m2_lag1) tl.netperf_tcp(m1_lag1, m2_lag1) tl.netperf_udp(m1_lag1, m2_lag1) tl.ping_simple(m1_lag1_10, m2_lag1_10) tl.netperf_tcp(m1_lag1_10, m2_lag1_10) tl.netperf_udp(m1_lag1_10, m2_lag1_10) tl.ping_simple(m1_lag1_20, m2_lag1_21) tl.netperf_tcp(m1_lag1_20, m2_lag1_21) tl.netperf_udp(m1_lag1_20, m2_lag1_21)
def do_task(ctl, hosts, ifaces, aliases): m1, sw, m2 = hosts m1_if1, sw_if1, sw_if2, sw_if3, m2_if1, m2_if2, m2_if3, m3_if1 = ifaces ecmp_sw_ifaces = [sw_if2, sw_if3] ecmp_m_ifaces = [m2_if1, m2_if2] m2.config("/proc/sys/net/ipv4/ip_forward", "1") ecmp_common.create_topology(m1_if1, sw_if1, ecmp_sw_ifaces, ecmp_m_ifaces, m2_if3, m3_if1) sleep(30) tl = TestLib(ctl, aliases) tl.ping_simple(m1_if1, m3_if1) tl.netperf_udp(m1_if1, m3_if1) msg = "Running with all nexthops active" ecmp_common.test_traffic(tl, m1_if1, m3_if1, sw_if1, ecmp_sw_ifaces, expected=1., errmsg=msg) # run once with ignore_routes_with_linkdown and expect no traffic loss for iface in ecmp_sw_ifaces: sw.config( "/proc/sys/net/ipv4/conf/%s/ignore_routes_with_linkdown" % iface.get_devname(), "1") curr_ecmp_m_ifaces = copy.copy(ecmp_m_ifaces) curr_ecmp_sw_ifaces = copy.copy(ecmp_sw_ifaces) while len(curr_ecmp_m_ifaces) > 1: sw_iface, m_iface = curr_ecmp_sw_ifaces.pop(), curr_ecmp_m_ifaces.pop() m_iface.set_link_down() msg = "Running with %d failed nexthops" % (len(ecmp_sw_ifaces) - len(curr_ecmp_sw_ifaces)) ecmp_common.test_traffic(tl, m1_if1, m3_if1, sw_if1, curr_ecmp_sw_ifaces, expected=1.0, errmsg=msg) for iface in ecmp_m_ifaces: iface.set_link_up() sleep(30) # run once without ignore_routes_with_linkdown and expect traffic loss for iface in ecmp_sw_ifaces: sw.config( "/proc/sys/net/ipv4/conf/%s/ignore_routes_with_linkdown" % iface.get_devname(), "0") curr_ecmp_m_ifaces = copy.copy(ecmp_m_ifaces) curr_ecmp_sw_ifaces = copy.copy(ecmp_sw_ifaces) while len(curr_ecmp_m_ifaces) > 1: sw_iface, m_iface = curr_ecmp_sw_ifaces.pop(), curr_ecmp_m_ifaces.pop() m_iface.set_link_down() msg = "Running with %d failed nexthops" % (len(ecmp_sw_ifaces) - len(curr_ecmp_sw_ifaces)) expected = float(len(curr_ecmp_m_ifaces)) / len(ecmp_m_ifaces) ecmp_common.test_traffic(tl, m1_if1, m3_if1, sw_if1, curr_ecmp_sw_ifaces, expected=expected, errmsg=msg)