c8a4963af51c089efe3cd77d289321b036552850
[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        "ssl": {
12          "type": {"key": {"type": "uuid",
13                           "refTable": "SSL"},
14                   "min": 0, "max": 1}},
15        "external_ids": {
16          "type": {"key": "string", "value": "string",
17                   "min": 0, "max": "unlimited"}},
18        "next_cfg": {
19          "type": "integer"},
20        "cur_cfg": {
21          "type": "integer"},
22        "capabilities": {
23          "type": {"key": "string",
24                   "value": {"type": "uuid",
25                             "refTable": "Capability"},
26                   "min": 0, "max": "unlimited"}},
27        "statistics": {
28          "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
29          "ephemeral": true}},
30      "maxRows": 1},
31    "Capability": {
32      "columns": {
33        "details": {
34          "type": {"key": "string", "value": "string",
35                   "min": 0, "max": "unlimited"}}}},
36    "Bridge": {
37      "columns": {
38        "name": {
39          "type": "string"},
40        "datapath_type": {
41          "type": "string"},
42        "datapath_id": {
43          "type": {"key": "string", "min": 0, "max": 1},
44          "ephemeral": true},
45        "ports": {
46          "type": {"key": {"type": "uuid",
47                           "refTable": "Port"},
48                   "min": 0, "max": "unlimited"}},
49        "mirrors": {
50          "type": {"key": {"type": "uuid",
51                           "refTable": "Mirror"},
52                   "min": 0, "max": "unlimited"}},
53        "netflow": {
54          "type": {"key": {"type": "uuid",
55                           "refTable": "NetFlow"},
56                   "min": 0, "max": 1}},
57        "sflow": {
58          "type": {"key": {"type": "uuid",
59                           "refTable": "sFlow"},
60                   "min": 0, "max": 1}},
61        "controller": {
62          "type": {"key": {"type": "uuid",
63                           "refTable": "Controller"},
64                   "min": 0, "max": "unlimited"}},
65        "fail_mode": {
66          "type": {"key": {"type": "string",
67                           "enum": ["set", ["standalone", "secure"]]},
68                   "min": 0, "max": 1}},
69        "other_config": {
70          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
71        "external_ids": {
72          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
73        "flood_vlans": {
74          "type": {"key": {"type": "integer",
75                           "minInteger": 0, 
76                           "maxInteger": 4095},
77                   "min": 0, "max": 4096}}}},
78    "Port": {
79      "columns": {
80        "name": {
81          "type": "string"},
82        "interfaces": {
83          "type": {"key": {"type": "uuid",
84                           "refTable": "Interface"},
85                   "min": 1, "max": "unlimited"}},
86        "trunks": {
87          "type": {"key": {"type": "integer",
88                           "minInteger": 0,
89                           "maxInteger": 4095},
90                   "min": 0, "max": 4096}},
91        "tag": {
92          "type": {"key": {"type": "integer",
93                           "minInteger": 0,
94                           "maxInteger": 4095},
95                   "min": 0, "max": 1}},
96        "qos": {
97          "type": {"key": {"type": "uuid",
98                           "refTable": "QoS"},
99                   "min": 0, "max": 1}},
100        "mac": {
101          "type": {"key": {"type": "string"},
102                   "min": 0, "max": 1}},
103        "bond_updelay": {
104          "type": "integer"},
105        "bond_downdelay": {
106          "type": "integer"},
107        "bond_fake_iface": {
108          "type": "boolean"},
109        "fake_bridge": {
110          "type": "boolean"},
111        "other_config": {
112          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
113        "external_ids": {
114          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}}}},
115    "Interface": {
116      "columns": {
117        "name": {
118          "type": "string"},
119        "type": {
120          "type": "string"},
121        "options": {
122          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
123        "ingress_policing_rate": {
124          "type": {"key": {"type": "integer",
125                           "minInteger": 0}}},
126        "ingress_policing_burst": {
127          "type": {"key": {"type": "integer",
128                           "minInteger": 0}}},
129        "mac": {
130          "type": {"key": {"type": "string"},
131                   "min": 0, "max": 1}},
132        "external_ids": {
133          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"}},
134        "ofport": {
135          "type": {"key": "integer", "min": 0, "max": 1},
136          "ephemeral": true},
137        "statistics": {
138          "type": {"key": "string", "value": "integer", "min": 0, "max": "unlimited"},
139          "ephemeral": true},
140        "status": {
141          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
142          "ephemeral": true},
143        "external_ids": {
144          "type": {"key": "string", "value": "string",
145                   "min": 0, "max": "unlimited"}}}},
146    "QoS": {
147      "columns": {
148        "type": {
149          "type": "string"},
150        "queues": {
151          "type": {"key": {"type": "integer",
152                           "minInteger": 0,
153                           "maxInteger": 4294967295},
154                   "value": {"type": "uuid",
155                             "refTable": "Queue"},
156                   "min": 0, "max": "unlimited"}},
157        "other_config": {
158          "type": {"key": "string", "value": "string", 
159                   "min": 0, "max": "unlimited"}},
160        "external_ids": {
161          "type": {"key": "string", "value": "string",
162                   "min": 0, "max": "unlimited"}}}},
163    "Queue": {
164      "columns": {
165        "other_config": {
166          "type": {"key": "string", "value": "string", 
167                   "min": 0, "max": "unlimited"}},
168        "external_ids": {
169          "type": {"key": "string", "value": "string",
170                   "min": 0, "max": "unlimited"}}}},
171    "Mirror": {
172      "columns": {
173        "name": {
174          "type": "string"},
175        "select_all": {
176          "type": "boolean"
177        },
178        "select_src_port": {
179          "type": {"key": {"type": "uuid",
180                           "refTable": "Port",
181                           "refType": "weak"},
182                    "min": 0, "max": "unlimited"}},
183        "select_dst_port": {
184          "type": {"key": {"type": "uuid",
185                           "refTable": "Port",
186                           "refType": "weak"},
187                    "min": 0, "max": "unlimited"}},
188        "select_vlan": {
189          "type": {"key": {"type": "integer",
190                           "minInteger": 0,
191                           "maxInteger": 4095},
192                   "min": 0, "max": 4096}},
193        "output_port": {
194          "type": {"key": {"type": "uuid",
195                           "refTable": "Port",
196                           "refType": "weak"},
197                   "min": 0, "max": 1}},
198        "output_vlan": {
199          "type": {"key": {"type": "integer",
200                           "minInteger": 1,
201                           "maxInteger": 4095},
202                   "min": 0, "max": 1}},
203        "external_ids": {
204          "type": {"key": "string", "value": "string",
205                   "min": 0, "max": "unlimited"}}}},
206    "NetFlow": {
207      "columns": {
208        "targets": {
209          "type": {"key": {"type": "string"},
210                   "min": 1, "max": "unlimited"}},
211        "engine_type": {
212          "type": {"key": {"type": "integer",
213                           "minInteger": 0,
214                           "maxInteger": 255},
215                   "min": 0, "max": 1}},
216        "engine_id": {
217          "type": {"key": {"type": "integer",
218                           "minInteger": 0,
219                           "maxInteger": 255},
220                   "min": 0, "max": 1}},
221        "add_id_to_interface": {
222          "type": "boolean"},
223        "active_timeout": {
224          "type": {"key": {"type": "integer",
225                           "minInteger": -1}}},
226        "external_ids": {
227          "type": {"key": "string", "value": "string",
228                   "min": 0, "max": "unlimited"}}}},
229    "sFlow": {
230      "columns": {
231        "targets": {
232          "type": {"key": "string", "min": 1, "max": "unlimited"}},
233        "sampling": {
234          "type": {"key": "integer", "min": 0, "max": 1}},
235        "polling": {
236          "type": {"key": "integer", "min": 0, "max": 1}},
237        "header": {
238          "type": {"key": "integer", "min": 0, "max": 1}},
239        "agent": {
240          "type": {"key": "string", "min": 0, "max": 1}},
241        "external_ids": {
242          "type": {"key": "string", "value": "string",
243                   "min": 0, "max": "unlimited"}}}},
244    "Controller": {
245      "columns": {
246        "target": {
247          "type": "string"},
248        "max_backoff": {
249          "type": {"key": {"type": "integer",
250                           "minInteger": 1000},
251                   "min": 0, "max": 1}},
252        "inactivity_probe": {
253          "type": {"key": "integer", "min": 0, "max": 1}},
254        "discover_accept_regex": {
255          "type": {"key": "string", "min": 0, "max": 1}},
256        "discover_update_resolv_conf": {
257          "type": {"key": "boolean", "min": 0, "max": 1}},
258        "connection_mode": {
259          "type": {"key": {"type": "string",
260                   "enum": ["set", ["in-band", "out-of-band"]]},
261                   "min": 0, "max": 1}},
262        "local_ip": {
263          "type": {"key": {"type": "string"},
264                   "min": 0, "max": 1}},
265        "local_netmask": {
266          "type": {"key": {"type": "string"},
267                   "min": 0, "max": 1}},
268        "local_gateway": {
269          "type": {"key": {"type": "string"},
270                   "min": 0, "max": 1}},
271        "controller_rate_limit": {
272          "type": {"key": {"type": "integer",
273                           "minInteger": 100},
274                   "min": 0, "max": 1}},
275        "controller_burst_limit": {
276          "type": {"key": {"type": "integer", 
277                           "minInteger": 25},
278                   "min": 0, "max": 1}},
279        "external_ids": {
280          "type": {"key": "string", "value": "string",
281                   "min": 0, "max": "unlimited"}}}},
282    "SSL": {
283      "columns": {
284        "private_key": {
285          "type": "string"},
286        "certificate": {
287          "type": "string"},
288        "ca_cert": {
289          "type": "string"},
290        "bootstrap_ca_cert": {
291          "type": "boolean"},
292        "external_ids": {
293          "type": {"key": "string", "value": "string",
294                   "min": 0, "max": "unlimited"}}},
295      "maxRows": 1}}}