From: Peng Huang Date: Mon, 22 Jul 2019 13:50:28 +0000 (+0000) Subject: net/i40e: fix RSS hash update for X722 VF X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=ba277e3720639ed46c0b51fab600b6e35c47eb88;p=dpdk.git net/i40e: fix RSS hash update for X722 VF This patch fixes X722 VF problem when received packet don't have HASH value. 1) Packet classifier types update should support X722 VF, not only for X722 PF; 2) MAC type is invalid for X722 VF when set packet classifier type, so move it after MAC type is set correctly; Fixes: a286ebeb0714 ("net/i40e: add dynamic mapping of SW flow types to HW pctypes") Cc: stable@dpdk.org Signed-off-by: Peng Huang Acked-by: Qi Zhang --- diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index 5fd34f8e6b..308fb9835a 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -1486,7 +1486,6 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) return 0; } i40e_set_default_ptype_table(eth_dev); - i40e_set_default_pctype_table(eth_dev); rte_eth_copy_pci_info(eth_dev, pci_dev); hw->vendor_id = pci_dev->id.vendor_id; @@ -1504,6 +1503,7 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) return -1; } + i40e_set_default_pctype_table(eth_dev); rte_eal_alarm_set(I40EVF_ALARM_INTERVAL, i40evf_dev_alarm_handler, eth_dev); diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index 34aa6c814b..692c3bab4b 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -3168,7 +3168,8 @@ i40e_set_default_pctype_table(struct rte_eth_dev *dev) ad->pctypes_tbl[RTE_ETH_FLOW_L2_PAYLOAD] = (1ULL << I40E_FILTER_PCTYPE_L2_PAYLOAD); - if (hw->mac.type == I40E_MAC_X722) { + if (hw->mac.type == I40E_MAC_X722 || + hw->mac.type == I40E_MAC_X722_VF) { ad->pctypes_tbl[RTE_ETH_FLOW_NONFRAG_IPV4_UDP] |= (1ULL << I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP); ad->pctypes_tbl[RTE_ETH_FLOW_NONFRAG_IPV4_UDP] |=