net/cnxk: add cn9k segregated Rx functions
[dpdk.git] / drivers / net / cnxk / cnxk_link.c
index 3fdbdba..f10a502 100644 (file)
@@ -38,13 +38,36 @@ nix_link_status_print(struct rte_eth_dev *eth_dev, struct rte_eth_link *link)
                plt_info("Port %d: Link Up - speed %u Mbps - %s",
                         (int)(eth_dev->data->port_id),
                         (uint32_t)link->link_speed,
-                        link->link_duplex == ETH_LINK_FULL_DUPLEX
+                        link->link_duplex == RTE_ETH_LINK_FULL_DUPLEX
                                 ? "full-duplex"
                                 : "half-duplex");
        else
                plt_info("Port %d: Link Down", (int)(eth_dev->data->port_id));
 }
 
+void
+cnxk_eth_dev_link_status_get_cb(struct roc_nix *nix,
+                               struct roc_nix_link_info *link)
+{
+       struct cnxk_eth_dev *dev = (struct cnxk_eth_dev *)nix;
+       struct rte_eth_link eth_link;
+       struct rte_eth_dev *eth_dev;
+
+       if (!link || !nix)
+               return;
+
+       eth_dev = dev->eth_dev;
+       if (!eth_dev)
+               return;
+
+       rte_eth_linkstatus_get(eth_dev, &eth_link);
+
+       link->status = eth_link.link_status;
+       link->speed = eth_link.link_speed;
+       link->autoneg = eth_link.link_autoneg;
+       link->full_duplex = eth_link.link_duplex;
+}
+
 void
 cnxk_eth_dev_link_status_cb(struct roc_nix *nix, struct roc_nix_link_info *link)
 {
@@ -66,7 +89,7 @@ cnxk_eth_dev_link_status_cb(struct roc_nix *nix, struct roc_nix_link_info *link)
 
        eth_link.link_status = link->status;
        eth_link.link_speed = link->speed;
-       eth_link.link_autoneg = ETH_LINK_AUTONEG;
+       eth_link.link_autoneg = RTE_ETH_LINK_AUTONEG;
        eth_link.link_duplex = link->full_duplex;
 
        /* Print link info */
@@ -94,17 +117,17 @@ cnxk_nix_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete)
                return 0;
 
        if (roc_nix_is_lbk(&dev->nix)) {
-               link.link_status = ETH_LINK_UP;
-               link.link_speed = ETH_SPEED_NUM_100G;
-               link.link_autoneg = ETH_LINK_FIXED;
-               link.link_duplex = ETH_LINK_FULL_DUPLEX;
+               link.link_status = RTE_ETH_LINK_UP;
+               link.link_speed = RTE_ETH_SPEED_NUM_100G;
+               link.link_autoneg = RTE_ETH_LINK_FIXED;
+               link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX;
        } else {
                rc = roc_nix_mac_link_info_get(&dev->nix, &info);
                if (rc)
                        return rc;
                link.link_status = info.status;
                link.link_speed = info.speed;
-               link.link_autoneg = ETH_LINK_AUTONEG;
+               link.link_autoneg = RTE_ETH_LINK_AUTONEG;
                if (info.full_duplex)
                        link.link_duplex = info.full_duplex;
        }