Added speed capabilities to all pmds supporting physical NICs:

* e1000
* ixgbe
* i40
* mlx4
* fm10k

Signed-off-by: Marc Sune <marcdevel at gmail.com>
---
 drivers/net/e1000/em_ethdev.c    |  6 ++++++
 drivers/net/e1000/igb_ethdev.c   |  6 ++++++
 drivers/net/fm10k/fm10k_ethdev.c |  3 +++
 drivers/net/i40e/i40e_ethdev.c   |  9 +++++++++
 drivers/net/ixgbe/ixgbe_ethdev.c | 10 ++++++++++
 drivers/net/mlx4/mlx4.c          |  6 ++++++
 6 files changed, 40 insertions(+)

diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index f0216f9..501e8b6 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -933,6 +933,12 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct 
rte_eth_dev_info *dev_info)

        dev_info->max_rx_queues = 1;
        dev_info->max_tx_queues = 1;
+
+       dev_info->speed_capa = ETH_SPEED_10M_HD |
+                                       ETH_SPEED_10M |
+                                       ETH_SPEED_100M_HD |
+                                       ETH_SPEED_100M |
+                                       ETH_SPEED_1G;
 }

 /* return 0 means link status changed, -1 means not changed */
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index 25f1755..a1c42e6 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -1588,6 +1588,12 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct 
rte_eth_dev_info *dev_info)
                },
                .txq_flags = 0,
        };
+
+       dev_info->speed_capa = ETH_SPEED_10M_HD |
+                                       ETH_SPEED_10M |
+                                       ETH_SPEED_100M_HD |
+                                       ETH_SPEED_100M |
+                                       ETH_SPEED_1G;
 }

 static void
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index a69c990..875028e 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -964,6 +964,9 @@ fm10k_dev_infos_get(struct rte_eth_dev *dev,
                                ETH_TXQ_FLAGS_NOOFFLOADS,
        };

+       dev_info->speed_capa = ETH_SPEED_1G | ETH_SPEED_2_5G |
+                                       ETH_SPEED_10G | ETH_SPEED_25G |
+                                       ETH_SPEED_40G | ETH_SPEED_100G;
 }

 static int
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 8f340cd..0a535a2 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -1624,6 +1624,7 @@ static void
 i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
        struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
+       struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
        struct i40e_vsi *vsi = pf->main_vsi;

        dev_info->max_rx_queues = vsi->nb_qps;
@@ -1683,6 +1684,14 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct 
rte_eth_dev_info *dev_info)
                dev_info->max_rx_queues += dev_info->vmdq_queue_num;
                dev_info->max_tx_queues += dev_info->vmdq_queue_num;
        }
+
+       if (i40e_is_40G_device(hw->device_id))
+               /* For XL710 */
+               dev_info->speed_capa = ETH_SPEED_10G | ETH_SPEED_40G;
+       else
+               /* For X710 */
+               dev_info->speed_capa = ETH_SPEED_1G | ETH_SPEED_10G;
+
 }

 static int
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 9b65d81..11ff5ea 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2417,6 +2417,16 @@ ixgbe_dev_info_get(struct rte_eth_dev *dev, struct 
rte_eth_dev_info *dev_info)
        dev_info->hash_key_size = IXGBE_HKEY_MAX_INDEX * sizeof(uint32_t);
        dev_info->reta_size = ETH_RSS_RETA_SIZE_128;
        dev_info->flow_type_rss_offloads = IXGBE_RSS_OFFLOAD_ALL;
+
+       dev_info->speed_capa = ETH_SPEED_1G | ETH_SPEED_10G;
+
+       if (hw->mac.type == ixgbe_mac_X540 ||
+           hw->mac.type == ixgbe_mac_X540_vf ||
+           hw->mac.type == ixgbe_mac_X550 ||
+           hw->mac.type == ixgbe_mac_X550_vf)
+
+               dev_info->speed_capa |= ETH_SPEED_100M |
+                                       ETH_SPEED_100M_HD;
 }

 static void
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index fa3cb7e..31f4970 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -3876,6 +3876,12 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct 
rte_eth_dev_info *info)
                  DEV_TX_OFFLOAD_UDP_CKSUM |
                  DEV_TX_OFFLOAD_TCP_CKSUM) :
                 0);
+
+       info->speed_capa = ETH_SPEED_10G | ETH_SPEED_20G |
+                                       ETH_SPEED_25G | ETH_SPEED_40G |
+                                       ETH_SPEED_50G | ETH_SPEED_56G |
+                                       ETH_SPEED_100G;
+
        priv_unlock(priv);
 }

-- 
2.1.4

Reply via email to