]> git.proxmox.com Git - ovs.git/blob - ovsdb/jsonrpc-server.h
dpctl: Fix dpctl process command parameter error.
[ovs.git] / ovsdb / jsonrpc-server.h
1 /* Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
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
19 #include <stdbool.h>
20 #include "openvswitch/types.h"
21
22 struct ovsdb;
23 struct shash;
24 struct simap;
25 struct uuid;
26
27 struct ovsdb_jsonrpc_server *ovsdb_jsonrpc_server_create(bool read_only);
28 bool ovsdb_jsonrpc_server_add_db(struct ovsdb_jsonrpc_server *,
29 struct ovsdb *);
30 void ovsdb_jsonrpc_server_remove_db(struct ovsdb_jsonrpc_server *,
31 struct ovsdb *, char *comment);
32 void ovsdb_jsonrpc_server_destroy(struct ovsdb_jsonrpc_server *);
33
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. */
38 bool read_only; /* Only read-only transactions are allowed. */
39 int dscp; /* Dscp value for manager connections */
40 char *role; /* Role, for role-based access controls */
41 };
42 struct ovsdb_jsonrpc_options *
43 ovsdb_jsonrpc_default_options(const char *target);
44
45 void ovsdb_jsonrpc_server_set_remotes(struct ovsdb_jsonrpc_server *,
46 const struct shash *);
47
48 /* Status of a single remote connection. */
49 struct ovsdb_jsonrpc_remote_status {
50 const char *state;
51 int last_error;
52 unsigned int sec_since_connect;
53 unsigned int sec_since_disconnect;
54 bool is_connected;
55 char *locks_held;
56 char *locks_waiting;
57 char *locks_lost;
58 int n_connections;
59 ovs_be16 bound_port;
60 };
61 bool ovsdb_jsonrpc_server_get_remote_status(
62 const struct ovsdb_jsonrpc_server *, const char *target,
63 struct ovsdb_jsonrpc_remote_status *);
64 void ovsdb_jsonrpc_server_free_remote_status(
65 struct ovsdb_jsonrpc_remote_status *);
66
67 void ovsdb_jsonrpc_server_reconnect(struct ovsdb_jsonrpc_server *, bool force,
68 char *comment);
69
70 void ovsdb_jsonrpc_server_run(struct ovsdb_jsonrpc_server *);
71 void ovsdb_jsonrpc_server_wait(struct ovsdb_jsonrpc_server *);
72
73 void ovsdb_jsonrpc_server_set_read_only(struct ovsdb_jsonrpc_server *,
74 bool read_only);
75
76 void ovsdb_jsonrpc_server_get_memory_usage(const struct ovsdb_jsonrpc_server *,
77 struct simap *usage);
78
79 const struct uuid *ovsdb_jsonrpc_server_get_uuid(
80 const struct ovsdb_jsonrpc_server *);
81
82 struct ovsdb_jsonrpc_monitor;
83 void ovsdb_jsonrpc_monitor_destroy(struct ovsdb_jsonrpc_monitor *,
84 bool notify_cancellation);
85 void ovsdb_jsonrpc_disable_monitor_cond(void);
86
87 #endif /* ovsdb/jsonrpc-server.h */