]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: lan966x: Make sure to insert the vlan tags also in host mode
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Wed, 28 May 2025 09:36:19 +0000 (11:36 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 29 May 2025 13:48:37 +0000 (15:48 +0200)
commit27eab4c644236a9324084a70fe79e511cbd07393
tree32549cbb89148e5b62ac787f34a3457217054e12
parentf65dca1752b70ec4f678ae4dbdd5892335bcbbd8
net: lan966x: Make sure to insert the vlan tags also in host mode

When running these commands on DUT (and similar at the other end)
ip link set dev eth0 up
ip link add link eth0 name eth0.10 type vlan id 10
ip addr add 10.0.0.1/24 dev eth0.10
ip link set dev eth0.10 up
ping 10.0.0.2

The ping will fail.

The reason why is failing is because, the network interfaces for lan966x
have a flag saying that the HW can insert the vlan tags into the
frames(NETIF_F_HW_VLAN_CTAG_TX). Meaning that the frames that are
transmitted don't have the vlan tag inside the skb data, but they have
it inside the skb. We already get that vlan tag and put it in the IFH
but the problem is that we don't configure the HW to rewrite the frame
when the interface is in host mode.
The fix consists in actually configuring the HW to insert the vlan tag
if it is different than 0.

Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Fixes: 6d2c186afa5d ("net: lan966x: Add vlan support.")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Link: https://patch.msgid.link/20250528093619.3738998-1-horatiu.vultur@microchip.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/microchip/lan966x/lan966x_main.c
drivers/net/ethernet/microchip/lan966x/lan966x_main.h
drivers/net/ethernet/microchip/lan966x/lan966x_switchdev.c
drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c