From: Peng Zhihong <zhihongx.p...@intel.com>

The rte_eth_dev_set_vlan_offload function will check vlan rx offload
capability, the i350/i210/i211 nics have vlan extend feature but
DEV_RX_OFFLOAD_VLAN_EXTEND is not set into the capability, that will
cause setting fail. So need to add this capability in
igb_get_rx_port_offloads_capa function.

Fixes: ef990fb56e55 ("net/e1000: convert to new Rx offloads API")
Cc: sta...@dpdk.org

Signed-off-by: Peng Zhihong <zhihongx.p...@intel.com>
---
 drivers/net/e1000/igb_rxtx.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
index 5717cdb70..6411924e0 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
@@ -1637,8 +1637,10 @@ uint64_t
 igb_get_rx_port_offloads_capa(struct rte_eth_dev *dev)
 {
        uint64_t rx_offload_capa;
+       struct e1000_hw *hw;
+
+       hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-       RTE_SET_USED(dev);
        rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP  |
                          DEV_RX_OFFLOAD_VLAN_FILTER |
                          DEV_RX_OFFLOAD_IPV4_CKSUM  |
@@ -1649,6 +1651,11 @@ igb_get_rx_port_offloads_capa(struct rte_eth_dev *dev)
                          DEV_RX_OFFLOAD_SCATTER     |
                          DEV_RX_OFFLOAD_RSS_HASH;
 
+       if (hw->mac.type == e1000_i350 ||
+           hw->mac.type == e1000_i210 ||
+           hw->mac.type == e1000_i211)
+               rx_offload_capa |= DEV_RX_OFFLOAD_VLAN_EXTEND;
+
        return rx_offload_capa;
 }
 
-- 
2.17.1

Reply via email to