netdev: do not allow devices to be opened with conflicting types
[cascardo/ovs.git] / vswitchd / vswitch.ovsschema
1 {"name": "Open_vSwitch",
2  "version": "7.13.0",
3  "cksum": "889248633 22774",
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        "datapath_types": {
44          "type": {"key": {"type": "string"},
45                   "min": 0, "max": "unlimited"}},
46        "iface_types": {
47          "type": {"key": {"type": "string"},
48                   "min": 0, "max": "unlimited"}}},
49      "isRoot": true,
50      "maxRows": 1},
51    "Bridge": {
52      "columns": {
53        "name": {
54          "type": "string",
55          "mutable": false},
56        "datapath_type": {
57          "type": "string"},
58        "datapath_version": {
59          "type": "string"},
60        "datapath_id": {
61          "type": {"key": "string", "min": 0, "max": 1},
62          "ephemeral": true},
63        "stp_enable": {
64          "type": "boolean"},
65        "rstp_enable": {
66          "type": "boolean"},
67        "mcast_snooping_enable": {
68          "type": "boolean"},
69        "ports": {
70          "type": {"key": {"type": "uuid",
71                           "refTable": "Port"},
72                   "min": 0, "max": "unlimited"}},
73        "mirrors": {
74          "type": {"key": {"type": "uuid",
75                           "refTable": "Mirror"},
76                   "min": 0, "max": "unlimited"}},
77        "netflow": {
78          "type": {"key": {"type": "uuid",
79                           "refTable": "NetFlow"},
80                   "min": 0, "max": 1}},
81        "sflow": {
82          "type": {"key": {"type": "uuid",
83                           "refTable": "sFlow"},
84                   "min": 0, "max": 1}},
85        "ipfix": {
86          "type": {"key": {"type": "uuid",
87                           "refTable": "IPFIX"},
88                   "min": 0, "max": 1}},
89        "controller": {
90          "type": {"key": {"type": "uuid",
91                           "refTable": "Controller"},
92                   "min": 0, "max": "unlimited"}},
93        "protocols": {
94          "type": {"key": {"type": "string",
95            "enum": ["set", ["OpenFlow10",
96                             "OpenFlow11",
97                             "OpenFlow12",
98                             "OpenFlow13",
99                             "OpenFlow14",
100                             "OpenFlow15",
101                             "OpenFlow16"]]},
102            "min": 0, "max": "unlimited"}},
103        "fail_mode": {
104          "type": {"key": {"type": "string",
105                           "enum": ["set", ["standalone", "secure"]]},
106                   "min": 0, "max": 1}},
107        "status": {
108          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
109          "ephemeral": true},
110        "rstp_status": {
111          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
112          "ephemeral": true},
113        "other_config": {
114          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
115        "external_ids": {
116          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
117        "flood_vlans": {
118          "type": {"key": {"type": "integer",
119                           "minInteger": 0,
120                           "maxInteger": 4095},
121                   "min": 0, "max": 4096}},
122        "flow_tables": {
123          "type": {"key": {"type": "integer",
124                           "minInteger": 0,
125                           "maxInteger": 254},
126                   "value": {"type": "uuid",
127                             "refTable": "Flow_Table"},
128                   "min": 0, "max": "unlimited"}},
129        "auto_attach": {
130          "type": {"key": {"type": "uuid",
131                           "refTable": "AutoAttach"},
132                   "min": 0, "max": 1}}},
133      "indexes": [["name"]]},
134    "Port": {
135      "columns": {
136        "name": {
137          "type": "string",
138          "mutable": false},
139        "interfaces": {
140          "type": {"key": {"type": "uuid",
141                           "refTable": "Interface"},
142                   "min": 1, "max": "unlimited"}},
143        "trunks": {
144          "type": {"key": {"type": "integer",
145                           "minInteger": 0,
146                           "maxInteger": 4095},
147                   "min": 0, "max": 4096}},
148        "tag": {
149          "type": {"key": {"type": "integer",
150                           "minInteger": 0,
151                           "maxInteger": 4095},
152                   "min": 0, "max": 1}},
153        "vlan_mode": {
154          "type": {"key": {"type": "string",
155            "enum": ["set", ["trunk", "access", "native-tagged", "native-untagged"]]},
156          "min": 0, "max": 1}},
157        "qos": {
158          "type": {"key": {"type": "uuid",
159                           "refTable": "QoS"},
160                   "min": 0, "max": 1}},
161        "mac": {
162          "type": {"key": {"type": "string"},
163                   "min": 0, "max": 1}},
164        "bond_mode": {
165          "type": {"key": {"type": "string",
166            "enum": ["set", ["balance-tcp", "balance-slb", "active-backup"]]},
167          "min": 0, "max": 1}},
168        "lacp": {
169          "type": {"key": {"type": "string",
170            "enum": ["set", ["active", "passive", "off"]]},
171          "min": 0, "max": 1}},
172        "bond_updelay": {
173          "type": "integer"},
174        "bond_downdelay": {
175          "type": "integer"},
176        "bond_active_slave": {
177          "type": {"key": {"type": "string"},
178                   "min": 0, "max": 1}},
179        "bond_fake_iface": {
180          "type": "boolean"},
181        "fake_bridge": {
182          "type": "boolean"},
183        "status": {
184          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
185          "ephemeral": true},
186        "rstp_status": {
187          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
188          "ephemeral": true},
189        "rstp_statistics": {
190            "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
191            "ephemeral": true},
192        "statistics": {
193          "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
194          "ephemeral": true},
195        "other_config": {
196          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
197        "external_ids": {
198          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}}},
199      "indexes": [["name"]]},
200    "Interface": {
201      "columns": {
202        "name": {
203          "type": "string",
204          "mutable": false},
205        "type": {
206          "type": "string"},
207        "options": {
208          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
209        "ingress_policing_rate": {
210          "type": {"key": {"type": "integer",
211                           "minInteger": 0}}},
212        "ingress_policing_burst": {
213          "type": {"key": {"type": "integer",
214                           "minInteger": 0}}},
215        "mac_in_use": {
216          "type": {"key": {"type": "string"},
217                   "min": 0, "max": 1},
218                   "ephemeral": true},
219        "mac": {
220          "type": {"key": {"type": "string"},
221                   "min": 0, "max": 1}},
222        "ifindex": {
223          "type": {
224            "key": {"type": "integer",
225                    "minInteger": 0,
226                    "maxInteger": 4294967295},
227            "min": 0,
228            "max": 1},
229          "ephemeral": true},
230        "external_ids": {
231          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
232        "ofport": {
233          "type": {"key": "integer", "min": 0, "max": 1}},
234        "ofport_request": {
235          "type": {
236            "key": {"type": "integer",
237                    "minInteger": 1,
238                    "maxInteger": 65279},
239            "min": 0,
240            "max": 1}},
241        "bfd": {
242            "type": {"key": "string", "value": "string",
243                "min": 0, "max": "unlimited"}},
244        "bfd_status": {
245            "type": {"key": "string", "value": "string",
246                "min": 0, "max": "unlimited"}},
247        "cfm_mpid": {
248          "type": {
249            "key": {"type": "integer"},
250            "min": 0,
251            "max": 1}},
252        "cfm_remote_mpids": {
253          "type": {
254            "key": {"type": "integer"},
255            "min": 0,
256            "max": "unlimited"},
257          "ephemeral": true},
258        "cfm_flap_count": {
259          "type": {
260            "key": {"type": "integer"},
261            "min": 0,
262            "max": 1}},
263        "cfm_fault": {
264          "type": {
265            "key": { "type": "boolean"},
266            "min": 0,
267            "max": 1},
268          "ephemeral": true},
269        "cfm_fault_status": {
270          "type": {
271            "key": "string", "min": 0, "max": "unlimited"},
272            "ephemeral": true},
273        "cfm_remote_opstate": {
274          "type": {"key": {"type": "string",
275                           "enum": ["set", ["up", "down"]]},
276                   "min": 0, "max": 1},
277          "ephemeral": true},
278        "cfm_health": {
279          "type": {"key": {"type": "integer",
280                           "minInteger": 0,
281                           "maxInteger": 100},
282                   "min": 0, "max": 1},
283            "ephemeral": true},
284        "lacp_current": {
285          "type": {"key": {"type": "boolean"},
286                   "min": 0, "max": 1},
287          "ephemeral": true},
288        "lldp": {
289            "type": {"key": "string", "value": "string",
290                "min": 0, "max": "unlimited"}},
291        "other_config": {
292          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
293        "statistics": {
294          "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
295          "ephemeral": true},
296        "status": {
297          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
298          "ephemeral": true},
299        "admin_state": {
300          "type": {"key": {"type": "string",
301                           "enum": ["set", ["up", "down"]]},
302                   "min": 0, "max": 1},
303          "ephemeral": true},
304        "link_state": {
305          "type": {"key": {"type": "string",
306                           "enum": ["set", ["up", "down"]]},
307                   "min": 0, "max": 1},
308          "ephemeral": true},
309        "link_resets": {
310          "type": {"key": {"type": "integer"},
311                   "min": 0, "max": 1},
312          "ephemeral": true},
313        "link_speed": {
314          "type": {"key": "integer", "min": 0, "max": 1},
315          "ephemeral": true},
316        "duplex": {
317          "type": {"key": {"type": "string",
318                           "enum": ["set", ["half", "full"]]},
319                   "min": 0, "max": 1},
320          "ephemeral": true},
321        "mtu": {
322          "type": {"key": "integer", "min": 0, "max": 1},
323          "ephemeral": true},
324        "error": {
325          "type": {"key": "string", "min": 0, "max": 1}}},
326      "indexes": [["name"]]},
327    "Flow_Table": {
328      "columns": {
329        "name": {
330          "type": {"key": "string", "min": 0, "max": 1}},
331        "flow_limit": {
332          "type": {"key": {"type": "integer", "minInteger": 0},
333                   "min": 0, "max": 1}},
334        "overflow_policy": {
335          "type": {"key": {"type": "string",
336                           "enum": ["set", ["refuse", "evict"]]},
337                   "min": 0, "max": 1}},
338        "groups": {
339          "type": {"key": "string", "min": 0, "max": "unlimited"}},
340        "prefixes": {
341          "type": {"key": "string", "min": 0, "max": 3}},
342        "external_ids": {
343          "type": {"key": "string", "value": "string",
344                   "min": 0, "max": "unlimited"}}}},
345    "QoS": {
346      "columns": {
347        "type": {
348          "type": "string"},
349        "queues": {
350          "type": {"key": {"type": "integer",
351                           "minInteger": 0,
352                           "maxInteger": 4294967295},
353                   "value": {"type": "uuid",
354                             "refTable": "Queue"},
355                   "min": 0, "max": "unlimited"}},
356        "other_config": {
357          "type": {"key": "string", "value": "string",
358                   "min": 0, "max": "unlimited"}},
359        "external_ids": {
360          "type": {"key": "string", "value": "string",
361                   "min": 0, "max": "unlimited"}}},
362      "isRoot": true},
363    "Queue": {
364      "columns": {
365        "dscp": {
366          "type": {"key": {"type": "integer",
367                           "minInteger": 0,
368                           "maxInteger": 63},
369                   "min": 0, "max": 1}},
370        "other_config": {
371          "type": {"key": "string", "value": "string",
372                   "min": 0, "max": "unlimited"}},
373        "external_ids": {
374          "type": {"key": "string", "value": "string",
375                   "min": 0, "max": "unlimited"}}},
376      "isRoot": true},
377    "Mirror": {
378      "columns": {
379        "name": {
380          "type": "string"},
381        "select_all": {
382          "type": "boolean"},
383        "select_src_port": {
384          "type": {"key": {"type": "uuid",
385                           "refTable": "Port",
386                           "refType": "weak"},
387                    "min": 0, "max": "unlimited"}},
388        "select_dst_port": {
389          "type": {"key": {"type": "uuid",
390                           "refTable": "Port",
391                           "refType": "weak"},
392                    "min": 0, "max": "unlimited"}},
393        "select_vlan": {
394          "type": {"key": {"type": "integer",
395                           "minInteger": 0,
396                           "maxInteger": 4095},
397                   "min": 0, "max": 4096}},
398        "output_port": {
399          "type": {"key": {"type": "uuid",
400                           "refTable": "Port",
401                           "refType": "weak"},
402                   "min": 0, "max": 1}},
403        "output_vlan": {
404          "type": {"key": {"type": "integer",
405                           "minInteger": 1,
406                           "maxInteger": 4095},
407                   "min": 0, "max": 1}},
408        "snaplen": {
409          "type": {"key": {"type": "integer",
410                           "minInteger": 14,
411                           "maxInteger": 65535},
412                   "min": 0, "max": 1}},
413        "statistics": {
414          "type": {"key": "string", "value": "integer",
415                   "min": 0, "max": "unlimited"},
416          "ephemeral": true},
417        "external_ids": {
418          "type": {"key": "string", "value": "string",
419                   "min": 0, "max": "unlimited"}}}},
420    "NetFlow": {
421      "columns": {
422        "targets": {
423          "type": {"key": {"type": "string"},
424                   "min": 1, "max": "unlimited"}},
425        "engine_type": {
426          "type": {"key": {"type": "integer",
427                           "minInteger": 0,
428                           "maxInteger": 255},
429                   "min": 0, "max": 1}},
430        "engine_id": {
431          "type": {"key": {"type": "integer",
432                           "minInteger": 0,
433                           "maxInteger": 255},
434                   "min": 0, "max": 1}},
435        "add_id_to_interface": {
436          "type": "boolean"},
437        "active_timeout": {
438          "type": {"key": {"type": "integer",
439                           "minInteger": -1}}},
440        "external_ids": {
441          "type": {"key": "string", "value": "string",
442                   "min": 0, "max": "unlimited"}}}},
443    "sFlow": {
444      "columns": {
445        "targets": {
446          "type": {"key": "string", "min": 1, "max": "unlimited"}},
447        "sampling": {
448          "type": {"key": "integer", "min": 0, "max": 1}},
449        "polling": {
450          "type": {"key": "integer", "min": 0, "max": 1}},
451        "header": {
452          "type": {"key": "integer", "min": 0, "max": 1}},
453        "agent": {
454          "type": {"key": "string", "min": 0, "max": 1}},
455        "external_ids": {
456          "type": {"key": "string", "value": "string",
457                   "min": 0, "max": "unlimited"}}}},
458    "IPFIX": {
459      "columns": {
460        "targets": {
461          "type": {"key": "string", "min": 0, "max": "unlimited"}},
462        "sampling": {
463          "type": {"key": {"type": "integer",
464                           "minInteger": 1,
465                           "maxInteger": 4294967295},
466                   "min": 0, "max": 1}},
467        "obs_domain_id": {
468          "type": {"key": {"type": "integer",
469                           "minInteger": 0,
470                           "maxInteger": 4294967295},
471                   "min": 0, "max": 1}},
472        "obs_point_id": {
473          "type": {"key": {"type": "integer",
474                           "minInteger": 0,
475                           "maxInteger": 4294967295},
476                   "min": 0, "max": 1}},
477        "cache_active_timeout": {
478          "type": {"key": {"type": "integer",
479                           "minInteger": 0,
480                           "maxInteger": 4200},
481                   "min": 0, "max": 1}},
482        "cache_max_flows": {
483          "type": {"key": {"type": "integer",
484                           "minInteger": 0,
485                           "maxInteger": 4294967295},
486                   "min": 0, "max": 1}},
487        "other_config": {
488          "type": {"key": "string", "value": "string",
489                   "min": 0, "max": "unlimited"}},
490        "external_ids": {
491          "type": {"key": "string", "value": "string",
492                   "min": 0, "max": "unlimited"}}}},
493    "Flow_Sample_Collector_Set": {
494      "columns": {
495        "id": {
496          "type": {"key": {"type": "integer",
497                           "minInteger": 0,
498                           "maxInteger": 4294967295},
499                   "min": 1, "max": 1}},
500        "bridge": {
501          "type": {"key": {"type": "uuid",
502                           "refTable": "Bridge"},
503                   "min": 1, "max": 1}},
504        "ipfix": {
505          "type": {"key": {"type": "uuid",
506                           "refTable": "IPFIX"},
507                   "min": 0, "max": 1}},
508        "external_ids": {
509          "type": {"key": "string", "value": "string",
510                   "min": 0, "max": "unlimited"}}},
511      "isRoot": true,
512      "indexes": [["id", "bridge"]]},
513    "Controller": {
514      "columns": {
515        "target": {
516          "type": "string"},
517        "max_backoff": {
518          "type": {"key": {"type": "integer",
519                           "minInteger": 1000},
520                   "min": 0, "max": 1}},
521        "inactivity_probe": {
522          "type": {"key": "integer", "min": 0, "max": 1}},
523        "connection_mode": {
524          "type": {"key": {"type": "string",
525                   "enum": ["set", ["in-band", "out-of-band"]]},
526                   "min": 0, "max": 1}},
527        "local_ip": {
528          "type": {"key": {"type": "string"},
529                   "min": 0, "max": 1}},
530        "local_netmask": {
531          "type": {"key": {"type": "string"},
532                   "min": 0, "max": 1}},
533        "local_gateway": {
534          "type": {"key": {"type": "string"},
535                   "min": 0, "max": 1}},
536        "enable_async_messages": {
537          "type": {"key": {"type": "boolean"},
538                   "min": 0, "max": 1}},
539        "controller_rate_limit": {
540          "type": {"key": {"type": "integer",
541                           "minInteger": 100},
542                   "min": 0, "max": 1}},
543        "controller_burst_limit": {
544          "type": {"key": {"type": "integer",
545                           "minInteger": 25},
546                   "min": 0, "max": 1}},
547        "other_config": {
548          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
549        "external_ids": {
550          "type": {"key": "string", "value": "string",
551                   "min": 0, "max": "unlimited"}},
552        "is_connected": {
553          "type": "boolean",
554          "ephemeral": true},
555        "role": {
556          "type": {"key": {"type": "string",
557                           "enum": ["set", ["other", "master", "slave"]]},
558                   "min": 0, "max": 1},
559          "ephemeral": true},
560        "status": {
561          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
562          "ephemeral": true}}},
563    "Manager": {
564      "columns": {
565        "target": {
566          "type": "string"},
567        "max_backoff": {
568          "type": {"key": {"type": "integer",
569                           "minInteger": 1000},
570                   "min": 0, "max": 1}},
571        "inactivity_probe": {
572          "type": {"key": "integer", "min": 0, "max": 1}},
573        "connection_mode": {
574          "type": {"key": {"type": "string",
575                   "enum": ["set", ["in-band", "out-of-band"]]},
576                   "min": 0, "max": 1}},
577        "other_config": {
578          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
579        "external_ids": {
580          "type": {"key": "string", "value": "string",
581                   "min": 0, "max": "unlimited"}},
582        "is_connected": {
583          "type": "boolean",
584          "ephemeral": true},
585        "status": {
586          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
587          "ephemeral": true}},
588      "indexes": [["target"]]},
589    "SSL": {
590      "columns": {
591        "private_key": {
592          "type": "string"},
593        "certificate": {
594          "type": "string"},
595        "ca_cert": {
596          "type": "string"},
597        "bootstrap_ca_cert": {
598          "type": "boolean"},
599        "external_ids": {
600          "type": {"key": "string", "value": "string",
601                   "min": 0, "max": "unlimited"}}},
602      "maxRows": 1},
603    "AutoAttach": {
604      "columns": {
605        "system_name": {
606          "type": "string"},
607        "system_description": {
608          "type": "string"},
609        "mappings": {
610          "type": {"key": {"type": "integer",
611                           "minInteger": 0,
612                           "maxInteger": 16777215},
613                   "value": {"type": "integer",
614                           "minInteger": 0,
615                           "maxInteger": 4095},
616                   "min": 0, "max": "unlimited"}}}}}}