mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-27 03:49:57 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR. Conflicts: include/net/inet_sock.hf866fbc842("ipv4: fix data-races around inet->inet_id")c274af2242("inet: introduce inet->inet_flags") https://lore.kernel.org/all/679ddff6-db6e-4ff6-b177-574e90d0103d@tessares.net/ Adjacent changes: drivers/net/bonding/bond_alb.ce74216b8de("bonding: fix macvlan over alb bond support")f11e5bd159("bonding: support balance-alb with openvswitch") drivers/net/ethernet/broadcom/bgmac.cd6499f0b7c("net: bgmac: Return PTR_ERR() for fixed_phy_register()")23a14488ea("net: bgmac: Fix return value check for fixed_phy_register()") drivers/net/ethernet/broadcom/genet/bcmmii.c32bbe64a13("net: bcmgenet: Fix return value check for fixed_phy_register()")acf50d1adb("net: bcmgenet: Return PTR_ERR() for fixed_phy_register()") net/sctp/socket.cf866fbc842("ipv4: fix data-races around inet->inet_id")b09bde5c35("inet: move inet->mc_loop to inet->inet_frags") Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -9,10 +9,12 @@ TEST_PROGS := \
|
||||
mode-1-recovery-updelay.sh \
|
||||
mode-2-recovery-updelay.sh \
|
||||
bond_options.sh \
|
||||
bond-eth-type-change.sh
|
||||
bond-eth-type-change.sh \
|
||||
bond_macvlan.sh
|
||||
|
||||
TEST_FILES := \
|
||||
lag_lib.sh \
|
||||
bond_topo_2d1c.sh \
|
||||
bond_topo_3d1c.sh \
|
||||
net_forwarding_lib.sh
|
||||
|
||||
|
||||
@@ -57,8 +57,8 @@ ip link add name veth2-bond type veth peer name veth2-end
|
||||
|
||||
# add ports
|
||||
ip link set fbond master fab-br0
|
||||
ip link set veth1-bond down master fbond
|
||||
ip link set veth2-bond down master fbond
|
||||
ip link set veth1-bond master fbond
|
||||
ip link set veth2-bond master fbond
|
||||
|
||||
# bring up
|
||||
ip link set veth1-end up
|
||||
|
||||
99
tools/testing/selftests/drivers/net/bonding/bond_macvlan.sh
Executable file
99
tools/testing/selftests/drivers/net/bonding/bond_macvlan.sh
Executable file
@@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Test macvlan over balance-alb
|
||||
|
||||
lib_dir=$(dirname "$0")
|
||||
source ${lib_dir}/bond_topo_2d1c.sh
|
||||
|
||||
m1_ns="m1-$(mktemp -u XXXXXX)"
|
||||
m2_ns="m1-$(mktemp -u XXXXXX)"
|
||||
m1_ip4="192.0.2.11"
|
||||
m1_ip6="2001:db8::11"
|
||||
m2_ip4="192.0.2.12"
|
||||
m2_ip6="2001:db8::12"
|
||||
|
||||
cleanup()
|
||||
{
|
||||
ip -n ${m1_ns} link del macv0
|
||||
ip netns del ${m1_ns}
|
||||
ip -n ${m2_ns} link del macv0
|
||||
ip netns del ${m2_ns}
|
||||
|
||||
client_destroy
|
||||
server_destroy
|
||||
gateway_destroy
|
||||
}
|
||||
|
||||
check_connection()
|
||||
{
|
||||
local ns=${1}
|
||||
local target=${2}
|
||||
local message=${3:-"macvlan_over_bond"}
|
||||
RET=0
|
||||
|
||||
|
||||
ip netns exec ${ns} ping ${target} -c 4 -i 0.1 &>/dev/null
|
||||
check_err $? "ping failed"
|
||||
log_test "$mode: $message"
|
||||
}
|
||||
|
||||
macvlan_over_bond()
|
||||
{
|
||||
local param="$1"
|
||||
RET=0
|
||||
|
||||
# setup new bond mode
|
||||
bond_reset "${param}"
|
||||
|
||||
ip -n ${s_ns} link add link bond0 name macv0 type macvlan mode bridge
|
||||
ip -n ${s_ns} link set macv0 netns ${m1_ns}
|
||||
ip -n ${m1_ns} link set dev macv0 up
|
||||
ip -n ${m1_ns} addr add ${m1_ip4}/24 dev macv0
|
||||
ip -n ${m1_ns} addr add ${m1_ip6}/24 dev macv0
|
||||
|
||||
ip -n ${s_ns} link add link bond0 name macv0 type macvlan mode bridge
|
||||
ip -n ${s_ns} link set macv0 netns ${m2_ns}
|
||||
ip -n ${m2_ns} link set dev macv0 up
|
||||
ip -n ${m2_ns} addr add ${m2_ip4}/24 dev macv0
|
||||
ip -n ${m2_ns} addr add ${m2_ip6}/24 dev macv0
|
||||
|
||||
sleep 2
|
||||
|
||||
check_connection "${c_ns}" "${s_ip4}" "IPv4: client->server"
|
||||
check_connection "${c_ns}" "${s_ip6}" "IPv6: client->server"
|
||||
check_connection "${c_ns}" "${m1_ip4}" "IPv4: client->macvlan_1"
|
||||
check_connection "${c_ns}" "${m1_ip6}" "IPv6: client->macvlan_1"
|
||||
check_connection "${c_ns}" "${m2_ip4}" "IPv4: client->macvlan_2"
|
||||
check_connection "${c_ns}" "${m2_ip6}" "IPv6: client->macvlan_2"
|
||||
check_connection "${m1_ns}" "${m2_ip4}" "IPv4: macvlan_1->macvlan_2"
|
||||
check_connection "${m1_ns}" "${m2_ip6}" "IPv6: macvlan_1->macvlan_2"
|
||||
|
||||
|
||||
sleep 5
|
||||
|
||||
check_connection "${s_ns}" "${c_ip4}" "IPv4: server->client"
|
||||
check_connection "${s_ns}" "${c_ip6}" "IPv6: server->client"
|
||||
check_connection "${m1_ns}" "${c_ip4}" "IPv4: macvlan_1->client"
|
||||
check_connection "${m1_ns}" "${c_ip6}" "IPv6: macvlan_1->client"
|
||||
check_connection "${m2_ns}" "${c_ip4}" "IPv4: macvlan_2->client"
|
||||
check_connection "${m2_ns}" "${c_ip6}" "IPv6: macvlan_2->client"
|
||||
check_connection "${m2_ns}" "${m1_ip4}" "IPv4: macvlan_2->macvlan_2"
|
||||
check_connection "${m2_ns}" "${m1_ip6}" "IPv6: macvlan_2->macvlan_2"
|
||||
|
||||
ip -n ${c_ns} neigh flush dev eth0
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
setup_prepare
|
||||
ip netns add ${m1_ns}
|
||||
ip netns add ${m2_ns}
|
||||
|
||||
modes="active-backup balance-tlb balance-alb"
|
||||
|
||||
for mode in $modes; do
|
||||
macvlan_over_bond "mode $mode"
|
||||
done
|
||||
|
||||
exit $EXIT_STATUS
|
||||
@@ -9,10 +9,7 @@ ALL_TESTS="
|
||||
num_grat_arp
|
||||
"
|
||||
|
||||
REQUIRE_MZ=no
|
||||
NUM_NETIFS=0
|
||||
lib_dir=$(dirname "$0")
|
||||
source ${lib_dir}/net_forwarding_lib.sh
|
||||
source ${lib_dir}/bond_topo_3d1c.sh
|
||||
|
||||
skip_prio()
|
||||
|
||||
158
tools/testing/selftests/drivers/net/bonding/bond_topo_2d1c.sh
Normal file
158
tools/testing/selftests/drivers/net/bonding/bond_topo_2d1c.sh
Normal file
@@ -0,0 +1,158 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Topology for Bond mode 1,5,6 testing
|
||||
#
|
||||
# +-------------------------+
|
||||
# | bond0 | Server
|
||||
# | + | 192.0.2.1/24
|
||||
# | eth0 | eth1 | 2001:db8::1/24
|
||||
# | +---+---+ |
|
||||
# | | | |
|
||||
# +-------------------------+
|
||||
# | |
|
||||
# +-------------------------+
|
||||
# | | | |
|
||||
# | +---+-------+---+ | Gateway
|
||||
# | | br0 | | 192.0.2.254/24
|
||||
# | +-------+-------+ | 2001:db8::254/24
|
||||
# | | |
|
||||
# +-------------------------+
|
||||
# |
|
||||
# +-------------------------+
|
||||
# | | | Client
|
||||
# | + | 192.0.2.10/24
|
||||
# | eth0 | 2001:db8::10/24
|
||||
# +-------------------------+
|
||||
|
||||
REQUIRE_MZ=no
|
||||
NUM_NETIFS=0
|
||||
lib_dir=$(dirname "$0")
|
||||
source ${lib_dir}/net_forwarding_lib.sh
|
||||
|
||||
s_ns="s-$(mktemp -u XXXXXX)"
|
||||
c_ns="c-$(mktemp -u XXXXXX)"
|
||||
g_ns="g-$(mktemp -u XXXXXX)"
|
||||
s_ip4="192.0.2.1"
|
||||
c_ip4="192.0.2.10"
|
||||
g_ip4="192.0.2.254"
|
||||
s_ip6="2001:db8::1"
|
||||
c_ip6="2001:db8::10"
|
||||
g_ip6="2001:db8::254"
|
||||
|
||||
gateway_create()
|
||||
{
|
||||
ip netns add ${g_ns}
|
||||
ip -n ${g_ns} link add br0 type bridge
|
||||
ip -n ${g_ns} link set br0 up
|
||||
ip -n ${g_ns} addr add ${g_ip4}/24 dev br0
|
||||
ip -n ${g_ns} addr add ${g_ip6}/24 dev br0
|
||||
}
|
||||
|
||||
gateway_destroy()
|
||||
{
|
||||
ip -n ${g_ns} link del br0
|
||||
ip netns del ${g_ns}
|
||||
}
|
||||
|
||||
server_create()
|
||||
{
|
||||
ip netns add ${s_ns}
|
||||
ip -n ${s_ns} link add bond0 type bond mode active-backup miimon 100
|
||||
|
||||
for i in $(seq 0 1); do
|
||||
ip -n ${s_ns} link add eth${i} type veth peer name s${i} netns ${g_ns}
|
||||
|
||||
ip -n ${g_ns} link set s${i} up
|
||||
ip -n ${g_ns} link set s${i} master br0
|
||||
ip -n ${s_ns} link set eth${i} master bond0
|
||||
|
||||
tc -n ${g_ns} qdisc add dev s${i} clsact
|
||||
done
|
||||
|
||||
ip -n ${s_ns} link set bond0 up
|
||||
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
|
||||
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
|
||||
sleep 2
|
||||
}
|
||||
|
||||
# Reset bond with new mode and options
|
||||
bond_reset()
|
||||
{
|
||||
# Count the eth link number in real-time as this function
|
||||
# maybe called from other topologies.
|
||||
local link_num=$(ip -n ${s_ns} -br link show | grep -c "^eth")
|
||||
local param="$1"
|
||||
link_num=$((link_num -1))
|
||||
|
||||
ip -n ${s_ns} link set bond0 down
|
||||
ip -n ${s_ns} link del bond0
|
||||
|
||||
ip -n ${s_ns} link add bond0 type bond $param
|
||||
for i in $(seq 0 ${link_num}); do
|
||||
ip -n ${s_ns} link set eth$i master bond0
|
||||
done
|
||||
|
||||
ip -n ${s_ns} link set bond0 up
|
||||
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
|
||||
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
|
||||
sleep 2
|
||||
}
|
||||
|
||||
server_destroy()
|
||||
{
|
||||
# Count the eth link number in real-time as this function
|
||||
# maybe called from other topologies.
|
||||
local link_num=$(ip -n ${s_ns} -br link show | grep -c "^eth")
|
||||
link_num=$((link_num -1))
|
||||
for i in $(seq 0 ${link_num}); do
|
||||
ip -n ${s_ns} link del eth${i}
|
||||
done
|
||||
ip netns del ${s_ns}
|
||||
}
|
||||
|
||||
client_create()
|
||||
{
|
||||
ip netns add ${c_ns}
|
||||
ip -n ${c_ns} link add eth0 type veth peer name c0 netns ${g_ns}
|
||||
|
||||
ip -n ${g_ns} link set c0 up
|
||||
ip -n ${g_ns} link set c0 master br0
|
||||
|
||||
ip -n ${c_ns} link set eth0 up
|
||||
ip -n ${c_ns} addr add ${c_ip4}/24 dev eth0
|
||||
ip -n ${c_ns} addr add ${c_ip6}/24 dev eth0
|
||||
}
|
||||
|
||||
client_destroy()
|
||||
{
|
||||
ip -n ${c_ns} link del eth0
|
||||
ip netns del ${c_ns}
|
||||
}
|
||||
|
||||
setup_prepare()
|
||||
{
|
||||
gateway_create
|
||||
server_create
|
||||
client_create
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
||||
client_destroy
|
||||
server_destroy
|
||||
gateway_destroy
|
||||
}
|
||||
|
||||
bond_check_connection()
|
||||
{
|
||||
local msg=${1:-"check connection"}
|
||||
|
||||
sleep 2
|
||||
ip netns exec ${s_ns} ping ${c_ip4} -c5 -i 0.1 &>/dev/null
|
||||
check_err $? "${msg}: ping failed"
|
||||
ip netns exec ${s_ns} ping6 ${c_ip6} -c5 -i 0.1 &>/dev/null
|
||||
check_err $? "${msg}: ping6 failed"
|
||||
}
|
||||
@@ -25,121 +25,19 @@
|
||||
# | eth0 | 2001:db8::10/24
|
||||
# +-------------------------------------+
|
||||
|
||||
s_ns="s-$(mktemp -u XXXXXX)"
|
||||
c_ns="c-$(mktemp -u XXXXXX)"
|
||||
g_ns="g-$(mktemp -u XXXXXX)"
|
||||
s_ip4="192.0.2.1"
|
||||
c_ip4="192.0.2.10"
|
||||
g_ip4="192.0.2.254"
|
||||
s_ip6="2001:db8::1"
|
||||
c_ip6="2001:db8::10"
|
||||
g_ip6="2001:db8::254"
|
||||
|
||||
gateway_create()
|
||||
{
|
||||
ip netns add ${g_ns}
|
||||
ip -n ${g_ns} link add br0 type bridge
|
||||
ip -n ${g_ns} link set br0 up
|
||||
ip -n ${g_ns} addr add ${g_ip4}/24 dev br0
|
||||
ip -n ${g_ns} addr add ${g_ip6}/24 dev br0
|
||||
}
|
||||
|
||||
gateway_destroy()
|
||||
{
|
||||
ip -n ${g_ns} link del br0
|
||||
ip netns del ${g_ns}
|
||||
}
|
||||
|
||||
server_create()
|
||||
{
|
||||
ip netns add ${s_ns}
|
||||
ip -n ${s_ns} link add bond0 type bond mode active-backup miimon 100
|
||||
|
||||
for i in $(seq 0 2); do
|
||||
ip -n ${s_ns} link add eth${i} type veth peer name s${i} netns ${g_ns}
|
||||
|
||||
ip -n ${g_ns} link set s${i} up
|
||||
ip -n ${g_ns} link set s${i} master br0
|
||||
ip -n ${s_ns} link set eth${i} master bond0
|
||||
|
||||
tc -n ${g_ns} qdisc add dev s${i} clsact
|
||||
done
|
||||
|
||||
ip -n ${s_ns} link set bond0 up
|
||||
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
|
||||
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
|
||||
sleep 2
|
||||
}
|
||||
|
||||
# Reset bond with new mode and options
|
||||
bond_reset()
|
||||
{
|
||||
local param="$1"
|
||||
|
||||
ip -n ${s_ns} link set bond0 down
|
||||
ip -n ${s_ns} link del bond0
|
||||
|
||||
ip -n ${s_ns} link add bond0 type bond $param
|
||||
for i in $(seq 0 2); do
|
||||
ip -n ${s_ns} link set eth$i master bond0
|
||||
done
|
||||
|
||||
ip -n ${s_ns} link set bond0 up
|
||||
ip -n ${s_ns} addr add ${s_ip4}/24 dev bond0
|
||||
ip -n ${s_ns} addr add ${s_ip6}/24 dev bond0
|
||||
sleep 2
|
||||
}
|
||||
|
||||
server_destroy()
|
||||
{
|
||||
for i in $(seq 0 2); do
|
||||
ip -n ${s_ns} link del eth${i}
|
||||
done
|
||||
ip netns del ${s_ns}
|
||||
}
|
||||
|
||||
client_create()
|
||||
{
|
||||
ip netns add ${c_ns}
|
||||
ip -n ${c_ns} link add eth0 type veth peer name c0 netns ${g_ns}
|
||||
|
||||
ip -n ${g_ns} link set c0 up
|
||||
ip -n ${g_ns} link set c0 master br0
|
||||
|
||||
ip -n ${c_ns} link set eth0 up
|
||||
ip -n ${c_ns} addr add ${c_ip4}/24 dev eth0
|
||||
ip -n ${c_ns} addr add ${c_ip6}/24 dev eth0
|
||||
}
|
||||
|
||||
client_destroy()
|
||||
{
|
||||
ip -n ${c_ns} link del eth0
|
||||
ip netns del ${c_ns}
|
||||
}
|
||||
source bond_topo_2d1c.sh
|
||||
|
||||
setup_prepare()
|
||||
{
|
||||
gateway_create
|
||||
server_create
|
||||
client_create
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
pre_cleanup
|
||||
|
||||
client_destroy
|
||||
server_destroy
|
||||
gateway_destroy
|
||||
}
|
||||
|
||||
bond_check_connection()
|
||||
{
|
||||
local msg=${1:-"check connection"}
|
||||
|
||||
sleep 2
|
||||
ip netns exec ${s_ns} ping ${c_ip4} -c5 -i 0.1 &>/dev/null
|
||||
check_err $? "${msg}: ping failed"
|
||||
ip netns exec ${s_ns} ping6 ${c_ip6} -c5 -i 0.1 &>/dev/null
|
||||
check_err $? "${msg}: ping6 failed"
|
||||
|
||||
# Add the extra device as we use 3 down links for bond0
|
||||
local i=2
|
||||
ip -n ${s_ns} link add eth${i} type veth peer name s${i} netns ${g_ns}
|
||||
ip -n ${g_ns} link set s${i} up
|
||||
ip -n ${g_ns} link set s${i} master br0
|
||||
ip -n ${s_ns} link set eth${i} master bond0
|
||||
tc -n ${g_ns} qdisc add dev s${i} clsact
|
||||
}
|
||||
|
||||
@@ -98,12 +98,12 @@ sb_occ_etc_check()
|
||||
|
||||
port_pool_test()
|
||||
{
|
||||
local exp_max_occ=288
|
||||
local exp_max_occ=$(devlink_cell_size_get)
|
||||
local max_occ
|
||||
|
||||
devlink sb occupancy clearmax $DEVLINK_DEV
|
||||
|
||||
$MZ $h1 -c 1 -p 160 -a $h1mac -b $h2mac -A 192.0.1.1 -B 192.0.1.2 \
|
||||
$MZ $h1 -c 1 -p 10 -a $h1mac -b $h2mac -A 192.0.1.1 -B 192.0.1.2 \
|
||||
-t ip -q
|
||||
|
||||
devlink sb occupancy snapshot $DEVLINK_DEV
|
||||
@@ -126,12 +126,12 @@ port_pool_test()
|
||||
|
||||
port_tc_ip_test()
|
||||
{
|
||||
local exp_max_occ=288
|
||||
local exp_max_occ=$(devlink_cell_size_get)
|
||||
local max_occ
|
||||
|
||||
devlink sb occupancy clearmax $DEVLINK_DEV
|
||||
|
||||
$MZ $h1 -c 1 -p 160 -a $h1mac -b $h2mac -A 192.0.1.1 -B 192.0.1.2 \
|
||||
$MZ $h1 -c 1 -p 10 -a $h1mac -b $h2mac -A 192.0.1.1 -B 192.0.1.2 \
|
||||
-t ip -q
|
||||
|
||||
devlink sb occupancy snapshot $DEVLINK_DEV
|
||||
@@ -154,16 +154,12 @@ port_tc_ip_test()
|
||||
|
||||
port_tc_arp_test()
|
||||
{
|
||||
local exp_max_occ=96
|
||||
local exp_max_occ=$(devlink_cell_size_get)
|
||||
local max_occ
|
||||
|
||||
if [[ $MLXSW_CHIP != "mlxsw_spectrum" ]]; then
|
||||
exp_max_occ=144
|
||||
fi
|
||||
|
||||
devlink sb occupancy clearmax $DEVLINK_DEV
|
||||
|
||||
$MZ $h1 -c 1 -p 160 -a $h1mac -A 192.0.1.1 -t arp -q
|
||||
$MZ $h1 -c 1 -p 10 -a $h1mac -A 192.0.1.1 -t arp -q
|
||||
|
||||
devlink sb occupancy snapshot $DEVLINK_DEV
|
||||
|
||||
|
||||
Reference in New Issue
Block a user