linux/drivers/net/ethernet/stmicro/stmmac
Elad Nachman ab188e8f4a stmmac: added support for 802.1ad vlan stripping
stmmac reception handler calls stmmac_rx_vlan() to strip the vlan before
calling napi_gro_receive().

The function assumes VLAN tagged frames are always tagged with
802.1Q protocol, and assigns ETH_P_8021Q to the skb by hard-coding
the parameter on call to __vlan_hwaccel_put_tag() .

This causes packets not to be passed to the VLAN slave if it was created
with 802.1AD protocol
(ip link add link eth0 eth0.100 type vlan proto 802.1ad id 100).

This fix passes the protocol from the VLAN header into
__vlan_hwaccel_put_tag() instead of using the hard-coded value of
ETH_P_8021Q.

NETIF_F_HW_VLAN_STAG_RX check was added and the strip action is now
dependent on the correct combination of features and the detected vlan tag.

NETIF_F_HW_VLAN_STAG_RX feature was added to be in line with the driver
actual abilities.

Signed-off-by: Elad Nachman <eladn@gilat.com>
Reviewed-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-06-15 09:04:38 -07:00
..
altr_tse_pcs.c net: ethernet: stmmac: Convert timers to use timer_setup() 2017-10-18 12:39:37 +01:00
altr_tse_pcs.h
chain_mode.c net: stmmac: Switch stmmac_mode_ops to generic HW Interface Helpers 2018-04-16 18:50:03 -04:00
common.h net: stmmac: Add Flexible PPS support 2018-06-04 10:13:16 -04:00
descs_com.h
descs.h
dwmac4_core.c net: stmmac: Add Flexible PPS support 2018-06-04 10:13:16 -04:00
dwmac4_descs.c net: stmmac: Let descriptor code get skbuff address 2018-05-18 11:00:16 -04:00
dwmac4_descs.h
dwmac4_dma.c net: stmmac: Add Flexible PPS support 2018-06-04 10:13:16 -04:00
dwmac4_dma.h net: stmmac: Remove uneeded check for GMAC version in stmmac_xmit 2018-05-18 11:00:15 -04:00
dwmac4_lib.c net: stmmac: prepare rx/tx set tail function for multiple queues 2017-03-15 14:44:32 -07:00
dwmac4.h net: stmmac: Add Flexible PPS support 2018-06-04 10:13:16 -04:00
dwmac5.c net: stmmac: Add Flexible PPS support 2018-06-04 10:13:16 -04:00
dwmac5.h net: stmmac: Add Flexible PPS support 2018-06-04 10:13:16 -04:00
dwmac100_core.c net: stmmac: Implement logic to automatically select HW Interface 2018-04-23 12:03:50 -04:00
dwmac100_dma.c net: stmmac: Uniformize the use of dma_init_* callbacks 2018-05-18 11:00:15 -04:00
dwmac100.h
dwmac1000_core.c net: stmmac: Implement logic to automatically select HW Interface 2018-04-23 12:03:50 -04:00
dwmac1000_dma.c net: stmmac: Uniformize the use of dma_init_* callbacks 2018-05-18 11:00:15 -04:00
dwmac1000.h net: stmmac: Implement logic to automatically select HW Interface 2018-04-23 12:03:50 -04:00
dwmac_dma.h net: stmmac: Adjust dump offset of DMA registers for ethtool 2017-07-24 16:19:10 -07:00
dwmac_lib.c net: stmmac: dwmac_lib: fix interchanged sleep/timeout values in DMA reset function 2017-10-13 10:19:52 -07:00
dwmac-anarion.c net: stmmac: Add Adaptrum Anarion GMAC glue layer 2017-08-06 21:31:32 -07:00
dwmac-dwc-qos-eth.c net: stmmac: dwc-qos-eth: Fix typo in DT bindings parsing 2017-10-27 23:23:19 +09:00
dwmac-generic.c
dwmac-ipq806x.c net: ethernet: stmmac: Clean up dead code 2017-10-08 21:19:07 -07:00
dwmac-lpc18xx.c
dwmac-meson8b.c net: stmmac: dwmac-meson8b: Fix an error handling path in 'meson8b_dwmac_probe()' 2018-06-12 15:36:14 -07:00
dwmac-meson.c
dwmac-oxnas.c
dwmac-rk.c net: stmmac: Remove useless test before clk_disable_unprepare 2018-05-16 14:43:54 -04:00
dwmac-socfpga.c net: stmmac: socfgpa: Ensure emac bit set in sys manager for MII/GMII/SGMII. 2017-08-23 20:26:58 -07:00
dwmac-sti.c
dwmac-stm32.c net: ethernet: stmmac: add adaptation for stm32mp157c. 2018-05-28 23:08:29 -04:00
dwmac-sun8i.c net: stmmac: Uniformize the use of dma_init_* callbacks 2018-05-18 11:00:15 -04:00
dwmac-sunxi.c
enh_desc.c net: stmmac: Let descriptor code get skbuff address 2018-05-18 11:00:16 -04:00
hwif.c net: stmmac: Populate missing callbacks in HWIF initialization 2018-05-18 13:56:08 -04:00
hwif.h net: stmmac: Add Flexible PPS support 2018-06-04 10:13:16 -04:00
Kconfig net: stmmac: fix build failure due to missing COMMON_CLK dependency 2018-06-08 10:59:08 -04:00
Makefile net: stmmac: Add support for U32 TC filter using Flexible RX Parser 2018-05-10 14:16:36 -04:00
mmc_core.c
mmc.h
norm_desc.c net: stmmac: Let descriptor code get skbuff address 2018-05-18 11:00:16 -04:00
ring_mode.c net: stmmac: Switch stmmac_mode_ops to generic HW Interface Helpers 2018-04-16 18:50:03 -04:00
stmmac_ethtool.c net: stmmac: Use mutex instead of spinlock 2018-05-28 22:54:15 -04:00
stmmac_hwtstamp.c net: stmmac: Switch stmmac_hwtimestamp to generic HW Interface Helpers 2018-04-16 18:49:55 -04:00
stmmac_main.c stmmac: added support for 802.1ad vlan stripping 2018-06-15 09:04:38 -07:00
stmmac_mdio.c drivers: net: Remove device_node checks with of_mdiobus_register() 2018-05-16 14:20:36 -04:00
stmmac_pci.c stmmac: pci: Use dmi_system_id table for retrieving PHY addresses 2017-06-22 13:39:57 -04:00
stmmac_pcs.h
stmmac_platform.c net: stmmac: add dwmac-4.20a compatible 2018-05-28 23:08:29 -04:00
stmmac_platform.h
stmmac_ptp.c net: stmmac: Add Flexible PPS support 2018-06-04 10:13:16 -04:00
stmmac_ptp.h stmmac: fix ptp header for GMAC3 hw timestamp 2017-06-09 12:39:25 -04:00
stmmac_tc.c net: stmmac: Add support for U32 TC filter using Flexible RX Parser 2018-05-10 14:16:36 -04:00
stmmac.h net: stmmac: Add Flexible PPS support 2018-06-04 10:13:16 -04:00