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