net/e1000: report VLAN extend capability
[dpdk.git] / drivers / net / e1000 / igb_rxtx.c
index 684fa4a..6411924 100644 (file)
@@ -320,7 +320,7 @@ igbe_set_xmit_ctx(struct igb_tx_queue* txq,
        vlan_macip_lens = (uint32_t)tx_offload.data;
        ctx_txd->vlan_macip_lens = rte_cpu_to_le_32(vlan_macip_lens);
        ctx_txd->mss_l4len_idx = rte_cpu_to_le_32(mss_l4len_idx);
-       ctx_txd->seqnum_seed = 0;
+       ctx_txd->u.seqnum_seed = 0;
 }
 
 /*
@@ -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;
 }
 
@@ -1884,12 +1891,14 @@ igb_dev_free_queues(struct rte_eth_dev *dev)
        for (i = 0; i < dev->data->nb_rx_queues; i++) {
                eth_igb_rx_queue_release(dev->data->rx_queues[i]);
                dev->data->rx_queues[i] = NULL;
+               rte_eth_dma_zone_free(dev, "rx_ring", i);
        }
        dev->data->nb_rx_queues = 0;
 
        for (i = 0; i < dev->data->nb_tx_queues; i++) {
                eth_igb_tx_queue_release(dev->data->tx_queues[i]);
                dev->data->tx_queues[i] = NULL;
+               rte_eth_dma_zone_free(dev, "tx_ring", i);
        }
        dev->data->nb_tx_queues = 0;
 }