-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
selftests: forwarding: Introduce basic shared blocks tests
Test shared block infrastructure. This is a basic test that shares TC block in between 2 clsact qdiscs. Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Jiri Pirko
authored and
David S. Miller
committed
Feb 28, 2018
1 parent
b13f245
commit 4908e24
Showing
2 changed files
with
128 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
#!/bin/bash | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
NUM_NETIFS=4 | ||
source lib.sh | ||
source tc_common.sh | ||
|
||
tcflags="skip_hw" | ||
|
||
h1_create() | ||
{ | ||
simple_if_init $h1 192.0.2.1/24 | ||
} | ||
|
||
h1_destroy() | ||
{ | ||
simple_if_fini $h1 192.0.2.1/24 | ||
} | ||
|
||
h2_create() | ||
{ | ||
simple_if_init $h2 192.0.2.1/24 | ||
} | ||
|
||
h2_destroy() | ||
{ | ||
simple_if_fini $h2 192.0.2.1/24 | ||
} | ||
|
||
switch_create() | ||
{ | ||
simple_if_init $swp1 192.0.2.2/24 | ||
tc qdisc add dev $swp1 ingress_block 22 egress_block 23 clsact | ||
|
||
simple_if_init $swp2 192.0.2.2/24 | ||
tc qdisc add dev $swp2 ingress_block 22 egress_block 23 clsact | ||
} | ||
|
||
switch_destroy() | ||
{ | ||
tc qdisc del dev $swp2 clsact | ||
simple_if_fini $swp2 192.0.2.2/24 | ||
|
||
tc qdisc del dev $swp1 clsact | ||
simple_if_fini $swp1 192.0.2.2/24 | ||
} | ||
|
||
shared_block_test() | ||
{ | ||
RET=0 | ||
|
||
tc filter add block 22 protocol ip pref 1 handle 101 flower \ | ||
$tcflags dst_ip 192.0.2.2 action drop | ||
|
||
$MZ $h1 -c 1 -p 64 -a $h1mac -b $swmac -A 192.0.2.1 -B 192.0.2.2 \ | ||
-t ip -q | ||
|
||
tc_check_packets "block 22" 101 1 | ||
check_err $? "Did not match first incoming packet on a block" | ||
|
||
$MZ $h2 -c 1 -p 64 -a $h2mac -b $swmac -A 192.0.2.1 -B 192.0.2.2 \ | ||
-t ip -q | ||
|
||
tc_check_packets "block 22" 101 2 | ||
check_err $? "Did not match second incoming packet on a block" | ||
|
||
tc filter del block 22 protocol ip pref 1 handle 101 flower | ||
|
||
log_test "shared block ($tcflags)" | ||
} | ||
|
||
setup_prepare() | ||
{ | ||
h1=${NETIFS[p1]} | ||
swp1=${NETIFS[p2]} | ||
|
||
swp2=${NETIFS[p3]} | ||
h2=${NETIFS[p4]} | ||
|
||
h1mac=$(mac_get $h1) | ||
h2mac=$(mac_get $h2) | ||
|
||
swmac=$(mac_get $swp1) | ||
swp2origmac=$(mac_get $swp2) | ||
ip link set $swp2 address $swmac | ||
|
||
vrf_prepare | ||
|
||
h1_create | ||
h2_create | ||
switch_create | ||
} | ||
|
||
cleanup() | ||
{ | ||
pre_cleanup | ||
|
||
switch_destroy | ||
h2_destroy | ||
h1_destroy | ||
|
||
vrf_cleanup | ||
|
||
ip link set $swp2 address $swp2origmac | ||
} | ||
|
||
trap cleanup EXIT | ||
|
||
setup_prepare | ||
setup_wait | ||
|
||
shared_block_test | ||
|
||
tc_offload_check | ||
if [[ $? -ne 0 ]]; then | ||
log_info "Could not test offloaded functionality" | ||
else | ||
tcflags="skip_sw" | ||
shared_block_test | ||
fi | ||
|
||
exit $EXIT_STATUS |