Parav Pandit
2021-Jan-05 12:30 UTC
[PATCH linux-next v3 6/6] vdpa_sim_net: Add support for user supported devices
> From: Michael S. Tsirkin <mst at redhat.com> > 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 <mst at redhat.com> > > > 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.
Michael S. Tsirkin
2021-Jan-05 13:23 UTC
[PATCH linux-next v3 6/6] vdpa_sim_net: Add support for user supported devices
On Tue, Jan 05, 2021 at 12:30:15PM +0000, Parav Pandit wrote:> > > > From: Michael S. Tsirkin <mst at redhat.com> > > 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 <mst at redhat.com> > > > > 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