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