On 9/17/20 8:32 AM, Richard W.M. Jones wrote:
On Fri, Sep 11, 2020 at 04:49:55PM -0500, Eric Blake wrote:
The next strict knob: allow the user to pass unknown flags across the wire (this is different than passing a known flag at the wrong time).
It is interesting to note that NBD only permits 16 bits of flags, but we have a signature that takes uint32_t; if we wanted, we could pack libnbd-specific flags in the upper bits that the NBD protocol would never see.
This is fine ACK.
About the "guard" change: I probably would have put that change in a separate commit. Also you could consider having a default_flags parameter to avoid having to set guard = None everywhere, although you would still have to make a one-off change to every *_flags. It would look like this:
let default_flags = { flag_prefix = ""; guard = None; flags = [] } ... let handshake_flags = { default_flags with flag_prefix = "HANDSHAKE_FLAG"; flags = [ ... ] }
(We already do this with "default_call"). Neither of these is a big deal though.
Splitting the patch makes sense. Also, I _did_ consider the 'default_flags with' solution before your reply, but only after I had written the email. In the short term, it is no difference in the amount of churn (adding one line to every flags definition); but in the long term, it is nicer if we ever add more items. So from that perspective, I'll go with that change. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org