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