blob: 7b075ce10fe4adbce68cdf2235bf26e86fbe2d9a [file] [log] [blame]
sslobodr392ebd52019-01-18 12:41:49 -05001{
2 "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":[ "CreateDevice",
33 "GetCoreInstance",
34 "EnableLogicalDevicePort",
35 "DisableLogicalDevicePort",
36 "EnableDevice",
37 "DisableDevice",
38 "RebootDevice",
39 "DeleteDevice",
40 "DownloadImage",
41 "CancelImageDownload",
42 "ActivateImageUpdate",
43 "RevertImageUpdate",
44 "UpdateDevicePmConfigs",
45 "CreateAlarmFilter",
46 "UpdateAlarmFilter",
47 "DeleteAlarmFilter",
48 "SelfTest"],
49 "_COMMENT":"If a method is northbound affinity binding then association is used to route",
50 "_COMMENT":"but affinity is not set southbound but only based on the response",
51 "_COMMENT":"Methods here MUST be specified above, this overrides thier default beahvior",
52 "nb_binding_methods":["CreateDevice"],
53 "_TODO":"Overrides not implemented yet, config ignored",
54 "overrides": [
55 {"methods":["abc","def"], "routing_field":"id"},
56 {"methods":["ghi","jkl"]},
57 {"method":"mno", "routing_field":"id"},
58 {"method":"pqr"}
59 ]
60 },
61 {
62 "name":"read_only",
63 "type":"round_robin",
64 "association":"round_robin",
sslobodr8e2ccb52019-02-05 09:21:47 -050065 "backend_cluster":"ro_vcore",
sslobodr392ebd52019-01-18 12:41:49 -050066 "methods":[ "ListDevicePorts",
67 "ListDevicePmConfigs",
68 "GetImages",
69 "GetImageDownloadStatus",
70 "GetImageDownload",
71 "ListImageDownloads",
72 "ListDeviceFlows",
73 "ListDeviceFlowGroups",
74 "ListLogicalDeviceFlows",
75 "ListLogicalDeviceFlowGroups",
76 "ListDevices",
77 "GetDevice",
sslobodr8e2ccb52019-02-05 09:21:47 -050078 "ListLogicalDevices",
79 "GetLogicalDevices",
sslobodr392ebd52019-01-18 12:41:49 -050080 "GetDeviceType",
81 "GetDeviceGroup",
82 "GetLogicalDevice",
83 "GetAlarmFilter",
84 "ListLogicalDevicePorts",
85 "GetLogicalDevicePort"
86 ]
87 },
88 {
89 "name":"dev_manager_ofagent",
90 "type":"binding",
91 "_association":"round_robin",
92 "binding": {
93 "type":"header",
94 "field":"voltha_backend_name",
95 "method":"Subscribe",
96 "association":"round_robin"
97 },
98 "backend_cluster":"vcore",
99 "methods":["StreamPacketsOut",
sslobodr8e2ccb52019-02-05 09:21:47 -0500100 "ReceivePacketsIn",
101 "ReceiveChangeEvents",
sslobodr392ebd52019-01-18 12:41:49 -0500102 "Subscribe",
103 "ListLogicalDevices",
sslobodr8e2ccb52019-02-05 09:21:47 -0500104 "GetLogicalDevice",
sslobodr392ebd52019-01-18 12:41:49 -0500105 "ListDeviceFlowGroups",
106 "ListLogicalDeviceFlowGroups",
107 "ListDeviceFlows",
108 "UpdateLogicalDeviceFlowTable",
109 "UpdateLogicalDeviceFlowGroupTable",
110 "ListLogicalDeviceFlows"
111 ],
112 "_TODO":"Overrides not implemented yet, config ignored",
113 "overrides": [
114 {"methods":["abc","def"], "routing_field":"id"},
115 {"methods":["ghi","jkl"]},
116 {"method":"mno", "routing_field":"id"},
117 {"method":"pqr"}
118 ]
119 }
120 ]
121 }
122 ],
123 "backend_clusters": [
124 {
125 "name":"vcore",
126 "backends":[ {
127 "name":"vcore1",
128 "type":"active_active",
129 "association": {
130 "strategy":"serial_number",
131 "location":"header",
132 "_TODO":"The key below needs to be implemented, currently hard coded",
133 "key":"voltha_serial_number"
134 },
135 "connections": [ {
136 "name":"vcore11",
137 "addr":"",
138 "port":""
139 },
140 {
141 "name":"vcore12",
142 "addr":"",
143 "port":""
144 }]
145 },
146 {
147 "name":"vcore2",
148 "type":"active_active",
149 "association": {
150 "strategy":"serial_number",
sslobodr8e2ccb52019-02-05 09:21:47 -0500151 "location":"header",
152 "_TODO":"The key below needs to be implemented, currently hard coded",
153 "key":"voltha_serial_number"
sslobodr392ebd52019-01-18 12:41:49 -0500154 },
155 "connections": [ {
156 "name":"vcore21",
157 "addr":"",
158 "port":""
159 },
160 {
161 "name":"vcore22",
162 "addr":"",
163 "port":""
164 }]
165 },
166 {
167 "name":"vcore3",
168 "type":"active_active",
169 "association": {
170 "strategy":"serial_number",
sslobodr8e2ccb52019-02-05 09:21:47 -0500171 "location":"header",
172 "_TODO":"The key below needs to be implemented, currently hard coded",
173 "key":"voltha_serial_number"
sslobodr392ebd52019-01-18 12:41:49 -0500174 },
175 "connections": [ {
176 "name":"vcore31",
177 "addr":"",
178 "port":""
179 },
180 {
181 "name":"vcore32",
182 "addr":"",
183 "port":""
184 }]
185 }]
sslobodr8e2ccb52019-02-05 09:21:47 -0500186 },
187 {
188 "name":"ro_vcore",
189 "backends":[ {
190 "name":"ro_vcore1",
191 "type":"server",
192 "connections": [ {
193 "name":"ro_vcore11",
194 "addr":"",
195 "port":""
196 }]
197 },
198 {
199 "name":"ro_vcore2",
200 "type":"server",
201 "connections": [ {
202 "name":"ro_vcore21",
203 "addr":"",
204 "port":""
205 }]
206 },
207 {
208 "name":"ro_vcore3",
209 "type":"server",
210 "connections": [ {
211 "name":"ro_vcore31",
212 "addr":"",
213 "port":""
214 }]
215 }]
sslobodr392ebd52019-01-18 12:41:49 -0500216 }
217 ],
218 "api": {
219 "_comment":"If this isn't defined then no api is available for dynamic configuration and queries",
220 "address":"",
221 "port":55554
222 }
223}