+void ovsdb_jsonrpc_server_destroy(struct ovsdb_jsonrpc_server *);
+
+/* Options for a remote. */
+struct ovsdb_jsonrpc_options {
+ int max_backoff; /* Maximum reconnection backoff, in msec. */
+ int probe_interval; /* Max idle time before probing, in msec. */
+};
+struct ovsdb_jsonrpc_options *ovsdb_jsonrpc_default_options(void);
+
+void ovsdb_jsonrpc_server_set_remotes(struct ovsdb_jsonrpc_server *,
+ const struct shash *);
+
+/* Status of a single remote connection. */
+struct ovsdb_jsonrpc_remote_status {
+ const char *state;
+ int last_error;
+ unsigned int sec_since_connect;
+ unsigned int sec_since_disconnect;
+ bool is_connected;
+ char *locks_held;
+ char *locks_waiting;
+ char *locks_lost;
+ int n_connections;
+};
+bool ovsdb_jsonrpc_server_get_remote_status(
+ const struct ovsdb_jsonrpc_server *, const char *target,
+ struct ovsdb_jsonrpc_remote_status *);
+void ovsdb_jsonrpc_server_free_remote_status(
+ struct ovsdb_jsonrpc_remote_status *);