xref: /linux/tools/testing/selftests/drivers/net/mlxsw/extack.sh (revision 02ff58dcf70ad7d11b01523dc404166ed11021da)
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3#
4# Test operations that we expect to report extended ack.
5
6lib_dir=$(dirname $0)/../../../net/forwarding
7
8ALL_TESTS="
9	netdev_pre_up_test
10"
11NUM_NETIFS=2
12source $lib_dir/lib.sh
13
14setup_prepare()
15{
16	swp1=${NETIFS[p1]}
17	swp2=${NETIFS[p2]}
18
19	ip link set dev $swp1 up
20	ip link set dev $swp2 up
21}
22
23cleanup()
24{
25	pre_cleanup
26
27	ip link set dev $swp2 down
28	ip link set dev $swp1 down
29}
30
31netdev_pre_up_test()
32{
33	RET=0
34
35	ip link add name br1 up type bridge vlan_filtering 0 mcast_snooping 0
36	ip link add name vx1 up type vxlan id 1000 \
37		local 192.0.2.17 remote 192.0.2.18 \
38		dstport 4789 nolearning noudpcsum tos inherit ttl 100
39
40	ip link set dev vx1 master br1
41	check_err $?
42
43	ip link set dev $swp1 master br1
44	check_err $?
45
46	ip link add name br2 up type bridge vlan_filtering 0 mcast_snooping 0
47	ip link add name vx2 up type vxlan id 2000 \
48		local 192.0.2.17 remote 192.0.2.18 \
49		dstport 4789 nolearning noudpcsum tos inherit ttl 100
50
51	ip link set dev vx2 master br2
52	check_err $?
53
54	ip link set dev $swp2 master br2
55	check_err $?
56
57	# Unsupported configuration: mlxsw demands that all offloaded VXLAN
58	# devices have the same TTL.
59	ip link set dev vx2 down
60	ip link set dev vx2 type vxlan ttl 200
61
62	ip link set dev vx2 up &>/dev/null
63	check_fail $?
64
65	ip link set dev vx2 up 2>&1 >/dev/null | grep -q mlxsw_spectrum
66	check_err $?
67
68	log_test "extack - NETDEV_PRE_UP"
69
70	ip link del dev vx2
71	ip link del dev br2
72
73	ip link del dev vx1
74	ip link del dev br1
75}
76
77trap cleanup EXIT
78
79setup_prepare
80setup_wait
81
82tests_run
83
84exit $EXIT_STATUS
85