Hi Wenzhuo, Port hot-plug would require the DPDK app to dynamically mange ports and the kernel to support PCI hot-plugging. When multiple ports are detached/attached (SFP's plugged in/out), would the DPDK port id's remain same? If not, app needs to handle port id change for a give NIC.
While port hot-plug can be used to dynamically handle SFP hot-plugging, I feel it's not the optimal solution. Regards, Srini On Mon, Apr 24, 2017 at 12:45 PM, Lu, Wenzhuo <wenzhuo...@intel.com> wrote: > Hi Srini, > > >> -----Original Message----- >> From: Srinivasan J [mailto:srinid...@gmail.com] >> Sent: Monday, April 24, 2017 2:24 PM >> To: Lu, Wenzhuo >> Cc: Ananyev, Konstantin; dev@dpdk.org >> Subject: Re: [PATCH] net/ixgbe: support detection of hot swapped SFP/SFP+ >> >> Hi Wenzhuo, >> I understand your concern. I had to do this change to >> support hot >> swap of SFP/SFP+ modules without restarting the DPDK app. If we have some >> other mechanism in pipeline to support hot swap of SFP/SFP+ modules, then >> my changes can be ignored. I just wanted to share the changes which worked >> for me back to the community. > I think restarting the APP is not necessary. You can uninit the port, then > re-init the port. > Please reference > http://dpdk.org/doc/guides/prog_guide/port_hotplug_framework.html to see if > it can help. > >> >> Regards, >> Srini >> >> On Fri, Apr 21, 2017 at 10:22 AM, Lu, Wenzhuo <wenzhuo...@intel.com> >> wrote: >> > Hi Srini, >> > >> >> -----Original Message----- >> >> From: Srini J [mailto:srinid...@gmail.com] >> >> Sent: Thursday, April 20, 2017 6:48 PM >> >> To: Lu, Wenzhuo; Ananyev, Konstantin >> >> Cc: dev@dpdk.org; Srinivasan Jayarajan >> >> Subject: [PATCH] net/ixgbe: support detection of hot swapped SFP/SFP+ >> >> >> >> From: Srinivasan Jayarajan <srinid...@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 <srinid...@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; >> >> + } >> >> + >> > I have the concern if it's a good idea to move the functions from dev_init >> to dev_start. Especially this function named init. >> > Anyway, let's listen to others opinion. >> > >> > >> >> hw->mac.ops.start_hw(hw); >> >> hw->mac.get_link_status = true; >> >> >> >> -- >> >> 1.8.1.4 >> >