[dpdk-dev] [PATCH] net/ixgbe: support detection of hot swapped SFP/SFP+
Lu, Wenzhuo
wenzhuo.lu at intel.com
Mon Apr 24 09:15:36 CEST 2017
Hi Srini,
> -----Original Message-----
> From: Srinivasan J [mailto:srinidpdk at gmail.com]
> Sent: Monday, April 24, 2017 2:24 PM
> To: Lu, Wenzhuo
> Cc: Ananyev, Konstantin; dev at 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.lu at intel.com>
> wrote:
> > Hi Srini,
> >
> >> -----Original Message-----
> >> From: Srini J [mailto:srinidpdk at gmail.com]
> >> Sent: Thursday, April 20, 2017 6:48 PM
> >> To: Lu, Wenzhuo; Ananyev, Konstantin
> >> Cc: dev at dpdk.org; Srinivasan Jayarajan
> >> Subject: [PATCH] net/ixgbe: support detection of hot swapped SFP/SFP+
> >>
> >> 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;
> >> + }
> >> +
> > 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
> >
More information about the dev
mailing list