> On Dec 31, 2017, at 9:16 PM, Ben Pfaff <[email protected]> wrote:
>
> + Traditionally, <code>ovsdb-server</code> disconnects all of its clients
> + when a significant configuration change occurs, because this prompts a
> + well-written client to reassess what is available from the server when
> it
> + reconnects. Because this table provides an alternative and more
> + efficient way to find out about those changes, OVS 2.9 also introduces
> + the <code>set_db_change_aware</code> RPC, documented in
> + <code>ovsdb-server</code>(1), to allow clients to suppress this
> + disconnection behavior.
Is that in section 1 or 7 of the ovsdb-server man pages?
> + When a database is removed from the server, in addition to
> + <code>Database</code> table updates, the server sends
> <code>cancel</code>
> + messages, as described in RFC 7047 section 4.1.4, in reply to
> outstanding
> + transactions for the removed database. The server also cancels any
> + outstanding monitoring initiated by <code>monitor</code> or
> + <code>monitor_cond</code> requested on the removed database, sending
> the
> + <code>monitor_canceled</code> RPC described in
> + <code>ovsdb-server</code>(5). Only clients that disable disconnection
> + with <code>set_db_change_aware</code> receive these messages.
I believe this file is section 5 of the ovsdb-server man page. Should it also
be section 7?
> @@ -333,17 +331,20 @@ ovsdb_jsonrpc_server_free_remote_status(
> free(status->locks_lost);
> }
>
> -/* Forces all of the JSON-RPC sessions managed by 'svr' to disconnect and
> - * reconnect. */
> +/* Makes all of the JSON-RPC sessions managed by 'svr' to disconnect. (They
> + * will then generally reconnect.).
I think you should drop "to".
> @@ -432,6 +433,20 @@ struct ovsdb_jsonrpc_session {
> struct ovsdb_session up;
> struct ovsdb_jsonrpc_remote *remote;
>
> + /* RFC 7047 does not contemplate how to alert clients to changes to the
> set
> + * of databases, e.g. databases that are added or removed while the
> + * database server is running. Traditionally, ovsdb-server disconnects
> all
> + * of its clients when this happens; a well-written client will reassess
> + * what is available from the server upon reconnection.
> + *
> + * OVS 2.9 introduces a way for clients to monitor changes to the
> databases
> + * being served, through the Database table in the _Server database that
> + * OVSDB adds in this version. ovsdb-server suppresses the connection
> + * close for clients that identify themselves as taking advantage of this
> + * mechanism.
> + */
> + bool db_change_aware;
I think it might be worth being explicit that setting this flag to true
indicates that the client has requested this suppression to occur.
> +/* Database 'db' is about to be removed from the database server. To
> prepare,
> + * this function removes all references to 'db' from session 's'. */
> +static void
> +ovsdb_jsonrpc_session_preremove_db(struct ovsdb_jsonrpc_remote *remote,
> + struct ovsdb *db)
The argument looks to be 'db', not 's', which may contain more than one session.
> +/* Makes all of the JSON-RPC sessions managed by 'remove' to disconnect.
> (They
> + * will then generally reconnect.).
> + *
> + * If 'force' is true, disconnects all sessions. Otherwise, disconnects only
> + * sesions that aren't database change aware. */
> static void
> +ovsdb_jsonrpc_session_reconnect_all(struct ovsdb_jsonrpc_remote *remote,
> + bool force)
The comment should be 'remote' instead of 'remove'.
Acked-by: Justin Pettit <[email protected]>
Thanks,
--Justin
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev