On 03/24/2016 02:26 AM, Wouter Verhelst wrote: >> No, there is no specific reason. Looks like NBD_CMD_FLAG_ZEROES fits the >> spec and implementations nicely. So I'll rewrite the extension and add >> the flag instead of the whole command. > > Actually, having given this some more thought... > > There is at least one server-side implementation of nbd (mine) which > silently ignores flags it doesn't know about. This isn't a problem for > non-critical flags, but it could be a problem for a flag like this. Of > course, a client shouldn't send a flag to a server which that server > hasn't heard of, but mistakes do happen. This is the first time where the presence or absence of a flag would determine whether the length of the payload should be 0 bytes or len bytes. If the server doesn't recognize the flag, then it will try to read the next length bytes off the wire as the data to write, rather than as the next command to process. > > Do we want to keep that in mind? If so, we might want to keep it as a > separate command after all. > > OTOH, it could be said that silently ignoring unknown messages is a bug. > I should probably just fix my implementation instead. While I agree that you should fix your implementation, I am strongly in favor of a new command, so that we can blindly state that the NBD_CMD_WRITE always sends a payload of length bytes, independent of flag value. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org