nbd/client: Request extended headers during negotiation

All the pieces are in place for a client to finally request extended
headers.  Note that we must not request extended headers when qemu-nbd
is used to connect to the kernel module (as nbd.ko does not expect
them, but expects us to do the negotiation in userspace before handing
the socket over to the kernel), but there is no harm in all other
clients requesting them.

Extended headers are not essential to the information collected during
'qemu-nbd --list', but probing for it gives us one more piece of
information in that output.  Update the iotests affected by the new
line of output.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-ID: <20230925192229.3186470-23-eblake@redhat.com>
This commit is contained in:
Eric Blake 2023-09-25 14:22:39 -05:00
parent a7c18670b4
commit 56cf9d0471
8 changed files with 38 additions and 6 deletions

View file

@ -87,6 +87,7 @@ exports available: 3
min block: 1
opt block: 4096
max block: 33554432
transaction size: 64-bit
available meta contexts: 2
base:allocation
qemu:dirty-bitmap:b
@ -97,6 +98,7 @@ exports available: 3
min block: 1
opt block: 4096
max block: 33554432
transaction size: 64-bit
available meta contexts: 2
base:allocation
qemu:dirty-bitmap:b2
@ -106,6 +108,7 @@ exports available: 3
min block: 1
opt block: 4096
max block: 33554432
transaction size: 64-bit
available meta contexts: 2
base:allocation
qemu:dirty-bitmap:b3
@ -206,6 +209,7 @@ exports available: 3
min block: 1
opt block: 4096
max block: 33554432
transaction size: 64-bit
available meta contexts: 2
base:allocation
qemu:dirty-bitmap:b
@ -216,6 +220,7 @@ exports available: 3
min block: 1
opt block: 4096
max block: 33554432
transaction size: 64-bit
available meta contexts: 2
base:allocation
qemu:dirty-bitmap:b2
@ -225,6 +230,7 @@ exports available: 3
min block: 1
opt block: 4096
max block: 33554432
transaction size: 64-bit
available meta contexts: 2
base:allocation
qemu:dirty-bitmap:b3

View file

@ -39,6 +39,7 @@ exports available: 1
export: ''
size: 67108864
min block: 1
transaction size: 64-bit
== check TLS fail over TCP with mismatched hostname ==
qemu-img: Could not open 'driver=nbd,host=localhost,port=PORT,tls-creds=tls0': Certificate does not match the hostname localhost
@ -53,6 +54,7 @@ exports available: 1
export: ''
size: 67108864
min block: 1
transaction size: 64-bit
== check TLS with different CA fails ==
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': The certificate hasn't got a known issuer
@ -83,6 +85,7 @@ exports available: 1
export: ''
size: 67108864
min block: 1
transaction size: 64-bit
== check TLS works over UNIX with PSK ==
image: nbd+unix://?socket=SOCK_DIR/qemu-nbd.sock
@ -93,6 +96,7 @@ exports available: 1
export: ''
size: 67108864
min block: 1
transaction size: 64-bit
== check TLS fails over UNIX with mismatch PSK ==
qemu-img: Could not open 'driver=nbd,path=SOCK_DIR/qemu-nbd.sock,tls-creds=tls0': TLS handshake failed: The TLS connection was non-properly terminated.

View file

@ -6,6 +6,7 @@ exports available: 1
export: ''
size: 1024
min block: 1
transaction size: 64-bit
[{ "start": 0, "length": 1000, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET},
{ "start": 1000, "length": 24, "depth": 0, "present": true, "zero": true, "data": false, "compressed": false, "offset": OFFSET}]
1 KiB (0x400) bytes allocated at offset 0 bytes (0x0)
@ -16,6 +17,7 @@ exports available: 1
export: ''
size: 1024
min block: 512
transaction size: 64-bit
[{ "start": 0, "length": 1024, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET}]
1 KiB (0x400) bytes allocated at offset 0 bytes (0x0)
WARNING: Image format was not specified for 'TEST_DIR/t.raw' and probing guessed raw.
@ -28,6 +30,7 @@ exports available: 1
export: ''
size: 1024
min block: 1
transaction size: 64-bit
[{ "start": 0, "length": 1000, "depth": 0, "present": true, "zero": false, "data": true, "compressed": false, "offset": OFFSET},
{ "start": 1000, "length": 24, "depth": 0, "present": true, "zero": true, "data": false, "compressed": false, "offset": OFFSET}]
1 KiB (0x400) bytes allocated at offset 0 bytes (0x0)

View file

@ -19,6 +19,7 @@ exports available: 1
min block: XXX
opt block: XXX
max block: XXX
transaction size: 64-bit
available meta contexts: 1
base:allocation
@ -47,6 +48,7 @@ exports available: 1
min block: XXX
opt block: XXX
max block: XXX
transaction size: 64-bit
available meta contexts: 1
base:allocation
@ -78,6 +80,7 @@ exports available: 2
min block: XXX
opt block: XXX
max block: XXX
transaction size: 64-bit
available meta contexts: 1
base:allocation
export: 'export1'
@ -87,6 +90,7 @@ exports available: 2
min block: XXX
opt block: XXX
max block: XXX
transaction size: 64-bit
available meta contexts: 1
base:allocation
@ -113,6 +117,7 @@ exports available: 1
min block: XXX
opt block: XXX
max block: XXX
transaction size: 64-bit
available meta contexts: 1
base:allocation

View file

@ -21,6 +21,7 @@ exports available: 1
min block: 1
opt block: 4096
max block: 33554432
transaction size: 64-bit
available meta contexts: 2
base:allocation
qemu:allocation-depth