ovsdb: Add support for weak references.
[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_src_port": {
124          "type": {"key": {"type": "uuid",
125                           "refTable": "Port",
126                           "refType": "weak"},
127                    "min": 0, "max": "unlimited"}},
128        "select_dst_port": {
129          "type": {"key": {"type": "uuid",
130                           "refTable": "Port",
131                           "refType": "weak"},
132                    "min": 0, "max": "unlimited"}},
133        "select_vlan": {
134          "type": {"key": {"type": "integer",
135                           "minInteger": 0,
136                           "maxInteger": 4095},
137                   "min": 0, "max": 4096}},
138        "output_port": {
139          "type": {"key": {"type": "uuid",
140                           "refTable": "Port",
141                           "refType": "weak"},
142                   "min": 0, "max": 1}},
143        "output_vlan": {
144          "type": {"key": {"type": "integer",
145                           "minInteger": 1,
146                           "maxInteger": 4095},
147                   "min": 0, "max": 1}}}},
148    "NetFlow": {
149      "columns": {
150        "targets": {
151          "type": {"key": {"type": "string"},
152                   "min": 1, "max": "unlimited"}},
153        "engine_type": {
154          "type": {"key": {"type": "integer",
155                           "minInteger": 0,
156                           "maxInteger": 255},
157                   "min": 0, "max": 1}},
158        "engine_id": {
159          "type": {"key": {"type": "integer",
160                           "minInteger": 0,
161                           "maxInteger": 255},
162                   "min": 0, "max": 1}},
163        "add_id_to_interface": {
164          "type": "boolean"},
165        "active_timeout": {
166          "type": {"key": {"type": "integer",
167                           "minInteger": -1}}}}},
168    "sFlow": {
169      "columns": {
170        "targets": {
171          "type": {"key": "string", "min": 1, "max": "unlimited"}},
172        "sampling": {
173          "type": {"key": "integer", "min": 0, "max": 1}},
174        "polling": {
175          "type": {"key": "integer", "min": 0, "max": 1}},
176        "header": {
177          "type": {"key": "integer", "min": 0, "max": 1}},
178        "agent": {
179          "type": {"key": "string", "min": 0, "max": 1}}}},
180    "Controller": {
181      "columns": {
182        "target": {
183          "type": "string"},
184        "max_backoff": {
185          "type": {"key": {"type": "integer",
186                           "minInteger": 1000},
187                   "min": 0, "max": 1}},
188        "inactivity_probe": {
189          "type": {"key": "integer", "min": 0, "max": 1}},
190        "fail_mode": {
191          "type": {"key": {"type": "string",
192                           "enum": ["set", ["standalone", "secure"]]},
193                   "min": 0, "max": 1}},
194        "discover_accept_regex": {
195          "type": {"key": "string", "min": 0, "max": 1}},
196        "discover_update_resolv_conf": {
197          "type": {"key": "boolean", "min": 0, "max": 1}},
198        "connection_mode": {
199          "type": {"key": {"type": "string",
200                   "enum": ["set", ["in-band", "out-of-band"]]},
201                   "min": 0, "max": 1}},
202        "local_ip": {
203          "type": {"key": {"type": "string"},
204                   "min": 0, "max": 1}},
205        "local_netmask": {
206          "type": {"key": {"type": "string"},
207                   "min": 0, "max": 1}},
208        "local_gateway": {
209          "type": {"key": {"type": "string"},
210                   "min": 0, "max": 1}},
211        "controller_rate_limit": {
212          "type": {"key": {"type": "integer",
213                           "minInteger": 100},
214                   "min": 0, "max": 1}},
215        "controller_burst_limit": {
216          "type": {"key": {"type": "integer", 
217                           "minInteger": 25},
218                   "min": 0, "max": 1}}}},
219    "SSL": {
220      "columns": {
221        "private_key": {
222          "type": "string"},
223        "certificate": {
224          "type": "string"},
225        "ca_cert": {
226          "type": "string"},
227        "bootstrap_ca_cert": {
228          "type": "boolean"}}}}}