# Name of the plugin.
name=Tunneling Client Cluster
category=Smart Energy

# Any string is allowable here.  Generally it is either: Production Ready, Test Tool, or Requires Extending
qualityString=Requires Extending
# This must be one of the following:  productionReady, testTool, extensionNeeded
quality=extend

introducedIn=se-1.1-07-5356-16

#requiredApis=address-table
requiredPlugins=address-table


# Description of the plugin.
description=Ember implementation of Tunneling client cluster.  This plugin requires extending to integrate the software that is processing the tunneled data.  Note: if the maximum transfer size requires fragmentation, you need to manually include the Fragmentation plugin and configure it to support the tunnel data size.  Additionally, the plugin uses the address table to communicate with server, so you must manually configure the address table size so that it accomodates active tunnels managed by this plugin as well as any other entries created during normal operation.

# List of .c files that need to be compiled and linked in.
sourceFiles=tunneling-client.c,tunneling-client-cli.c

# List of callbacks implemented by this plugin
implementedCallbacks=emberAfTunnelingClusterClientInitCallback,emberAfTunnelingClusterClientTickCallback,emberAfTunnelingClusterRequestTunnelResponseCallback,emberAfTunnelingClusterTransferDataServerToClientCallback,emberAfTunnelingClusterTransferDataErrorServerToClientCallback,emberAfTunnelingClusterTunnelClosureNotificationCallback,emberAfPluginTunnelingClientStackStatusCallback

# Turn this on by default
includedByDefault=true

# Which clusters does it depend on
dependsOnClusterClient=Tunneling

# List of options
options=tunnelLimit, maximumIncomingTransferSize, timeoutSeconds

tunnelLimit.name=Tunnel Limit
tunnelLimit.description=Maximum number of active tunnels supported by the plugin.
tunnelLimit.type=NUMBER:1,255
tunnelLimit.default=8

maximumIncomingTransferSize.name=Maximum Incoming Transfer Size
maximumIncomingTransferSize.description=The maximum size of an incoming tunnel message that the server can support.
maximumIncomingTransferSize.type=NUMBER:1,65535
maximumIncomingTransferSize.default=128

timeoutSeconds.name=Timeout (in seconds)
timeoutSeconds.description=The amount of time, in seconds, the plugin will wait for a server to respond to a request to open a new tunnel.
timeoutSeconds.type=NUMBER:1,255
timeoutSeconds.default=5
