name=Concentrator Support
category=Utility
description=Code that handles periodically broadcasting a many-to-one-route-request (MTORR) so that the device will act as a concentrator (sink) in the network.

qualityString=Production Ready
quality=production

sourceFiles=concentrator-support.c, concentrator-support-cli.c, source-route-common.c
sourceFilesSoc=source-route.c
sourceFilesHost=source-route-host.c

trigger.enable_plugin=ZIGBEE_DEVICE_TYPE:COORDINATOR
trigger.disable_plugin=ZIGBEE_DEVICE_TYPE:!COORDINATOR

includedByDefault=true

events=Update

implementedCallbacks=emberAfPluginConcentratorInitCallback, emberAfPluginConcentratorNcpInitCallback, emberIncomingRouteErrorHandler, ezspIncomingRouteErrorHandler, emberAfGetSourceRouteOverheadCallback, emberAfSetSourceRouteOverheadCallback, emberAfPluginConcentratorMessageSentCallback, emberAfPluginConcentratorStackStatusCallback
# Additional macros
additionalMacros=EMBER_APPLICATION_HAS_SOURCE_ROUTING,EZSP_APPLICATION_HAS_ROUTE_RECORD_HANDLER

options=concentratorType, sourceRouteTableSize, sourceRouteTableSizeHost, minTimeBetweenBroadcastsSeconds, maxTimeBetweenBroadcastsSeconds, routeErrorThreshold, deliveryFailureThreshold, maxHops, ncpSupport, defaultRouterBehavior

concentratorType.name=Concentrator Type
concentratorType.description=The type of concentrator that the node will advertise itself as.  A low ram concentrator will receive route record messages every time a device wishes to send to it.  A high ram concentrator will only receive route record messages after a new MTORR broadcast.
concentratorType.type=LIST:LowRamConcentrator, HighRamConcentrator
concentratorType.default=LowRamConcentrator

sourceRouteTableSize.name=Source Route Table Size (SoC or NCP)
sourceRouteTableSize.description=The size of the source route table for storing source routes on the SOC or NCP.
sourceRouteTableSize.type=NUMBER:2,255
sourceRouteTableSize.default=7
sourceRouteTableSize.define=EMBER_SOURCE_ROUTE_TABLE_SIZE

sourceRouteTableSizeHost.name=Source Route Table Size (Host)
sourceRouteTableSizeHost.description=The size of the source route table for storing source routes on the host.
sourceRouteTableSizeHost.type=NUMBER:2,255
sourceRouteTableSizeHost.default=32
sourceRouteTableSizeHost.define=EZSP_HOST_SOURCE_ROUTE_TABLE_SIZE

hostSourceRouteTableSupport.name=Enable host side source route table
hostSourceRouteTableSupport.description=If concentrator support at the host side source route table, a copy of the source route table should exist on the host.  In those cases, this option could be disabled by deafult in later release. This option has no effect on SoC.
hostSourceRouteTableSupport.type=BOOLEAN
hostSourceRouteTableSupport.default=TRUE

minTimeBetweenBroadcastsSeconds.name=Minimum Time between broadcasts (in seconds)
minTimeBetweenBroadcastsSeconds.description=The minimum amount of time that must pass between MTORR broadcasts.
minTimeBetweenBroadcastsSeconds.type=NUMBER:1,60
minTimeBetweenBroadcastsSeconds.default=10

maxTimeBetweenBroadcastsSeconds.name=Maximum Time between broadcasts (in seconds)
maxTimeBetweenBroadcastsSeconds.description=The maximum amount of time that can pass between MTORR broadcasts.
maxTimeBetweenBroadcastsSeconds.type=NUMBER:30,300
maxTimeBetweenBroadcastsSeconds.default=60

routeErrorThreshold.name=Route Error Threshold
routeErrorThreshold.description=The number of route errors that will trigger a re-broadcast of the MTORR.
routeErrorThreshold.type=NUMBER:1,100
routeErrorThreshold.default=3

deliveryFailureThreshold.name=Delivery Failure Threshold
deliveryFailureThreshold.description=The number of APS delivery failures that will trigger a re-broadcast of the MTORR.
deliveryFailureThreshold.type=NUMBER:1,100
deliveryFailureThreshold.default=1

maxHops.name=Maximum number of hops for Broadcast
maxHops.description=The maximum number of hops that the MTORR broadcast will be allowed to have.  A value of 0 will be converted to the EMBER_MAX_HOPS value set by the stack.
maxHops.type=NUMBER:0,30
maxHops.default=0

ncpSupport.name=Enable concentrator support at the NCP
ncpSupport.description=If concentrator support at the NCP is enabled, the NCP will be responsible of periodically broadcasting MTORRs and collecting the source routes.  In very large networks, the NCP may not have the capacity to hold all of the routing information.  In those cases, this option should be disabled.  Otherwise, this option should generally be enabled.  This option has no effect on SoC.
ncpSupport.type=BOOLEAN
ncpSupport.default=TRUE

defaultRouterBehavior.name=Default concentrator router behavior
defaultRouterBehavior.description=This sets the initial value for the concentrator router behavior. The behavior can be set at runtime with emberAfPluginConcentratorSetRouterBehaviorCommand.
defaultRouterBehavior.type=LIST:NONE,FULL
defaultRouterBehavior.default=FULL
