#!/bin/bash
# SPDX-License-Identifier: GPL-2.0

# Bridge FDB entries can be offloaded to DSA switches without holding the
# rtnl_mutex. Traditionally this mutex has conferred drivers implicit
# serialization, which means their code paths are not well tested in the
# presence of concurrency.
# This test creates a background task that stresses the FDB by adding and
# deleting an entry many times in a row without the rtnl_mutex held.
# It then tests the driver resistance to concurrency by calling .ndo_fdb_dump
# (with rtnl_mutex held) from a foreground task.
# Since either the FDB dump or the additions/removals can fail, but the
# additions and removals are performed in deferred as opposed to process
# context, we cannot simply check for user space error codes.

WAIT_TIME=1
NUM_NETIFS=1
REQUIRE_JQ="no"
REQUIRE_MZ="no"
NETIF_CREATE="no"
lib_dir=$(dirname "$0")
source "$lib_dir"/lib.sh

cleanup() {
	echo "Cleaning up"
	kill $pid && wait $pid &> /dev/null
	ip link del br0
	echo "Please check kernel log for errors"
}
trap 'cleanup' EXIT

eth=${NETIFS[p1]}

ip link del br0 2>&1 >/dev/null || :
ip link add br0 type bridge && ip link set $eth master br0

(while :; do
	bridge fdb add 00:01:02:03:04:05 dev $eth master static
	bridge fdb del 00:01:02:03:04:05 dev $eth master static
done) &
pid=$!

for i in $(seq 1 50); do
	bridge fdb show > /dev/null
	sleep 3
	echo "$((${i} * 2))% complete..."
done
