Commit 434ef350 authored by Vladimir Oltean's avatar Vladimir Oltean Committed by David S. Miller
Browse files

selftests: net: mscc: ocelot: add a test for egress VLAN modification



For this test we are exercising the VCAP ES0 block's ability to match on
a packet with a given VLAN ID, and push an ES0 TAG A with a VID derived
from VID_A_VAL plus the classified VLAN.

$eth3.200 is the generator port
$eth0 is the bridged DUT port that receives
$eth1 is the bridged DUT port that forwards and rewrites VID 200 to 300
      on egress via VCAP ES0
$eth2 is the port that receives from the DUT port $eth1

Since the egress rewriting happens outside the bridging service, VID 300
does not need to be in the bridge VLAN table of $eth1.

Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4a907f65
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
@@ -285,6 +285,44 @@ test_vlan_ingress_modify()
	ip link set br0 type bridge vlan_filtering 0
}

test_vlan_egress_modify()
{
	printf "Testing egress VLAN modification..		"

	tc qdisc add dev $eth1 clsact

	ip link set br0 type bridge vlan_filtering 1
	bridge vlan add dev $eth0 vid 200
	bridge vlan add dev $eth1 vid 200

	tc filter add dev $eth1 egress chain $(ES0) pref 3 \
		protocol 802.1Q flower skip_sw vlan_id 200 vlan_prio 0 \
		action vlan modify id 300 priority 7

	tcpdump_start $eth2

	$MZ $eth3.200 -q -c 1 -p 64 -a $eth3_mac -b $eth2_mac -t ip

	sleep 1

	tcpdump_stop

	if tcpdump_show | grep -q "$eth3_mac > $eth2_mac, .* vlan 300"; then
		echo "OK"
	else
		echo "FAIL"
	fi

	tcpdump_cleanup

	tc filter del dev $eth1 egress chain $(ES0) pref 3
	tc qdisc del dev $eth1 clsact

	bridge vlan del dev $eth0 vid 200
	bridge vlan del dev $eth1 vid 200
	ip link set br0 type bridge vlan_filtering 0
}

test_skbedit_priority()
{
	local num_pkts=100
@@ -310,6 +348,7 @@ ALL_TESTS="
	test_vlan_pop
	test_vlan_push
	test_vlan_ingress_modify
	test_vlan_egress_modify
	test_skbedit_priority
"