From: Feifei Wang <[email protected]>

VXLAN TSO lacks a flag bit, causing the processing function
to determine that the hardware does not support it, leading
to improper handling.

Signed-off-by: Feifei Wang <[email protected]>
---
 drivers/net/hinic3/hinic3_ethdev.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/hinic3/hinic3_ethdev.c 
b/drivers/net/hinic3/hinic3_ethdev.c
index f4eb788..4776bc1 100644
--- a/drivers/net/hinic3/hinic3_ethdev.c
+++ b/drivers/net/hinic3/hinic3_ethdev.c
@@ -652,8 +652,12 @@ hinic3_dev_configure(struct rte_eth_dev *dev)
 static void
 hinic3_dev_tnl_tso_support(struct rte_eth_dev_info *info, struct 
hinic3_nic_dev *nic_dev)
 {
+       if (HINIC3_SUPPORT_VXLAN_OFFLOAD(nic_dev))
+               info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO;
+
        if (HINIC3_SUPPORT_GENEVE_OFFLOAD(nic_dev))
                info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO;
+
        if (HINIC3_SUPPORT_IPXIP_OFFLOAD(nic_dev))
                info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO;
 }
@@ -698,7 +702,6 @@ hinic3_dev_infos_get(struct rte_eth_dev *dev, struct 
rte_eth_dev_info *info)
                RTE_ETH_TX_OFFLOAD_SCTP_CKSUM |
                RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM |
                RTE_ETH_TX_OFFLOAD_TCP_TSO | RTE_ETH_TX_OFFLOAD_MULTI_SEGS;
-       if (nic_dev->feature_cap & NIC_F_HTN_CMDQ)
                hinic3_dev_tnl_tso_support(info, nic_dev);
 
        info->hash_key_size = HINIC3_RSS_KEY_SIZE;
-- 
2.47.0.windows.2

Reply via email to