]> git.proxmox.com Git - mirror_ovs.git/blame - ovsdb/jsonrpc-server.h
raft: Send all missing logs in one single append_request.
[mirror_ovs.git] / ovsdb / jsonrpc-server.h
CommitLineData
798e1352 1/* Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
f85f8ebb
BP
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#ifndef OVSDB_JSONRPC_SERVER_H
17#define OVSDB_JSONRPC_SERVER_H 1
18
0b3e7a8b 19#include <stdbool.h>
798e1352 20#include "openvswitch/types.h"
0b3e7a8b 21
f85f8ebb 22struct ovsdb;
0b1fae1b 23struct shash;
0d085684 24struct simap;
64fada26 25struct uuid;
f85f8ebb 26
e51879e9 27struct ovsdb_jsonrpc_server *ovsdb_jsonrpc_server_create(bool read_only);
b4e8d170
BP
28bool ovsdb_jsonrpc_server_add_db(struct ovsdb_jsonrpc_server *,
29 struct ovsdb *);
10621d79 30void ovsdb_jsonrpc_server_remove_db(struct ovsdb_jsonrpc_server *,
1b1d2e6d 31 struct ovsdb *, char *comment);
23935e8b 32void ovsdb_jsonrpc_server_destroy(struct ovsdb_jsonrpc_server *);
b93d3b6c 33
94db5407
BP
34/* Options for a remote. */
35struct ovsdb_jsonrpc_options {
36 int max_backoff; /* Maximum reconnection backoff, in msec. */
37 int probe_interval; /* Max idle time before probing, in msec. */
9c1a1182 38 bool read_only; /* Only read-only transactions are allowed. */
f125905c 39 int dscp; /* Dscp value for manager connections */
d6db7b3c 40 char *role; /* Role, for role-based access controls */
94db5407 41};
f1936eb6
EJ
42struct ovsdb_jsonrpc_options *
43ovsdb_jsonrpc_default_options(const char *target);
94db5407 44
0b1fae1b
BP
45void ovsdb_jsonrpc_server_set_remotes(struct ovsdb_jsonrpc_server *,
46 const struct shash *);
b93d3b6c 47
0b3e7a8b
AE
48/* Status of a single remote connection. */
49struct ovsdb_jsonrpc_remote_status {
50 const char *state;
51 int last_error;
5eda645e
AE
52 unsigned int sec_since_connect;
53 unsigned int sec_since_disconnect;
0b3e7a8b 54 bool is_connected;
da897f41
BP
55 char *locks_held;
56 char *locks_waiting;
57 char *locks_lost;
a11f6164 58 int n_connections;
798e1352 59 ovs_be16 bound_port;
0b3e7a8b 60};
87fcbc60
BP
61bool ovsdb_jsonrpc_server_get_remote_status(
62 const struct ovsdb_jsonrpc_server *, const char *target,
63 struct ovsdb_jsonrpc_remote_status *);
da897f41
BP
64void ovsdb_jsonrpc_server_free_remote_status(
65 struct ovsdb_jsonrpc_remote_status *);
0b3e7a8b 66
1b1d2e6d
BP
67void ovsdb_jsonrpc_server_reconnect(struct ovsdb_jsonrpc_server *, bool force,
68 char *comment);
31d0b6c9 69
f85f8ebb
BP
70void ovsdb_jsonrpc_server_run(struct ovsdb_jsonrpc_server *);
71void ovsdb_jsonrpc_server_wait(struct ovsdb_jsonrpc_server *);
077f0302
BP
72
73void ovsdb_jsonrpc_server_set_read_only(struct ovsdb_jsonrpc_server *,
74 bool read_only);
f85f8ebb 75
0d085684
BP
76void ovsdb_jsonrpc_server_get_memory_usage(const struct ovsdb_jsonrpc_server *,
77 struct simap *usage);
78
64fada26
AZ
79const struct uuid *ovsdb_jsonrpc_server_get_uuid(
80 const struct ovsdb_jsonrpc_server *);
81
2fa1df7b 82struct ovsdb_jsonrpc_monitor;
53178986
BP
83void ovsdb_jsonrpc_monitor_destroy(struct ovsdb_jsonrpc_monitor *,
84 bool notify_cancellation);
c383f3bf 85void ovsdb_jsonrpc_disable_monitor_cond(void);
2fa1df7b 86
f85f8ebb 87#endif /* ovsdb/jsonrpc-server.h */