Tunneling Client#

API and Callbacks for the Tunneling Cluster Client Component.

Silicon Labs implementation of Tunneling client 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 component and configure it to support the tunnel data size. Additionally, the component uses the address table to communicate with the server, 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.

Modules#

Tunneling Client

API#

emberAfPluginTunnelingClientRequestTunnel(EmberNodeId server, uint8_t clientEndpoint, uint8_t serverEndpoint, uint8_t protocolId, uint16_t manufacturerCode, bool flowControlSupport)

Request a tunneling cluster tunnel with a server.

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

Transfer data to a server through a tunneling cluster tunnel.

Close a tunneling cluster tunnel.

void

Clean up a tunneling cluster tunnel.

API Documentation#

emberAfPluginTunnelingClientRequestTunnel#

EmberAfPluginTunnelingClientStatus emberAfPluginTunnelingClientRequestTunnel (EmberNodeId server, uint8_t clientEndpoint, uint8_t serverEndpoint, uint8_t protocolId, uint16_t manufacturerCode, bool flowControlSupport)

Request a tunneling cluster tunnel with a server.

Parameters
N/Aserver

The network address of the server to which the request will be sent.

N/AclientEndpoint

The local endpoint from which the request will be sent.

N/AserverEndpoint

The remote endpoint to which the request will be sent.

N/AprotocolId

The protocol ID of the requested tunnel.

N/AmanufacturerCode

The manufacturer code of the requested tunnel.

N/AflowControlSupport

true if flow control support is requested or false if not. Note: flow control is not currently supported by the Tunneling client or server plugins.

This function requests a tunnel with a server. The tunneling client plugin will look up the long address of the server (using discovery, if necessary), establish a link key with the server, and create an address table entry for the server before sending the request. All future communication using the tunnel will be sent using the address table entry. The plugin will call emberAfPluginTunnelingClientTunnelOpenedCallback with the status of the request.

Returns


Definition at line 72 of file app/framework/plugin/tunneling-client/tunneling-client.h

emberAfPluginTunnelingClientTransferData#

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

Transfer data to a server through a tunneling cluster tunnel.

Parameters
N/AtunnelIndex

The index 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 the data.

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

Returns


Definition at line 93 of file app/framework/plugin/tunneling-client/tunneling-client.h

emberAfPluginTunnelingClientCloseTunnel#

EmberAfStatus emberAfPluginTunnelingClientCloseTunnel (uint8_t tunnelIndex)

Close a tunneling cluster tunnel.

Parameters
N/AtunnelIndex

The index of the tunnel to close.

This function closes a tunnel. The tunneling client plugin will send the close command to the endpoint on the node that is managing the given tunnel.

Returns


Definition at line 109 of file app/framework/plugin/tunneling-client/tunneling-client.h

emberAfPluginTunnelingClientCleanup#

void emberAfPluginTunnelingClientCleanup (uint8_t tunnelIndex)

Clean up a tunneling cluster tunnel.

Parameters
N/AtunnelIndex

The index of the tunnel to clean up.

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


Definition at line 119 of file app/framework/plugin/tunneling-client/tunneling-client.h

Macro Definition Documentation#

EMBER_AF_PLUGIN_TUNNELING_CLIENT_NULL_INDEX#

#define EMBER_AF_PLUGIN_TUNNELING_CLIENT_NULL_INDEX
Value:
0xFF

Definition at line 41 of file app/framework/plugin/tunneling-client/tunneling-client.h