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.maxim...@ovn.org>
---
 lib/jsonrpc.c | 9 +++++++++
 lib/jsonrpc.h | 8 ++++++++
 2 files changed, 17 insertions(+)

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 *,
-- 
2.43.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to