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