diff mbox series

[ovs-dev,15/22] jsonrpc: Add function to update all options at once.

Message ID 20231214010431.1664005-16-i.maximets@ovn.org
State Superseded
Delegated to: Ilya Maximets
Headers show
Series [ovs-dev,01/22] ovsdb-server.at: Enbale debug logs in active-backup tests. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Ilya Maximets Dec. 14, 2023, 1:04 a.m. UTC
It's useful to have a way to update all the JSON-RPC session
options all at once and not call 3 separate functions every
time.  This may also allow the internals of these options
to be better abstracted, i.e. allow users to not know what
are these options exactly.

Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
---
 lib/jsonrpc.c | 9 +++++++++
 lib/jsonrpc.h | 8 ++++++++
 2 files changed, 17 insertions(+)
diff mbox series

Patch

diff --git a/lib/jsonrpc.c b/lib/jsonrpc.c
index 3db5f76e2..f1ef70950 100644
--- a/lib/jsonrpc.c
+++ b/lib/jsonrpc.c
@@ -1337,6 +1337,15 @@  jsonrpc_session_set_dscp(struct jsonrpc_session *s, uint8_t dscp)
     }
 }
 
+void
+jsonrpc_session_set_options(struct jsonrpc_session *s,
+                            const struct jsonrpc_session_options *options)
+{
+    jsonrpc_session_set_max_backoff(s, options->max_backoff);
+    jsonrpc_session_set_probe_interval(s, options->probe_interval);
+    jsonrpc_session_set_dscp(s, options->dscp);
+}
+
 /* Sets thresholds for send backlog.  If send backlog contains more than
  * 'max_n_msgs' messages or is larger than 'max_backlog_bytes' bytes,
  * connection will be closed (then reconnected, if that feature is enabled). */
diff --git a/lib/jsonrpc.h b/lib/jsonrpc.h
index 2aa97d3fe..1baffcd80 100644
--- a/lib/jsonrpc.h
+++ b/lib/jsonrpc.h
@@ -139,6 +139,14 @@  void jsonrpc_session_enable_reconnect(struct jsonrpc_session *);
 void jsonrpc_session_force_reconnect(struct jsonrpc_session *);
 void jsonrpc_session_reset_backoff(struct jsonrpc_session *);
 
+struct jsonrpc_session_options {
+    int max_backoff;            /* Maximum reconnection backoff, in msec. */
+    int probe_interval;         /* Max idle time before probing, in msec. */
+    uint8_t dscp;               /* Dscp value for passive connections. */
+};
+
+void jsonrpc_session_set_options(struct jsonrpc_session *,
+                                 const struct jsonrpc_session_options *);
 void jsonrpc_session_set_max_backoff(struct jsonrpc_session *,
                                      int max_backoff);
 void jsonrpc_session_set_probe_interval(struct jsonrpc_session *,