Commit 2da44703 authored by Boris Sukholitko's avatar Boris Sukholitko Committed by Paolo Abeni
Browse files

selftests: tc_actions: test egress 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 egress.

Signed-off-by: default avatarBoris Sukholitko <boris.sukholitko@broadcom.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 59c330ec
Loading
Loading
Loading
Loading
+24 −1
Original line number Diff line number Diff line
@@ -4,7 +4,8 @@
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 ingress_2nd_vlan_push"
	mirred_egress_to_ingress_tcp_test \
	ingress_2nd_vlan_push egress_2nd_vlan_push"
NUM_NETIFS=4
source tc_common.sh
source lib.sh
@@ -265,6 +266,28 @@ ingress_2nd_vlan_push()
	log_test "ingress_2nd_vlan_push ($tcflags)"
}

egress_2nd_vlan_push()
{
	tc filter add dev $h1 egress pref 20 chain 0 handle 20 flower \
		$tcflags num_of_vlans 0 \
		action vlan push id 10 protocol 0x8100 \
		pipe action vlan push id 100 protocol 0x8100 action goto chain 5
	tc filter add dev $h1 egress 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

	tc_check_packets "dev $h1 egress" 30 1
	check_err $? "No double-vlan packets received"

	tc filter del dev $h1 egress pref 20 chain 0 handle 20 flower
	tc filter del dev $h1 egress pref 30 chain 5 handle 30 flower

	log_test "egress_2nd_vlan_push ($tcflags)"
}

setup_prepare()
{
	h1=${NETIFS[p1]}