File Index
Files and directories
Sign in
FILE

devlink_trap_acl_drops.sh

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/drivers/net/mlxsw/devlink_trap_acl_drops.sh BASH
  1#!/bin/bash
  2# SPDX-License-Identifier: GPL-2.0
  3#
  4# Test devlink-trap ACL drops functionality over mlxsw.
  5
  6lib_dir=$(dirname $0)/../../../net/forwarding
  7
  8ALL_TESTS="
  9	ingress_flow_action_drop_test
 10	egress_flow_action_drop_test
 11"
 12NUM_NETIFS=4
 13source $lib_dir/tc_common.sh
 14source $lib_dir/lib.sh
 15source $lib_dir/devlink_lib.sh
 16
 17h1_create()
 18{
 19	simple_if_init $h1
 20}
 21
 22h1_destroy()
 23{
 24	simple_if_fini $h1
 25}
 26
 27h2_create()
 28{
 29	simple_if_init $h2
 30}
 31
 32h2_destroy()
 33{
 34	simple_if_fini $h2
 35}
 36
 37switch_create()
 38{
 39	ip link add dev br0 type bridge vlan_filtering 1 mcast_snooping 0
 40
 41	ip link set dev $swp1 master br0
 42	ip link set dev $swp2 master br0
 43
 44	ip link set dev br0 up
 45	ip link set dev $swp1 up
 46	ip link set dev $swp2 up
 47
 48	tc qdisc add dev $swp1 clsact
 49	tc qdisc add dev $swp2 clsact
 50}
 51
 52switch_destroy()
 53{
 54	tc qdisc del dev $swp2 clsact
 55	tc qdisc del dev $swp1 clsact
 56
 57	ip link set dev $swp2 down
 58	ip link set dev $swp1 down
 59
 60	ip link del dev br0
 61}
 62
 63setup_prepare()
 64{
 65	h1=${NETIFS[p1]}
 66	swp1=${NETIFS[p2]}
 67
 68	swp2=${NETIFS[p3]}
 69	h2=${NETIFS[p4]}
 70
 71	h1mac=$(mac_get $h1)
 72	h2mac=$(mac_get $h2)
 73
 74	vrf_prepare
 75
 76	h1_create
 77	h2_create
 78
 79	switch_create
 80}
 81
 82cleanup()
 83{
 84	pre_cleanup
 85
 86	switch_destroy
 87
 88	h2_destroy
 89	h1_destroy
 90
 91	vrf_cleanup
 92}
 93
 94ingress_flow_action_drop_test()
 95{
 96	local mz_pid
 97
 98	tc filter add dev $swp2 egress protocol ip pref 1 handle 101 \
 99		flower src_mac $h1mac action pass
100
101	tc filter add dev $swp1 ingress protocol ip pref 1 handle 101 \
102		flower dst_ip 192.0.2.2 action drop
103
104	$MZ $h1 -c 0 -p 100 -a $h1mac -b $h2mac -A 192.0.2.1 -B 192.0.2.2 \
105		-t ip -d 1msec -q &
106	mz_pid=$!
107
108	RET=0
109
110	devlink_trap_drop_test ingress_flow_action_drop $swp2 101
111
112	log_test "ingress_flow_action_drop"
113
114	tc filter del dev $swp1 ingress protocol ip pref 1 handle 101 flower
115
116	devlink_trap_drop_cleanup $mz_pid $swp2 ip 1 101
117}
118
119egress_flow_action_drop_test()
120{
121	local mz_pid
122
123	tc filter add dev $swp2 egress protocol ip pref 2 handle 102 \
124		flower src_mac $h1mac action pass
125
126	tc filter add dev $swp2 egress protocol ip pref 1 handle 101 \
127		flower dst_ip 192.0.2.2 action drop
128
129	$MZ $h1 -c 0 -p 100 -a $h1mac -b $h2mac -A 192.0.2.1 -B 192.0.2.2 \
130		-t ip -d 1msec -q &
131	mz_pid=$!
132
133	RET=0
134
135	devlink_trap_drop_test egress_flow_action_drop $swp2 102
136
137	log_test "egress_flow_action_drop"
138
139	tc filter del dev $swp2 egress protocol ip pref 1 handle 101 flower
140
141	devlink_trap_drop_cleanup $mz_pid $swp2 ip 2 102
142}
143
144trap cleanup EXIT
145
146setup_prepare
147setup_wait
148
149tests_run
150
151exit $EXIT_STATUS
~/ Read-only file preview.