blob: 57e7715a31300b638e1d8b30e6883ba5d8521e73 [file] [log] [blame]
{
"servers": [
{
"name": "grpc_command",
"port": 55555,
"address": "localhost",
"type": "grpc",
"routers": [
{
"_TODO": "Suport a router list, remove the package and service from the router",
"package": "voltha",
"service": "VolthaService",
"router": "vcore"
}
]
}
],
"routers": [
{
"name": "vcore",
"package": "voltha",
"service": "VolthaService",
"proto_descriptor": "vendor/github.com/opencord/voltha-protos/go/voltha.pb",
"routes": [
{
"name": "dev_manager",
"type": "rpc_affinity_message",
"association": "round_robin",
"routing_field": "id",
"backend_cluster": "vcore",
"_COMMENT": "Methods are naturally southbound affinity binding unless otherwise specified below",
"methods": [
"CreateDevice",
"GetCoreInstance",
"EnableLogicalDevicePort",
"DisableLogicalDevicePort",
"EnableDevice",
"DisableDevice",
"RebootDevice",
"DeleteDevice",
"DownloadImage",
"CancelImageDownload",
"ActivateImageUpdate",
"RevertImageUpdate",
"UpdateDevicePmConfigs",
"CreateAlarmFilter",
"UpdateAlarmFilter",
"DeleteAlarmFilter",
"SelfTest"
],
"_COMMENT": "If a method is northbound affinity binding then association is used to route",
"_COMMENT": "but affinity is not set southbound but only based on the response",
"_COMMENT": "Methods here MUST be specified above, this overrides thier default beahvior",
"nb_binding_methods": [
"CreateDevice"
],
"_TODO": "Overrides not implemented yet, config ignored",
"overrides": [
{
"methods": [
"abc",
"def"
],
"routing_field": "id"
},
{
"methods": [
"ghi",
"jkl"
]
},
{
"method": "mno",
"routing_field": "id"
},
{
"method": "pqr"
}
]
},
{
"name": "logger",
"proto_descriptor": "voltha.pb",
"type": "source",
"routing_field": "component_name",
"backend_cluster": "ro_vcore",
"methods": [
"UpdateLogLevel",
"GetLogLevels"
]
},
{
"name": "read_only",
"type": "round_robin",
"association": "round_robin",
"backend_cluster": "ro_vcore",
"methods": [
"ListDevicePorts",
"ListDevicePmConfigs",
"GetImages",
"GetImageDownloadStatus",
"GetImageDownload",
"ListImageDownloads",
"ListDeviceFlows",
"ListDeviceFlowGroups",
"ListLogicalDeviceFlows",
"ListLogicalDeviceFlowGroups",
"ListDevices",
"GetDevice",
"ListLogicalDevices",
"GetLogicalDevices",
"GetDeviceType",
"GetDeviceGroup",
"GetLogicalDevice",
"GetAlarmFilter",
"ListLogicalDevicePorts",
"GetLogicalDevicePort"
]
},
{
"name": "dev_manager_ofagent",
"type": "binding",
"_association": "round_robin",
"binding": {
"type": "header",
"field": "voltha_backend_name",
"method": "Subscribe",
"association": "round_robin"
},
"backend_cluster": "vcore",
"methods": [
"StreamPacketsOut",
"ReceivePacketsIn",
"ReceiveChangeEvents",
"Subscribe",
"UpdateLogicalDeviceFlowTable",
"UpdateLogicalDeviceFlowGroupTable",
"GetLogicalDevice",
"GetLogicalDevicePort",
"EnableLogicalDevicePort",
"DisableLogicalDevicePort",
"ListLogicalDevices",
"ListLogicalDeviceFlows",
"ListLogicalDeviceFlowGroups",
"ListLogicalDevicePorts",
"ListLogicalDeviceMeters",
"UpdateLogicalDeviceMeterTable"
],
"_TODO": "Overrides not implemented yet, config ignored",
"overrides": [
{
"methods": [
"abc",
"def"
],
"routing_field": "id"
},
{
"methods": [
"ghi",
"jkl"
]
},
{
"method": "mno",
"routing_field": "id"
},
{
"method": "pqr"
}
]
}
]
}
],
"backend_clusters": [
{
"name": "vcore",
"backends": [
{
"name": "vcore1",
"type": "active_active",
"association": {
"strategy": "serial_number",
"location": "header",
"_TODO": "The key below needs to be implemented, currently hard coded",
"key": "voltha_serial_number"
},
"connections": [
{
"name": "vcore11",
"addr": "voltha-rw-core-11.voltha.svc.cluster.local",
"port": "50057"
},
{
"name": "vcore12",
"addr": "voltha-rw-core-12.voltha.svc.cluster.local",
"port": "50057"
}
]
},
{
"name": "vcore2",
"type": "active_active",
"association": {
"strategy": "serial_number",
"location": "header",
"_TODO": "The key below needs to be implemented, currently hard coded",
"key": "voltha_serial_number"
},
"connections": [
{
"name": "vcore21",
"addr": "voltha-rw-core-21.voltha.svc.cluster.local",
"port": "50057"
},
{
"name": "vcore22",
"addr": "voltha-rw-core-22.voltha.svc.cluster.local",
"port": "50057"
}
]
},
{
"name": "vcore3",
"type": "active_active",
"association": {
"strategy": "serial_number",
"location": "header",
"_TODO": "The key below needs to be implemented, currently hard coded",
"key": "voltha_serial_number"
},
"connections": [
{
"name": "vcore31",
"addr": "voltha-rw-core-31.voltha.svc.cluster.local",
"port": "50057"
},
{
"name": "vcore32",
"addr": "voltha-rw-core-32.voltha.svc.cluster.local",
"port": "50057"
}
]
}
]
},
{
"name": "ro_vcore",
"backends": [
{
"name": "ro_vcore1",
"type": "server",
"connections": [
{
"name": "ro_vcore11",
"addr": "voltha-ro-core-0.voltha-ro-core.voltha.svc.cluster.local",
"port": "50057"
}
]
},
{
"name": "ro_vcore2",
"type": "server",
"connections": [
{
"name": "ro_vcore21",
"addr": "voltha-ro-core-1.voltha-ro-core.voltha.svc.cluster.local",
"port": "50057"
}
]
},
{
"name": "ro_vcore3",
"type": "server",
"connections": [
{
"name": "ro_vcore31",
"addr": "voltha-ro-core-2.voltha-ro-core.voltha.svc.cluster.local",
"port": "50057"
}
]
}
]
}
],
"api": {
"_comment": "If this isn't defined then no api is available for dynamic configuration and queries",
"address": "localhost",
"port": 55554
}
}