net/hns3: fix VLAN tags reported in Rx
authorWei Hu (Xavier) <xavier.huwei@huawei.com>
Wed, 3 Jun 2020 09:32:00 +0000 (17:32 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 5 Jun 2020 09:32:08 +0000 (11:32 +0200)
commite28bc1476558467b2898abab306b2317bada3d78
treefe6539125ae168d041cf9495fc4c070bf0625669
parent4c623ca40013c58d73aec67717583e3ee1cb45e3
net/hns3: fix VLAN tags reported in Rx

Currently, based on hns3 network engine, driver always reports the
incoming packet's VLAN tags to the structure rte_mbuf those are the
output parameter pointers in '.rx_pkt_burst' ops implementation
function, and never reports PKT_RX_VLAN_STRIPPED flag to the structure
rte_mbuf even if Upper Level Process configured hardware strip by
calling rte_eth_dev_configure or rte_eth_dev_set_vlan_offload API
function. It makes the ULP unable to know the stripping of VLAN.

It is supposed to present the stripped flags to the mbuf ol_flags, and
report the right VLAN tag.

And as hardware constraints, the stripped VLAN tag will always in the Rx
descriptor. Even if setting a PVID based on the function, the PVID will
be reported to the Rx descriptor. So the driver need to determine which
VLAN tag should be reported to output the structure rte_mbuf in
'.rx_pkt_burst' ops implementation function named hns3_recv_pkts.

Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")
Fixes: 411d23b9eafb ("net/hns3: support VLAN")
Cc: stable@dpdk.org
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
drivers/net/hns3/hns3_ethdev.c
drivers/net/hns3/hns3_ethdev.h
drivers/net/hns3/hns3_rxtx.c