Skip to content

Commit

Permalink
selftests: mlxsw: Add test for FIB offload API
Browse files Browse the repository at this point in the history
The test reuses the common FIB offload tests in order to make sure that
mlxsw correctly implements FIB offload.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ido Schimmel authored and David S. Miller committed Jan 15, 2020
1 parent ffdc514 commit 212a37c
Showing 1 changed file with 180 additions and 0 deletions.
180 changes: 180 additions & 0 deletions tools/testing/selftests/drivers/net/mlxsw/fib.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
#
# This test is for checking the FIB offload API on top of mlxsw.

lib_dir=$(dirname $0)/../../../net/forwarding

ALL_TESTS="
ipv4_identical_routes
ipv4_tos
ipv4_metric
ipv4_replace
ipv4_delete
ipv4_plen
ipv4_replay
ipv4_flush
ipv6_add
ipv6_metric
ipv6_append_single
ipv6_replace_single
ipv6_metric_multipath
ipv6_append_multipath
ipv6_replace_multipath
ipv6_append_multipath_to_single
ipv6_delete_single
ipv6_delete_multipath
ipv6_replay_single
ipv6_replay_multipath
"
NUM_NETIFS=0
source $lib_dir/lib.sh
source $lib_dir/devlink_lib.sh
source $lib_dir/fib_offload_lib.sh

ipv4_identical_routes()
{
fib_ipv4_identical_routes_test "testns1"
}

ipv4_tos()
{
fib_ipv4_tos_test "testns1"
}

ipv4_metric()
{
fib_ipv4_metric_test "testns1"
}

ipv4_replace()
{
fib_ipv4_replace_test "testns1"
}

ipv4_delete()
{
fib_ipv4_delete_test "testns1"
}

ipv4_plen()
{
fib_ipv4_plen_test "testns1"
}

ipv4_replay_metric()
{
fib_ipv4_replay_metric_test "testns1" "$DEVLINK_DEV"
}

ipv4_replay_tos()
{
fib_ipv4_replay_tos_test "testns1" "$DEVLINK_DEV"
}

ipv4_replay_plen()
{
fib_ipv4_replay_plen_test "testns1" "$DEVLINK_DEV"
}

ipv4_replay()
{
ipv4_replay_metric
ipv4_replay_tos
ipv4_replay_plen
}

ipv4_flush()
{
fib_ipv4_flush_test "testns1"
}

ipv6_add()
{
fib_ipv6_add_test "testns1"
}

ipv6_metric()
{
fib_ipv6_metric_test "testns1"
}

ipv6_append_single()
{
fib_ipv6_append_single_test "testns1"
}

ipv6_replace_single()
{
fib_ipv6_replace_single_test "testns1"
}

ipv6_metric_multipath()
{
fib_ipv6_metric_multipath_test "testns1"
}

ipv6_append_multipath()
{
fib_ipv6_append_multipath_test "testns1"
}

ipv6_replace_multipath()
{
fib_ipv6_replace_multipath_test "testns1"
}

ipv6_append_multipath_to_single()
{
fib_ipv6_append_multipath_to_single_test "testns1"
}

ipv6_delete_single()
{
fib_ipv6_delete_single_test "testns1"
}

ipv6_delete_multipath()
{
fib_ipv6_delete_multipath_test "testns1"
}

ipv6_replay_single()
{
fib_ipv6_replay_single_test "testns1" "$DEVLINK_DEV"
}

ipv6_replay_multipath()
{
fib_ipv6_replay_multipath_test "testns1" "$DEVLINK_DEV"
}

setup_prepare()
{
ip netns add testns1
if [ $? -ne 0 ]; then
echo "Failed to add netns \"testns1\""
exit 1
fi

devlink dev reload $DEVLINK_DEV netns testns1
if [ $? -ne 0 ]; then
echo "Failed to reload into netns \"testns1\""
exit 1
fi
}

cleanup()
{
pre_cleanup
devlink -N testns1 dev reload $DEVLINK_DEV netns $$
ip netns del testns1
}

trap cleanup EXIT

setup_prepare

tests_run

exit $EXIT_STATUS

0 comments on commit 212a37c

Please sign in to comment.