blob: debfcd73c9d311bde681b852f56aacd72e13a204 [file] [log] [blame]
Scott Bakere7144bc2019-10-01 14:16:47 -07001{
2 "servers": [
3 {
4 "name": "grpc_command",
5 "port": 55555,
6 "address": "localhost",
7 "type": "grpc",
8 "routers": [
9 {
10 "_TODO": "Suport a router list, remove the package and service from the router",
11 "package": "voltha",
12 "service": "VolthaService",
13 "router": "vcore"
14 }
15 ]
16 }
17 ],
18 "routers": [
19 {
20 "name": "vcore",
21 "package": "voltha",
22 "service": "VolthaService",
23 "proto_descriptor": "vendor/github.com/opencord/voltha-protos/go/voltha.pb",
24 "routes": [
25 {
26 "name": "dev_manager",
27 "type": "rpc_affinity_message",
28 "association": "round_robin",
29 "routing_field": "id",
30 "backend_cluster": "vcore",
31 "_COMMENT": "Methods are naturally southbound affinity binding unless otherwise specified below",
32 "methods": [
33 "CreateDevice",
34 "GetCoreInstance",
35 "EnableLogicalDevicePort",
36 "DisableLogicalDevicePort",
37 "EnableDevice",
38 "DisableDevice",
39 "RebootDevice",
40 "DeleteDevice",
41 "DownloadImage",
42 "CancelImageDownload",
43 "ActivateImageUpdate",
44 "RevertImageUpdate",
45 "UpdateDevicePmConfigs",
46 "CreateAlarmFilter",
47 "UpdateAlarmFilter",
48 "DeleteAlarmFilter",
49 "SelfTest"
50 ],
51 "_COMMENT": "If a method is northbound affinity binding then association is used to route",
52 "_COMMENT": "but affinity is not set southbound but only based on the response",
53 "_COMMENT": "Methods here MUST be specified above, this overrides thier default beahvior",
54 "nb_binding_methods": [
55 "CreateDevice"
56 ],
57 "_TODO": "Overrides not implemented yet, config ignored",
58 "overrides": [
59 {
60 "methods": [
61 "abc",
62 "def"
63 ],
64 "routing_field": "id"
65 },
66 {
67 "methods": [
68 "ghi",
69 "jkl"
70 ]
71 },
72 {
73 "method": "mno",
74 "routing_field": "id"
75 },
76 {
77 "method": "pqr"
78 }
79 ]
80 },
81 {
82 "name": "logger",
83 "proto_descriptor": "voltha.pb",
84 "type": "source",
85 "routing_field": "component_name",
86 "backend_cluster": "ro_vcore",
87 "methods": [
88 "UpdateLogLevel",
89 "GetLogLevels"
90 ]
91 },
92 {
93 "name": "read_only",
94 "type": "round_robin",
95 "association": "round_robin",
96 "backend_cluster": "ro_vcore",
97 "methods": [
98 "ListDevicePorts",
99 "ListDevicePmConfigs",
100 "GetImages",
101 "GetImageDownloadStatus",
102 "GetImageDownload",
103 "ListImageDownloads",
104 "ListDeviceFlows",
105 "ListDeviceFlowGroups",
106 "ListLogicalDeviceFlows",
107 "ListLogicalDeviceFlowGroups",
108 "ListDevices",
109 "GetDevice",
110 "ListLogicalDevices",
111 "GetLogicalDevices",
112 "GetDeviceType",
113 "GetDeviceGroup",
114 "GetLogicalDevice",
115 "GetAlarmFilter",
116 "ListLogicalDevicePorts",
117 "GetLogicalDevicePort"
118 ]
119 },
120 {
121 "name": "dev_manager_ofagent",
122 "type": "binding",
123 "_association": "round_robin",
124 "binding": {
125 "type": "header",
126 "field": "voltha_backend_name",
127 "method": "Subscribe",
128 "association": "round_robin"
129 },
130 "backend_cluster": "vcore",
131 "methods": [
132 "StreamPacketsOut",
133 "ReceivePacketsIn",
134 "ReceiveChangeEvents",
135 "Subscribe",
136 "UpdateLogicalDeviceFlowTable",
137 "UpdateLogicalDeviceFlowGroupTable",
138 "GetLogicalDevice",
139 "GetLogicalDevicePort",
140 "EnableLogicalDevicePort",
141 "DisableLogicalDevicePort",
142 "ListLogicalDevices",
143 "ListLogicalDeviceFlows",
144 "ListLogicalDeviceFlowGroups",
145 "ListLogicalDevicePorts"
146 ],
147 "_TODO": "Overrides not implemented yet, config ignored",
148 "overrides": [
149 {
150 "methods": [
151 "abc",
152 "def"
153 ],
154 "routing_field": "id"
155 },
156 {
157 "methods": [
158 "ghi",
159 "jkl"
160 ]
161 },
162 {
163 "method": "mno",
164 "routing_field": "id"
165 },
166 {
167 "method": "pqr"
168 }
169 ]
170 }
171 ]
172 }
173 ],
174 "backend_clusters": [
175 {
176 "name": "vcore",
177 "backends": [
178 {
179 "name": "vcore1",
180 "type": "active_active",
181 "association": {
182 "strategy": "serial_number",
183 "location": "header",
184 "_TODO": "The key below needs to be implemented, currently hard coded",
185 "key": "voltha_serial_number"
186 },
187 "connections": [
188 {
189 "name": "vcore11",
190 "addr": "voltha-rw-core-11.voltha.svc.cluster.local",
191 "port": "50057"
192 },
193 {
194 "name": "vcore12",
195 "addr": "voltha-rw-core-12.voltha.svc.cluster.local",
196 "port": "50057"
197 }
198 ]
199 },
200 {
201 "name": "vcore2",
202 "type": "active_active",
203 "association": {
204 "strategy": "serial_number",
205 "location": "header",
206 "_TODO": "The key below needs to be implemented, currently hard coded",
207 "key": "voltha_serial_number"
208 },
209 "connections": [
210 {
211 "name": "vcore21",
212 "addr": "voltha-rw-core-21.voltha.svc.cluster.local",
213 "port": "50057"
214 },
215 {
216 "name": "vcore22",
217 "addr": "voltha-rw-core-22.voltha.svc.cluster.local",
218 "port": "50057"
219 }
220 ]
221 },
222 {
223 "name": "vcore3",
224 "type": "active_active",
225 "association": {
226 "strategy": "serial_number",
227 "location": "header",
228 "_TODO": "The key below needs to be implemented, currently hard coded",
229 "key": "voltha_serial_number"
230 },
231 "connections": [
232 {
233 "name": "vcore31",
234 "addr": "voltha-rw-core-31.voltha.svc.cluster.local",
235 "port": "50057"
236 },
237 {
238 "name": "vcore32",
239 "addr": "voltha-rw-core-32.voltha.svc.cluster.local",
240 "port": "50057"
241 }
242 ]
243 }
244 ]
245 },
246 {
247 "name": "ro_vcore",
248 "backends": [
249 {
250 "name": "ro_vcore1",
251 "type": "server",
252 "connections": [
253 {
254 "name": "ro_vcore11",
255 "addr": "voltha-ro-core-0.voltha-ro-core.voltha.svc.cluster.local",
256 "port": "50057"
257 }
258 ]
259 },
260 {
261 "name": "ro_vcore2",
262 "type": "server",
263 "connections": [
264 {
265 "name": "ro_vcore21",
266 "addr": "voltha-ro-core-1.voltha-ro-core.voltha.svc.cluster.local",
267 "port": "50057"
268 }
269 ]
270 },
271 {
272 "name": "ro_vcore3",
273 "type": "server",
274 "connections": [
275 {
276 "name": "ro_vcore31",
277 "addr": "voltha-ro-core-2.voltha-ro-core.voltha.svc.cluster.local",
278 "port": "50057"
279 }
280 ]
281 }
282 ]
283 }
284 ],
285 "api": {
286 "_comment": "If this isn't defined then no api is available for dynamic configuration and queries",
287 "address": "localhost",
288 "port": 55554
289 }
290}