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.
next prev parent 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).