From: Jason Wang <jasowang@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: Eli Cohen <elic@nvidia.com>,
"virtualization@lists.linux-foundation.org"
<virtualization@lists.linux-foundation.org>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [PATCH linux-next v3 0/6] vdpa: enable user to set mac, mtu
Date: Mon, 9 Aug 2021 15:05:31 +0800 [thread overview]
Message-ID: <CACGkMEvqOBL40h7wRq9atZ=L6DwR_CuSE_ZTZ4aMHnuSxNbKSw@mail.gmail.com> (raw)
In-Reply-To: <PH0PR12MB54813DD5B2E36DEF5364C1A5DCF69@PH0PR12MB5481.namprd12.prod.outlook.com>
On Mon, Aug 9, 2021 at 2:10 PM Parav Pandit <parav@nvidia.com> wrote:
>
>
>
> > From: Eli Cohen <elic@nvidia.com>
> > Sent: Monday, August 9, 2021 11:38 AM
> >
> > On Mon, Aug 09, 2021 at 09:01:48AM +0300, Parav Pandit wrote:
> > >
> > >
> > > > From: Eli Cohen <elic@nvidia.com>
> > > > Sent: Monday, August 9, 2021 11:28 AM
> > > >
> > > > On Mon, Aug 09, 2021 at 08:42:58AM +0300, Parav Pandit wrote:
> > > > >
> > > > >
> > > > > > From: Eli Cohen <elic@nvidia.com>
> > > > > > Sent: Monday, August 9, 2021 10:51 AM
> > > > > >
> > > > > > On Mon, Aug 09, 2021 at 11:07:50AM +0800, Jason Wang wrote:
> > > > > > >
> > > > > > > 在 2021/8/6 下午4:55, Parav Pandit 写道:
> > > > > > > >
> > > > > > > > > From: Michael S. Tsirkin <mst@redhat.com>
> > > > > > > > > Sent: Friday, August 6, 2021 2:12 PM
> > > > > > > >
> > > > > > > > > > enum vdpa_attr {
> > > > > > > > > > @@ -33,6 +34,16 @@ enum vdpa_attr {
> > > > > > > > > > VDPA_ATTR_DEV_MAX_VQS, /* u32 */
> > > > > > > > > > VDPA_ATTR_DEV_MAX_VQ_SIZE, /* u16 */
> > > > > > > > > > + VDPA_ATTR_DEV_NET_CFG_MACADDR,
> > /*
> > > > > > binary */
> > > > > > > > > > + VDPA_ATTR_DEV_NET_STATUS, /* u8
> > */
> > > > > > > > > > + VDPA_ATTR_DEV_NET_CFG_MAX_VQP,
> > /*
> > > > > > u16 */
> > > > > > > > > > + VDPA_ATTR_DEV_NET_CFG_MTU, /*
> > u16 */
> > > > > > > > > > + VDPA_ATTR_DEV_NET_CFG_SPEED, /*
> > u16 */
> > > > > > > > > > + VDPA_ATTR_DEV_NET_CFG_DUPLEX, /*
> > u16 */
> > > > > > > > > > + VDPA_ATTR_DEV_NET_CFG_RSS_MAX_KEY_LEN,
> > /* u8
> > > > > > */
> > > > > > > > > > + VDPA_ATTR_DEV_NET_CFG_RSS_MAX_IT_LEN,
> > /*
> > > > > > u16 */
> > > > > > > > > > + VDPA_ATTR_DEV_NET_CFG_RSS_HASH_TYPES,
> > /*
> > > > > > u32 */
> > > > > > > > > > +
> > > > > > > > > > /* new attributes must be added above here */
> > > > > > > > > > VDPA_ATTR_MAX,
> > > > > > > > > > };
> > > > > > > > > The point is to try and not reinvent a dedicated vpda
> > > > > > > > > interface where a generic one exits.
> > > > > > > > > E.g. for phy things such as mac speed etc, I think most
> > > > > > > > > people are using ethtool things right?
> > > > > > > > As you know vdpa is the backend device for the front-end
> > > > > > > > netdevice
> > > > > > accessed by the ethtool.
> > > > > > > > vdpa management tool here is composing the vdpa device.
> > > > > > > >
> > > > > > > > For example creator (hypervisor) of the vdpa devices knows
> > > > > > > > that a guest VM is given 4 vcpus, So hypervisor creates a
> > > > > > > > vdpa devices with config space layout as, max_virtqueue_pairs =
> > 4.
> > > > > > > > And the MAC address chosen by hypervisor in mac[6].
> > > > > > > >
> > > > > > > > Guest VM ethtool can still chose to use less number of channels.
> > > > > > > >
> > > > > > > > Typically,
> > > > > > > > ethtool is for guest VM.
> > > > > > > > vdpa device is in hypevisor.
> > > > > > > >
> > > > > > > > How can hypervisor compose a vdpa device without any tool?
> > > > > > > > How can it tell ethtool, what is supported and what are the
> > defaults?
> > > > > > >
> > > > > > >
> > > > > > > Reread the cover letter:
> > > > > > >
> > > > > > > "
> > > > > > >
> > > > > > > This patchset enables users to set the mac address and mtu of
> > > > > > > the vdpa device once the device is created.
> > > > > > >
> > > > > > > "
> > > > > > >
> > > > > > > It looks to me the mechanism that introduced in the series is
> > > > > > > not for provisioning but for post-creation configuration?
> > > > > > >
> > > > > >
> > > > > > The difference is subtle. In both cases you provide configuration.
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > I must be misunderstanding your comment about ethtool.
> > > > > > > > Can you please explain?
> > > > > > >
> > > > > > >
> > > > > > > I guess the meaning is that, if the vDPA is assigned to guest,
> > > > > > > it's the charge of guest to configure the MTU/MAC/RSS via the
> > > > > > > existing management interface like ethtool/iproute2 netlink
> > > > > > > protocol. The control virtqueue is designed for this.
> > > > > > >
> > > > > >
> > > > > > I was under the impression that we want somehow to control the
> > > > > > capablity if the guest to use arbitrary MAC addresses.
> > > > > > If this is is not required than I think control VQ is the mechanism to
> > use.
> > > > > How does the guest VM identify which unique mac address to set on
> > > > > this
> > > > virtio net device when this is the only device in the VM?
> > > > > Usually hypervisor knows what mac to set for a VM.
> > > >
> > > > You don't need to know. You could use any MAC you want, if no one
> > > > else is using it in your subnet, and everything will work fine. The
> > > > point is do you want to allow the guest to choose its MAC. This has
> > implications of security.
> > > >
> > > Lets assume for a moment that a guest VM is able to program a MAC of
> > netdevice of virtio_device of net type.
> > > How does a VM know that a randomly chosen mac is not used in network
> > when this VM doesn’t have any external connectivity?
> >
> > There's no gurantee
> Hence a VF users, relies on the hypervisor to setup a unique MAC in the network.
>
> And advance guest VM who has a device capable to modify the MAC (for bonding and other use) can override the mac.
>
> So I don’t see them as mutually exclusive capability.
Yes, we probably need both.
CVQ for post creation configuration and netlink API for provisioning.
>
> > but it's being used all over and Linux has a specific API to
> > generate random MAC addresses: eth_hw_addr_random().
Yes, but it uses local assignment bit, management may want use others.
Thanks
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2021-08-09 7:05 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-16 19:11 [PATCH linux-next v3 0/6] vdpa: enable user to set mac, mtu Parav Pandit
2021-06-16 19:11 ` [PATCH linux-next v3 1/6] vdpa: Introduce and use vdpa device get, set config helpers Parav Pandit
2021-06-22 7:08 ` Jason Wang
2021-06-16 19:11 ` [PATCH linux-next v3 2/6] vdpa: Introduce query of device config layout Parav Pandit
2021-06-22 7:20 ` Jason Wang
2021-06-22 14:03 ` Parav Pandit
2021-06-23 4:08 ` Jason Wang
2021-06-23 4:22 ` Parav Pandit
2021-06-24 5:43 ` Jason Wang
2021-06-24 6:29 ` Parav Pandit
2021-06-24 7:05 ` Jason Wang
2021-06-24 7:59 ` Parav Pandit
2021-06-25 3:28 ` Jason Wang
2021-06-25 6:45 ` Parav Pandit
2021-06-28 5:03 ` Jason Wang
2021-06-28 10:56 ` Parav Pandit
2021-06-29 3:52 ` Jason Wang
2021-06-29 9:49 ` Parav Pandit
2021-06-30 4:31 ` Jason Wang
2021-06-30 6:03 ` Parav Pandit
2021-07-01 3:34 ` Jason Wang
2021-07-01 7:00 ` Parav Pandit
2021-07-01 7:43 ` Jason Wang
2021-07-02 6:04 ` Parav Pandit
2021-07-05 4:35 ` Jason Wang
2021-07-06 17:07 ` Parav Pandit
2021-07-07 4:03 ` Jason Wang
2021-06-28 22:39 ` Michael S. Tsirkin
2021-06-29 3:41 ` Jason Wang
2021-06-29 20:01 ` Michael S. Tsirkin
2021-06-30 3:46 ` Jason Wang
2021-06-16 19:11 ` [PATCH linux-next v3 3/6] vdpa: Enable user to set mac and mtu of vdpa device Parav Pandit
2021-06-22 7:43 ` Jason Wang
2021-06-22 14:09 ` Parav Pandit
2021-06-16 19:11 ` [PATCH linux-next v3 4/6] vdpa_sim_net: Enable user to set mac address and mtu Parav Pandit
2021-06-16 19:11 ` [PATCH linux-next v3 5/6] vdpa/mlx5: Support configuration of MAC Parav Pandit
2021-06-16 19:11 ` [PATCH linux-next v3 6/6] vdpa/mlx5: Forward only packets with allowed MAC address Parav Pandit
2021-08-05 9:57 ` [PATCH linux-next v3 0/6] vdpa: enable user to set mac, mtu Michael S. Tsirkin
2021-08-05 10:13 ` Parav Pandit via Virtualization
2021-08-05 12:05 ` Michael S. Tsirkin
2021-08-06 2:50 ` Jason Wang
2021-08-06 8:42 ` Michael S. Tsirkin
2021-08-06 8:55 ` Parav Pandit via Virtualization
2021-08-09 3:07 ` Jason Wang
2021-08-09 3:13 ` Parav Pandit via Virtualization
2021-08-09 3:29 ` Jason Wang
[not found] ` <20210809052121.GA209158@mtl-vdi-166.wap.labs.mlnx>
2021-08-09 5:42 ` Parav Pandit via Virtualization
[not found] ` <20210809055748.GA210406@mtl-vdi-166.wap.labs.mlnx>
2021-08-09 6:01 ` Parav Pandit via Virtualization
[not found] ` <20210809060746.GA210718@mtl-vdi-166.wap.labs.mlnx>
2021-08-09 6:10 ` Parav Pandit via Virtualization
2021-08-09 7:05 ` Jason Wang [this message]
2021-08-16 20:51 ` Michael S. Tsirkin
2021-08-09 9:40 ` Michael S. Tsirkin
2021-08-09 9:51 ` Parav Pandit via Virtualization
2021-08-16 20:54 ` Michael S. Tsirkin
2021-08-18 3:14 ` Parav Pandit via Virtualization
2021-08-18 4:31 ` Jason Wang
2021-08-18 4:36 ` Parav Pandit via Virtualization
2021-08-19 4:18 ` Jason Wang
2021-08-18 17:33 ` Michael S. Tsirkin
2021-08-19 4:22 ` Jason Wang
2021-08-19 5:23 ` Parav Pandit via Virtualization
2021-08-19 7:15 ` Jason Wang
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='CACGkMEvqOBL40h7wRq9atZ=L6DwR_CuSE_ZTZ4aMHnuSxNbKSw@mail.gmail.com' \
--to=jasowang@redhat.com \
--cc=elic@nvidia.com \
--cc=mst@redhat.com \
--cc=parav@nvidia.com \
--cc=virtualization@lists.linux-foundation.org \
/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).