DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: "Morten Brørup" <mb@smartsharesystems.com>
Cc: "Ivan Dyukov" <i.dyukov@samsung.com>,
	"Thomas Monjalon" <thomas@monjalon.net>,
	"Ferruh Yigit" <ferruh.yigit@intel.com>,
	"Andrew Rybchenko" <arybchenko@solarflare.com>, <dev@dpdk.org>,
	"Matan Azrad" <matan@mellanox.com>,
	"Benoit Ganne (bganne)" <bganne@cisco.com>,
	<maxime.coquelin@redhat.com>, <tiwei.bie@intel.com>,
	<amorenoz@redhat.com>, <zhihong.wang@intel.com>,
	<xiaolong.ye@intel.com>
Subject: Re: [dpdk-dev] [RFC] ethdev: use special speed for virtual Ethernetdevices
Date: Thu, 2 Apr 2020 08:29:56 -0700	[thread overview]
Message-ID: <20200402082956.7ce3b7d3@hermes.lan> (raw)
In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35C60F3A@smartserver.smartshare.dk>

On Thu, 2 Apr 2020 15:50:00 +0200
Morten Brørup <mb@smartsharesystems.com> wrote:

> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ivan Dyukov
> > Sent: Thursday, April 2, 2020 2:54 PM
> > 
> > 01.04.2020 13:06, Morten Brørup пишет:  
> > >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> > >> Sent: Wednesday, April 1, 2020 11:54 AM
> > >>
> > >> 01/04/2020 11:33, Morten Brørup:  
> > >>> Thomas, Ferruh, Andrew (Ethernet API Maintainers),
> > >>>
> > >>> A command line option was recently added to set which speed a vNIC  
> > >> reports when the link is up. This makes sense for Spanning Tree and
> > >> other protocols which depend on link speed.
> > >>
> > >> Please could you reference the patch?  
> > > It is a patch for the virtio driver:
> > > https://protect2.fireeye.com/url?k=e37beb37-beabe3df-e37a6078-  
> > 000babff32e3-
> > 4aaaa0986ed7ec57&u=http://inbox.dpdk.org/dev/20191212085012.9170-1-
> > i.dyukov@samsung.com/T/#m052f90ea8c559406aeaefaea1fc24ed9bb573788
> > This patch is related to similar work in qemu & kernel virtio driver.
> > Please see
> > https://lists.oasis-open.org/archives/virtio-
> > comment/201911/msg00058.html.
> > These changes have been implemented and released in kernel and qemu.
> > speed is negotiated from qemu and then user may change the speed of
> > virtio device using ethtool utility. I have added similiar patchset for
> > pmd driver which do the same but for changing speed I used devargs
> > instead of ethtool.  
> 
> Very interesting link, indeed!
> 
> It gives the virtio driver the possibility to expose a specific speed in Mbit/s, which I assume - when used correctly - should reflect the speed of the underlying hardware. So it could be 20 Gbit/s for a link aggregate (in IEEE 802.3 Ethernet terminology; "bond" in Linux terminology) of two 10G ports.
> 
> It also provides a special value for unknown speed.
> 
> > >  
> > >>> However, I suspect that this workaround rarely reflects the  
> > physical  
> > >> truth, and suggest that the application should handle it instead.
> > >>
> > >> I don't understand why we need to define some speed for virtual
> > >> devices.
> > >>  
> > >>> In other words... Instead of faking it in the virtual Ethernet  
> > >> drivers, I suggest that rte_ethdev.h defines a special speed value  
> > for  
> > >> vNICs which really don't have a physical link speed:  
> > >>> #define ETH_SPEED_NUM_NONE         0 /**< Not defined */  
> > >> The only issue with this constant is the lack of RTE_ prefix :-)
> > >> Otherwise I think "0 - NONE - not defined" fits well with virtual
> > >> device case.
> > >>  
> > >>> +#define ETH_SPEED_NUM_UNKNOWN      1 /**< Unknown (virtual device)  
> > >> */
> > >>
> > >> 1 means 1 Mbps
> > >>  
> > >>> #define ETH_SPEED_NUM_10M         10 /**<  10 Mbps */
> > >>>
> > >>> Alternatively, we could expand the meaning of ETH_SPEED_NUM_NONE:
> > >>>
> > >>> -#define ETH_SPEED_NUM_NONE         0 /**< Not defined */
> > >>> +#define ETH_SPEED_NUM_NONE         0 /**< Not defined or unknown  
> > >> (virtual device) */
> > >>
> > >> Yes I agree with extending the comment for NONE.
> > >>  
> > >>> The special value could also be used in cases like this:
> > >>>  
> > >> https://protect2.fireeye.com/url?k=6154668d-3c846e65-6155edc2-  
> > 000babff32e3-
> > bf63d034253cac80&u=http://inbox.dpdk.org/dev/AM0PR0502MB401907ADE7CEA27
> > DC642DF35D2CB0@AM0P  
> > >> R0502MB4019.eurprd05.prod.outlook.com/T/#t
> > >>
> > >> Yes, if speed is unknown, it should be reported as 0.  
> 
> Could the DPDK vNIC PMDs be updated accordingly? At least the virtio driver...
> 
> > > So the next related question is: Should a vNIC be allowed to report a  
> > fake speed if it does not know that the underlying hardware actually
> > provides this speed?  
> 
> Your link to the Kernel/QEMU patch answers this question: Yes, because we assume it reflects the underlying speed.
> 
> 

The problem is that if devices start returning this new value,
then it is an API breakage for existing applications that look at speed.

  reply	other threads:[~2020-04-02 15:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-01  9:33 [dpdk-dev] [RFC] ethdev: use special speed for virtual Ethernet devices Morten Brørup
2020-04-01  9:53 ` Thomas Monjalon
2020-04-01 10:03   ` Benoit Ganne (bganne)
2020-04-01 10:06   ` [dpdk-dev] [RFC] ethdev: use special speed for virtual Ethernetdevices Morten Brørup
2020-04-02 12:54     ` Ivan Dyukov
2020-04-02 13:50       ` Morten Brørup
2020-04-02 15:29         ` Stephen Hemminger [this message]
2020-04-02 20:41         ` Ivan Dyukov
2020-04-02 20:58           ` Thomas Monjalon
2020-04-03  8:05             ` Ivan Dyukov
2020-04-03  9:45               ` Morten Brørup
2020-04-03 11:01                 ` Thomas Monjalon
2020-04-07 22:26                 ` [dpdk-dev] [PATCH 0/2] ethdev link speed Thomas Monjalon
2020-04-07 22:26                   ` [dpdk-dev] [PATCH 1/2] ethdev: deduplicate functions to get link infos Thomas Monjalon
2020-04-08  5:21                     ` Asaf Penso
2020-04-08 12:49                       ` Thomas Monjalon
2020-04-13 14:14                     ` Andrew Rybchenko
2020-04-07 22:26                   ` [dpdk-dev] [PATCH 2/2] ethdev: allow unknown link speed Thomas Monjalon
2020-04-08  5:39                     ` Jerin Jacob
2020-04-10 10:53                     ` Morten Brørup
2020-04-13 14:26                     ` Andrew Rybchenko
2020-04-16 13:42                       ` Ferruh Yigit
2020-04-26 11:44                     ` Matan Azrad

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200402082956.7ce3b7d3@hermes.lan \
    --to=stephen@networkplumber.org \
    --cc=amorenoz@redhat.com \
    --cc=arybchenko@solarflare.com \
    --cc=bganne@cisco.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=i.dyukov@samsung.com \
    --cc=matan@mellanox.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=mb@smartsharesystems.com \
    --cc=thomas@monjalon.net \
    --cc=tiwei.bie@intel.com \
    --cc=xiaolong.ye@intel.com \
    --cc=zhihong.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).