[dpdk-dev] [PATCH] net/i40e: stop lldp before setting local lldp MIB

Chas Williams 3chas3 at gmail.com
Wed Aug 1 17:31:21 CEST 2018


On Wed, Aug 1, 2018 at 10:00 AM Zhang, Qi Z <qi.z.zhang at intel.com> wrote:

> Hi Williams:
>
> > -----Original Message-----
> > From: Chas Williams [mailto:3chas3 at gmail.com]
> > Sent: Wednesday, August 1, 2018 12:07 PM
> > To: dev at dpdk.org
> > Cc: Xing, Beilei <beilei.xing at intel.com>; Zhang, Qi Z <
> qi.z.zhang at intel.com>;
> > Charles (Chas) Williams <chas3 at att.com>
> > Subject: [PATCH] net/i40e: stop lldp before setting local lldp MIB
> >
> > From: "Charles (Chas) Williams" <chas3 at att.com>
> >
> > From the Intel Ethernet Controller X710/XXV710/XL710 Specifiction
> > Update:
> >
> >     Starting from NVM 5.02, if the Set Local LLDP MIB command is
> >     received while the DCBx specific agent is stopped, the command
> >     returns an EPERM error. If the command is received while the
> >     LLDP agent is stopped, it sets the local MIB without exchanging
> >     LLDP with peer, and returns SUCCESS.
> >
> > This results in the harmless, but annoying, diagnostic:
> >
> >     default dcb config fails. err = -53, aq_err = 1.
> >
> > So, always stop the lldp daemon when we are in software mode before we
> > attempt to call i40e_set_dcb_config.
> >
> > Signed-off-by: Chas Williams <chas3 at att.com>
> > ---
> >  drivers/net/i40e/i40e_ethdev.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev.c
> b/drivers/net/i40e/i40e_ethdev.c
> > index a340540ef..03bedf5c1 100644
> > --- a/drivers/net/i40e/i40e_ethdev.c
> > +++ b/drivers/net/i40e/i40e_ethdev.c
> > @@ -11237,6 +11237,7 @@ i40e_dcb_init_configure(struct rte_eth_dev
> > *dev, bool sw_dcb)
> >                * i40e_init_dcb we expect is failure with I40E_AQ_RC_EPERM
> >                * adminq status. Otherwise, it should return success.
> >                */
> > +             i40e_aq_stop_lldp(hw, TRUE, NULL);
>
> I40e_aq_stop_lldp is intended to be removed with below two patches.
>
> commit c6431c891d9e9691e3205fe5c5350071cbaeb852
> commit fcbd40d4327b36725c4de9f33f57809edc359f4a
>

Yeah about that.  The i40e driver seems to go out of its way to program the
flow
control outside of LLDP see i40e_update_flow_control()
and i40e_flow_ctrl_set().
So it's not clear to me what is going on here with DPDK and LLDP.  Do you
really
want LLDP running in this mode?  The other branch
in i40e_dcb_init_configure()
explicitly starts LLDP, so I assume at some point, LLDP wasn't/isn't
running.  How did
it get this way?  With respect to item #70, shouldn't you therefore always
start
LLDP to workaround the bug?

Item#70 is fixed in later NVM's (6.01 or later).  Perhaps a check to see if
the NVM
is new enough to safely allow LLDP stopping?




>
> Regards.
> Qi
>
>
> >               if ((ret == I40E_SUCCESS) || (ret != I40E_SUCCESS &&
> >                   hw->aq.asq_last_status == I40E_AQ_RC_EPERM)) {
> >                       memset(&hw->local_dcbx_config, 0,
> > --
> > 2.14.4
>
>


More information about the dev mailing list