blob: 7739d658b74afa86676d938927321e379b371b64 [file] [log] [blame]
sslobodr392ebd52019-01-18 12:41:49 -05001{
Kent Hagerman1e9061e2019-05-21 16:01:21 -04002 "servers": [
3 {
4 "name": "grpc_command",
5 "port": 55555,
6 "address": "",
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 "routes": [
24 {
25 "name": "dev_manager",
26 "proto_descriptor": "voltha.pb",
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": "read_only",
83 "type": "round_robin",
84 "association": "round_robin",
85 "backend_cluster": "ro_vcore",
86 "methods": [
87 "ListDevicePorts",
88 "ListDevicePmConfigs",
89 "GetImages",
90 "GetImageDownloadStatus",
91 "GetImageDownload",
92 "ListImageDownloads",
93 "ListDeviceFlows",
94 "ListDeviceFlowGroups",
95 "ListLogicalDeviceFlows",
96 "ListLogicalDeviceFlowGroups",
97 "ListDevices",
98 "GetDevice",
99 "ListLogicalDevices",
100 "GetLogicalDevices",
101 "GetDeviceType",
102 "GetDeviceGroup",
103 "GetLogicalDevice",
104 "GetAlarmFilter",
105 "ListLogicalDevicePorts",
106 "GetLogicalDevicePort"
107 ]
108 },
109 {
110 "name": "dev_manager_ofagent",
111 "type": "binding",
112 "_association": "round_robin",
113 "binding": {
114 "type": "header",
115 "field": "voltha_backend_name",
116 "method": "Subscribe",
117 "association": "round_robin"
118 },
119 "backend_cluster": "vcore",
120 "methods": [
121 "StreamPacketsOut",
122 "ReceivePacketsIn",
123 "ReceiveChangeEvents",
124 "Subscribe",
125 "UpdateLogicalDeviceFlowTable",
126 "UpdateLogicalDeviceFlowGroupTable",
127 "GetLogicalDevice",
128 "GetLogicalDevicePort",
129 "EnableLogicalDevicePort",
130 "DisableLogicalDevicePort",
131 "ListLogicalDevices",
132 "ListLogicalDeviceFlows",
133 "ListLogicalDeviceFlowGroups",
134 "ListLogicalDevicePorts"
135 ],
136 "_TODO": "Overrides not implemented yet, config ignored",
137 "overrides": [
138 {
139 "methods": [
140 "abc",
141 "def"
142 ],
143 "routing_field": "id"
144 },
145 {
146 "methods": [
147 "ghi",
148 "jkl"
149 ]
150 },
151 {
152 "method": "mno",
153 "routing_field": "id"
154 },
155 {
156 "method": "pqr"
157 }
158 ]
159 }
160 ]
161 }
162 ],
163 "backend_clusters": [
164 {
165 "name": "vcore",
166 "backends": [
167 {
168 "name": "vcore1",
169 "type": "active_active",
170 "association": {
171 "strategy": "serial_number",
172 "location": "header",
173 "_TODO": "The key below needs to be implemented, currently hard coded",
174 "key": "voltha_serial_number"
175 },
176 "connections": [
177 {
178 "name": "vcore11",
Kent Hagerman9a879af2019-07-22 17:21:09 -0400179 "addr": "voltha-rw-core-11.voltha.svc.cluster.local",
180 "port": "50057"
Kent Hagerman1e9061e2019-05-21 16:01:21 -0400181 },
182 {
183 "name": "vcore12",
Kent Hagerman9a879af2019-07-22 17:21:09 -0400184 "addr": "voltha-rw-core-12.voltha.svc.cluster.local",
185 "port": "50057"
Kent Hagerman1e9061e2019-05-21 16:01:21 -0400186 }
187 ]
188 },
189 {
190 "name": "vcore2",
191 "type": "active_active",
192 "association": {
193 "strategy": "serial_number",
194 "location": "header",
195 "_TODO": "The key below needs to be implemented, currently hard coded",
196 "key": "voltha_serial_number"
197 },
198 "connections": [
199 {
200 "name": "vcore21",
Kent Hagerman9a879af2019-07-22 17:21:09 -0400201 "addr": "voltha-rw-core-21.voltha.svc.cluster.local",
202 "port": "50057"
Kent Hagerman1e9061e2019-05-21 16:01:21 -0400203 },
204 {
205 "name": "vcore22",
Kent Hagerman9a879af2019-07-22 17:21:09 -0400206 "addr": "voltha-rw-core-22.voltha.svc.cluster.local",
207 "port": "50057"
Kent Hagerman1e9061e2019-05-21 16:01:21 -0400208 }
209 ]
210 },
211 {
212 "name": "vcore3",
213 "type": "active_active",
214 "association": {
215 "strategy": "serial_number",
216 "location": "header",
217 "_TODO": "The key below needs to be implemented, currently hard coded",
218 "key": "voltha_serial_number"
219 },
220 "connections": [
221 {
222 "name": "vcore31",
Kent Hagerman9a879af2019-07-22 17:21:09 -0400223 "addr": "voltha-rw-core-31.voltha.svc.cluster.local",
224 "port": "50057"
Kent Hagerman1e9061e2019-05-21 16:01:21 -0400225 },
226 {
227 "name": "vcore32",
Kent Hagerman9a879af2019-07-22 17:21:09 -0400228 "addr": "voltha-rw-core-32.voltha.svc.cluster.local",
229 "port": "50057"
Kent Hagerman1e9061e2019-05-21 16:01:21 -0400230 }
231 ]
232 }
233 ]
234 },
235 {
236 "name": "ro_vcore",
237 "backends": [
238 {
239 "name": "ro_vcore1",
240 "type": "server",
241 "connections": [
242 {
243 "name": "ro_vcore11",
Kent Hagerman9a879af2019-07-22 17:21:09 -0400244 "addr": "voltha-ro-core-0.voltha-ro-core.voltha.svc.cluster.local",
245 "port": "50057"
Kent Hagerman1e9061e2019-05-21 16:01:21 -0400246 }
247 ]
248 },
249 {
250 "name": "ro_vcore2",
251 "type": "server",
252 "connections": [
253 {
254 "name": "ro_vcore21",
Kent Hagerman9a879af2019-07-22 17:21:09 -0400255 "addr": "voltha-ro-core-1.voltha-ro-core.voltha.svc.cluster.local",
256 "port": "50057"
Kent Hagerman1e9061e2019-05-21 16:01:21 -0400257 }
258 ]
259 },
260 {
261 "name": "ro_vcore3",
262 "type": "server",
263 "connections": [
264 {
265 "name": "ro_vcore31",
Kent Hagerman9a879af2019-07-22 17:21:09 -0400266 "addr": "voltha-ro-core-2.voltha-ro-core.voltha.svc.cluster.local",
267 "port": "50057"
Kent Hagerman1e9061e2019-05-21 16:01:21 -0400268 }
269 ]
270 }
271 ]
272 }
273 ],
274 "api": {
275 "_comment": "If this isn't defined then no api is available for dynamic configuration and queries",
276 "address": "",
277 "port": 55554
278 }
sslobodr392ebd52019-01-18 12:41:49 -0500279}