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
Parav Pandit
2021-Jan-07 03:48 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 6:53 PM > > 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 ...No. Specifying mac address shouldn't be mandatory. UAPI wont' be broken.