bridge: Store the 'mac_in_use' for interfaces in OVSDB.
[sliver-openvswitch.git] / vswitchd / vswitch.ovsschema
1 {"name": "Open_vSwitch",
2  "version": "7.1.0",
3  "cksum": "2234055133 17444",
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        "statistics": {
29          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
30          "ephemeral": true},
31        "ovs_version": {
32          "type": {"key": {"type": "string"},
33                   "min": 0, "max": 1}},
34        "db_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      "isRoot": true,
44      "maxRows": 1},
45    "Bridge": {
46      "columns": {
47        "name": {
48          "type": "string",
49          "mutable": false},
50        "datapath_type": {
51          "type": "string"},
52        "datapath_id": {
53          "type": {"key": "string", "min": 0, "max": 1},
54          "ephemeral": true},
55        "stp_enable": {
56          "type": "boolean"},
57        "ports": {
58          "type": {"key": {"type": "uuid",
59                           "refTable": "Port"},
60                   "min": 0, "max": "unlimited"}},
61        "mirrors": {
62          "type": {"key": {"type": "uuid",
63                           "refTable": "Mirror"},
64                   "min": 0, "max": "unlimited"}},
65        "netflow": {
66          "type": {"key": {"type": "uuid",
67                           "refTable": "NetFlow"},
68                   "min": 0, "max": 1}},
69        "sflow": {
70          "type": {"key": {"type": "uuid",
71                           "refTable": "sFlow"},
72                   "min": 0, "max": 1}},
73        "controller": {
74          "type": {"key": {"type": "uuid",
75                           "refTable": "Controller"},
76                   "min": 0, "max": "unlimited"}},
77        "protocols": {
78          "type": {"key": {"type": "string",
79            "enum": ["set", ["OpenFlow10", "OpenFlow12", "OpenFlow13"]]},
80            "min": 0, "max": "unlimited"}},
81        "fail_mode": {
82          "type": {"key": {"type": "string",
83                           "enum": ["set", ["standalone", "secure"]]},
84                   "min": 0, "max": 1}},
85        "status": {
86          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
87          "ephemeral": true},
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        "flow_tables": {
98          "type": {"key": {"type": "integer",
99                           "minInteger": 0,
100                           "maxInteger": 254},
101                   "value": {"type": "uuid",
102                             "refTable": "Flow_Table"},
103                   "min": 0, "max": "unlimited"}}},
104      "indexes": [["name"]]},
105    "Port": {
106      "columns": {
107        "name": {
108          "type": "string",
109          "mutable": false},
110        "interfaces": {
111          "type": {"key": {"type": "uuid",
112                           "refTable": "Interface"},
113                   "min": 1, "max": "unlimited"}},
114        "trunks": {
115          "type": {"key": {"type": "integer",
116                           "minInteger": 0,
117                           "maxInteger": 4095},
118                   "min": 0, "max": 4096}},
119        "tag": {
120          "type": {"key": {"type": "integer",
121                           "minInteger": 0,
122                           "maxInteger": 4095},
123                   "min": 0, "max": 1}},
124        "vlan_mode": {
125          "type": {"key": {"type": "string",
126            "enum": ["set", ["trunk", "access", "native-tagged", "native-untagged"]]},
127          "min": 0, "max": 1}},
128        "qos": {
129          "type": {"key": {"type": "uuid",
130                           "refTable": "QoS"},
131                   "min": 0, "max": 1}},
132        "mac": {
133          "type": {"key": {"type": "string"},
134                   "min": 0, "max": 1}},
135        "bond_mode": {
136          "type": {"key": {"type": "string",
137            "enum": ["set", ["balance-tcp", "balance-slb", "active-backup"]]},
138          "min": 0, "max": 1}},
139        "lacp": {
140          "type": {"key": {"type": "string",
141            "enum": ["set", ["active", "passive", "off"]]},
142          "min": 0, "max": 1}},
143        "bond_updelay": {
144          "type": "integer"},
145        "bond_downdelay": {
146          "type": "integer"},
147        "bond_fake_iface": {
148          "type": "boolean"},
149        "fake_bridge": {
150          "type": "boolean"},
151        "status": {
152          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
153          "ephemeral": true},
154        "statistics": {
155          "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
156          "ephemeral": true},
157        "other_config": {
158          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
159        "external_ids": {
160          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}}},
161      "indexes": [["name"]]},
162    "Interface": {
163      "columns": {
164        "name": {
165          "type": "string",
166          "mutable": false},
167        "type": {
168          "type": "string"},
169        "options": {
170          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
171        "ingress_policing_rate": {
172          "type": {"key": {"type": "integer",
173                           "minInteger": 0}}},
174        "ingress_policing_burst": {
175          "type": {"key": {"type": "integer",
176                           "minInteger": 0}}},
177        "mac_in_use": {
178          "type": {"key": {"type": "string"},
179                   "min": 0, "max": 1},
180                   "ephemeral": true},
181        "mac": {
182          "type": {"key": {"type": "string"},
183                   "min": 0, "max": 1}},
184        "external_ids": {
185          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
186        "ofport": {
187          "type": {"key": "integer", "min": 0, "max": 1}},
188        "ofport_request": {
189          "type": {
190            "key": {"type": "integer",
191                    "minInteger": 1,
192                    "maxInteger": 65279},
193            "min": 0,
194            "max": 1}},
195        "cfm_mpid": {
196          "type": {
197            "key": {"type": "integer"},
198            "min": 0,
199            "max": 1}},
200        "cfm_remote_mpids": {
201          "type": {
202            "key": {"type": "integer"},
203            "min": 0,
204            "max": "unlimited"},
205          "ephemeral": true},
206        "cfm_fault": {
207          "type": {
208            "key": { "type": "boolean"},
209            "min": 0,
210            "max": 1},
211          "ephemeral": true},
212        "cfm_fault_status": {
213          "type": {
214            "key": "string", "min": 0, "max": "unlimited"},
215            "ephemeral": true},
216        "cfm_remote_opstate": {
217          "type": {"key": {"type": "string",
218                           "enum": ["set", ["up", "down"]]},
219                   "min": 0, "max": 1},
220          "ephemeral": true},
221        "cfm_health": {
222          "type": {"key": {"type": "integer",
223                           "minInteger": 0,
224                           "maxInteger": 100},
225                   "min": 0, "max": 1},
226            "ephemeral": true},
227        "lacp_current": {
228          "type": {"key": {"type": "boolean"},
229                   "min": 0, "max": 1},
230          "ephemeral": true},
231        "other_config": {
232          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
233        "statistics": {
234          "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
235          "ephemeral": true},
236        "status": {
237          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
238          "ephemeral": true},
239        "admin_state": {
240          "type": {"key": {"type": "string",
241                           "enum": ["set", ["up", "down"]]},
242                   "min": 0, "max": 1},
243          "ephemeral": true},
244        "link_state": {
245          "type": {"key": {"type": "string",
246                           "enum": ["set", ["up", "down"]]},
247                   "min": 0, "max": 1},
248          "ephemeral": true},
249        "link_resets": {
250          "type": {"key": {"type": "integer"},
251                   "min": 0, "max": 1},
252          "ephemeral": true},
253        "link_speed": {
254          "type": {"key": "integer", "min": 0, "max": 1},
255          "ephemeral": true},
256        "duplex": {
257          "type": {"key": {"type": "string",
258                           "enum": ["set", ["half", "full"]]},
259                   "min": 0, "max": 1},
260          "ephemeral": true},
261        "mtu": {
262          "type": {"key": "integer", "min": 0, "max": 1},
263          "ephemeral": true}},
264      "indexes": [["name"]]},
265    "Flow_Table": {
266      "columns": {
267        "name": {
268          "type": {"key": "string", "min": 0, "max": 1}},
269        "flow_limit": {
270          "type": {"key": {"type": "integer", "minInteger": 0},
271                   "min": 0, "max": 1}},
272        "overflow_policy": {
273          "type": {"key": {"type": "string",
274                           "enum": ["set", ["refuse", "evict"]]},
275                   "min": 0, "max": 1}},
276        "groups": {
277          "type": {"key": "string", "min": 0, "max": "unlimited"}}}},
278    "QoS": {
279      "columns": {
280        "type": {
281          "type": "string"},
282        "queues": {
283          "type": {"key": {"type": "integer",
284                           "minInteger": 0,
285                           "maxInteger": 4294967295},
286                   "value": {"type": "uuid",
287                             "refTable": "Queue"},
288                   "min": 0, "max": "unlimited"}},
289        "other_config": {
290          "type": {"key": "string", "value": "string",
291                   "min": 0, "max": "unlimited"}},
292        "external_ids": {
293          "type": {"key": "string", "value": "string",
294                   "min": 0, "max": "unlimited"}}},
295      "isRoot": true},
296    "Queue": {
297      "columns": {
298        "dscp": {
299          "type": {"key": {"type": "integer",
300                           "minInteger": 0,
301                           "maxInteger": 63},
302                   "min": 0, "max": 1}},
303        "other_config": {
304          "type": {"key": "string", "value": "string",
305                   "min": 0, "max": "unlimited"}},
306        "external_ids": {
307          "type": {"key": "string", "value": "string",
308                   "min": 0, "max": "unlimited"}}},
309      "isRoot": true},
310    "Mirror": {
311      "columns": {
312        "name": {
313          "type": "string"},
314        "select_all": {
315          "type": "boolean"},
316        "select_src_port": {
317          "type": {"key": {"type": "uuid",
318                           "refTable": "Port",
319                           "refType": "weak"},
320                    "min": 0, "max": "unlimited"}},
321        "select_dst_port": {
322          "type": {"key": {"type": "uuid",
323                           "refTable": "Port",
324                           "refType": "weak"},
325                    "min": 0, "max": "unlimited"}},
326        "select_vlan": {
327          "type": {"key": {"type": "integer",
328                           "minInteger": 0,
329                           "maxInteger": 4095},
330                   "min": 0, "max": 4096}},
331        "output_port": {
332          "type": {"key": {"type": "uuid",
333                           "refTable": "Port",
334                           "refType": "weak"},
335                   "min": 0, "max": 1}},
336        "output_vlan": {
337          "type": {"key": {"type": "integer",
338                           "minInteger": 1,
339                           "maxInteger": 4095},
340                   "min": 0, "max": 1}},
341        "statistics": {
342          "type": {"key": "string", "value": "integer",
343                   "min": 0, "max": "unlimited"},
344          "ephemeral": true},
345        "external_ids": {
346          "type": {"key": "string", "value": "string",
347                   "min": 0, "max": "unlimited"}}}},
348    "NetFlow": {
349      "columns": {
350        "targets": {
351          "type": {"key": {"type": "string"},
352                   "min": 1, "max": "unlimited"}},
353        "engine_type": {
354          "type": {"key": {"type": "integer",
355                           "minInteger": 0,
356                           "maxInteger": 255},
357                   "min": 0, "max": 1}},
358        "engine_id": {
359          "type": {"key": {"type": "integer",
360                           "minInteger": 0,
361                           "maxInteger": 255},
362                   "min": 0, "max": 1}},
363        "add_id_to_interface": {
364          "type": "boolean"},
365        "active_timeout": {
366          "type": {"key": {"type": "integer",
367                           "minInteger": -1}}},
368        "external_ids": {
369          "type": {"key": "string", "value": "string",
370                   "min": 0, "max": "unlimited"}}}},
371    "sFlow": {
372      "columns": {
373        "targets": {
374          "type": {"key": "string", "min": 1, "max": "unlimited"}},
375        "sampling": {
376          "type": {"key": "integer", "min": 0, "max": 1}},
377        "polling": {
378          "type": {"key": "integer", "min": 0, "max": 1}},
379        "header": {
380          "type": {"key": "integer", "min": 0, "max": 1}},
381        "agent": {
382          "type": {"key": "string", "min": 0, "max": 1}},
383        "external_ids": {
384          "type": {"key": "string", "value": "string",
385                   "min": 0, "max": "unlimited"}}}},
386    "Controller": {
387      "columns": {
388        "target": {
389          "type": "string"},
390        "max_backoff": {
391          "type": {"key": {"type": "integer",
392                           "minInteger": 1000},
393                   "min": 0, "max": 1}},
394        "inactivity_probe": {
395          "type": {"key": "integer", "min": 0, "max": 1}},
396        "connection_mode": {
397          "type": {"key": {"type": "string",
398                   "enum": ["set", ["in-band", "out-of-band"]]},
399                   "min": 0, "max": 1}},
400        "local_ip": {
401          "type": {"key": {"type": "string"},
402                   "min": 0, "max": 1}},
403        "local_netmask": {
404          "type": {"key": {"type": "string"},
405                   "min": 0, "max": 1}},
406        "local_gateway": {
407          "type": {"key": {"type": "string"},
408                   "min": 0, "max": 1}},
409        "enable_async_messages": {
410          "type": {"key": {"type": "boolean"},
411                   "min": 0, "max": 1}},
412        "controller_rate_limit": {
413          "type": {"key": {"type": "integer",
414                           "minInteger": 100},
415                   "min": 0, "max": 1}},
416        "controller_burst_limit": {
417          "type": {"key": {"type": "integer",
418                           "minInteger": 25},
419                   "min": 0, "max": 1}},
420        "other_config": {
421          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
422        "external_ids": {
423          "type": {"key": "string", "value": "string",
424                   "min": 0, "max": "unlimited"}},
425        "is_connected": {
426          "type": "boolean",
427          "ephemeral": true},
428        "role": {
429          "type": {"key": {"type": "string",
430                           "enum": ["set", ["other", "master", "slave"]]},
431                   "min": 0, "max": 1},
432          "ephemeral": true},
433        "status": {
434          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
435          "ephemeral": true}}},
436    "Manager": {
437      "columns": {
438        "target": {
439          "type": "string"},
440        "max_backoff": {
441          "type": {"key": {"type": "integer",
442                           "minInteger": 1000},
443                   "min": 0, "max": 1}},
444        "inactivity_probe": {
445          "type": {"key": "integer", "min": 0, "max": 1}},
446        "connection_mode": {
447          "type": {"key": {"type": "string",
448                   "enum": ["set", ["in-band", "out-of-band"]]},
449                   "min": 0, "max": 1}},
450        "other_config": {
451          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
452        "external_ids": {
453          "type": {"key": "string", "value": "string",
454                   "min": 0, "max": "unlimited"}},
455        "is_connected": {
456          "type": "boolean",
457          "ephemeral": true},
458        "status": {
459          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
460          "ephemeral": true}},
461      "indexes": [["target"]]},
462    "SSL": {
463      "columns": {
464        "private_key": {
465          "type": "string"},
466        "certificate": {
467          "type": "string"},
468        "ca_cert": {
469          "type": "string"},
470        "bootstrap_ca_cert": {
471          "type": "boolean"},
472        "external_ids": {
473          "type": {"key": "string", "value": "string",
474                   "min": 0, "max": "unlimited"}}},
475      "maxRows": 1}}}