blob: 01444789041385f0d8243ca4336375725a8a2bc3 [file] [log] [blame]
sslobodrd6e07e72019-01-31 16:07:20 -05001{
2 "servers": [
3 {
4 "name": "grpc_command",
5 "port": 5000,
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",
65 "backend_cluster":"vcore",
66 "methods":[ "ListDevicePorts",
67 "ListDevicePmConfigs",
68 "GetImages",
69 "GetImageDownloadStatus",
70 "GetImageDownload",
71 "ListImageDownloads",
72 "ListDeviceFlows",
73 "ListDeviceFlowGroups",
74 "ListLogicalDeviceFlows",
75 "ListLogicalDeviceFlowGroups",
76 "ListDevices",
77 "GetDevice",
78 "GetDeviceType",
79 "GetDeviceGroup",
80 "GetLogicalDevice",
81 "GetAlarmFilter",
82 "ListLogicalDevicePorts",
83 "GetLogicalDevicePort"
84 ]
85 },
86 {
87 "name":"dev_manager_ofagent",
88 "type":"binding",
89 "_association":"round_robin",
90 "binding": {
91 "type":"header",
92 "field":"voltha_backend_name",
93 "method":"Subscribe",
94 "association":"round_robin"
95 },
96 "backend_cluster":"vcore",
97 "methods":["StreamPacketsOut",
98 "Subscribe",
99 "ListLogicalDevices",
100 "ListDeviceFlowGroups",
101 "ListLogicalDeviceFlowGroups",
102 "ListDeviceFlows",
103 "UpdateLogicalDeviceFlowTable",
104 "UpdateLogicalDeviceFlowGroupTable",
105 "ListLogicalDeviceFlows"
106 ],
107 "_TODO":"Overrides not implemented yet, config ignored",
108 "overrides": [
109 {"methods":["abc","def"], "routing_field":"id"},
110 {"methods":["ghi","jkl"]},
111 {"method":"mno", "routing_field":"id"},
112 {"method":"pqr"}
113 ]
114 }
115 ]
116 }
117 ],
118 "backend_clusters": [
119 {
120 "name":"vcore",
121 "backends":[ {
122 "name":"vcore1",
123 "type":"active_active",
124 "association": {
125 "strategy":"serial_number",
126 "location":"header",
127 "_TODO":"The key below needs to be implemented, currently hard coded",
128 "key":"voltha_serial_number"
129 },
130 "connections": [ {
131 "name":"vcore11",
132 "addr":"127.0.0.1",
133 "port":"5011"
134 },
135 {
136 "name":"vcore12",
137 "addr":"127.0.0.1",
138 "port":"5012"
139 }]
140 },
141 {
142 "name":"vcore2",
143 "type":"active_active",
144 "association": {
145 "strategy":"serial_number",
146 "location":"header"
147 },
148 "connections": [ {
149 "name":"vcore21",
150 "addr":"127.0.0.1",
151 "port":"5021"
152 },
153 {
154 "name":"vcore22",
155 "addr":"127.0.0.1",
156 "port":"5022"
157 }]
158 },
159 {
160 "name":"vcore3",
161 "type":"active_active",
162 "association": {
163 "strategy":"serial_number",
164 "location":"header"
165 },
166 "connections": [ {
167 "name":"vcore31",
168 "addr":"127.0.0.1",
169 "port":"5031"
170 },
171 {
172 "name":"vcore32",
173 "addr":"127.0.0.1",
174 "port":"5032"
175 }]
176 }]
177 }
178 ],
179 "api": {
180 "_comment":"If this isn't defined then no api is available for dynamic configuration and queries",
181 "address":"",
182 "port":55554
183 }
184}