brintos

brintos / linux-shallow public Read only

0
0
Text · 2.5 KiB · b609fb6 Raw
100 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03#4# Test macvlan over balance-alb5 6lib_dir=$(dirname "$0")7source ${lib_dir}/bond_topo_2d1c.sh8 9m1_ns="m1-$(mktemp -u XXXXXX)"10m2_ns="m1-$(mktemp -u XXXXXX)"11m1_ip4="192.0.2.11"12m1_ip6="2001:db8::11"13m2_ip4="192.0.2.12"14m2_ip6="2001:db8::12"15 16cleanup()17{18	ip -n ${m1_ns} link del macv019	ip netns del ${m1_ns}20	ip -n ${m2_ns} link del macv021	ip netns del ${m2_ns}22 23	client_destroy24	server_destroy25	gateway_destroy26}27 28check_connection()29{30	local ns=${1}31	local target=${2}32	local message=${3:-"macvlan_over_bond"}33	RET=034 35 36	ip netns exec ${ns} ping ${target} -c 4 -i 0.1 &>/dev/null37	check_err $? "ping failed"38	log_test "$mode: $message"39}40 41macvlan_over_bond()42{43	local param="$1"44	RET=045 46	# setup new bond mode47	bond_reset "${param}"48 49	ip -n ${s_ns} link add link bond0 name macv0 type macvlan mode bridge50	ip -n ${s_ns} link set macv0 netns ${m1_ns}51	ip -n ${m1_ns} link set dev macv0 up52	ip -n ${m1_ns} addr add ${m1_ip4}/24 dev macv053	ip -n ${m1_ns} addr add ${m1_ip6}/24 dev macv054 55	ip -n ${s_ns} link add link bond0 name macv0 type macvlan mode bridge56	ip -n ${s_ns} link set macv0 netns ${m2_ns}57	ip -n ${m2_ns} link set dev macv0 up58	ip -n ${m2_ns} addr add ${m2_ip4}/24 dev macv059	ip -n ${m2_ns} addr add ${m2_ip6}/24 dev macv060 61	sleep 262 63	check_connection "${c_ns}" "${s_ip4}" "IPv4: client->server"64	check_connection "${c_ns}" "${s_ip6}" "IPv6: client->server"65	check_connection "${c_ns}" "${m1_ip4}" "IPv4: client->macvlan_1"66	check_connection "${c_ns}" "${m1_ip6}" "IPv6: client->macvlan_1"67	check_connection "${c_ns}" "${m2_ip4}" "IPv4: client->macvlan_2"68	check_connection "${c_ns}" "${m2_ip6}" "IPv6: client->macvlan_2"69	check_connection "${m1_ns}" "${m2_ip4}" "IPv4: macvlan_1->macvlan_2"70	check_connection "${m1_ns}" "${m2_ip6}" "IPv6: macvlan_1->macvlan_2"71 72 73	sleep 574 75	check_connection "${s_ns}" "${c_ip4}" "IPv4: server->client"76	check_connection "${s_ns}" "${c_ip6}" "IPv6: server->client"77	check_connection "${m1_ns}" "${c_ip4}" "IPv4: macvlan_1->client"78	check_connection "${m1_ns}" "${c_ip6}" "IPv6: macvlan_1->client"79	check_connection "${m2_ns}" "${c_ip4}" "IPv4: macvlan_2->client"80	check_connection "${m2_ns}" "${c_ip6}" "IPv6: macvlan_2->client"81	check_connection "${m2_ns}" "${m1_ip4}" "IPv4: macvlan_2->macvlan_2"82	check_connection "${m2_ns}" "${m1_ip6}" "IPv6: macvlan_2->macvlan_2"83 84	ip -n ${c_ns} neigh flush dev eth085}86 87trap cleanup EXIT88 89setup_prepare90ip netns add ${m1_ns}91ip netns add ${m2_ns}92 93modes="active-backup balance-tlb balance-alb"94 95for mode in $modes; do96	macvlan_over_bond "mode $mode"97done98 99exit $EXIT_STATUS100