vswitchd: Implement balance-tcp bonding.
[cascardo/ovs.git] / vswitchd / vswitch.ovsschema
1 {"name": "Open_vSwitch",
2  "version": "1.3.1",
3  "cksum": "557026156 15739",
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_mode": {
124          "type": {"key": {"type": "string",
125            "enum": ["set", ["balance-tcp", "balance-slb", "active-backup"]]},
126          "min": 0, "max": 1}},
127        "lacp": {
128          "type": {"key": {"type": "string",
129            "enum": ["set", ["active", "passive", "off"]]},
130          "min": 0, "max": 1}},
131        "bond_updelay": {
132          "type": "integer"},
133        "bond_downdelay": {
134          "type": "integer"},
135        "bond_fake_iface": {
136          "type": "boolean"},
137        "fake_bridge": {
138          "type": "boolean"},
139        "other_config": {
140          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
141        "external_ids": {
142          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}}}},
143    "Interface": {
144      "columns": {
145        "name": {
146          "type": "string",
147          "mutable": false},
148        "type": {
149          "type": "string"},
150        "options": {
151          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
152        "ingress_policing_rate": {
153          "type": {"key": {"type": "integer",
154                           "minInteger": 0}}},
155        "ingress_policing_burst": {
156          "type": {"key": {"type": "integer",
157                           "minInteger": 0}}},
158        "mac": {
159          "type": {"key": {"type": "string"},
160                   "min": 0, "max": 1}},
161        "external_ids": {
162          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
163        "ofport": {
164          "type": {"key": "integer", "min": 0, "max": 1},
165          "ephemeral": true},
166        "monitor": {
167          "type": {
168            "key": {"type": "uuid", "refTable": "Monitor"},
169            "min": 0,
170            "max": 1}},
171        "other_config": {
172          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
173        "statistics": {
174          "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
175          "ephemeral": true},
176        "status": {
177          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
178          "ephemeral": true},
179        "admin_state": {
180          "type": {"key": {"type": "string",
181                           "enum": ["set", ["up", "down"]]},
182                   "min": 0, "max": 1},
183          "ephemeral": true},
184        "link_state": {
185          "type": {"key": {"type": "string",
186                           "enum": ["set", ["up", "down"]]},
187                   "min": 0, "max": 1},
188          "ephemeral": true},
189        "link_speed": {
190          "type": {"key": "integer", "min": 0, "max": 1},
191          "ephemeral": true},
192        "duplex": {
193          "type": {"key": {"type": "string",
194                           "enum": ["set", ["half", "full"]]},
195                   "min": 0, "max": 1},
196          "ephemeral": true},
197        "mtu": {
198          "type": {"key": "integer", "min": 0, "max": 1},
199          "ephemeral": true}}},
200    "Monitor": {
201      "columns": {
202        "mpid": {
203          "type" : {
204            "key": { "type": "integer", "minInteger": 1, "maxInteger": 8191}}},
205        "md_name": {
206          "type" : {
207            "key": { "type": "string", "minLength": 1, "maxLength": 43},
208            "min": 0,
209            "max": 1}},
210        "ma_name": {
211          "type" : {
212            "key": { "type": "string", "minLength": 1, "maxLength": 43},
213            "min": 0,
214            "max": 1}},
215        "interval": {
216          "type": {
217            "key": { "type": "integer", "minInteger": 100},
218            "min": 0,
219            "max": 1}},
220        "remote_mps": {
221          "type": {
222            "key": { "type": "uuid", "refTable": "Maintenance_Point"},
223            "min": 0,
224            "max": "unlimited"},
225          "ephemeral": true},
226        "unexpected_remote_mpids": {
227          "type": {
228            "key": { "type": "integer"},
229            "min": 0,
230            "max": "unlimited"},
231          "ephemeral": true},
232        "unexpected_remote_maids": {
233          "type": {
234            "key": "string",
235            "min": 0,
236            "max": "unlimited"},
237          "ephemeral": true},
238        "fault": {
239          "type": {
240            "key": { "type": "boolean"},
241            "min": 0,
242            "max": 1},
243          "ephemeral": true}}},
244    "Maintenance_Point": {
245      "columns": {
246        "mpid": {
247          "type" : {
248            "key": { "type": "integer", "minInteger": 1, "maxInteger": 8191}},
249          "mutable": false},
250        "fault": {
251          "type": {
252            "key": { "type": "boolean"},
253            "min": 0,
254            "max": 1},
255          "ephemeral": true}}},
256    "QoS": {
257      "columns": {
258        "type": {
259          "type": "string"},
260        "queues": {
261          "type": {"key": {"type": "integer",
262                           "minInteger": 0,
263                           "maxInteger": 4294967295},
264                   "value": {"type": "uuid",
265                             "refTable": "Queue"},
266                   "min": 0, "max": "unlimited"}},
267        "other_config": {
268          "type": {"key": "string", "value": "string",
269                   "min": 0, "max": "unlimited"}},
270        "external_ids": {
271          "type": {"key": "string", "value": "string",
272                   "min": 0, "max": "unlimited"}}}},
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    "Mirror": {
282      "columns": {
283        "name": {
284          "type": "string"},
285        "select_all": {
286          "type": "boolean"
287        },
288        "select_src_port": {
289          "type": {"key": {"type": "uuid",
290                           "refTable": "Port",
291                           "refType": "weak"},
292                    "min": 0, "max": "unlimited"}},
293        "select_dst_port": {
294          "type": {"key": {"type": "uuid",
295                           "refTable": "Port",
296                           "refType": "weak"},
297                    "min": 0, "max": "unlimited"}},
298        "select_vlan": {
299          "type": {"key": {"type": "integer",
300                           "minInteger": 0,
301                           "maxInteger": 4095},
302                   "min": 0, "max": 4096}},
303        "output_port": {
304          "type": {"key": {"type": "uuid",
305                           "refTable": "Port",
306                           "refType": "weak"},
307                   "min": 0, "max": 1}},
308        "output_vlan": {
309          "type": {"key": {"type": "integer",
310                           "minInteger": 1,
311                           "maxInteger": 4095},
312                   "min": 0, "max": 1}},
313        "external_ids": {
314          "type": {"key": "string", "value": "string",
315                   "min": 0, "max": "unlimited"}}}},
316    "NetFlow": {
317      "columns": {
318        "targets": {
319          "type": {"key": {"type": "string"},
320                   "min": 1, "max": "unlimited"}},
321        "engine_type": {
322          "type": {"key": {"type": "integer",
323                           "minInteger": 0,
324                           "maxInteger": 255},
325                   "min": 0, "max": 1}},
326        "engine_id": {
327          "type": {"key": {"type": "integer",
328                           "minInteger": 0,
329                           "maxInteger": 255},
330                   "min": 0, "max": 1}},
331        "add_id_to_interface": {
332          "type": "boolean"},
333        "active_timeout": {
334          "type": {"key": {"type": "integer",
335                           "minInteger": -1}}},
336        "external_ids": {
337          "type": {"key": "string", "value": "string",
338                   "min": 0, "max": "unlimited"}}}},
339    "sFlow": {
340      "columns": {
341        "targets": {
342          "type": {"key": "string", "min": 1, "max": "unlimited"}},
343        "sampling": {
344          "type": {"key": "integer", "min": 0, "max": 1}},
345        "polling": {
346          "type": {"key": "integer", "min": 0, "max": 1}},
347        "header": {
348          "type": {"key": "integer", "min": 0, "max": 1}},
349        "agent": {
350          "type": {"key": "string", "min": 0, "max": 1}},
351        "external_ids": {
352          "type": {"key": "string", "value": "string",
353                   "min": 0, "max": "unlimited"}}}},
354    "Controller": {
355      "columns": {
356        "target": {
357          "type": "string"},
358        "max_backoff": {
359          "type": {"key": {"type": "integer",
360                           "minInteger": 1000},
361                   "min": 0, "max": 1}},
362        "inactivity_probe": {
363          "type": {"key": "integer", "min": 0, "max": 1}},
364        "discover_accept_regex": {
365          "type": {"key": "string", "min": 0, "max": 1}},
366        "discover_update_resolv_conf": {
367          "type": {"key": "boolean", "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        "local_ip": {
373          "type": {"key": {"type": "string"},
374                   "min": 0, "max": 1}},
375        "local_netmask": {
376          "type": {"key": {"type": "string"},
377                   "min": 0, "max": 1}},
378        "local_gateway": {
379          "type": {"key": {"type": "string"},
380                   "min": 0, "max": 1}},
381        "controller_rate_limit": {
382          "type": {"key": {"type": "integer",
383                           "minInteger": 100},
384                   "min": 0, "max": 1}},
385        "controller_burst_limit": {
386          "type": {"key": {"type": "integer",
387                           "minInteger": 25},
388                   "min": 0, "max": 1}},
389        "external_ids": {
390          "type": {"key": "string", "value": "string",
391                   "min": 0, "max": "unlimited"}},
392        "is_connected": {
393          "type": "boolean",
394          "ephemeral": true},
395        "role": {
396          "type": {"key": {"type": "string",
397                           "enum": ["set", ["other", "master", "slave"]]},
398                   "min": 0, "max": 1},
399          "ephemeral": true},
400        "status": {
401          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
402          "ephemeral": true}}},
403    "Manager": {
404      "columns": {
405        "target": {
406          "type": "string"},
407        "max_backoff": {
408          "type": {"key": {"type": "integer",
409                           "minInteger": 1000},
410                   "min": 0, "max": 1}},
411        "inactivity_probe": {
412          "type": {"key": "integer", "min": 0, "max": 1}},
413        "connection_mode": {
414          "type": {"key": {"type": "string",
415                   "enum": ["set", ["in-band", "out-of-band"]]},
416                   "min": 0, "max": 1}},
417        "external_ids": {
418          "type": {"key": "string", "value": "string",
419                   "min": 0, "max": "unlimited"}},
420        "is_connected": {
421          "type": "boolean",
422          "ephemeral": true},
423        "status": {
424          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
425          "ephemeral": true}}},
426    "SSL": {
427      "columns": {
428        "private_key": {
429          "type": "string"},
430        "certificate": {
431          "type": "string"},
432        "ca_cert": {
433          "type": "string"},
434        "bootstrap_ca_cert": {
435          "type": "boolean"},
436        "external_ids": {
437          "type": {"key": "string", "value": "string",
438                   "min": 0, "max": "unlimited"}}},
439      "maxRows": 1}}}