Subject: Re: [PATCH linux-next v3 6/6] vdpa_sim_net: Add support for user supported devices

From: "Michael S. Tsirkin" <[email-masked]>
Date: Tue, 5 Jan 2021 08:23:28 -0500

On Tue, Jan 05, 2021 at 12:30:15PM +0000, Parav Pandit wrote:
> 
> 
> > From: Michael S. Tsirkin <[email-masked]>
> > Sent: Tuesday, January 5, 2021 5:45 PM
> > 
> > On Tue, Jan 05, 2021 at 12:02:33PM +0000, Parav Pandit wrote:
> > >
> > >
> > > > From: Michael S. Tsirkin <[email-masked]>
> > > > Sent: Tuesday, January 5, 2021 5:19 PM
> > > >
> > > > On Tue, Jan 05, 2021 at 12:32:03PM +0200, Parav Pandit wrote:
> > > > > Enable user to create vdpasim net simulate devices.
> > > > >
> > > > >
> > >
> > > > > $ vdpa dev add mgmtdev vdpasim_net name foo2
> > > > >
> > > > > Show the newly created vdpa device by its name:
> > > > > $ vdpa dev show foo2
> > > > > foo2: type network mgmtdev vdpasim_net vendor_id 0 max_vqs 2
> > > > > max_vq_size 256
> > > > >
> > > > > $ vdpa dev show foo2 -jp
> > > > > {
> > > > >     "dev": {
> > > > >         "foo2": {
> > > > >             "type": "network",
> > > > >             "mgmtdev": "vdpasim_net",
> > > > >             "vendor_id": 0,
> > > > >             "max_vqs": 2,
> > > > >             "max_vq_size": 256
> > > > >         }
> > > > >     }
> > > > > }
> > > >
> > > >
> > > > I'd like an example of how do device specific (e.g. net specific)
> > > > interfaces tie in to this.
> > > Not sure I follow your question.
> > > Do you mean how to set mac address or mtu of this vdpa device of type
> > net?
> > > If so, dev add command will be extended shortly in subsequent series to
> > set this net specific attributes.
> > > (I did mention in the next steps in cover letter).
> > >
> > > > > +static int __init vdpasim_net_init(void) {
> > > > > +	int ret;
> > > > > +
> > > > > +	if (macaddr) {
> > > > > +		mac_pton(macaddr, macaddr_buf);
> > > > > +		if (!is_valid_ether_addr(macaddr_buf))
> > > > > +			return -EADDRNOTAVAIL;
> > > > > +	} else {
> > > > > +		eth_random_addr(macaddr_buf);
> > > > >  	}
> > > >
> > > > Hmm so all devices start out with the same MAC until changed? And
> > > > how is the change effected?
> > > Post this patchset and post we have iproute2 vdpa in the tree, will add the
> > mac address as the input attribute during "vdpa dev add" command.
> > > So that each different vdpa device can have user specified (different) mac
> > address.
> > 
> > For now maybe just avoid VIRTIO_NET_F_MAC then for new devices then?
> 
> That would require book keeping existing net vdpa_sim devices created to avoid setting VIRTIO_NET_F_MAC.
> Such book keeping code will be short lived anyway.
> Not sure if its worth it.
> Until now only one device was created. So not sure two vdpa devices with same mac address will be a real issue.
> 
> When we add mac address attribute in add command, at that point also remove the module parameter macaddr.

Will that be mandatory? I'm not to happy with a UAPI we intend to break
straight away ...

-- 
MST