]>
Commit | Line | Data |
---|---|---|
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 | 22 | struct ovsdb; |
0b1fae1b | 23 | struct shash; |
0d085684 | 24 | struct simap; |
64fada26 | 25 | struct uuid; |
f85f8ebb | 26 | |
e51879e9 | 27 | struct ovsdb_jsonrpc_server *ovsdb_jsonrpc_server_create(bool read_only); |
b4e8d170 BP |
28 | bool ovsdb_jsonrpc_server_add_db(struct ovsdb_jsonrpc_server *, |
29 | struct ovsdb *); | |
0a3b723b BP |
30 | bool ovsdb_jsonrpc_server_remove_db(struct ovsdb_jsonrpc_server *, |
31 | struct ovsdb *); | |
23935e8b | 32 | void ovsdb_jsonrpc_server_destroy(struct ovsdb_jsonrpc_server *); |
b93d3b6c | 33 | |
94db5407 BP |
34 | /* Options for a remote. */ |
35 | struct 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 |
42 | struct ovsdb_jsonrpc_options * |
43 | ovsdb_jsonrpc_default_options(const char *target); | |
94db5407 | 44 | |
0b1fae1b BP |
45 | void ovsdb_jsonrpc_server_set_remotes(struct ovsdb_jsonrpc_server *, |
46 | const struct shash *); | |
b93d3b6c | 47 | |
0b3e7a8b AE |
48 | /* Status of a single remote connection. */ |
49 | struct 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 |
61 | bool ovsdb_jsonrpc_server_get_remote_status( |
62 | const struct ovsdb_jsonrpc_server *, const char *target, | |
63 | struct ovsdb_jsonrpc_remote_status *); | |
da897f41 BP |
64 | void ovsdb_jsonrpc_server_free_remote_status( |
65 | struct ovsdb_jsonrpc_remote_status *); | |
0b3e7a8b | 66 | |
e51879e9 | 67 | void ovsdb_jsonrpc_server_reconnect(struct ovsdb_jsonrpc_server *, bool read_only); |
31d0b6c9 | 68 | |
f85f8ebb BP |
69 | void ovsdb_jsonrpc_server_run(struct ovsdb_jsonrpc_server *); |
70 | void ovsdb_jsonrpc_server_wait(struct ovsdb_jsonrpc_server *); | |
60e0cd04 | 71 | bool ovsdb_jsonrpc_server_is_read_only(struct ovsdb_jsonrpc_server *); |
f85f8ebb | 72 | |
0d085684 BP |
73 | void ovsdb_jsonrpc_server_get_memory_usage(const struct ovsdb_jsonrpc_server *, |
74 | struct simap *usage); | |
75 | ||
64fada26 AZ |
76 | const struct uuid *ovsdb_jsonrpc_server_get_uuid( |
77 | const struct ovsdb_jsonrpc_server *); | |
78 | ||
2fa1df7b AZ |
79 | struct ovsdb_jsonrpc_monitor; |
80 | void ovsdb_jsonrpc_monitor_destroy(struct ovsdb_jsonrpc_monitor *); | |
c383f3bf | 81 | void ovsdb_jsonrpc_disable_monitor_cond(void); |
2fa1df7b | 82 | |
f85f8ebb | 83 | #endif /* ovsdb/jsonrpc-server.h */ |