[dpdk-dev] [PATCH v13 6/8] ethdev: redesign link speed config

Marc marcdevel at gmail.com
Wed Mar 30 09:59:30 CEST 2016


On 29 March 2016 at 08:18, Xing, Beilei <beilei.xing at intel.com> wrote:

>
>
> > -----Original Message-----
> > From: Marc Sune [mailto:marcdevel at gmail.com]
> > Sent: Saturday, March 26, 2016 9:27 AM
> > To: Thomas Monjalon <thomas.monjalon at 6wind.com>; Xu, Qian Q
> > <qian.q.xu at intel.com>; Xing, Beilei <beilei.xing at intel.com>;
> dev at dpdk.org;
> > Ananyev, Konstantin <konstantin.ananyev at intel.com>; Lu, Wenzhuo
> > <wenzhuo.lu at intel.com>; Richardson, Bruce <bruce.richardson at intel.com>;
> > Glynn, Michael J <michael.j.glynn at intel.com>
> > Cc: Marc Sune <marcdevel at gmail.com>
> > Subject: [PATCH v13 6/8] ethdev: redesign link speed config
> >
>
> > a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
> > index a98e8eb..6cc2da0 100644
> > --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> > @@ -2193,32 +2195,21 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> >       if (err)
> >               goto error;
> >
> > +     speed = 0x0;
> > +     if (*link_speeds & ETH_LINK_SPEED_10G)
> > +             speed |= IXGBE_LINK_SPEED_10GB_FULL;
> > +     if (*link_speeds & ETH_LINK_SPEED_1G)
> > +             speed |= IXGBE_LINK_SPEED_1GB_FULL;
> > +     if (*link_speeds & ETH_LINK_SPEED_100M)
> > +             speed |= IXGBE_LINK_SPEED_100_FULL;
> > +
> >       err = ixgbe_setup_link(hw, speed, link_up);
> >       if (err)
> >               goto error;
>
> Hi Marc,
> According to ixgbe HW, link speed shouldn't be 0 when setting up,
> Otherwise device will start fail. So we need to set speed if link_speed
> is ETH_LINK_SPEED_AUTONEG. Following code is for reference.
>
>         speed = 0x0;
>         if ((*link_speeds & 0x1) == ETH_LINK_SPEED_AUTONEG)
>                 speed = (hw->mac.type != ixgbe_mac_82598EB) ?
>                         IXGBE_LINK_SPEED_82599_AUTONEG :
>                         IXGBE_LINK_SPEED_82598_AUTONEG;
>         else {
>                 if (*link_speeds & ETH_LINK_SPEED_10G)
>                         speed |= IXGBE_LINK_SPEED_10GB_FULL;
>                 if (*link_speeds & ETH_LINK_SPEED_1G)
>                         speed |= IXGBE_LINK_SPEED_1GB_FULL;
>                 if (*link_speeds & ETH_LINK_SPEED_100M)
>                         speed |= IXGBE_LINK_SPEED_100_FULL;
>         }
>

Beilei,

OK, thanks.

Can you/someone please try v13 + this modification, so that we make sure
this is the final version for ixgbe?

Regards
Marc


>
> Beilei Xing
> Thanks
>


More information about the dev mailing list