Infineon Logo AIROC BTSDK v4.9 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
wiced_bt_mesh_core.h File Reference

> More...

Data Structures

struct  wiced_bt_mesh_core_state_iv_t
 Data for state type WICED_BT_MESH_CORE_STATE_IV. More...
 
struct  wiced_bt_mesh_core_state_seq_t
 Data for state type WICED_BT_MESH_CORE_STATE_TYPE_SEQ. More...
 
struct  wiced_bt_mesh_core_state_net_key_t
 Data for state types WICED_BT_MESH_CORE_STATE_NET_KEY_XXX. More...
 
struct  wiced_bt_mesh_core_state_app_key_t
 Data for state types WICED_BT_MESH_CORE_STATE_APP_KEY_XXX. More...
 
struct  wiced_bt_mesh_core_state_model_app_t
 Data for state types WICED_BT_MESH_CORE_STATE_APP_XXX. More...
 
struct  wiced_bt_mesh_core_state_node_state_t
 Data for state types WICED_BT_MESH_CORE_STATE_NODE_STATE. More...
 
struct  wiced_bt_mesh_core_state_friendship_t
 Data for state types WICED_BT_MESH_CORE_STATE_LPN_FRIENDSHIP and WICED_BT_MESH_CORE_STATE_FRND_FRIENDSHIP. More...
 
struct  wiced_bt_mesh_core_state_beacon_t
 Data for state types WICED_BT_MESH_CORE_STATE_PRIVATE_BEACON. More...
 
struct  wiced_bt_mesh_core_state_proxy_serivce_t
 Data for state types WICED_BT_MESH_CORE_STATE_PROXY_SERVICE_ADV. More...
 
union  wiced_bt_mesh_core_state_t
 
struct  wiced_bt_mesh_core_init_t
 Data for wiced_bt_mesh_core_init. More...
 
struct  wiced_bt_mesh_core_hal_api_t
 hal api for wiced_bt_mesh_core_set_hal_api() Application has to implement all these functions and call wiced_bt_mesh_core_set_hal_api() at the startup. More...
 
struct  wiced_bt_mesh_core_provision_capabilities_t
 Defines Capabilities data of the provisioning device. More...
 
struct  wiced_bt_mesh_core_provision_start_t
 Defines Start data sent by Provisioner to the provisioning device. More...
 
struct  wiced_bt_mesh_core_precord_descriptor_t
 Provisioning Records Handler Descriptor. More...
 
struct  mesh_core_provision_cb_t
 Mesh Core Provisioning Control Block. More...
 
struct  wiced_bt_mesh_core_statistics_t
 Represents statistics of messages receiving, sending and handling by network and bearers layers. More...
 
struct  wiced_bt_mesh_core_transport_statistics_t
 Represents statistics of messages receiving, sending and handling by transport layers. More...
 
struct  wiced_bt_mesh_core_delay_statistics_t
 Represents delay statistics. More...
 

Macros

#define WICED_BT_MESH_PROXY_IDENTIFICATION_TYPE_NETWORK_ID   0
 
#define WICED_BT_MESH_PROXY_IDENTIFICATION_TYPE_NODE_IDENTITY   1
 
#define WICED_BT_MESH_PROXY_IDENTIFICATION_TYPE_PRIVATE_NETWORK_ID   2
 
#define WICED_BT_MESH_PROXY_IDENTIFICATION_TYPE_PRIVATE_NODE_IDENTITY   3
 
#define WICED_BT_MESH_PROVISION_PRIV_KEY_LEN   32
 Size of the private key in bytes.
 
#define WICED_BT_MESH_KEY_LEN   16
 Size of the mesh keys.
 
#define WICED_BT_MESH_PROVISIONING_RECORD_BUFF_MAX_SIZE   WICED_BT_MESH_PROVISION_PUBLIC_KEY_LEN
 
#define WICED_BT_MESH_CORE_TRACE_FID_MESH_DISCOVERY   0x00000002
 
#define WICED_BT_MESH_CORE_TRACE_FID_ACESS_LAYER   0x00000004
 
#define WICED_BT_MESH_CORE_TRACE_FID_CORE_AES_CCM   0x00000008
 
#define WICED_BT_MESH_CORE_TRACE_FID_IV_UPDT   0x00000010
 
#define WICED_BT_MESH_CORE_TRACE_FID_KEY_REFRESH   0x00000020
 
#define WICED_BT_MESH_CORE_TRACE_FID_FOUNDATION   0x00000040
 
#define WICED_BT_MESH_CORE_TRACE_FID_FOUNDATION_CFG_MODEL   0x00000080
 
#define WICED_BT_MESH_CORE_TRACE_FID_FOUNDATION_CRT_MSG   0x00000100
 
#define WICED_BT_MESH_CORE_TRACE_FID_FOUNDATION_HEARTBEAT   0x00000200
 
#define WICED_BT_MESH_CORE_TRACE_FID_FOUNDATION_IDENTITY   0x00000400
 
#define WICED_BT_MESH_CORE_TRACE_FID_FOUNDATION_MSG_HANDLER   0x00000800
 
#define WICED_BT_MESH_CORE_TRACE_FID_NETWORK_LAYER   0x00001000
 
#define WICED_BT_MESH_CORE_TRACE_FID_LOWER_TRANSPORT_LAYER   0x00002000
 
#define WICED_BT_MESH_CORE_TRACE_FID_UPPER_TRANSPORT_LAYER   0x00004000
 
#define WICED_BT_MESH_CORE_TRACE_FID_PB_TRANSPORT   0x00008000
 
#define WICED_BT_MESH_CORE_TRACE_FID_PROVISIONING   0x00010000
 
#define WICED_BT_MESH_CORE_TRACE_FID_MESH_CORE   0x00020000
 
#define WICED_BT_MESH_CORE_TRACE_FID_MESH_UTIL   0x00040000
 
#define WICED_BT_MESH_CORE_TRACE_FID_FRIENDSHIP   0x00080000
 
#define WICED_BT_MESH_CORE_TRACE_FID_LOW_POWER   0x00100000
 
#define WICED_BT_MESH_CORE_TRACE_FID_FRIEND   0x00200000
 
#define WICED_BT_MESH_CORE_TRACE_FID_HEALTH   0x00400000
 
#define WICED_BT_MESH_CORE_TRACE_FID_MESH_EVENT   0x00800000
 
#define WICED_BT_MESH_CORE_TRACE_FID_ALL   0xffffffff
 
#define WICED_BT_MESH_CORE_TRACE_DEBUG   4
 
#define WICED_BT_MESH_CORE_TRACE_INFO   3
 
#define WICED_BT_MESH_CORE_TRACE_WARNING   2
 
#define WICED_BT_MESH_CORE_TRACE_CRITICAL   1
 
#define WICED_BT_MESH_CORE_TRACE_NO   0
 
Special Commands of the Proxy Filter, Heartbeat and other

The following is the list of the special commands of the Proxy Filter, Heartbeat and other that came from Network and Transport layers into wiced_bt_mesh_core_received_msg_handler_t.

#define WICED_BT_MESH_CORE_CMD_SPECIAL_PROXY_FLT_SET_TYPE   0x00
 Opcodes of the Proxy Configuration Messages. More...
 
#define WICED_BT_MESH_CORE_CMD_SPECIAL_PROXY_FLT_ADD_ADDR   0x01
 Sent by a Proxy Client to add addresses to the proxy filter list. More...
 
#define WICED_BT_MESH_CORE_CMD_SPECIAL_PROXY_FLT_DEL_ADDR   0x02
 Sent by a Proxy Client to remove addresses from the proxy filter list. More...
 
#define WICED_BT_MESH_CORE_CMD_SPECIAL_PROXY_FLT_STATUS   0x03
 Acknowledgment by a Proxy Server to a Proxy Client to report the status of the proxy filter list. More...
 
#define WICED_BT_MESH_CORE_CMD_SPECIAL_DIRECTED_PROXY_CAPABILITIES_STATUS   0x04
 Sent by a Directed Proxy Server to report the status of its capabilities for a subnet. More...
 
#define WICED_BT_MESH_CORE_CMD_SPECIAL_DIRECTED_PROXY_CONTROL   0x05
 Sent by a Directed Proxy Client to set connection parameters of the Directed Proxy for a subnet. More...
 
#define WICED_BT_MESH_CORE_CMD_SPECIAL_HEARTBEAT   0x0a
 Heartbeat message came from Transport layer. More...
 
Test Mode Signals.

The following is the list of signals used for certification and compliance testing.

#define WICED_BT_MESH_CORE_TEST_MODE_SIGNAL_IV_UPDATE_BEGIN   0
 the node shall transition to the IV Update in Progress state, ignoring the 96 hour limit. More...
 
#define WICED_BT_MESH_CORE_TEST_MODE_SIGNAL_IV_UPDATE_END   1
 the node shall transition to the Normal state, ignoring the 96 hour limit. More...
 
#define WICED_BT_MESH_CORE_TEST_MODE_SIGNAL_TEST   2
 test signal for internal use. More...
 
Provisioning Result codes

The following is the list of Provisioning Result codes that a provisioning layer can return in wiced_bt_mesh_provision_end_cb_t().

#define WICED_BT_MESH_PROVISION_RESULT_SUCCESS   0
 Provisioning succeeded.
 
#define WICED_BT_MESH_PROVISION_RESULT_TIMEOUT   1
 Provisioning failed due to timeout.
 
#define WICED_BT_MESH_PROVISION_RESULT_FAILED   2
 Provisioning failed.
 
Output OOB Action field values

#define WICED_BT_MESH_PROVISION_OUT_OOB_ACT_BLINK   0x00
 Blink.
 
#define WICED_BT_MESH_PROVISION_OUT_OOB_ACT_BEEP   0x01
 Beep.
 
#define WICED_BT_MESH_PROVISION_OUT_OOB_ACT_VIBRATE   0x02
 Vibrate.
 
#define WICED_BT_MESH_PROVISION_OUT_OOB_ACT_DISP_NUM   0x03
 Output Numeric.
 
#define WICED_BT_MESH_PROVISION_OUT_OOB_ACT_DISP_ALPH   0x04
 Output Alphanumeric.
 
#define WICED_BT_MESH_PROVISION_OUT_OOB_ACT_MAX   0x15
 Max number of supported actions.
 
Input OOB Action field values

#define WICED_BT_MESH_PROVISION_IN_OOB_ACT_PUSH   0x00
 Push.
 
#define WICED_BT_MESH_PROVISION_IN_OOB_ACT_TWIST   0x01
 Twist.
 
#define WICED_BT_MESH_PROVISION_IN_OOB_ACT_ENTER_NUM   0x02
 Input Number.
 
#define WICED_BT_MESH_PROVISION_IN_OOB_ACT_ENTER_STR   0x03
 Input Alphanumeric.
 
#define WICED_BT_MESH_PROVISION_IN_OOB_ACT_MAX   0x15
 Max number of supported actions.
 
Provisioning Capabilities and Start common definitions

The following is the list of Provisioning in/out action codes and max sizes are the same for both capabilities and start messages.

#define WICED_BT_MESH_PROVISION_OUT_OOB_MAX_SIZE   0x08
 
#define WICED_BT_MESH_PROVISION_IN_OOB_MAX_SIZE   0x08
 
#define WICED_BT_MESH_PROVISION_STATIC_OOB_MAX_SIZE   0x10
 
Provisioning Capabilities definitions

The following is the list of the definitions for capabilities message.

#define WICED_BT_MESH_PROVISION_ALG_FIPS_P256_ELLIPTIC_CURVE   0x0001
 
#define WICED_BT_MESH_PROVISION_ALG_ECDH_P256_HMAC_SHA256_AES_CCM   0x0002
 
#define WICED_BT_MESH_PROVISION_CAPS_PUB_KEY_TYPE_AVAILABLE   0x01
 
#define WICED_BT_MESH_PROVISION_CAPS_PUB_KEY_TYPE_PROHIBITED   0xfe
 
#define WICED_BT_MESH_PROVISION_CAPS_STATIC_OOB_TYPE_AVAILABLE   0x01
 
#define WICED_BT_MESH_PROVISION_CAPS_STATIC_OOB_TYPE_PROHIBITED   0xfe
 
Provisioning Start definitions

The following is the list of the definitions for start message.

#define WICED_BT_MESH_PROVISION_START_ALG_FIPS_P256   0x00
 
#define WICED_BT_MESH_PROVISION_START_ALG_P256_HMAC_SHA256_AES_CCM   0x01
 
#define WICED_BT_MESH_PROVISION_START_PUB_KEY_NO   0x00
 
#define WICED_BT_MESH_PROVISION_START_PUB_KEY_USED   0x01
 
#define WICED_BT_MESH_PROVISION_START_AUTH_METHOD_NO   0x00
 
#define WICED_BT_MESH_PROVISION_START_AUTH_METHOD_STATIC   0x01
 
#define WICED_BT_MESH_PROVISION_START_AUTH_METHOD_OUTPUT   0x02
 
#define WICED_BT_MESH_PROVISION_START_AUTH_METHOD_INPUT   0x03
 
Provisioning Type definitions

The following is the list of the definitions for provisioning type.

#define WICED_BT_MESH_PROVISION_TYPE_PROVISIONING_NODE   0
 
#define WICED_BT_MESH_PROVISION_TYPE_PROVISIONER   1
 
#define WICED_BT_MESH_PROVISION_TYPE_SELF_PROVISIONER_DEVKEY_CANDIDATE   2
 
#define WICED_BT_MESH_PROVISION_TYPE_SELF_PROVISIONER_NODE_ID   3
 
#define WICED_BT_MESH_PROVISION_TYPE_SELF_PROVISIONER_COMPOSITION   4
 
OOB callback definitions

Defines possible values for OOB callback wiced_bt_mesh_provision_get_oob_cb_t.

#define WICED_BT_MESH_PROVISION_GET_OOB_TYPE_NONE   0
 Provisioner: OOB not used.
 
#define WICED_BT_MESH_PROVISION_GET_OOB_TYPE_ENTER_PUB_KEY   1
 Provisioner: Enter public key()
 
#define WICED_BT_MESH_PROVISION_GET_OOB_TYPE_ENTER_OUTPUT   2
 Provisioner: Enter output OOB value(size, action) displayed on provisioning node.
 
#define WICED_BT_MESH_PROVISION_GET_OOB_TYPE_ENTER_STATIC   3
 Provisioner: Enter static OOB value(size)
 
#define WICED_BT_MESH_PROVISION_GET_OOB_TYPE_ENTER_INPUT   4
 Provisioning node: Enter input OOB value(size, action) displayed on provisioner.
 
#define WICED_BT_MESH_PROVISION_GET_OOB_TYPE_DISPLAY_INPUT   5
 Provisioner: Select and display input OOB value(size, action)
 
#define WICED_BT_MESH_PROVISION_GET_OOB_TYPE_DISPLAY_OUTPUT   6
 Provisioning node: Select and display output OOB value(size, action)
 
#define WICED_BT_MESH_PROVISION_GET_OOB_TYPE_DISPLAY_STOP   7
 Provisioner and Provisioning node: Stop displaying OOB value.
 
#define WICED_BT_MESH_PROVISION_GET_OOB_TYPE_GET_STATIC   8
 Provisioning node: Requests static OOB value(size)
 

Typedefs

struct {
   uint8_t   ctl
 CTL field. More...
 
   uint8_t   ttl
 TTL field. More...
 
   uint8_t   dst [2]
 Destination address (LE)
 
   uint8_t   pdu [1]
 TransportPDU set to between 1 and 16 inclusive octets of data.
 
wiced_bt_mesh_core_hci_cmd_network_layer_transmit_t
 
struct {
   uint8_t   ctl
 CTL field. More...
 
   uint8_t   ttl
 TTL field. More...
 
   uint8_t   dst_len
 Length of the destination address. More...
 
   uint8_t   dst [16]
 BigEndian 2 bytes destination address or 16 bytes label UUID of the virtual address.
 
   uint8_t   szmic
 0 - 4 bytes TransMIC size, 1 - 8 bytes TransMIC size
 
   uint8_t   pdu [1]
 AccessPDU set to between 1 and 380 inclusive octets of data.
 
wiced_bt_mesh_core_hci_cmd_transport_layer_transmit_t
 
struct {
   uint8_t   in_progress
 1 - Transit to IV Update in Progress; 0 - Transit to Normal
 
wiced_bt_mesh_core_hci_cmd_ivupdate_signal_transit_t
 
struct {
   uint8_t   conn_id [4]
 connection id for provisioning. More...
 
   uint8_t   addr [2]
 unicast address to assign to provisioning node
 
   uint8_t   uuid [16]
 UUID of the node to provision.
 
   uint8_t   identify_duration
 identify duration to pass to that provision start command
 
wiced_bt_mesh_core_hci_cmd_provision_t
 
struct {
   uint8_t   test_id
 Test ID of the faults array.
 
   uint8_t   company_id [2]
 Company ID.
 
   uint8_t   faults [1]
 faults array. More...
 
wiced_bt_mesh_core_hci_cmd_health_set_faults_t
 
struct {
   uint8_t   ttl
 TTL field. More...
 
   uint8_t   app_key_idx [2]
 Global Index of the Application Key (LE). More...
 
   uint8_t   src [2]
 Source address (LE)
 
   uint8_t   dst [2]
 Destination address (LE)
 
   uint8_t   pdu [1]
 Access PDU.
 
wiced_bt_mesh_core_hci_cmd_access_pdu_t
 
struct {
   uint8_t   add
 WICED_TRUE/WICED_FALSE - add/remove.
 
   uint8_t   addr [2]
 Subscription address (LE)
 
wiced_bt_mesh_core_hci_cmd_send_subs_updt_t
 
typedef wiced_bool_t(* wiced_bt_mesh_core_received_msg_handler_t )(wiced_bt_mesh_event_t *p_event, const uint8_t *params, uint16_t params_len)
 Received message callback. More...
 
typedef
wiced_bt_mesh_core_received_msg_handler_t(* 
wiced_bt_mesh_core_get_msg_handler_callback_t )(uint16_t company_id, uint16_t opcode, uint16_t *p_model_id, uint8_t *p_rpl_flag)
 Get message handler callback. More...
 
typedef wiced_bool_t(* wiced_bt_mesh_core_publication_callback_t )(uint8_t elem_idx, uint16_t company_id, uint16_t model_id, uint16_t period)
 Publication request callback. More...
 
typedef uint32_t(* wiced_bt_core_nvram_access_t )(wiced_bool_t write, int inx, uint8_t *node_info, uint16_t len, wiced_result_t *p_result)
 Application provided function to read/write information from/to NVRAM. More...
 
typedef void(* wiced_bt_mesh_core_scan_callback_t )(wiced_bool_t start, wiced_bool_t is_scan_type_active)
 Start/Stop scan callback. More...
 
typedef void(* wiced_bt_mesh_core_proxy_send_cb_t )(uint32_t conn_id, uint32_t ref_data, const uint8_t *packet, uint32_t packet_len)
 Definition of the callback function to send proxy messages. More...
 
typedef uint8_t(* wiced_bt_mesh_core_health_fault_test_cb_t )(uint8_t element, uint8_t test_id, uint16_t company_id, uint8_t fault_array_size, uint8_t *fault_array)
 Definition of the callback function to send proxy packet. More...
 
typedef void(* wiced_bt_mesh_core_attention_cb_t )(uint8_t element, uint8_t time)
 Definition of the callback function to attract human attention by LED blinks or other. More...
 
typedef void(* wiced_bt_mesh_core_state_changed_callback_t )(wiced_bt_mesh_core_state_type_t type, wiced_bt_mesh_core_state_t *p_state)
 
typedef wiced_bool_t(* wiced_bt_mesh_core_adv_send_cb_t )(uint8_t instance, uint8_t transmissions, uint32_t interval, uint8_t type, uint8_t *own_bd_addr, const uint8_t *adv_data, uint8_t adv_data_len, const uint8_t *scan_rsp_data, uint8_t scan_rsp_data_len)
 Definition of the callback function to send advert messages or stop sending it or reset all adverts. More...
 
typedef void(* wiced_bt_mesh_core_hal_rand_gen_num_array_t )(uint32_t *randNumberArrayPtr, uint32_t length)
 Fills a given array with randomly generated 32-bit integers. More...
 
typedef uint32_t(* wiced_bt_mesh_core_hal_get_pseudo_rand_number_t )(void)
 This functin returns a pseudo random number. More...
 
typedef uint32_t(* wiced_bt_mesh_core_hal_rand_gen_num_t )(void)
 Generates and returns a random 32-bit integer. More...
 
typedef void(* wiced_bt_mesh_core_hal_wdog_reset_system_t )(void)
 Execute a soft reset of the system.
 
typedef void(* wiced_bt_mesh_core_hal_delete_nvram_t )(uint16_t vs_id, wiced_result_t *p_status)
 deletes data from NVRAM at specified VS id More...
 
typedef uint16_t(* wiced_bt_mesh_core_hal_write_nvram_t )(uint16_t vs_id, uint16_t data_length, uint8_t *p_data, wiced_result_t *p_status)
 Writes the data to NVRAM, Application can write up to 255 bytes in one VS id section. More...
 
typedef uint16_t(* wiced_bt_mesh_core_hal_read_nvram_t )(uint16_t vs_id, uint16_t data_length, uint8_t *p_data, wiced_result_t *p_status)
 Reads the data from NVRAM. More...
 
typedef void(* wiced_bt_mesh_core_hal_aes_encrypt_t )(uint8_t *in_data, uint8_t *out_data, uint8_t *key)
 Calculate AES encryption by using Hardware acceleration. More...
 
typedef void(* wiced_bt_mesh_core_send_complete_callback_t )(wiced_bt_mesh_event_t *p_event)
 Send message complete callback. More...
 
struct {
   uint16_t   extensions
 Bitmask indicating the provisioning extensions supported by the device.
 
   uint16_t   list [WICED_BT_MESH_PROVISIONING_RECORD_ID_MAX_SIZE]
 Lists the Record IDs of the provisioning records stored on the device.
 
   uint16_t   list_size
 sizes of the record data in the list
 
wiced_bt_mesh_core_provisioning_list_t
 
struct {
   uint16_t   record_id
 Identifies the provisioning record for which the request is made.
 
   uint16_t   fragment_offset
 The starting offset of the requested fragment in the provisioning record data.
 
   uint16_t   fragment_max_size
 The maximum size of the provisioning record fragment that the provisioner can receive.
 
wiced_bt_mesh_core_provisioning_record_request_t
 Provisioning Record Request PDU parameters format. More...
 
struct {
   uint16_t   record_id
 Identifies the provisioning record whose data fragment is sent in the response.
 
   uint16_t   fragment_offset
 The starting offset of the data fragment in the provisioning record data.
 
   uint16_t   total_length
 Total length of the provisioning record data stored on the device.
 
wiced_bt_mesh_core_provisioning_record_response_t
 
struct {
   uint8_t   status
 Indicates whether or not the request was handled successfully.
 
   union {
      wiced_bt_mesh_core_provisioning_record_request_t   request
 
      wiced_bt_mesh_core_provisioning_record_response_t   response
 
   }   u
 
   uint8_t   data [WICED_BT_MESH_PROVISIONING_RECORD_BUFF_MAX_SIZE]
 Provisioning record data fragment (Optional)
 
   uint16_t   size
 Size of valid data in the record fragment.
 
wiced_bt_mesh_core_provisioning_record_t
 Provisioning Record Response PDU parameters format. More...
 
typedef void(* wiced_bt_mesh_core_provision_gatt_send_cb_t )(uint16_t conn_id, const uint8_t *packet, uint32_t packet_len)
 Definition of the callback function to send provisioning packet. More...
 
typedef void(* wiced_bt_mesh_core_provision_started_cb_t )(uint32_t conn_id)
 Definition of the callback function on Starts provisioning. More...
 
typedef void(* wiced_bt_mesh_core_provision_end_cb_t )(uint32_t conn_id, uint16_t addr, uint16_t net_key_idx, uint8_t result, const uint8_t *p_dev_key)
 Definition of the callback function on provisioning end. More...
 
typedef wiced_bool_t(* wiced_bt_mesh_core_provision_get_oob_cb_t )(uint32_t conn_id, uint8_t type, uint8_t size, uint8_t action)
 Definition of the callback function on get OOB. More...
 
typedef wiced_bool_t(* wiced_bt_mesh_core_provision_on_capabilities_cb_t )(uint32_t conn_id, const wiced_bt_mesh_core_provision_capabilities_t *capabilities)
 Definition of the callback function on Capabilities. More...
 
typedef wiced_bool_t(* wiced_bt_mesh_core_provision_get_capabilities_cb_t )(uint32_t conn_id)
 Definition of the callback function on get Capabilities. More...
 
typedef uint16_t(* wiced_bt_mesh_core_provision_records_get_cb_t )(uint16_t *buffer)
 Definition of the callback function on get provisioning records list. More...
 
typedef uint16_t(* wiced_bt_mesh_core_provision_record_req_cb_t )(uint16_t record_id, uint8_t *buffer, uint16_t fragment_length, uint16_t fragment_offset, uint16_t *record_size)
 Definition of the callback function on get fragment of the provisioning record. More...
 
typedef const uint8_t *(* wiced_bt_mesh_core_get_dev_key_callback_t )(uint16_t addr, uint16_t *p_net_key_idx)
 Device Key request callback. More...
 
typedef void(* wiced_bt_mesh_core_lpn_sleep_callback_t )(uint32_t *p_sleep_time)
 Callback function to receive LPN sleep event. More...
 

Enumerations

enum  wiced_bt_mesh_core_state_type_t {
  WICED_BT_MESH_CORE_STATE_TYPE_SEQ, WICED_BT_MESH_CORE_STATE_DEFAULT_TTL, WICED_BT_MESH_CORE_STATE_NET_TRANSMIT, WICED_BT_MESH_CORE_STATE_NET_KEY_ADD,
  WICED_BT_MESH_CORE_STATE_NET_KEY_DELETE, WICED_BT_MESH_CORE_STATE_NET_KEY_UPDATE, WICED_BT_MESH_CORE_STATE_APP_KEY_ADD, WICED_BT_MESH_CORE_STATE_APP_KEY_DELETE,
  WICED_BT_MESH_CORE_STATE_APP_KEY_UPDATE, WICED_BT_MESH_CORE_STATE_MODEL_APP_BIND, WICED_BT_MESH_CORE_STATE_MODEL_APP_UNBIND, WICED_BT_MESH_CORE_STATE_IV,
  WICED_BT_MESH_CORE_STATE_KR, WICED_BT_MESH_CORE_STATE_NODE_STATE, WICED_BT_MESH_CORE_STATE_LPN_FRIENDSHIP, WICED_BT_MESH_CORE_STATE_LPN_SLEEP,
  WICED_BT_MESH_CORE_STATE_LPN_SCAN, WICED_BT_MESH_CORE_STATE_FRND_FRIENDSHIP, WICED_BT_MESH_CORE_STATE_TYPE_CLR_RPL, WICED_BT_MESH_CORE_STATE_PRIVATE_BEACON,
  WICED_BT_MESH_CORE_STATE_PROXY_SERVICE_ADV
}
 
Mesh Provisioning Record IDs

enum  wiced_bt_mesh_provisioning_record_id_t {
  WICED_BT_MESH_PROVISIONING_RECORD_ID_CBP_BASE_URI = 0X0000, WICED_BT_MESH_PROVISIONING_RECORD_ID_DEVICE_CERTIFICATE = 0X0001, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_1 = 0X0002, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_2 = 0X0003,
  WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_3 = 0X0004, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_4 = 0X0005, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_5 = 0X0006, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_6 = 0X0007,
  WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_7 = 0X0008, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_8 = 0X0009, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_9 = 0X000A, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_10 = 0X000B,
  WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_11 = 0X000C, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_12 = 0X000D, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_13 = 0X000E, WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_14 = 0X000F,
  WICED_BT_MESH_PROVISIONING_RECORD_ID_INTERMEDIATE_CERTIFICATE_15 = 0X0010, WICED_BT_MESH_PROVISIONING_RECORD_ID_COMPLETE_LOCAL_NAME = 0X0011, WICED_BT_MESH_PROVISIONING_RECORD_ID_APPEARANCE = 0x0012, WICED_BT_MESH_PROVISIONING_RECORD_ID_MAX_SIZE = 0x0013
}
 
Status codes for the Provisioning Record Response PDU

enum  wiced_bt_mesh_provisioning_record_response_status_t { WICED_BT_MESH_PROVISIONING_RECORD_RESPONSE_STATUS_SUCCESS = 0x00, WICED_BT_MESH_PROVISIONING_RECORD_RESPONSE_STATUS_NOT_PRESENT = 0x01, WICED_BT_MESH_PROVISIONING_RECORD_RESPONSE_STATUS_OUT_OF_BOUNDS = 0x02 }
 

Functions

void wiced_bt_mesh_core_set_hal_api (wiced_bt_mesh_core_hal_api_t *hal_api)
 Sets hal api. More...
 
wiced_bt_mesh_core_hal_api_twiced_bt_mesh_core_get_hal_api (void)
 Returns hal api. More...
 
wiced_result_t wiced_bt_mesh_core_init (wiced_bt_mesh_core_init_t *p_init)
 Mesh Core initialization. More...
 
void wiced_bt_mesh_core_adv_end (uint8_t instance)
 Advertisement stopped notification. More...
 
void wiced_bt_mesh_core_set_max_num_adv_instances (uint8_t max_num)
 Set max number of advertisement instances. More...
 
wiced_bool_t wiced_bt_mesh_core_deinit (wiced_bt_core_nvram_access_t nvram_access_callback)
 Mesh Core de-initialization. More...
 
void wiced_bt_mesh_core_start (void)
 Mesh Core Start. More...
 
void wiced_bt_mesh_core_set_gatt_mtu (uint16_t gatt_mtu)
 Sets GATT MTU for the provisioning or proxy connection. More...
 
uint16_t wiced_bt_mesh_core_get_local_addr (void)
 Gets local mesh address set by provisioner. More...
 
wiced_result_t wiced_bt_mesh_core_send (wiced_bt_mesh_event_t *p_event, const uint8_t *params, uint16_t params_len, wiced_bt_mesh_core_send_complete_callback_t complete_callback)
 Sends the message to the dst address. More...
 
void wiced_bt_mesh_core_cancel_send (wiced_bt_mesh_event_t *p_event)
 Stop sending retransmissions. More...
 
wiced_result_t wiced_bt_mesh_core_adv_packet (int8_t rssi, const uint8_t *p_adv_data, const uint8_t *remote_bd_addr)
 Handles received advertising packet. More...
 
void wiced_bt_mesh_core_proxy_packet (const uint8_t *p_data, uint8_t data_len)
 Handle packet received by proxy via GATT. More...
 
wiced_bool_t wiced_bt_mesh_core_is_valid_network_id (uint8_t *p_network_id, uint16_t *p_net_key_idx)
 Get Network Key Index. More...
 
void wiced_bt_mesh_core_connection_status (uint32_t conn_id, wiced_bool_t connected_to_proxy, uint32_t ref_data, uint16_t mtu)
 Handles connection up and down events. More...
 
wiced_bool_t wiced_bt_mesh_core_check_node_identity (uint16_t addr, const uint8_t *data, uint8_t len, uint16_t *p_net_key_idx)
 Checks if received Service Data for Mesh Proxy Service with Node Identity corresponds to that node address. More...
 
wiced_bool_t wiced_bt_mesh_core_check_private_node_identity (uint16_t addr, const uint8_t *data, uint8_t len, uint16_t *p_net_key_idx)
 Checks if received Service Data for Mesh Proxy Service with Private Node Identity corresponds to that node address. More...
 
wiced_bool_t wiced_bt_mesh_core_check_private_network_id (const uint8_t *data, uint8_t len, uint16_t *p_net_key_idx)
 Checks if received Service Data for Mesh Proxy Service with Private Network Identity is valid. More...
 
wiced_bool_t wiced_bt_mesh_core_proc_rx_cmd (uint16_t opcode, const uint8_t *p_data, uint16_t data_len)
 The RPL updates from the Host. More...
 
wiced_bool_t wiced_bt_mesh_core_test_mode_signal (uint16_t opcode, const uint8_t *p_data, uint16_t data_len)
 The signals for different test modes. More...
 
void wiced_bt_mesh_core_calc_uri_hash (const uint8_t *uri, uint8_t len, uint8_t *hash)
 
void wiced_bt_mesh_core_set_node_identity (uint8_t type, uint8_t action)
 Sets node identity state as a result of user interaction. More...
 
wiced_bool_t wiced_bt_mesh_core_health_set_faults (uint8_t element_idx, uint8_t test_id, uint16_t company_id, uint8_t faults_number, uint8_t *fault_array)
 Indicates the fault happened. More...
 
wiced_bool_t wiced_bt_mesh_core_provision_server_init (uint8_t *priv_key, wiced_bt_mesh_core_provision_started_cb_t started_cb, wiced_bt_mesh_core_provision_end_cb_t end_cb, wiced_bt_mesh_core_provision_get_capabilities_cb_t get_capabilities_cb, wiced_bt_mesh_core_provision_get_oob_cb_t get_oob_cb, wiced_bt_mesh_core_provision_gatt_send_cb_t gatt_send_cb, wiced_bt_mesh_core_provision_records_get_cb_t get_precords_cb, wiced_bt_mesh_core_provision_record_req_cb_t request_precord_cb)
 Initializes provisioning layer for the node(server side). More...
 
wiced_bool_t wiced_bt_mesh_core_provision_set_oob (uint8_t *value, uint8_t value_len)
 Sets OOB in response on wiced_bt_mesh_provision_get_oob_cb. More...
 
wiced_bool_t wiced_bt_mesh_core_provision_set_capabilities (uint32_t conn_id, const wiced_bt_mesh_core_provision_capabilities_t *capabilities)
 Sets Capabilities of the provisioning device. More...
 
void wiced_bt_mesh_core_provision_gatt_packet (uint8_t is_notification, uint32_t conn_id, const uint8_t *packet, uint8_t packet_len)
 Processes received PB_GATT packets. More...
 
wiced_bool_t wiced_bt_mesh_core_provision_local (uint16_t addr, uint8_t *dev_key, uint8_t *network_key, uint16_t net_key_idx, uint32_t iv_idx, uint8_t key_refresh, uint8_t iv_update)
 Provision Local Device. More...
 
wiced_bool_t wiced_bt_mesh_core_set_seq (uint16_t addr, uint32_t seq, wiced_bool_t prev_iv_idx)
 Set Sequence Number (SEQ) own or for RPL(Replay Protection List). More...
 
wiced_bool_t wiced_bt_mesh_core_del_seq (uint16_t addr)
 Removes node from RPL(Replay Protection List). More...
 
uint16_t wiced_bt_mesh_get_node_config_size (wiced_bt_mesh_core_config_t *config)
 Calculates size of the memory for configuration. More...
 
void wiced_bt_mesh_core_stop_advert (void)
 Stops proxy server advertisement and network secure beacon if they are running. More...
 
void wiced_bt_mesh_core_statistics_get (wiced_bt_mesh_core_statistics_t *p_data)
 Requests collected statistics for network layer. More...
 
void wiced_bt_mesh_core_transport_statistics_get (wiced_bt_mesh_core_transport_statistics_t *p_data)
 Requests collected statistics for transport layer. More...
 
void wiced_bt_mesh_core_statistics_reset (void)
 Resets statistics of the network layer. More...
 
void wiced_bt_mesh_core_transport_statistics_reset (void)
 Resets statistics of the transport layers. More...
 
void wiced_bt_mesh_core_execute_delayed_nvram_writes (void)
 
wiced_bool_t wiced_bt_mesh_core_get_network_id (uint16_t net_key_idx, uint8_t *network_id)
 Fills buffer net_id with 8 bytes Network ID for net_key_idx. More...
 
uint16_t wiced_bt_mesh_core_crypt (wiced_bool_t encrypt, const uint8_t *p_in_data, uint16_t in_data_len, uint8_t *p_out_buf, uint16_t out_buf_len)
 Encrypt or decrypts and authenticates data. More...
 
wiced_bool_t wiced_bt_mesh_set_raw_scan_response_data (uint8_t num_elem, wiced_bt_ble_advert_elem_t *p_data)
 Set scan response raw data. More...
 
void wiced_bt_mesh_core_set_dev_key_callback (wiced_bt_mesh_core_get_dev_key_callback_t callback)
 Sets Device Key request callback. More...
 
uint16_t wiced_bt_mesh_core_lpn_get_friend_addr (void)
 Gets friend address of the LPN. More...
 
void wiced_bt_mesh_core_lpn_set_sleep_callback (wiced_bt_mesh_core_lpn_sleep_callback_t callback)
 Set callback function to receive LPN sleep event. More...
 
uint32_t wiced_bt_mesh_core_lpn_set_poll_timeout (uint32_t timeout)
 Set a smaller poll timeout. More...
 
void wiced_bt_mesh_core_lpn_restore_poll_timeout (uint32_t timeout)
 Restore original poll timeout. More...
 
void wiced_bt_mesh_core_shutdown (void)
 Stops all advertisements and timers. More...
 
wiced_bool_t wiced_bt_mesh_core_del_last_element (void)
 Deletes last element from NVRAM config. More...
 
wiced_bool_t wiced_bt_mesh_core_needs_composition_refresh (void)
 Detects if Node Composition Refresh Procedure is needed. More...
 
void wiced_bt_mesh_core_reset (void)
 Resets node to unprovisioned state without restarting. More...
 
const uint8_t * wiced_bt_mesh_core_get_app_key (uint16_t appkey_global_idx, wiced_bool_t newKeyAtKeyRefresh)
 Returns pointer to the specific application key. More...
 
void wiced_bt_mesh_core_set_test_events_report (uint16_t node_addr)
 Set test events report node address. More...
 
void wiced_bt_mesh_core_set_beacon (uint8_t type, uint8_t onoff)
 Sets beacon state as a result of user interaction. More...
 
void wiced_bt_mesh_core_set_trace_level (uint32_t fids_mask, uint8_t level)
 Sets trace level for modules of mesh_core_lib. More...
 
void wiced_bt_mesh_core_set_adv_bdaddr (wiced_bt_device_address_t bda)
 
void wiced_bt_mesh_core_delay_statistics_get (wiced_bt_mesh_core_delay_statistics_t *p_data)
 Gets delay statistics. More...
 
void wiced_bt_mesh_core_delay_statistics_reset (void)
 Resets delay statistics. More...
 
void wiced_bt_mesh_set_inter_segment_delay (uint8_t delay_ms)
 Sets intersegment delay. More...
 
wiced_bool_t wiced_bt_mesh_core_generate_kdk (uint8_t net_key_idx, uint8_t *p_kdk)
 Generate key derivation key. More...
 

Variables

uint8_t wiced_bt_mesh_core_net_key_max_num
 
uint8_t wiced_bt_mesh_core_app_key_max_num
 
uint8_t wiced_bt_mesh_core_net_cache_size
 
uint8_t wiced_bt_mesh_core_proxy_out_flt_addr_max_num
 
uint16_t wiced_bt_mesh_core_nvm_idx_node_data
 
uint16_t wiced_bt_mesh_core_nvm_idx_virt_addr
 
uint16_t wiced_bt_mesh_core_nvm_idx_frnd_state
 
uint16_t wiced_bt_mesh_core_nvm_idx_net_key_begin
 
uint16_t wiced_bt_mesh_core_nvm_idx_app_key_begin
 
uint16_t wiced_bt_mesh_core_nvm_idx_health_state
 
uint16_t wiced_bt_mesh_core_nvm_idx_cfg_data
 
uint16_t wiced_bt_mesh_core_nvm_idx_fw_distributor
 
uint16_t wiced_bt_mesh_core_nvm_idx_df_config
 
uint8_t wiced_bt_mesh_core_adv_tx_power
 
uint32_t wiced_bt_mesh_core_write_config_delay
 
wiced_bool_t wiced_bt_core_short_trans_mic
 If the value of that variable is WICED_TRUE then the transport layer always use 32-bit TransMIC. More...
 
wiced_bool_t wiced_bt_core_iv_update_test_mode
 WICED_TRUE value activates IV Update test mode - only removes the 96-hour limit; all other behavior of the device is unchanged. More...
 
wiced_bool_t wiced_bt_core_boost_cpu_on_crypt_op
 On WICED_TRUE CPU is boost for cpypto operations Default value is WICED_TRUE.
 
uint16_t wiced_bt_mesh_core_unprovisioned_beacon_interval
 Advertising interval of the unprovisioned beacon in units 0.5 sec. More...
 
uint16_t wiced_bt_mesh_core_provisioning_srv_adv_interval
 Advertising interval in MS of the provisioning service in units 0.5 sec. More...
 
uint16_t wiced_bt_mesh_core_provisioning_url_adv_interval
 Advertising interval in MS of the provisioning URL in units 0.5 sec. More...
 
uint16_t wiced_bt_mesh_core_delay_relay_min
 Minimum and maximum delay in milliseconds of the message being relayed. More...
 
uint16_t wiced_bt_mesh_core_delay_relay_max
 
uint16_t wiced_bt_mesh_core_delay_answer_unicast_min
 Minimum and maximum delay in milliseconds of the answer on the message with unicast DST. More...
 
uint16_t wiced_bt_mesh_core_delay_answer_unicast_max
 
uint16_t wiced_bt_mesh_core_delay_answer_group_min
 Minimum and maximum delay in milliseconds of the answer on the message with group DST. More...
 
uint16_t wiced_bt_mesh_core_delay_answer_group_max
 
uint16_t wiced_bt_core_lower_transport_ack_timeout_ms
 Lower Transport Layer ACK timeout. More...
 
uint16_t wiced_bt_mesh_core_proxy_adv_interval
 Proxy service adv interval: * 0.625 ms. More...
 
uint16_t mesh_core_report_events_node_addr
 Report core events from a node for test purpose.
 
uint8_t wiced_bt_mesh_core_msg_tx_delay
 
uint8_t wiced_bt_mesh_core_msg_rx_delay
 

Detailed Description

>

Definitions for interface between Bluetooth Mesh Models and Mesh Core

Function Documentation

void wiced_bt_mesh_core_delay_statistics_get ( wiced_bt_mesh_core_delay_statistics_t p_data)

Gets delay statistics.

Parameters
[out]p_datapointer where to copy delay statistics
Returns
None
void wiced_bt_mesh_core_delay_statistics_reset ( void  )

Resets delay statistics.

Parameters
None
Returns
None
wiced_bool_t wiced_bt_mesh_core_generate_kdk ( uint8_t  net_key_idx,
uint8_t *  p_kdk 
)

Generate key derivation key.

Parameters
[in]net_key_idxGlobal net key index
[in]p_kdkBuffer for output key 16 bytes length - key derivation key
Returns
WICED_TRUE on success. WICED_FALSE on error
void wiced_bt_mesh_set_inter_segment_delay ( uint8_t  delay_ms)

Sets intersegment delay.

Parameters
[in]delay_msIntersegment delay in milliseconds
Returns
None

Variable Documentation

uint8_t addr[2]

unicast address to assign to provisioning node

Subscription address (LE)

uint8_t app_key_idx[2]

Global Index of the Application Key (LE).

0xffff - device Key

uint8_t conn_id[4]

connection id for provisioning.

Better to use some random value.

uint8_t ctl

CTL field.

can be 0 or 1

uint8_t dst[2]

Destination address (LE)

BigEndian 2 bytes destination address or 16 bytes label UUID of the virtual address.

uint8_t dst_len

Length of the destination address.

It can be 2 or 16 for virtual address

uint8_t faults[1]

faults array.

can be empty or contain up to 16 fault codes

uint16_t fragment_offset

The starting offset of the requested fragment in the provisioning record data.

The starting offset of the data fragment in the provisioning record data.

uint8_t pdu[1]

TransportPDU set to between 1 and 16 inclusive octets of data.

Access PDU.

AccessPDU set to between 1 and 380 inclusive octets of data.

uint16_t record_id

Identifies the provisioning record for which the request is made.

Identifies the provisioning record whose data fragment is sent in the response.

uint8_t ttl

TTL field.

can be between 0 and 0x7f