+
+void
+jsonrpc_session_set_max_backoff(struct jsonrpc_session *s, int max_backoff)
+{
+ reconnect_set_backoff(s->reconnect, 0, max_backoff);
+}
+
+void
+jsonrpc_session_set_probe_interval(struct jsonrpc_session *s,
+ int probe_interval)
+{
+ reconnect_set_probe_interval(s->reconnect, probe_interval);
+}
+
+void
+jsonrpc_session_set_dscp(struct jsonrpc_session *s,
+ uint8_t dscp)
+{
+ if (s->dscp != dscp) {
+ if (s->pstream) {
+ int error;
+
+ error = pstream_set_dscp(s->pstream, dscp);
+ if (error) {
+ VLOG_ERR("%s: failed set_dscp %s",
+ reconnect_get_name(s->reconnect), strerror(error));
+ }
+ /*
+ * XXX race window between setting dscp to listening socket
+ * and accepting socket. accepted socket may have old dscp value.
+ * Ignore this race window for now.
+ */
+ }
+ s->dscp = dscp;
+ jsonrpc_session_force_reconnect(s);
+ }
+}