Tunneling Server#

API and Callbacks for the Tunneling Cluster Server Component.

Silicon Labs implementation of Tunneling server cluster. This component requires extending to integrate the software that processes the tunneled data. Note if the maximum transfer size requires fragmentation, manually include the Fragmentation plugin and configure it to support the tunnel data size. Additionally, the component uses the address table to communicate with clients, so you must manually configure the address table size so that it accommodates active tunnels managed by this component as well as any other entries created during normal operation. The Tunneling cluster test specification suggests that implementations support the test protocol (protocol id 199, manufacturer code 0xFFFF). If you do not support it, you need some other means of proving two way communications works and is verifiable. If test protocol support is enabled, the component automatically handles requests for the test protocol and these messages will not fall through to the application.

Modules#

Tunneling Server

API#

emberAfPluginTunnelingServerTransferData(uint16_t tunnelIndex, uint8_t *data, uint16_t dataLen)

Transfer data to a client through a tunneling cluster tunnel.

void

Toggle a "server busy" status for running as a test harness.

void

Clean up a tunneling cluster tunnel.

API Documentation#

emberAfPluginTunnelingServerTransferData#

EmberAfStatus emberAfPluginTunnelingServerTransferData (uint16_t tunnelIndex, uint8_t *data, uint16_t dataLen)

Transfer data to a client through a tunneling cluster tunnel.

Parameters
N/AtunnelIndex

The identifier of the tunnel through which to send data.

N/Adata

The buffer containing the raw octets of data.

N/AdataLen

The length in octets of data.

This function transfers data to a client through a tunnel. The tunneling server plugin will send data to the endpoint on the node that opened the given tunnel.

Returns


Definition at line 70 of file app/framework/plugin/tunneling-server/tunneling-server.h

emberAfPluginTunnelingServerToggleBusyCommand#

void emberAfPluginTunnelingServerToggleBusyCommand (void)

Toggle a "server busy" status for running as a test harness.

Parameters
N/A

This function sets the server into a busy state, where it will respond to all request tunnel commands with a busy status. NOTE: existing tunnels will continue to operate normally.


Definition at line 81 of file app/framework/plugin/tunneling-server/tunneling-server.h

emberAfPluginTunnelingServerCleanup#

void emberAfPluginTunnelingServerCleanup (uint8_t tunnelId)

Clean up a tunneling cluster tunnel.

Parameters
N/AtunnelId

The identifier of the tunnel to clean up.

This function cleans up all states associated with a tunnel. The tunneling server plugin will not send the close notification command.


Definition at line 91 of file app/framework/plugin/tunneling-server/tunneling-server.h

Macro Definition Documentation#

ZCL_TUNNELING_CLUSTER_INVALID_TUNNEL_ID#

#define ZCL_TUNNELING_CLUSTER_INVALID_TUNNEL_ID
Value:
0xFFFF

Definition at line 46 of file app/framework/plugin/tunneling-server/tunneling-server.h

ZCL_TUNNELING_CLUSTER_UNUSED_MANUFACTURER_CODE#

#define ZCL_TUNNELING_CLUSTER_UNUSED_MANUFACTURER_CODE
Value:
0xFFFF

Definition at line 47 of file app/framework/plugin/tunneling-server/tunneling-server.h

CLOSE_INITIATED_BY_CLIENT#

#define CLOSE_INITIATED_BY_CLIENT
Value:
true

Definition at line 48 of file app/framework/plugin/tunneling-server/tunneling-server.h

CLOSE_INITIATED_BY_SERVER#

#define CLOSE_INITIATED_BY_SERVER
Value:
false

Definition at line 49 of file app/framework/plugin/tunneling-server/tunneling-server.h