[dpdk-dev] [PATCH] net/ixgbe: support detection of hot swapped SFP/SFP+

Srini J srinidpdk at gmail.com
Thu Apr 20 12:47:51 CEST 2017


From: Srinivasan Jayarajan <srinidpdk at gmail.com>

    Adds support to use a different SFP/SFP+ without restarting the
    DPDK app. rte_eth_dev_stop()/rte_eth_dev_start() will need
    to be called on the port to detect the SFP/SFP+ change.

Signed-off-by: Srinivasan Jayarajan <srinidpdk at gmail.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index c226e0a..85407a9 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2520,6 +2520,19 @@ static int eth_ixgbevf_pci_remove(struct rte_pci_device *pci_dev)
 	status = ixgbe_pf_reset_hw(hw);
 	if (status != 0)
 		return -1;
+
+	/* Set phy type as unknown so that PHY scan is always done */
+	hw->phy.type = ixgbe_phy_unknown;
+
+	/* Identify PHY and related function pointers */
+	status = hw->phy.ops.init(hw);
+
+	if (status == IXGBE_ERR_SFP_NOT_SUPPORTED) {
+		PMD_INIT_LOG(ERR, "Found unsupported SFP in "
+					"ixgbe_dev_start(): %d", status);
+		return -1;
+	}
+
 	hw->mac.ops.start_hw(hw);
 	hw->mac.get_link_status = true;
 
-- 
1.8.1.4



More information about the dev mailing list