linux_dsm_epyc7002/drivers/net/ethernet/hisilicon/hns3
Jian Shen 44e626f720 net: hns3: fix VLAN offload handle for VLAN inserted by port
Currently, in TX direction, driver implements the TX VLAN offload
by checking the VLAN header in skb, and filling it into TX descriptor.
Usually it works well, but if enable inserting VLAN header based on
port, it may conflict when out_tag field of TX descriptor is already
used, and cause RAS error.

In RX direction, hardware supports stripping max two VLAN headers.
For vlan_tci in skb can only store one VLAN tag, when RX VLAN offload
enabled, driver tells hardware to strip one VLAN header from RX
packet; when RX VLAN offload disabled, driver tells hardware not to
strip VLAN header from RX packet. Now if port based insert VLAN
enabled, all RX packets will have the port based VLAN header. This
header is useless for stack, driver needs to ask hardware to strip
it. Unfortunately, hardware can't drop this VLAN header, and always
fill it into RX descriptor, so driver has to identify and drop it.

Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-04-14 13:47:34 -07:00
..
hns3pf net: hns3: fix VLAN offload handle for VLAN inserted by port 2019-04-14 13:47:34 -07:00
hns3vf net: hns3: fix keep_alive_timer not stop problem 2019-04-08 15:30:49 -07:00
hclge_mbx.h net: hns3: modify the VF network port media type acquisition method 2019-04-04 10:20:38 -07:00
hnae3.c net: hns3: split function hnae3_match_n_instantiate() 2019-04-04 10:20:39 -07:00
hnae3.h net: hns3: fix VLAN offload handle for VLAN inserted by port 2019-04-14 13:47:34 -07:00
hns3_dcbnl.c net: hns3: use HNS3_NIC_STATE_RESETTING to indicate resetting 2018-11-07 11:42:17 -08:00
hns3_debugfs.c net: hns3: Add "tm map" status information query function 2018-12-15 10:54:18 -08:00
hns3_enet.c net: hns3: fix VLAN offload handle for VLAN inserted by port 2019-04-14 13:47:34 -07:00
hns3_enet.h net: hns3: minor optimization for ring_space 2019-04-04 10:20:38 -07:00
hns3_ethtool.c net: hns3: check resetting status in hns3_get_stats() 2019-04-04 10:20:39 -07:00
Makefile net: hns3: Add debugfs framework registration 2018-11-23 17:28:59 -08:00