net/enic: refactor Tx mbuf recycling
[dpdk.git] / drivers / net / mlx5 / mlx5_ethdev.c
index e6e20aa..36b369e 100644 (file)
@@ -447,6 +447,7 @@ dev_configure(struct rte_eth_dev *dev)
        unsigned int j;
        unsigned int reta_idx_n;
 
+       priv->rss_hf = dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf;
        priv->rxqs = (void *)dev->data->rx_queues;
        priv->txqs = (void *)dev->data->tx_queues;
        if (txqs_n != priv->txqs_n) {
@@ -558,6 +559,15 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
         * size if it is not fixed.
         * The API should be updated to solve this problem. */
        info->reta_size = priv->ind_table_max_size;
+       info->speed_capa =
+                       ETH_LINK_SPEED_1G |
+                       ETH_LINK_SPEED_10G |
+                       ETH_LINK_SPEED_20G |
+                       ETH_LINK_SPEED_25G |
+                       ETH_LINK_SPEED_40G |
+                       ETH_LINK_SPEED_50G |
+                       ETH_LINK_SPEED_56G |
+                       ETH_LINK_SPEED_100G;
        priv_unlock(priv);
 }
 
@@ -620,6 +630,8 @@ mlx5_link_update_unlocked(struct rte_eth_dev *dev, int wait_to_complete)
                dev_link.link_speed = link_speed;
        dev_link.link_duplex = ((edata.duplex == DUPLEX_HALF) ?
                                ETH_LINK_HALF_DUPLEX : ETH_LINK_FULL_DUPLEX);
+       dev_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
+                       ETH_LINK_SPEED_FIXED);
        if (memcmp(&dev_link, &dev->data->dev_link, sizeof(dev_link))) {
                /* Link status changed. */
                dev->data->dev_link = dev_link;