[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [RFC v2 for-2.9 08/10] nbd: Tidy up blockdev-add interf
From: |
Max Reitz |
Subject: |
Re: [Qemu-block] [RFC v2 for-2.9 08/10] nbd: Tidy up blockdev-add interface |
Date: |
Thu, 30 Mar 2017 18:31:18 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 30.03.2017 15:15, Markus Armbruster wrote:
> SocketAddress is a simple union, and simple unions are awkward: they
> have their variant members wrapped in a "data" object on the wire, and
> require additional indirections in C. I intend to limit its use to
> existing external interfaces, and convert all internal interfaces to
> SocketAddressFlat.
>
> BlockdevOptionsNbd is an external interface using SocketAddress. We
> already use SocketAddressFlat elsewhere in blockdev=add. Replace it
s/=/-/
> by SocketAddressFlat while we can (it's new in 2.9) for simplicity and
> consistency. For example,
>
> { "execute": "blockdev-add",
> "arguments": { "node-name": "foo", "driver": "nbd",
> "server": { "type": "inet",
> "data": { "host": "localhost",
> "port": "12345" } } } }
>
> becomes
>
> { "execute": "blockdev-add",
> "arguments": { "node-name": "foo", "driver": "nbd",
> "server": { "type": "inet",
> "host": "localhost", "port": "12345" } } }
>
> Since the internal interfaces still take SocketAddress, this requires
> conversion function socket_address_crumple(). It'll go away when I
> update the interfaces.
>
> Unfortunately, SocketAddress is also visible in -drive since 2.8. Add
> still more gunk to nbd_process_legacy_socket_options(). You can now
> shorten
>
> -drive
> if=none,driver=nbd,server.type=inet,server.data.host=127.0.0.1,server.data.port=12345
>
> to
>
> -drive
> if=none,driver=nbd,server.type=inet,server.host=127.0.0.1,server.port=12345
>
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
> block/nbd.c | 94
> +++++++++++++++++++++++++++++++++++++---------------
> qapi/block-core.json | 2 +-
> 2 files changed, 69 insertions(+), 27 deletions(-)
Reviewed-by: Max Reitz <address@hidden>
(Hoping the next patch gets squashed in)
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-block] [RFC v2 for-2.9 10/10] sheepdog: Fix blockdev-add, (continued)
- [Qemu-block] [RFC v2 for-2.9 04/10] block: Document -drive problematic code and bugs, Markus Armbruster, 2017/03/30
- [Qemu-block] [RFC v2 for-2.9 05/10] gluster: Prepare for SocketAddressFlat extension, Markus Armbruster, 2017/03/30
- [Qemu-block] [RFC v2 for-2.9 08/10] nbd: Tidy up blockdev-add interface, Markus Armbruster, 2017/03/30
- [Qemu-block] [RFC v2 for-2.9 03/10] io vnc sockets: Clean up SocketAddressKind switches, Markus Armbruster, 2017/03/30
- [Qemu-block] [RFC v2 for-2.9 06/10] qapi-schema: SocketAddressFlat variants 'vsock' and 'fd', Markus Armbruster, 2017/03/30
- [Qemu-block] [RFC v2 for-2.9 02/10] char: Fix socket with "type": "vsock" address, Markus Armbruster, 2017/03/30
- [Qemu-block] [RFC v2 for-2.9 07/10] sockets: New helper socket_address_crumple(), Markus Armbruster, 2017/03/30