Re: [Qemu-devel] BLOCK_STATUS extension

2018-02-14 Thread Vladimir Sementsov-Ogievskiy

14.02.2018 17:56, Eric Blake wrote:

[using the updated nbd list email]

On 02/14/2018 08:35 AM, Vladimir Sementsov-Ogievskiy wrote:

Hi all.

Just note: looks like we allow zero-sized metadata context name. Is 
it ok?


  *

    |NBD_REP_META_CONTEXT| (4)

    A description of a metadata context. Data:

  o 32 bits, NBD metadata context ID.
  o String, name of the metadata context. This is not required to be
    a human-readable string, but it MUST be valid UTF-8 data.


No; elsewhere we state:



Metadata contexts are identified by their names. The name MUST 
consist of a namespace, followed by a colon, followed by a leaf-name. 
The namespace must consist entirely of printable non-whitespace UTF-8 
characters other than colons, and be non-empty. The entire name 
(namespace, colon, and leaf-name) MUST follow the restrictions for 
strings as laid out earlier in this document.


Namespaces MUST be consist of one of the following:

    base, for metadata contexts defined by this document;
    nbd-server, for metadata contexts defined by the implementation 
that accompanies this document (none currently);
    x-*, where * can be replaced by an arbitrary string not 
containing colons, for local experiments. This SHOULD NOT be used by 
metadata contexts that are expected to be widely used.

    A third-party namespace from the list below.



So a name must be at least 2 bytes (for a one-byte namespace, if 
someone ever registers one - and supposing that namespace has 
zero-byte leaf names), but will more commonly be even longer.




Ok, thank you.

--
Best regards,
Vladimir




Re: [Qemu-devel] BLOCK_STATUS extension

2018-02-14 Thread Eric Blake

[using the updated nbd list email]

On 02/14/2018 08:35 AM, Vladimir Sementsov-Ogievskiy wrote:

Hi all.

Just note: looks like we allow zero-sized metadata context name. Is it ok?

  *

    |NBD_REP_META_CONTEXT| (4)

    A description of a metadata context. Data:

  o 32 bits, NBD metadata context ID.
  o String, name of the metadata context. This is not required to be
    a human-readable string, but it MUST be valid UTF-8 data.


No; elsewhere we state:



Metadata contexts are identified by their names. The name MUST consist of a 
namespace, followed by a colon, followed by a leaf-name. The namespace must 
consist entirely of printable non-whitespace UTF-8 characters other than 
colons, and be non-empty. The entire name (namespace, colon, and leaf-name) 
MUST follow the restrictions for strings as laid out earlier in this document.

Namespaces MUST be consist of one of the following:

base, for metadata contexts defined by this document;
nbd-server, for metadata contexts defined by the implementation that 
accompanies this document (none currently);
x-*, where * can be replaced by an arbitrary string not containing colons, 
for local experiments. This SHOULD NOT be used by metadata contexts that are 
expected to be widely used.
A third-party namespace from the list below.



So a name must be at least 2 bytes (for a one-byte namespace, if someone 
ever registers one - and supposing that namespace has zero-byte leaf 
names), but will more commonly be even longer.


--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



[Qemu-devel] BLOCK_STATUS extension

2018-02-14 Thread Vladimir Sementsov-Ogievskiy

Hi all.

Just note: looks like we allow zero-sized metadata context name. Is it ok?

 *

   |NBD_REP_META_CONTEXT| (4)

   A description of a metadata context. Data:

 o 32 bits, NBD metadata context ID.
 o String, name of the metadata context. This is not required to be
   a human-readable string, but it MUST be valid UTF-8 data.



--
Best regards,
Vladimir