7f5863fa762af1ef2f08e8107aa92024b91e8af4
[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        "external_ids": {
141          "type": {"key": "string", "value": "string",
142                   "min": 0, "max": "unlimited"}}}},
143    "QoS": {
144      "columns": {
145        "type": {
146          "type": "string"},
147        "queues": {
148          "type": {"key": {"type": "integer",
149                           "minInteger": 0,
150                           "maxInteger": 4294967295},
151                   "value": {"type": "uuid",
152                             "refTable": "Queue"},
153                   "min": 0, "max": "unlimited"}},
154        "other_config": {
155          "type": {"key": "string", "value": "string", 
156                   "min": 0, "max": "unlimited"}},
157        "external_ids": {
158          "type": {"key": "string", "value": "string",
159                   "min": 0, "max": "unlimited"}}}},
160    "Queue": {
161      "columns": {
162        "other_config": {
163          "type": {"key": "string", "value": "string", 
164                   "min": 0, "max": "unlimited"}},
165        "external_ids": {
166          "type": {"key": "string", "value": "string",
167                   "min": 0, "max": "unlimited"}}}},
168    "Mirror": {
169      "columns": {
170        "name": {
171          "type": "string"},
172        "select_all": {
173          "type": "boolean"
174        },
175        "select_src_port": {
176          "type": {"key": {"type": "uuid",
177                           "refTable": "Port",
178                           "refType": "weak"},
179                    "min": 0, "max": "unlimited"}},
180        "select_dst_port": {
181          "type": {"key": {"type": "uuid",
182                           "refTable": "Port",
183                           "refType": "weak"},
184                    "min": 0, "max": "unlimited"}},
185        "select_vlan": {
186          "type": {"key": {"type": "integer",
187                           "minInteger": 0,
188                           "maxInteger": 4095},
189                   "min": 0, "max": 4096}},
190        "output_port": {
191          "type": {"key": {"type": "uuid",
192                           "refTable": "Port",
193                           "refType": "weak"},
194                   "min": 0, "max": 1}},
195        "output_vlan": {
196          "type": {"key": {"type": "integer",
197                           "minInteger": 1,
198                           "maxInteger": 4095},
199                   "min": 0, "max": 1}},
200        "external_ids": {
201          "type": {"key": "string", "value": "string",
202                   "min": 0, "max": "unlimited"}}}},
203    "NetFlow": {
204      "columns": {
205        "targets": {
206          "type": {"key": {"type": "string"},
207                   "min": 1, "max": "unlimited"}},
208        "engine_type": {
209          "type": {"key": {"type": "integer",
210                           "minInteger": 0,
211                           "maxInteger": 255},
212                   "min": 0, "max": 1}},
213        "engine_id": {
214          "type": {"key": {"type": "integer",
215                           "minInteger": 0,
216                           "maxInteger": 255},
217                   "min": 0, "max": 1}},
218        "add_id_to_interface": {
219          "type": "boolean"},
220        "active_timeout": {
221          "type": {"key": {"type": "integer",
222                           "minInteger": -1}}},
223        "external_ids": {
224          "type": {"key": "string", "value": "string",
225                   "min": 0, "max": "unlimited"}}}},
226    "sFlow": {
227      "columns": {
228        "targets": {
229          "type": {"key": "string", "min": 1, "max": "unlimited"}},
230        "sampling": {
231          "type": {"key": "integer", "min": 0, "max": 1}},
232        "polling": {
233          "type": {"key": "integer", "min": 0, "max": 1}},
234        "header": {
235          "type": {"key": "integer", "min": 0, "max": 1}},
236        "agent": {
237          "type": {"key": "string", "min": 0, "max": 1}},
238        "external_ids": {
239          "type": {"key": "string", "value": "string",
240                   "min": 0, "max": "unlimited"}}}},
241    "Controller": {
242      "columns": {
243        "target": {
244          "type": "string"},
245        "max_backoff": {
246          "type": {"key": {"type": "integer",
247                           "minInteger": 1000},
248                   "min": 0, "max": 1}},
249        "inactivity_probe": {
250          "type": {"key": "integer", "min": 0, "max": 1}},
251        "discover_accept_regex": {
252          "type": {"key": "string", "min": 0, "max": 1}},
253        "discover_update_resolv_conf": {
254          "type": {"key": "boolean", "min": 0, "max": 1}},
255        "connection_mode": {
256          "type": {"key": {"type": "string",
257                   "enum": ["set", ["in-band", "out-of-band"]]},
258                   "min": 0, "max": 1}},
259        "local_ip": {
260          "type": {"key": {"type": "string"},
261                   "min": 0, "max": 1}},
262        "local_netmask": {
263          "type": {"key": {"type": "string"},
264                   "min": 0, "max": 1}},
265        "local_gateway": {
266          "type": {"key": {"type": "string"},
267                   "min": 0, "max": 1}},
268        "controller_rate_limit": {
269          "type": {"key": {"type": "integer",
270                           "minInteger": 100},
271                   "min": 0, "max": 1}},
272        "controller_burst_limit": {
273          "type": {"key": {"type": "integer", 
274                           "minInteger": 25},
275                   "min": 0, "max": 1}},
276        "external_ids": {
277          "type": {"key": "string", "value": "string",
278                   "min": 0, "max": "unlimited"}}}},
279    "SSL": {
280      "columns": {
281        "private_key": {
282          "type": "string"},
283        "certificate": {
284          "type": "string"},
285        "ca_cert": {
286          "type": "string"},
287        "bootstrap_ca_cert": {
288          "type": "boolean"},
289        "external_ids": {
290          "type": {"key": "string", "value": "string",
291                   "min": 0, "max": "unlimited"}}},
292      "maxRows": 1}}}