ovsdb: Implement garbage collection.
[sliver-openvswitch.git] / vswitchd / vswitch.ovsschema
1 {"name": "Open_vSwitch",
2  "version": "2.1.0",
3  "cksum": "1990266641 15714",
4  "tables": {
5    "Open_vSwitch": {
6      "columns": {
7        "bridges": {
8          "type": {"key": {"type": "uuid",
9                           "refTable": "Bridge"},
10                   "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        "db_version": {
38          "type": {"key": {"type": "string"},
39                   "min": 0, "max": 1}},
40        "system_type": {
41          "type": {"key": {"type": "string"},
42                   "min": 0, "max": 1}},
43        "system_version": {
44          "type": {"key": {"type": "string"},
45                   "min": 0, "max": 1}}},
46      "isRoot": true,
47      "maxRows": 1},
48    "Capability": {
49      "columns": {
50        "details": {
51          "type": {"key": "string", "value": "string",
52                   "min": 0, "max": "unlimited"}}}},
53    "Bridge": {
54      "columns": {
55        "name": {
56          "type": "string",
57          "mutable": false},
58        "datapath_type": {
59          "type": "string"},
60        "datapath_id": {
61          "type": {"key": "string", "min": 0, "max": 1},
62          "ephemeral": true},
63        "ports": {
64          "type": {"key": {"type": "uuid",
65                           "refTable": "Port"},
66                   "min": 0, "max": "unlimited"}},
67        "mirrors": {
68          "type": {"key": {"type": "uuid",
69                           "refTable": "Mirror"},
70                   "min": 0, "max": "unlimited"}},
71        "netflow": {
72          "type": {"key": {"type": "uuid",
73                           "refTable": "NetFlow"},
74                   "min": 0, "max": 1}},
75        "sflow": {
76          "type": {"key": {"type": "uuid",
77                           "refTable": "sFlow"},
78                   "min": 0, "max": 1}},
79        "controller": {
80          "type": {"key": {"type": "uuid",
81                           "refTable": "Controller"},
82                   "min": 0, "max": "unlimited"}},
83        "fail_mode": {
84          "type": {"key": {"type": "string",
85                           "enum": ["set", ["standalone", "secure"]]},
86                   "min": 0, "max": 1}},
87        "other_config": {
88          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
89        "external_ids": {
90          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
91        "flood_vlans": {
92          "type": {"key": {"type": "integer",
93                           "minInteger": 0,
94                           "maxInteger": 4095},
95                   "min": 0, "max": 4096}}}},
96    "Port": {
97      "columns": {
98        "name": {
99          "type": "string",
100          "mutable": false},
101        "interfaces": {
102          "type": {"key": {"type": "uuid",
103                           "refTable": "Interface"},
104                   "min": 1, "max": "unlimited"}},
105        "trunks": {
106          "type": {"key": {"type": "integer",
107                           "minInteger": 0,
108                           "maxInteger": 4095},
109                   "min": 0, "max": 4096}},
110        "tag": {
111          "type": {"key": {"type": "integer",
112                           "minInteger": 0,
113                           "maxInteger": 4095},
114                   "min": 0, "max": 1}},
115        "qos": {
116          "type": {"key": {"type": "uuid",
117                           "refTable": "QoS"},
118                   "min": 0, "max": 1}},
119        "mac": {
120          "type": {"key": {"type": "string"},
121                   "min": 0, "max": 1}},
122        "bond_mode": {
123          "type": {"key": {"type": "string",
124            "enum": ["set", ["balance-tcp", "balance-slb", "active-backup"]]},
125          "min": 0, "max": 1}},
126        "lacp": {
127          "type": {"key": {"type": "string",
128            "enum": ["set", ["active", "passive", "off"]]},
129          "min": 0, "max": 1}},
130        "bond_updelay": {
131          "type": "integer"},
132        "bond_downdelay": {
133          "type": "integer"},
134        "bond_fake_iface": {
135          "type": "boolean"},
136        "fake_bridge": {
137          "type": "boolean"},
138        "other_config": {
139          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
140        "external_ids": {
141          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}}}},
142    "Interface": {
143      "columns": {
144        "name": {
145          "type": "string",
146          "mutable": false},
147        "type": {
148          "type": "string"},
149        "options": {
150          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
151        "ingress_policing_rate": {
152          "type": {"key": {"type": "integer",
153                           "minInteger": 0}}},
154        "ingress_policing_burst": {
155          "type": {"key": {"type": "integer",
156                           "minInteger": 0}}},
157        "mac": {
158          "type": {"key": {"type": "string"},
159                   "min": 0, "max": 1}},
160        "external_ids": {
161          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
162        "ofport": {
163          "type": {"key": "integer", "min": 0, "max": 1},
164          "ephemeral": true},
165        "monitor": {
166          "type": {
167            "key": {"type": "uuid", "refTable": "Monitor"},
168            "min": 0,
169            "max": 1}},
170        "other_config": {
171          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
172        "statistics": {
173          "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
174          "ephemeral": true},
175        "status": {
176          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
177          "ephemeral": true},
178        "admin_state": {
179          "type": {"key": {"type": "string",
180                           "enum": ["set", ["up", "down"]]},
181                   "min": 0, "max": 1},
182          "ephemeral": true},
183        "link_state": {
184          "type": {"key": {"type": "string",
185                           "enum": ["set", ["up", "down"]]},
186                   "min": 0, "max": 1},
187          "ephemeral": true},
188        "link_speed": {
189          "type": {"key": "integer", "min": 0, "max": 1},
190          "ephemeral": true},
191        "duplex": {
192          "type": {"key": {"type": "string",
193                           "enum": ["set", ["half", "full"]]},
194                   "min": 0, "max": 1},
195          "ephemeral": true},
196        "mtu": {
197          "type": {"key": "integer", "min": 0, "max": 1},
198          "ephemeral": true}}},
199    "Monitor": {
200      "columns": {
201        "mpid": {
202          "type" : {
203            "key": { "type": "integer", "minInteger": 1, "maxInteger": 8191}}},
204        "md_name": {
205          "type" : {
206            "key": { "type": "string", "minLength": 1, "maxLength": 43},
207            "min": 0,
208            "max": 1}},
209        "ma_name": {
210          "type" : {
211            "key": { "type": "string", "minLength": 1, "maxLength": 43},
212            "min": 0,
213            "max": 1}},
214        "interval": {
215          "type": {
216            "key": { "type": "integer", "minInteger": 100},
217            "min": 0,
218            "max": 1}},
219        "remote_mps": {
220          "type": {
221            "key": { "type": "uuid", "refTable": "Maintenance_Point"},
222            "min": 0,
223            "max": "unlimited"},
224          "ephemeral": true},
225        "unexpected_remote_mpids": {
226          "type": {
227            "key": { "type": "integer"},
228            "min": 0,
229            "max": "unlimited"},
230          "ephemeral": true},
231        "unexpected_remote_maids": {
232          "type": {
233            "key": "string",
234            "min": 0,
235            "max": "unlimited"},
236          "ephemeral": true},
237        "fault": {
238          "type": {
239            "key": { "type": "boolean"},
240            "min": 0,
241            "max": 1},
242          "ephemeral": true}}},
243    "Maintenance_Point": {
244      "columns": {
245        "mpid": {
246          "type" : {
247            "key": { "type": "integer", "minInteger": 1, "maxInteger": 8191}},
248          "mutable": false},
249        "fault": {
250          "type": {
251            "key": { "type": "boolean"},
252            "min": 0,
253            "max": 1},
254          "ephemeral": true}}},
255    "QoS": {
256      "columns": {
257        "type": {
258          "type": "string"},
259        "queues": {
260          "type": {"key": {"type": "integer",
261                           "minInteger": 0,
262                           "maxInteger": 4294967295},
263                   "value": {"type": "uuid",
264                             "refTable": "Queue"},
265                   "min": 0, "max": "unlimited"}},
266        "other_config": {
267          "type": {"key": "string", "value": "string",
268                   "min": 0, "max": "unlimited"}},
269        "external_ids": {
270          "type": {"key": "string", "value": "string",
271                   "min": 0, "max": "unlimited"}}},
272      "isRoot": true},
273    "Queue": {
274      "columns": {
275        "other_config": {
276          "type": {"key": "string", "value": "string",
277                   "min": 0, "max": "unlimited"}},
278        "external_ids": {
279          "type": {"key": "string", "value": "string",
280                   "min": 0, "max": "unlimited"}}},
281      "isRoot": true},
282    "Mirror": {
283      "columns": {
284        "name": {
285          "type": "string"},
286        "select_all": {
287          "type": "boolean"
288        },
289        "select_src_port": {
290          "type": {"key": {"type": "uuid",
291                           "refTable": "Port",
292                           "refType": "weak"},
293                    "min": 0, "max": "unlimited"}},
294        "select_dst_port": {
295          "type": {"key": {"type": "uuid",
296                           "refTable": "Port",
297                           "refType": "weak"},
298                    "min": 0, "max": "unlimited"}},
299        "select_vlan": {
300          "type": {"key": {"type": "integer",
301                           "minInteger": 0,
302                           "maxInteger": 4095},
303                   "min": 0, "max": 4096}},
304        "output_port": {
305          "type": {"key": {"type": "uuid",
306                           "refTable": "Port",
307                           "refType": "weak"},
308                   "min": 0, "max": 1}},
309        "output_vlan": {
310          "type": {"key": {"type": "integer",
311                           "minInteger": 1,
312                           "maxInteger": 4095},
313                   "min": 0, "max": 1}},
314        "external_ids": {
315          "type": {"key": "string", "value": "string",
316                   "min": 0, "max": "unlimited"}}}},
317    "NetFlow": {
318      "columns": {
319        "targets": {
320          "type": {"key": {"type": "string"},
321                   "min": 1, "max": "unlimited"}},
322        "engine_type": {
323          "type": {"key": {"type": "integer",
324                           "minInteger": 0,
325                           "maxInteger": 255},
326                   "min": 0, "max": 1}},
327        "engine_id": {
328          "type": {"key": {"type": "integer",
329                           "minInteger": 0,
330                           "maxInteger": 255},
331                   "min": 0, "max": 1}},
332        "add_id_to_interface": {
333          "type": "boolean"},
334        "active_timeout": {
335          "type": {"key": {"type": "integer",
336                           "minInteger": -1}}},
337        "external_ids": {
338          "type": {"key": "string", "value": "string",
339                   "min": 0, "max": "unlimited"}}}},
340    "sFlow": {
341      "columns": {
342        "targets": {
343          "type": {"key": "string", "min": 1, "max": "unlimited"}},
344        "sampling": {
345          "type": {"key": "integer", "min": 0, "max": 1}},
346        "polling": {
347          "type": {"key": "integer", "min": 0, "max": 1}},
348        "header": {
349          "type": {"key": "integer", "min": 0, "max": 1}},
350        "agent": {
351          "type": {"key": "string", "min": 0, "max": 1}},
352        "external_ids": {
353          "type": {"key": "string", "value": "string",
354                   "min": 0, "max": "unlimited"}}}},
355    "Controller": {
356      "columns": {
357        "target": {
358          "type": "string"},
359        "max_backoff": {
360          "type": {"key": {"type": "integer",
361                           "minInteger": 1000},
362                   "min": 0, "max": 1}},
363        "inactivity_probe": {
364          "type": {"key": "integer", "min": 0, "max": 1}},
365        "discover_accept_regex": {
366          "type": {"key": "string", "min": 0, "max": 1}},
367        "discover_update_resolv_conf": {
368          "type": {"key": "boolean", "min": 0, "max": 1}},
369        "connection_mode": {
370          "type": {"key": {"type": "string",
371                   "enum": ["set", ["in-band", "out-of-band"]]},
372                   "min": 0, "max": 1}},
373        "local_ip": {
374          "type": {"key": {"type": "string"},
375                   "min": 0, "max": 1}},
376        "local_netmask": {
377          "type": {"key": {"type": "string"},
378                   "min": 0, "max": 1}},
379        "local_gateway": {
380          "type": {"key": {"type": "string"},
381                   "min": 0, "max": 1}},
382        "controller_rate_limit": {
383          "type": {"key": {"type": "integer",
384                           "minInteger": 100},
385                   "min": 0, "max": 1}},
386        "controller_burst_limit": {
387          "type": {"key": {"type": "integer",
388                           "minInteger": 25},
389                   "min": 0, "max": 1}},
390        "external_ids": {
391          "type": {"key": "string", "value": "string",
392                   "min": 0, "max": "unlimited"}},
393        "is_connected": {
394          "type": "boolean",
395          "ephemeral": true},
396        "role": {
397          "type": {"key": {"type": "string",
398                           "enum": ["set", ["other", "master", "slave"]]},
399                   "min": 0, "max": 1},
400          "ephemeral": true},
401        "status": {
402          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
403          "ephemeral": true}}},
404    "Manager": {
405      "columns": {
406        "target": {
407          "type": "string"},
408        "max_backoff": {
409          "type": {"key": {"type": "integer",
410                           "minInteger": 1000},
411                   "min": 0, "max": 1}},
412        "inactivity_probe": {
413          "type": {"key": "integer", "min": 0, "max": 1}},
414        "connection_mode": {
415          "type": {"key": {"type": "string",
416                   "enum": ["set", ["in-band", "out-of-band"]]},
417                   "min": 0, "max": 1}},
418        "external_ids": {
419          "type": {"key": "string", "value": "string",
420                   "min": 0, "max": "unlimited"}},
421        "is_connected": {
422          "type": "boolean",
423          "ephemeral": true},
424        "status": {
425          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
426          "ephemeral": true}}},
427    "SSL": {
428      "columns": {
429        "private_key": {
430          "type": "string"},
431        "certificate": {
432          "type": "string"},
433        "ca_cert": {
434          "type": "string"},
435        "bootstrap_ca_cert": {
436          "type": "boolean"},
437        "external_ids": {
438          "type": {"key": "string", "value": "string",
439                   "min": 0, "max": "unlimited"}}},
440      "maxRows": 1}}}