selftests: tc_actions: test ingress 2nd vlan push

Add new test checking the correctness of inner vlan flushing to the skb
data when outer vlan tag is added through act_vlan on ingress.

Signed-off-by: Boris Sukholitko <boris.sukholitko@broadcom.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Boris Sukholitko 2024-08-22 13:35:09 +03:00 committed by Paolo Abeni
parent 9388637270
commit 59c330ecce

View File

@ -4,7 +4,7 @@
ALL_TESTS="gact_drop_and_ok_test mirred_egress_redirect_test \
mirred_egress_mirror_test matchall_mirred_egress_mirror_test \
gact_trap_test mirred_egress_to_ingress_test \
mirred_egress_to_ingress_tcp_test"
mirred_egress_to_ingress_tcp_test ingress_2nd_vlan_push"
NUM_NETIFS=4
source tc_common.sh
source lib.sh
@ -244,6 +244,27 @@ mirred_egress_to_ingress_tcp_test()
log_test "mirred_egress_to_ingress_tcp ($tcflags)"
}
ingress_2nd_vlan_push()
{
tc filter add dev $swp1 ingress pref 20 chain 0 handle 20 flower \
$tcflags num_of_vlans 1 \
action vlan push id 100 protocol 0x8100 action goto chain 5
tc filter add dev $swp1 ingress pref 30 chain 5 handle 30 flower \
$tcflags num_of_vlans 2 \
cvlan_ethtype 0x800 action pass
$MZ $h1 -c 1 -p 64 -a $h1mac -b $h2mac -A 192.0.2.1 -B 192.0.2.2 \
-t ip -Q 10 -q
tc_check_packets "dev $swp1 ingress" 30 1
check_err $? "No double-vlan packets received"
tc filter del dev $swp1 ingress pref 20 chain 0 handle 20 flower
tc filter del dev $swp1 ingress pref 30 chain 5 handle 30 flower
log_test "ingress_2nd_vlan_push ($tcflags)"
}
setup_prepare()
{
h1=${NETIFS[p1]}