drivers/net: build Intel NIC PMDs with meson
[dpdk.git] / drivers / net / mlx5 / mlx5_ethdev.c
index 9226f1a..83657f5 100644 (file)
@@ -55,7 +55,7 @@
 #include <sys/un.h>
 
 #include <rte_atomic.h>
-#include <rte_ethdev.h>
+#include <rte_ethdev_driver.h>
 #include <rte_bus_pci.h>
 #include <rte_mbuf.h>
 #include <rte_common.h>
@@ -692,6 +692,7 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
                priv->reta_idx_n : config->ind_table_max_size;
        info->hash_key_size = priv->rss_conf.rss_key_len;
        info->speed_capa = priv->link_speed_capa;
+       info->flow_type_rss_offloads = ~MLX5_RSS_HF_MASK;
        priv_unlock(priv);
 }
 
@@ -965,6 +966,33 @@ priv_link_update(struct priv *priv, int wait_to_complete)
        return ret;
 }
 
+/**
+ * Querying the link status till it changes to the desired state.
+ * Number of query attempts is bounded by MLX5_MAX_LINK_QUERY_ATTEMPTS.
+ *
+ * @param priv
+ *   Pointer to private structure.
+ * @param status
+ *   Link desired status.
+ *
+ * @return
+ *   0 on success, negative errno value on failure.
+ */
+int
+priv_force_link_status_change(struct priv *priv, int status)
+{
+       int try = 0;
+
+       while (try < MLX5_MAX_LINK_QUERY_ATTEMPTS) {
+               priv_link_update(priv, 0);
+               if (priv->dev->data->dev_link.link_status == status)
+                       return 0;
+               try++;
+               sleep(1);
+       }
+       return -EAGAIN;
+}
+
 /**
  * DPDK callback to retrieve physical link information.
  *