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