Bluetooth Mesh Proxy Connections#

Bluetooth Mesh Proxy Connections.

Bluetooth mesh stack functions for GATT proxy connections

Modules#

sl_btmesh_evt_proxy_connected

sl_btmesh_evt_proxy_disconnected

sl_btmesh_evt_proxy_filter_status

Functions#

sl_status_t
sl_btmesh_proxy_connect(uint8_t connection, uint32_t *handle)
sl_status_t
sl_status_t
sl_btmesh_proxy_set_filter_type(uint32_t handle, uint16_t netkey_index, uint8_t type)
sl_status_t
sl_btmesh_proxy_allow(uint32_t handle, uint16_t netkey_index, uint16_t address)
sl_status_t
sl_btmesh_proxy_deny(uint32_t handle, uint16_t netkey_index, uint16_t address)
sl_status_t
sl_status_t
sl_btmesh_proxy_send_solicitation(uint8_t enc_netkey_index, uint16_t elem_index, uint16_t dst)

Macros#

#define
sl_btmesh_cmd_proxy_connect_id 0x00180028
#define
sl_btmesh_cmd_proxy_disconnect_id 0x01180028
#define
sl_btmesh_cmd_proxy_set_filter_type_id 0x02180028
#define
sl_btmesh_cmd_proxy_allow_id 0x03180028
#define
sl_btmesh_cmd_proxy_deny_id 0x04180028
#define
sl_btmesh_cmd_proxy_optimisation_toggle_id 0x05180028
#define
sl_btmesh_cmd_proxy_send_solicitation_id 0x06180028
#define
sl_btmesh_rsp_proxy_connect_id 0x00180028
#define
sl_btmesh_rsp_proxy_disconnect_id 0x01180028
#define
sl_btmesh_rsp_proxy_set_filter_type_id 0x02180028
#define
sl_btmesh_rsp_proxy_allow_id 0x03180028
#define
sl_btmesh_rsp_proxy_deny_id 0x04180028
#define
sl_btmesh_rsp_proxy_optimisation_toggle_id 0x05180028
#define
sl_btmesh_rsp_proxy_send_solicitation_id 0x06180028

Function Documentation#

sl_btmesh_proxy_connect#

sl_status_t sl_btmesh_proxy_connect (uint8_t connection, uint32_t * handle)
Parameters
TypeDirectionArgument NameDescription
uint8_t[in]connection

Connection handle

uint32_t *[out]handle

If a connection attempt is successfully initiated, a valid proxy handle will be returned.

Start connecting a proxy client to a proxy server. After the connection is complete, a sl_btmesh_evt_proxy_connected event will be generated. LE-connection must be opened prior to opening the proxy connection.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events


sl_btmesh_proxy_disconnect#

sl_status_t sl_btmesh_proxy_disconnect (uint32_t handle)
Parameters
TypeDirectionArgument NameDescription
uint32_t[in]handle

Proxy handle

Disconnect. This call can be used also for a connection, which is not yet fully formed.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.

Events


sl_btmesh_proxy_set_filter_type#

sl_status_t sl_btmesh_proxy_set_filter_type (uint32_t handle, uint16_t netkey_index, uint8_t type)
Parameters
TypeDirectionArgument NameDescription
uint32_t[in]handle

Proxy handle

uint16_t[in]netkey_index

Network key index used in encrypting the request to the proxy server

uint8_t[in]type

Filter type: 0x00 to allow traffic from the given address, 0x01 to block traffic from the given address

Set up the proxy filtering type. At the proxy server side, this is a local configuration, while on the proxy client a proxy configuration PDU will be sent to the proxy server.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


sl_btmesh_proxy_allow#

sl_status_t sl_btmesh_proxy_allow (uint32_t handle, uint16_t netkey_index, uint16_t address)
Parameters
TypeDirectionArgument NameDescription
uint32_t[in]handle

Proxy handle

uint16_t[in]netkey_index

Network key index used in encrypting the request to the proxy server

uint16_t[in]address

Destination address to allow. The address may be either a unicast address, a group address, or a virtual address.

Allow messages meant for the given address to be forwarded over the proxy connection to the proxy client. At the proxy server side, this is a local configuration, while on the proxy client a proxy configuration PDU will be sent to the proxy server.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


sl_btmesh_proxy_deny#

sl_status_t sl_btmesh_proxy_deny (uint32_t handle, uint16_t netkey_index, uint16_t address)
Parameters
TypeDirectionArgument NameDescription
uint32_t[in]handle

Proxy handle

uint16_t[in]netkey_index

Network key index used in encrypting the request to the proxy server

uint16_t[in]address

Destination address to block. The address may be either a unicast address, a group address, or a virtual address.

Block messages meant for the given address from being forwarded over the proxy connection to the proxy client. At the proxy server side, this is a local configuration, while on the proxy client a proxy configuration PDU will be sent to the proxy server.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


sl_btmesh_proxy_optimisation_toggle#

sl_status_t sl_btmesh_proxy_optimisation_toggle (uint8_t enable)
Parameters
TypeDirectionArgument NameDescription
uint8_t[in]enable

Non zero - enable, otherwise disable

In case of unicast address, if proxy identified the destination, the message will be forwarded only to that node, otherwise to all. This functionality could be enabled or disabled with this function.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.


sl_btmesh_proxy_send_solicitation#

sl_status_t sl_btmesh_proxy_send_solicitation (uint8_t enc_netkey_index, uint16_t elem_index, uint16_t dst)
Parameters
TypeDirectionArgument NameDescription
uint8_t[in]enc_netkey_index

Network key index used to encrypt the message

uint16_t[in]elem_index

Solicitation source element index. Proxy client may use the primary address of any of the secondary addresses as a solicitation source

uint16_t[in]dst

Solicitation destination address. Solicitation does not have a subscribe mechanism, the address can be the primary or any of the secondary addresses. In addition, 0xFFFC (All Proxies) is permitted

Send Solicitation PDU to activate a Private Proxy on a node that support On-Demand Private Proxy.

Returns

  • SL_STATUS_OK if successful. Error code otherwise.