Displaying 20 results from an estimated 21 matches for "opt_mod".
Did you mean:
opt_mode
2020 Aug 14
0
[libnbd PATCH v2 06/13] api: Add nbd_opt_abort and nbd_aio_opt_abort
...d a completion closure, for
the same reason that aio_disconnect does not have one - the whole
point of this command is a clean shutdown, so you aren't going to rely
on a server reply, and there are no parameters that need cleanup.
Yes, it's a bit awkward that with just this patch, enabling opt_mode
means you HAVE to kill the connection without a data phase; that will
be rectified in the next patch adding nbd_opt_go. But breaking the
patches up makes review easier.
---
lib/internal.h | 1 +
generator/API.ml | 35 ++++++-
generator...
2023 Jun 12
3
[PATCH libnbd 0/2] Two simple patches
These patches aren't related to each other, but both are quite simple.
The second one requires particular attention - it's my experience that
printing out the state transitions in debug mode has never helped me
to diagnose a bug, but it has made the debug logs huge and hard to
follow. However that might just be me! Has it helped anyone else?
Also I'm open to the concept of debug
2020 Aug 11
3
[libnbd PATCH] API: Add nbd_set_opt_mode to expose NEGOTIATING state
This is the bare minimum needed to allow the user to take control over
the rest of option negotiating. This patch adds several new API:
nbd_set_opt_mode() - called during Created to enable the new mode
nbd_get_opt_mode() - query whether opt mode is enabled
nbd_opt_go() - used in Negotiating state to attempt to use export
nbd_opt_abort() - used in Negotiating state to skip Connected state
nbd_aio_is_negotiating() - used to detect Negotiating state...
2020 Aug 17
1
Re: [libnbd PATCH v2 06/13] api: Add nbd_opt_abort and nbd_aio_opt_abort
On Fri, Aug 14, 2020 at 05:00:25PM -0500, Eric Blake wrote:
> diff --git a/lib/internal.h b/lib/internal.h
> index 5f495fb..03baacd 100644
> --- a/lib/internal.h
> +++ b/lib/internal.h
> @@ -101,6 +101,7 @@ struct nbd_handle {
>
> /* Option negotiation mode. */
> bool opt_mode;
> + uint8_t current_opt;
Be nice to add a comment here about what current_opt can contain,
which would also explain why it has this somewhat unexpected type.
Something like:
+ uint8_t current_opt; /* 0 or NBD_OPT_* */
(Can it only contain NBD_OPT_ABORT or are other options added in lat...
2020 Aug 14
18
[libnbd PATCH v2 00/13] Adding nbd_set_opt_mode to improve nbdinfo
...arlier patches are ready to commit while
I continue working on the latter half.
Eric Blake (13):
api: Add nbd_set_full_info and friends
info: Improve info without --list
api: Add nbd_is_state_negotiating for new state
api: Permit several existing API in Negotiating state
api: Add nbd_set_opt_mode
api: Add nbd_opt_abort and nbd_aio_opt_abort
api: Add nbd_opt_go and nbd_aio_opt_go
examples: Update list-exports to demonstrate nbd_opt_go
info: Simplify by using nbd_opt_go
api: Add nbd_opt_list
api: Add nbd_aio_opt_list
wip: api: Give aio_opt_go a completion callback
wip: api: a...
2020 Aug 14
0
[libnbd PATCH v2 12/13] wip: api: Give aio_opt_go a completion callback
...0809") # Connect to a remote server.
h.get_size () # Get size of the remote disk.
buf = h.pread (512, 0, 0) # Read the first sector.
exit() or Ctrl-D # Quit the shell
help (nbd) # Display documentation
nbd> h.set_opt_mode(True)
nbd> h.connect_command(["nbdkit","-s","--exit-","eval",
"open=echo ENOENT >&2; exit 1"])
nbd> h.aio_is_negotiating()
True
nbd> h.set_export_name('a')
nbd> h.opt_go()
nbdkit: eval: error: /tmp/nbdkitNyQD8J/open: ENOE...
2022 Nov 04
3
[libnbd PATCH v2 0/3] Improve nbdsh -u handling
v1 was here:
https://listman.redhat.com/archives/libguestfs/2022-October/030216.html
Since then, I've incorporated changes based on Rich's feedback:
swap order of patches 2 and 3
less change in patch 1 (including no unsafe eval(%s) for --uri)
in patch 2, include -c in list of snippets to store, and use dict of
lambdas to map back to the desired action
Eric Blake (3):
nbdsh:
2020 Aug 18
3
[libnbd PATCH v3 0/2] Implementing NBD_OPT_LIST
This is a subset of my v2 posting, but limited to just the
NBD_OPT_LIST handling. The biggest change since v2 is the addition of
added unit testing in all four language bindings (C, python, ocaml,
golang). The tests require nbdkit built from git on PATH, and may not
be entirely idiomatic, but I at least validated that they catch issues
(for example, adding an exit statement near the end of the
2020 Aug 11
0
Re: [libnbd PATCH] API: Add nbd_set_opt_mode to expose NEGOTIATING state
I think this needs extra documentation in docs/libnbd.pod because it's
definitely not clear just from the rather thin manual page for
set_opt_mode how it works. docs/libnbd.pod is a good place for a
broader description of how it works.
IIUC let me try to explain: we get through as far as the end of group
OPT_STRUCTURED_REPLY before we check the opt flag, and then the
remainder of opt negotiation can be controlled by the caller. (I
really...
2020 Aug 14
0
[libnbd PATCH v2 11/13] api: Add nbd_aio_opt_list
...;
+ nbd_list_callback list;
+ } fn;
+ nbd_completion_callback completion;
+};
+
struct nbd_handle {
/* Unique name assigned to this handle for debug messages
* (to avoid having to print actual pointers).
@@ -102,10 +111,7 @@ struct nbd_handle {
/* Option negotiation mode. */
bool opt_mode;
uint8_t current_opt;
-
- /* Results of nbd_opt_list. */
- size_t nr_exports;
- struct export *exports;
+ struct command_cb opt_cb;
/* Full info mode. */
bool full_info;
@@ -186,7 +192,7 @@ struct nbd_handle {
union {
struct {
struct nbd_fixed_new_option_re...
2020 Sep 28
0
[libnbd PATCH 2/3] generator: Rename OPT_SET_META_CONTEXT states
...WSTYLE.OPT_STRUCTURED_REPLY.START:
assert (h->gflags & LIBNBD_HANDSHAKE_FLAG_FIXED_NEWSTYLE);
if (!h->request_sr) {
- SET_NEXT_STATE (%^OPT_SET_META_CONTEXT.START);
+ SET_NEXT_STATE (%^OPT_META_CONTEXT.START);
return 0;
}
@@ -87,7 +87,7 @@ STATE_MACHINE {
if (h->opt_mode)
SET_NEXT_STATE (%.NEGOTIATING);
else
- SET_NEXT_STATE (%^OPT_SET_META_CONTEXT.START);
+ SET_NEXT_STATE (%^OPT_META_CONTEXT.START);
return 0;
} /* END STATE MACHINE */
diff --git a/generator/states-newstyle.c b/generator/states-newstyle.c
index 92cf5c9..a0a5928 100644
--- a/gene...
2020 Sep 28
2
[libnbd PATCH] nbdsh: Add --opt-mode command line option
...tiple times in order to run multiple commands.
+=item B<--opt-mode>
+
+Request that option mode be enabled, which gives fine-grained control
+over option negotiation after initially contacting the server but
+prior to actually using the export. This is equivalent to calling
+S<C<h.set_opt_mode(True)>> in the shell prior to connecting, and works
+even when combined with C<--uri> (while attempting the same with C<-c>
+would be too late).
+
=item B<-c ->
=item B<--command ->
@@ -85,6 +96,12 @@ Read standard input and execute it as a command.
Connect to the...
2020 Aug 18
0
[libnbd PATCH v3 2/2] api: Add nbd_aio_opt_list
...;
+ nbd_list_callback list;
+ } fn;
+ nbd_completion_callback completion;
+};
+
struct nbd_handle {
/* Unique name assigned to this handle for debug messages
* (to avoid having to print actual pointers).
@@ -102,10 +111,7 @@ struct nbd_handle {
/* Option negotiation mode. */
bool opt_mode;
uint8_t opt_current; /* 0 or one of NBD_OPT_* */
-
- /* Results of nbd_opt_list. */
- size_t nr_exports;
- struct export *exports;
+ struct command_cb opt_cb;
/* Full info mode. */
bool full_info;
@@ -186,7 +192,7 @@ struct nbd_handle {
union {
struct {
st...
2020 Oct 02
0
[libnbd PATCH v2 2/2] info: List available meta-contexts
...e the just-added nbd_opt_list_meta_context() API to give more
details about each export (matching what 'qemu-nbd --list' already
does). Note that this requires some shuffling: listing meta exports
requires being in opt mode, but is easiest to do in list_one_export(),
which requires setting opt_mode in more code paths, and deferring
ready mode until the last possible minute during get_content().
As written, the code displays the list in reverse order from how the
server presented it, thanks to my use of a simple linked list. We
could use a different data type if we don't like the data b...
2020 Oct 02
4
[libnbd PATCH v2 0/2] opt_list_meta_context
In v2: ack'ed preliminary patches have been pushed, and I've added a
lot of testsuite coverage as well as putting the new API to use in
nbdinfo.
Eric Blake (2):
api: Add nbd_opt_list_meta_context
info: List available meta-contexts
lib/internal.h | 1 +
generator/API.ml | 84 ++++++++-
2020 Sep 28
8
[libnbd PATCH 0/3] opt_list_meta_context
I'm posting this now, as I'm at the end of a workday and I got things
working for manual experimentation.
Still to do:
- write interop tests for qemu-nbd and nbdkit (including my proposed
patch addition of qemu-nbd -A to show qemu:allocation-depth)
- figure out if we can make 'nbdinfo --map' use the new API to
automatically select all contexts advertised by the server
Eric Blake
2020 Aug 19
3
[libnbd PATCH 0/2] NBD_OPT_INFO support
This replaces 13/13 of my v2 series; and now that it has pretty good
testsuite coverage and demonstrable performance improvement to
nbdinfo, I'm going ahead and pushing this now. We may still want to
add further nbd_opt_* commands for other fine-grained tuning of
negotiation, but for now, I think things have stabilized on this end,
and I can return to polishing .list_exports on the nbdkit
2020 Sep 28
0
[libnbd PATCH 3/3] api: Add nbd_opt_list_meta_context
...debug_closure; extent_closure; list_closure;
+ context_closure ]
(* Enums. *)
let tls_enum = {
@@ -852,7 +857,7 @@ to end the connection without finishing negotiation.";
example = Some "examples/list-exports.c";
see_also = [Link "get_opt_mode"; Link "aio_is_negotiating";
Link "opt_abort"; Link "opt_go"; Link "opt_list";
- Link "opt_info"];
+ Link "opt_info"; Link "opt_list_meta_context"];
};
"get_opt_mod...
2020 Aug 11
3
Re: [libnbd PATCH] API: Add nbd_set_opt_mode to expose NEGOTIATING state
On 8/11/20 12:12 PM, Richard W.M. Jones wrote:
> I think this needs extra documentation in docs/libnbd.pod because it's
> definitely not clear just from the rather thin manual page for
> set_opt_mode how it works. docs/libnbd.pod is a good place for a
> broader description of how it works.
Yes, good idea.
State-wise, the existing flow was:
Created
- Progress only by command issue - namely one of nbd_connect_*
Connecting
- Progress by aio_notify_read/aio_notify_write (as driven by...
2020 Aug 28
4
[nbdkit PATCH 0/3] .list_exports in nbd plugin
Another series on top of my exportname filter, marking off another
todo bullet point. With this, you can now use the NBD plugin as a
transparent passthrough of all export names served by the remote
server in both directions (list advertisement server to client, and
export name from client to server).
Eric Blake (3):
nbd: Implement .default_export, .export_description
nbd: Add