On Mon, Sep 07, 2020 at 12:48:21 +0100, Daniel Berrange wrote: > On Mon, Sep 07, 2020 at 01:45:09PM +0200, Gerd Hoffmann wrote: > > Hi, [...] > > > 1. doing this transparently with a controller per device, just like the > > > usb-storage controller does internally (ok - it's just a scsi-cd there), > > > even if the usb-bot supports multiple LUNs. Guess multiple LUNs would > > > act like an USB hub? > > > > usb-storage simply doesn't support multiple LUNs, so when going that > > route you can completely ignore the multiple LUN case. > > > > > 2. invalidating the cdrom with USB addresses configurations and exposing > > > the controller in the XML. This seems easier from the libvirt code POV, > > > like: > > > > > > <controller type='scsi' model='usb-bot'> > > > <address type='usb' port='1'/> > > > </controller> > > > > Yep, that is the other obvious approach. > > > > > So I still would like to see my much simpler solution merged. > > > > See above, but I'm not a libvirt maintainer so that's not for me to > > judge. I'm just pointing out that this can be fixed without switching > > back to the old -drive syntax. > > Switching back to -drive is out of the question. We've worked very hard > to eliminate its usage and get to an exclusively -blockdev based solution > because supporting both approaches in parallel complicates too much. Yes, indeed. We theoretically can emulate a complex device consisting of a USB-bot device including the cdrom for this including the hotplug operations in a single step. I will need to investigate this, but I'm backed up on my email as I was on vacation.