blob: 329a7d4a161083195b3a40ce76508d345b030951 [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",
sslobodr392ebd52019-01-18 12:41:49 -0500103 "UpdateLogicalDeviceFlowTable",
104 "UpdateLogicalDeviceFlowGroupTable",
sslobodr63d160c2019-02-08 14:25:13 -0500105 "GetLogicalDevice",
106 "GetLogicalDevicePort",
107 "EnableLogicalDevicePort",
108 "DisableLogicalDevicePort",
109 "ListLogicalDevices",
110 "ListLogicalDeviceFlows",
111 "ListLogicalDeviceFlowGroups",
112 "ListLogicalDevicePorts"
sslobodr392ebd52019-01-18 12:41:49 -0500113 ],
114 "_TODO":"Overrides not implemented yet, config ignored",
115 "overrides": [
116 {"methods":["abc","def"], "routing_field":"id"},
117 {"methods":["ghi","jkl"]},
118 {"method":"mno", "routing_field":"id"},
119 {"method":"pqr"}
120 ]
121 }
122 ]
123 }
124 ],
125 "backend_clusters": [
126 {
127 "name":"vcore",
128 "backends":[ {
129 "name":"vcore1",
130 "type":"active_active",
131 "association": {
132 "strategy":"serial_number",
133 "location":"header",
134 "_TODO":"The key below needs to be implemented, currently hard coded",
135 "key":"voltha_serial_number"
136 },
137 "connections": [ {
138 "name":"vcore11",
139 "addr":"",
140 "port":""
141 },
142 {
143 "name":"vcore12",
144 "addr":"",
145 "port":""
146 }]
147 },
148 {
149 "name":"vcore2",
150 "type":"active_active",
151 "association": {
152 "strategy":"serial_number",
sslobodr8e2ccb52019-02-05 09:21:47 -0500153 "location":"header",
154 "_TODO":"The key below needs to be implemented, currently hard coded",
155 "key":"voltha_serial_number"
sslobodr392ebd52019-01-18 12:41:49 -0500156 },
157 "connections": [ {
158 "name":"vcore21",
159 "addr":"",
160 "port":""
161 },
162 {
163 "name":"vcore22",
164 "addr":"",
165 "port":""
166 }]
167 },
168 {
169 "name":"vcore3",
170 "type":"active_active",
171 "association": {
172 "strategy":"serial_number",
sslobodr8e2ccb52019-02-05 09:21:47 -0500173 "location":"header",
174 "_TODO":"The key below needs to be implemented, currently hard coded",
175 "key":"voltha_serial_number"
sslobodr392ebd52019-01-18 12:41:49 -0500176 },
177 "connections": [ {
178 "name":"vcore31",
179 "addr":"",
180 "port":""
181 },
182 {
183 "name":"vcore32",
184 "addr":"",
185 "port":""
186 }]
187 }]
sslobodr8e2ccb52019-02-05 09:21:47 -0500188 },
189 {
190 "name":"ro_vcore",
191 "backends":[ {
192 "name":"ro_vcore1",
193 "type":"server",
194 "connections": [ {
195 "name":"ro_vcore11",
196 "addr":"",
197 "port":""
198 }]
199 },
200 {
201 "name":"ro_vcore2",
202 "type":"server",
203 "connections": [ {
204 "name":"ro_vcore21",
205 "addr":"",
206 "port":""
207 }]
208 },
209 {
210 "name":"ro_vcore3",
211 "type":"server",
212 "connections": [ {
213 "name":"ro_vcore31",
214 "addr":"",
215 "port":""
216 }]
217 }]
sslobodr392ebd52019-01-18 12:41:49 -0500218 }
219 ],
220 "api": {
221 "_comment":"If this isn't defined then no api is available for dynamic configuration and queries",
222 "address":"",
223 "port":55554
224 }
225}