[ovs-dev] netdev-dpdk: Support the link speed of XL710

Federico Iezzi fiezzi at redhat.com
Thu Oct 11 10:39:55 UTC 2018


So, any news on the other link speeds like 25, 50, and 100Gbps?

Thanks

On Mon, 3 Sep 2018 at 19:54, Flavio Leitner <fbl at sysclose.org> wrote:

> On Fri, Aug 31, 2018 at 05:54:25AM +0200, Federico Iezzi wrote:
> > Any comment here?
> > This seems like a very easy commit :-)
> >
> >
> >
> > On Thu, 23 Aug 2018 at 13:34, Ian Stokes <ian.stokes at intel.com> wrote:
> >
> > > On 8/22/2018 6:14 PM, Federico Iezzi wrote:
> > > > DPDK exposes API all the way from 10Mbps to 100Gbps.
> > > > http://doc.dpdk.org/api/rte__ethdev_8h_source.html
> > > >
> > > > Can other cards be added? 25G is now getting really popular.
> > > >
> > > > Thanks
> > >
> > > It’s a good point, technically there’s nothing stopping users from
> using
> > > 25/50/56/100 Gbp HW.
> > >
> > > 25/50/56 Gb are not defined specifically as a port feature rate in the
> > > openflow specifications at this time so they would have to be defined
> as
> > > NETDEV_F_OTHER to correlate to the feature rate not being in the
> > > ofp_port feature list in openflow.
> > >
> > > The following incremental on the patch below should suffice:
> > >
> > > @@ -2735,9 +2735,21 @@ netdev_dpdk_get_features(const struct netdev
> > > *netdev,
> > >           if (link.link_speed == ETH_SPEED_NUM_10G) {
> > >               *current = NETDEV_F_10GB_FD;
> > >           }
> > > +        if (link.link_speed == ETH_SPEED_NUM_25G) {
> > > +            *current = NETDEV_F_OTHER;
> > > +        }
> > >           if (link.link_speed == ETH_SPEED_NUM_40G) {
> > >               *current = NETDEV_F_40GB_FD;
> > >           }
> > > +        if (link.link_speed == ETH_SPEED_NUM_50G) {
> > > +            *current = NETDEV_F_OTHER;
> > > +        }
> > > +        if (link.link_speed == ETH_SPEED_NUM_56G) {
> > > +            *current = NETDEV_F_OTHER;
> > > +        }
> > > +        if (link.link_speed == ETH_SPEED_NUM_100G) {
> > > +            *current = NETDEV_F_100GB_FD;
> > > +        }
> > >
> > > What are peoples thoughts? I can submit this as a separate patch if
> > > preferred.
>
> That's all the supported speeds OF defines as you mentioned, but there
> are free bits there if it's important to report a more accurate speed.
>
> Alternatively we could expose that information through get_status() as
> a translated string most probably.
>
> What worries me is that 'current' variable is allocated in the stack and
> dpdk doesn't zero it like bsd or linux does, so if speed falls out of those
> values, it will use whatever was in the stack before as reported
> originally.
>
> Perhaps we could do:
>
>      uint32_t supported = 0;
>
>      if (link.link_duplex == ETH_LINK_FULL_DUPLEX) {
>           switch (link.link_speed) {
>               /* OpenFlow defined values: see enum ofp_port_features */
>               [...]
>               case ETH_SPEED_NUM_10G:
>                  supported |= NETDEV_F_10GB_FD;
>                  break;
>               case ETH_SPEED_NUM_40G:
>                  supported |= NETDEV_F_40GB_FD;
>                  break;
>               case ETH_SPEED_NUM_100G:
>                  supported |= NETDEV_F_100GB_FD
>                  break;
>               default:
>                 supported |= NETDEV_F_OTHER;
>           }
>      else if (link.link_duplex == ETH_LINK_HALF_DUPLEX) {
>               [...]
>      }
>
>      if (link.link_autoneg) {
>          supported |= NETDEV_F_AUTONEG;
>      }
>
>      *current = supported;
>      *advertised = *supported = *peer = 0;
>
>      return 0;
>
>
> fbl
>
> > >
> > > Thanks
> > > Ian
> > >
> > > Ian
> > >
> > > >
> > > > On Wed, 22 Aug 2018 at 16:28, Stokes, Ian <ian.stokes at intel.com
> > > > <mailto:ian.stokes at intel.com>> wrote:
> > > >
> > > >      > In the scenario of XL710, the link speed which stored in the
> > > table of
> > > >      > Interface is not 40G. Because the implementation of query of
> link
> > > >     speed
> > > >      > only support to 10G, the parameter 'current' will be a random
> > > >     value in the
> > > >      > scenario of higher link speed. In this case, incorrect link
> speed
> > > >     of XL710
> > > >      > nic will be stored in the database.
> > > >      >
> > > >
> > > >     Good catch, I've tested and it works as expected. I'll add this
> to
> > > >     the dpdk_merge pull request for this week and backport it to the
> > > >     previous release branches also.
> > > >
> > > >     Thanks
> > > >     Ian
> > > >
> > > >      > Signed-off-by: Xu Binbin <xu.binbin1 at zte.com.cn
> > > >     <mailto:xu.binbin1 at zte.com.cn>>
> > > >      > ---
> > > >      >  lib/netdev-dpdk.c | 3 +++
> > > >      >  1 file changed, 3 insertions(+)
> > > >      >
> > > >      > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index
> > > >     ac02a09..e4b6ced
> > > >      > 100644
> > > >      > --- a/lib/netdev-dpdk.c
> > > >      > +++ b/lib/netdev-dpdk.c
> > > >      > @@ -2735,6 +2735,9 @@ netdev_dpdk_get_features(const struct
> netdev
> > > >      > *netdev,
> > > >      >          if (link.link_speed == ETH_SPEED_NUM_10G) {
> > > >      >              *current = NETDEV_F_10GB_FD;
> > > >      >          }
> > > >      > +        if (link.link_speed == ETH_SPEED_NUM_40G) {
> > > >      > +            *current = NETDEV_F_40GB_FD;
> > > >      > +        }
> > > >      >      }
> > > >      >
> > > >      >      if (link.link_autoneg) {
> > > >      > --
> > > >      > 1.8.3.1
> > > >      >
> > > >      > _______________________________________________
> > > >      > dev mailing list
> > > >      > dev at openvswitch.org <mailto:dev at openvswitch.org>
> > > >      > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> > > >     _______________________________________________
> > > >     dev mailing list
> > > >     dev at openvswitch.org <mailto:dev at openvswitch.org>
> > > >     https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> > > >
> > >
> > >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
> --
> Flavio
>
>
>


More information about the dev mailing list