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