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#
API#
Request a tunneling cluster tunnel with a server.
Transfer data to a server through a tunneling cluster tunnel.
Close a tunneling cluster tunnel.
Clean up a tunneling cluster tunnel.
Macros#
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.
N/A | server | The network address of the server to which the request will be sent. |
N/A | clientEndpoint | The local endpoint from which the request will be sent. |
N/A | serverEndpoint | The remote endpoint to which the request will be sent. |
N/A | protocolId | The protocol ID of the requested tunnel. |
N/A | manufacturerCode | The manufacturer code of the requested tunnel. |
N/A | flowControlSupport | 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
EMBER_AF_PLUGIN_TUNNELING_CLIENT_SUCCESS if the request is in process or another EmberAfPluginTunnelingClientStatus otherwise.
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.
N/A | tunnelIndex | The index of the tunnel through which to send data. |
N/A | data | The buffer containing the raw octets of data. |
N/A | dataLen | 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
EMBER_ZCL_STATUS_SUCCESS Indicates if data was sent, EMBER_ZCL_STATUS_FAILURE if an error occurred, or EMBER_ZCL_STATUS_NOT_FOUND if the tunnel does not exist.
93
of file app/framework/plugin/tunneling-client/tunneling-client.h
emberAfPluginTunnelingClientCloseTunnel#
EmberAfStatus emberAfPluginTunnelingClientCloseTunnel (uint8_t tunnelIndex)
Close a tunneling cluster tunnel.
N/A | tunnelIndex | 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
EMBER_ZCL_STATUS_SUCCESS Indicates if the close request was sent, EMBER_ZCL_STATUS_FAILURE if an error occurred, or EMBER_ZCL_STATUS_NOT_FOUND if the tunnel does not exist.
109
of file app/framework/plugin/tunneling-client/tunneling-client.h
emberAfPluginTunnelingClientCleanup#
void emberAfPluginTunnelingClientCleanup (uint8_t tunnelIndex)
Clean up a tunneling cluster tunnel.
N/A | tunnelIndex | 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.
119
of file app/framework/plugin/tunneling-client/tunneling-client.h