vswitchd: Add OVS version to database, give system info its own columns.
[sliver-openvswitch.git] / vswitchd / vswitch.ovsschema
1 {"name": "Open_vSwitch",
2  "tables": {
3    "Open_vSwitch": {
4      "columns": {
5        "bridges": {
6          "type": {"key": {"type": "uuid",
7                           "refTable": "Bridge"},
8                   "min": 0, "max": "unlimited"}},
9        "managers": {
10          "type": {"key": "string", "min": 0, "max": "unlimited"}},
11        "manager_options": {
12          "type": {"key": {"type": "uuid",
13                           "refTable": "Manager"},
14                   "min": 0, "max": "unlimited"}},
15        "ssl": {
16          "type": {"key": {"type": "uuid",
17                           "refTable": "SSL"},
18                   "min": 0, "max": 1}},
19        "external_ids": {
20          "type": {"key": "string", "value": "string",
21                   "min": 0, "max": "unlimited"}},
22        "next_cfg": {
23          "type": "integer"},
24        "cur_cfg": {
25          "type": "integer"},
26        "capabilities": {
27          "type": {"key": "string",
28                   "value": {"type": "uuid",
29                             "refTable": "Capability"},
30                   "min": 0, "max": "unlimited"}},
31        "statistics": {
32          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
33          "ephemeral": true},
34        "ovs_version": {
35          "type": {"key": {"type": "string"},
36                   "min": 0, "max": 1}},
37        "system_type": {
38          "type": {"key": {"type": "string"},
39                   "min": 0, "max": 1}},
40        "system_version": {
41          "type": {"key": {"type": "string"},
42                   "min": 0, "max": 1}}},
43      "maxRows": 1},
44    "Capability": {
45      "columns": {
46        "details": {
47          "type": {"key": "string", "value": "string",
48                   "min": 0, "max": "unlimited"}}}},
49    "Bridge": {
50      "columns": {
51        "name": {
52          "type": "string",
53          "mutable": false},
54        "datapath_type": {
55          "type": "string"},
56        "datapath_id": {
57          "type": {"key": "string", "min": 0, "max": 1},
58          "ephemeral": true},
59        "ports": {
60          "type": {"key": {"type": "uuid",
61                           "refTable": "Port"},
62                   "min": 0, "max": "unlimited"}},
63        "mirrors": {
64          "type": {"key": {"type": "uuid",
65                           "refTable": "Mirror"},
66                   "min": 0, "max": "unlimited"}},
67        "netflow": {
68          "type": {"key": {"type": "uuid",
69                           "refTable": "NetFlow"},
70                   "min": 0, "max": 1}},
71        "sflow": {
72          "type": {"key": {"type": "uuid",
73                           "refTable": "sFlow"},
74                   "min": 0, "max": 1}},
75        "controller": {
76          "type": {"key": {"type": "uuid",
77                           "refTable": "Controller"},
78                   "min": 0, "max": "unlimited"}},
79        "fail_mode": {
80          "type": {"key": {"type": "string",
81                           "enum": ["set", ["standalone", "secure"]]},
82                   "min": 0, "max": 1}},
83        "other_config": {
84          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
85        "external_ids": {
86          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
87        "flood_vlans": {
88          "type": {"key": {"type": "integer",
89                           "minInteger": 0,
90                           "maxInteger": 4095},
91                   "min": 0, "max": 4096}}}},
92    "Port": {
93      "columns": {
94        "name": {
95          "type": "string",
96          "mutable": false},
97        "interfaces": {
98          "type": {"key": {"type": "uuid",
99                           "refTable": "Interface"},
100                   "min": 1, "max": "unlimited"}},
101        "trunks": {
102          "type": {"key": {"type": "integer",
103                           "minInteger": 0,
104                           "maxInteger": 4095},
105                   "min": 0, "max": 4096}},
106        "tag": {
107          "type": {"key": {"type": "integer",
108                           "minInteger": 0,
109                           "maxInteger": 4095},
110                   "min": 0, "max": 1}},
111        "qos": {
112          "type": {"key": {"type": "uuid",
113                           "refTable": "QoS"},
114                   "min": 0, "max": 1}},
115        "mac": {
116          "type": {"key": {"type": "string"},
117                   "min": 0, "max": 1}},
118        "bond_updelay": {
119          "type": "integer"},
120        "bond_downdelay": {
121          "type": "integer"},
122        "bond_fake_iface": {
123          "type": "boolean"},
124        "fake_bridge": {
125          "type": "boolean"},
126        "other_config": {
127          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
128        "external_ids": {
129          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}}}},
130    "Interface": {
131      "columns": {
132        "name": {
133          "type": "string",
134          "mutable": false},
135        "type": {
136          "type": "string"},
137        "options": {
138          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
139        "ingress_policing_rate": {
140          "type": {"key": {"type": "integer",
141                           "minInteger": 0}}},
142        "ingress_policing_burst": {
143          "type": {"key": {"type": "integer",
144                           "minInteger": 0}}},
145        "mac": {
146          "type": {"key": {"type": "string"},
147                   "min": 0, "max": 1}},
148        "external_ids": {
149          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
150        "ofport": {
151          "type": {"key": "integer", "min": 0, "max": 1},
152          "ephemeral": true},
153        "monitor": {
154          "type": {
155            "key": {"type": "uuid", "refTable": "Monitor"},
156            "min": 0,
157            "max": 1}},
158        "other_config": {
159          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
160        "statistics": {
161          "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
162          "ephemeral": true},
163        "status": {
164          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
165          "ephemeral": true}}},
166    "Monitor": {
167      "columns": {
168        "mpid": {
169          "type" : {
170            "key": { "type": "integer", "minInteger": 1, "maxInteger": 8191}}},
171        "md_name": {
172          "type" : {
173            "key": { "type": "string", "minLength": 1, "maxLength": 43},
174            "min": 0,
175            "max": 1}},
176        "ma_name": {
177          "type" : {
178            "key": { "type": "string", "minLength": 1, "maxLength": 43},
179            "min": 0,
180            "max": 1}},
181        "interval": {
182          "type": {
183            "key": { "type": "integer", "minInteger": 100},
184            "min": 0,
185            "max": 1}},
186        "remote_mps": {
187          "type": {
188            "key": { "type": "uuid", "refTable": "Maintenance_Point"},
189            "min": 0,
190            "max": "unlimited"},
191          "ephemeral": true},
192        "unexpected_remote_mpids": {
193          "type": {
194            "key": { "type": "integer"},
195            "min": 0,
196            "max": "unlimited"},
197          "ephemeral": true},
198        "unexpected_remote_maids": {
199          "type": {
200            "key": "string",
201            "min": 0,
202            "max": "unlimited"},
203          "ephemeral": true},
204        "fault": {
205          "type": {
206            "key": { "type": "boolean"},
207            "min": 0,
208            "max": 1},
209          "ephemeral": true}}},
210    "Maintenance_Point": {
211      "columns": {
212        "mpid": {
213          "type" : {
214            "key": { "type": "integer", "minInteger": 1, "maxInteger": 8191}},
215          "mutable": false},
216        "fault": {
217          "type": {
218            "key": { "type": "boolean"},
219            "min": 0,
220            "max": 1},
221          "ephemeral": true}}},
222    "QoS": {
223      "columns": {
224        "type": {
225          "type": "string"},
226        "queues": {
227          "type": {"key": {"type": "integer",
228                           "minInteger": 0,
229                           "maxInteger": 4294967295},
230                   "value": {"type": "uuid",
231                             "refTable": "Queue"},
232                   "min": 0, "max": "unlimited"}},
233        "other_config": {
234          "type": {"key": "string", "value": "string",
235                   "min": 0, "max": "unlimited"}},
236        "external_ids": {
237          "type": {"key": "string", "value": "string",
238                   "min": 0, "max": "unlimited"}}}},
239    "Queue": {
240      "columns": {
241        "other_config": {
242          "type": {"key": "string", "value": "string",
243                   "min": 0, "max": "unlimited"}},
244        "external_ids": {
245          "type": {"key": "string", "value": "string",
246                   "min": 0, "max": "unlimited"}}}},
247    "Mirror": {
248      "columns": {
249        "name": {
250          "type": "string"},
251        "select_all": {
252          "type": "boolean"
253        },
254        "select_src_port": {
255          "type": {"key": {"type": "uuid",
256                           "refTable": "Port",
257                           "refType": "weak"},
258                    "min": 0, "max": "unlimited"}},
259        "select_dst_port": {
260          "type": {"key": {"type": "uuid",
261                           "refTable": "Port",
262                           "refType": "weak"},
263                    "min": 0, "max": "unlimited"}},
264        "select_vlan": {
265          "type": {"key": {"type": "integer",
266                           "minInteger": 0,
267                           "maxInteger": 4095},
268                   "min": 0, "max": 4096}},
269        "output_port": {
270          "type": {"key": {"type": "uuid",
271                           "refTable": "Port",
272                           "refType": "weak"},
273                   "min": 0, "max": 1}},
274        "output_vlan": {
275          "type": {"key": {"type": "integer",
276                           "minInteger": 1,
277                           "maxInteger": 4095},
278                   "min": 0, "max": 1}},
279        "external_ids": {
280          "type": {"key": "string", "value": "string",
281                   "min": 0, "max": "unlimited"}}}},
282    "NetFlow": {
283      "columns": {
284        "targets": {
285          "type": {"key": {"type": "string"},
286                   "min": 1, "max": "unlimited"}},
287        "engine_type": {
288          "type": {"key": {"type": "integer",
289                           "minInteger": 0,
290                           "maxInteger": 255},
291                   "min": 0, "max": 1}},
292        "engine_id": {
293          "type": {"key": {"type": "integer",
294                           "minInteger": 0,
295                           "maxInteger": 255},
296                   "min": 0, "max": 1}},
297        "add_id_to_interface": {
298          "type": "boolean"},
299        "active_timeout": {
300          "type": {"key": {"type": "integer",
301                           "minInteger": -1}}},
302        "external_ids": {
303          "type": {"key": "string", "value": "string",
304                   "min": 0, "max": "unlimited"}}}},
305    "sFlow": {
306      "columns": {
307        "targets": {
308          "type": {"key": "string", "min": 1, "max": "unlimited"}},
309        "sampling": {
310          "type": {"key": "integer", "min": 0, "max": 1}},
311        "polling": {
312          "type": {"key": "integer", "min": 0, "max": 1}},
313        "header": {
314          "type": {"key": "integer", "min": 0, "max": 1}},
315        "agent": {
316          "type": {"key": "string", "min": 0, "max": 1}},
317        "external_ids": {
318          "type": {"key": "string", "value": "string",
319                   "min": 0, "max": "unlimited"}}}},
320    "Controller": {
321      "columns": {
322        "target": {
323          "type": "string"},
324        "max_backoff": {
325          "type": {"key": {"type": "integer",
326                           "minInteger": 1000},
327                   "min": 0, "max": 1}},
328        "inactivity_probe": {
329          "type": {"key": "integer", "min": 0, "max": 1}},
330        "discover_accept_regex": {
331          "type": {"key": "string", "min": 0, "max": 1}},
332        "discover_update_resolv_conf": {
333          "type": {"key": "boolean", "min": 0, "max": 1}},
334        "connection_mode": {
335          "type": {"key": {"type": "string",
336                   "enum": ["set", ["in-band", "out-of-band"]]},
337                   "min": 0, "max": 1}},
338        "local_ip": {
339          "type": {"key": {"type": "string"},
340                   "min": 0, "max": 1}},
341        "local_netmask": {
342          "type": {"key": {"type": "string"},
343                   "min": 0, "max": 1}},
344        "local_gateway": {
345          "type": {"key": {"type": "string"},
346                   "min": 0, "max": 1}},
347        "controller_rate_limit": {
348          "type": {"key": {"type": "integer",
349                           "minInteger": 100},
350                   "min": 0, "max": 1}},
351        "controller_burst_limit": {
352          "type": {"key": {"type": "integer",
353                           "minInteger": 25},
354                   "min": 0, "max": 1}},
355        "external_ids": {
356          "type": {"key": "string", "value": "string",
357                   "min": 0, "max": "unlimited"}}}},
358    "Manager": {
359      "columns": {
360        "target": {
361          "type": "string"},
362        "max_backoff": {
363          "type": {"key": {"type": "integer",
364                           "minInteger": 1000},
365                   "min": 0, "max": 1}},
366        "inactivity_probe": {
367          "type": {"key": "integer", "min": 0, "max": 1}},
368        "connection_mode": {
369          "type": {"key": {"type": "string",
370                   "enum": ["set", ["in-band", "out-of-band"]]},
371                   "min": 0, "max": 1}},
372        "external_ids": {
373          "type": {"key": "string", "value": "string",
374                   "min": 0, "max": "unlimited"}}}},
375    "SSL": {
376      "columns": {
377        "private_key": {
378          "type": "string"},
379        "certificate": {
380          "type": "string"},
381        "ca_cert": {
382          "type": "string"},
383        "bootstrap_ca_cert": {
384          "type": "boolean"},
385        "external_ids": {
386          "type": {"key": "string", "value": "string",
387                   "min": 0, "max": "unlimited"}}},
388      "maxRows": 1}}}