Thread (192 messages) 192 messages, 9 authors, 2022-10-26

Re: [PATCH v2 04/10] net/gve: add link update support

From: Ferruh Yigit <hidden>
Date: 2022-09-01 17:23:19

On 8/29/2022 9:41 AM, Junfeng Guo wrote:
quoted hunk ↗ jump to hunk
Support dev_ops link_update.

Signed-off-by: Xiaoyun Li <redacted>
Signed-off-by: Junfeng Guo <redacted>
---
  drivers/net/gve/gve_ethdev.c | 30 ++++++++++++++++++++++++++++++
  1 file changed, 30 insertions(+)
diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index f10f273f7d..435115c047 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -37,10 +37,39 @@ gve_dev_configure(__rte_unused struct rte_eth_dev *dev)
         return 0;
  }

+static int
+gve_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_complete)
+{
+       struct gve_priv *priv = dev->data->dev_private;
+       struct rte_eth_link link;
+       int err;
+
+       memset(&link, 0, sizeof(link));
+       link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX;
+       link.link_autoneg = RTE_ETH_LINK_AUTONEG;
+
+       if (!dev->data->dev_started) {
+               link.link_status = RTE_ETH_LINK_DOWN;
+               link.link_speed = RTE_ETH_SPEED_NUM_NONE;
+       } else {
+               link.link_status = RTE_ETH_LINK_UP;
+               PMD_INIT_LOG(DEBUG, "Get link status from hw");
+               err = gve_adminq_report_link_speed(priv);
As far as I can see the API is calling an adminq command, is this 
command blocking until link is up? If so is there a non blocking version 
to utilize 'wait_to_complete', instead of ignoring it?

Also what will happen if 'start()' dev_ops called but cable is not 
plugged in at all, won't this set link status still to "UP"?

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help