On 05/17/2016 09:52 AM, Eric Blake wrote: >>> Perhaps nbdkit should implement NBD_OPT_LIST returning just "" (the >>> default name) as its only list entry? >> >> Or "default". > > As I read the protocol, I don't see "default" as a permissible name of > the default export, just "". > > Also, we currently state that NBD_OPT_LIST has zero or more > NBD_REP_SERVER replies, which means that it is valid for the command to > succeed with NBD_REP_ACK _without_ advertising any exports at all > (rather annoying in that it tells you nothing about whether > NBD_OPT_EXPORT_NAME/NBD_OPT_GO will succeed anyways). Should we reword > that to require that if NBD_REP_ACK is sent, then at least one > NBD_REP_SERVER reply was given (where "" is the obvious name, but at the > same time where "" is not mandatory if some other name is given)? Okay, I just downloaded nbdkit code and checked; nbdkit is sending 0 entries and NBD_REP_ACK (for success), and NOT an error code; so it is implying that there are NO known export names but that the command was recognized. >> >> My interpretation of NBD_OPT_LIST failing would be 'this server >> doesn't have anything it can export'. > > Indeed, and that's why qemu as a client is currently dropping the > connection with nbdkit. Except that nbdkit is NOT failing NBD_OPT_LIST, just merely listing 0 replies. > But I would also make that interpretation for > NBD_OPT_LIST succeeding with NBD_REP_ACK with 0 NBD_REP_SERVER replies - which is the nbdkit behavior > so maybe it is worth a note in the protocol how to detect servers that > are exporting exactly one volume and don't care what name you pass, then > tweaking either nbdkit, qemu, or both to comply to that added protocol > wording. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature