#!/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)/../../../net/forwarding
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
