nRF5 SDK for Mesh v2.2.0
nrf_mesh_events.h
1 /* Copyright (c) 2010 - 2018, Nordic Semiconductor ASA
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification,
5  * are permitted provided that the following conditions are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright notice, this
8  * list of conditions and the following disclaimer.
9  *
10  * 2. Redistributions in binary form, except as embedded into a Nordic
11  * Semiconductor ASA integrated circuit in a product or a software update for
12  * such product, must reproduce the above copyright notice, this list of
13  * conditions and the following disclaimer in the documentation and/or other
14  * materials provided with the distribution.
15  *
16  * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
17  * contributors may be used to endorse or promote products derived from this
18  * software without specific prior written permission.
19  *
20  * 4. This software, with or without modification, must only be used with a
21  * Nordic Semiconductor ASA integrated circuit.
22  *
23  * 5. Any software provided in binary form under this license must not be reverse
24  * engineered, decompiled, modified and/or disassembled.
25  *
26  * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
27  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
28  * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
29  * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
30  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
32  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
35  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  */
37 
38 #ifndef MESH_EVT_H__
39 #define MESH_EVT_H__
40 
41 #include <stdbool.h>
42 #include "nrf_mesh.h"
43 #include "nrf_mesh_dfu_types.h"
44 #include "list.h"
45 #include "mesh_config.h"
46 
57 typedef enum
58 {
100 
104 typedef struct
105 {
107  const uint8_t * p_buffer;
109  uint16_t length;
117  uint8_t ttl;
121 
125 typedef struct
126 {
130  const uint8_t * p_network_id;
132  uint32_t iv_index;
134 
138 typedef struct
139 {
140  uint16_t subnet_index;
141  const uint8_t * p_network_id;
144 
148 typedef struct
149 {
153  const uint8_t * p_auth_value;
154  uint32_t iv_index;
155  struct
156  {
158  bool key_refresh;
159  } flags;
161 
168 typedef struct
169 {
171  uint8_t init_ttl;
173  uint8_t hops;
175  uint16_t features;
178  uint16_t src;
180 
184 typedef struct
185 {
189 
191 typedef union
192 {
194  struct
195  {
198  } fw_outdated;
200  struct
201  {
202  nrf_mesh_dfu_transfer_t transfer;
203  uint8_t authority;
204  } req_relay;
206  struct
207  {
209  } req_source;
211  struct
212  {
214  nrf_mesh_dfu_transfer_t transfer;
215  } start;
217  struct
218  {
219  nrf_mesh_dfu_role_t role;
220  nrf_mesh_dfu_transfer_t transfer;
222  } end;
224  struct
225  {
226  nrf_mesh_dfu_transfer_t transfer;
227  uint32_t* p_start_addr;
228  uint32_t length;
229  bool is_signed;
230  } bank;
232 
236 typedef enum
237 {
241 
245 typedef struct
246 {
248  uint16_t src;
250  uint8_t ivi : 1;
254 
258 typedef enum
259 {
273 
277 typedef struct
278 {
284 
288 typedef enum
289 {
297 
298 typedef struct
299 {
303  const void * p_flash_entry;
305  void * p_flash_page;
307  const void * p_area;
309  uint32_t page_count;
311 
312 typedef struct
313 {
316 
317 typedef struct
318 {
321  const void * p_data;
322  uint32_t data_len;
324 
328 typedef struct
329 {
332 
334  union {
347 
360  } params;
362 
373 typedef void (*nrf_mesh_evt_handler_cb_t)(const nrf_mesh_evt_t * p_evt);
374 
380 typedef struct
381 {
385  list_node_t node;
389 
397 void nrf_mesh_evt_handler_add(nrf_mesh_evt_handler_t * p_handler_params);
398 
404 void nrf_mesh_evt_handler_remove(nrf_mesh_evt_handler_t * p_handler_params);
405 
408 #endif /* MESH_EVT_H__ */
409 
nrf_mesh_evt_sar_failed_t sar_failed
SAR failed event.
DFU transfer ended.
DFU transfer information structure.
nrf_mesh_evt_dfu_t dfu
DFU event.
bool key_refresh
Key refresh flag in the beacon.
RX packet metadata.
Definition: nrf_mesh.h:146
IV update event structure.
const nrf_mesh_beacon_secmat_t * p_beacon_secmat
The secmat within the p_beacon_info that authenticated the incoming beacon.
nrf_mesh_dfu_role_t role
The device&#39;s role in the transfer.
net_state_iv_update_t state
Current IV update state.
nrf_mesh_fwid_t current
FWID union containing the current firmware ID of the given type.
nrf_mesh_evt_type_t
Mesh event types.
nrf_mesh_evt_key_refresh_notification_t key_refresh
Key refresh notification event.
void nrf_mesh_evt_handler_add(nrf_mesh_evt_handler_t *p_handler_params)
Registers an event handler to get events from the core stack.
The device firmware is outdated, according to a trusted source.
The replay protection cache is full.
nrf_mesh_tx_token_t token
Packet ID of the SAR session.
nrf_mesh_evt_net_beacon_received_t net_beacon
A network beacon was received.
Flash operations queue is empty, and flash is stable.
mesh_config_entry_id_t id
ID being loaded when the load failure occured.
Transmission completed.
Mesh config entry identifier.
A heartbeat message has been received.
Mesh event structure.
Flash has malfunctioned.
mesh_config_entry_id_t id
ID being stored when the storage failure occured.
Information structure for the Bluetooth Mesh network beacons.
Definition: nrf_mesh.h:292
nrf_mesh_rx_failed_reason_t
RX failure reason codes.
nrf_mesh_dfu_role_t
The various roles a device can play in a dfu transfer.
nrf_mesh_dfu_end_t
Reasons for a DFU operation to end.
Mesh core flash user.
nrf_mesh_tx_token_t token
Packet identifier.
RX failed event structure.
uint16_t features
Feature&#39;s state bitmap.
void * p_flash_page
The address of the flash page the attempted operation failed.
nrf_mesh_dfu_end_t end_reason
Reason for the end event.
The device firmware is outdated, according to an un-authenticated source.
nrf_mesh_evt_hb_message_t hb_message
HB message received/sent event.
uint8_t authority
Authority level of the transfer.
list_node_t node
Node for the keeping in linked list.
nrf_mesh_sar_session_cancel_reason_t
SAR session cancelled reason codes.
mesh_config_load_failure_t reason
Reason for the load failure.
bool is_removed
To save list integrity.
DFU event parameters.
nrf_mesh_evt_config_load_failure_t config_load_failure
Config load failure event.
uint32_t iv_index
IV index in the beacon.
Heartbeat received event structure.
void(* nrf_mesh_evt_handler_cb_t)(const nrf_mesh_evt_t *p_evt)
Mesh event handler callback type.
DFU request for this node to be the relay of a transfer.
SAR session failed.
SAR failed event structure.
nrf_mesh_evt_iv_update_notification_t iv_update
IV update notification event.
nrf_mesh_dfu_type_t dfu_type
DFU type and firmware ID of the transfer.
Network beacon received structure.
nrf_mesh_evt_handler_cb_t evt_cb
Callback function pointer.
Bluetooth Mesh security material structure.
Definition: nrf_mesh.h:313
nrf_mesh_flash_user_module_t
User tokens for the flash manager.
mesh_config_load_failure_t
Definition: mesh_config.h:53
uint32_t length
Length of the firmware in the bank.
A message has been received.
nrf_mesh_evt_config_storage_failure_t config_storage_failure
Config storage failure event.
const nrf_mesh_rx_metadata_t * p_rx_metadata
RX metadata for the packet that produced the beacon.
An IV update event occurred.
Mesh config persistent storage is stable.
Key refresh notification structure.
Mesh config persistent storage failed catastrophically while storing.
uint8_t ttl
Time-to-live for the message, this is a 7-bit value.
uint32_t nrf_mesh_tx_token_t
TX Token type, used as a context parameter to notify the application of ended transmissions.
Definition: nrf_mesh.h:88
nrf_mesh_address_t src
Source address of the message.
uint32_t page_count
The number of pages given to the flash manager of the module reporting the event. ...
nrf_mesh_dfu_transfer_t transfer
DFU type and firmware ID of the transfer.
uint16_t src
Unicast address of the sender.
void nrf_mesh_evt_handler_remove(nrf_mesh_evt_handler_t *p_handler_params)
Removes an event handler.
nrf_mesh_evt_type_t type
Type of event.
nrf_mesh_key_refresh_phase_t
Key refresh phase.
Definition: nrf_mesh.h:210
const void * p_flash_entry
The flash entry that has failed.
nrf_mesh_address_t dst
Destination address of the message.
Mesh event handler context structure.
const void * p_area
The start of area owned by the flash manager of the module reporting the event.
uint8_t hops
Calculated hop value.
Transmission complete event structure.
The transport SAR session timed out.
const uint8_t * p_network_id
Network ID of the beacon that triggered the notification or NULL if unknown.
A key refresh event occurred.
bool is_signed
Flag indicating whether the bank is signed with an encryption key.
nrf_mesh_rx_failed_reason_t reason
Reason for the rx failure.
nrf_mesh_secmat_t secmat
Security material used in the decryption of the payload.
const uint8_t * p_auth_value
Authentication value in the beacon.
An authenticated network beacon was received.
DFU transfer starting.
Bluetooth Mesh address.
Definition: nrf_mesh.h:355
nrf_mesh_evt_message_t message
Incoming message.
uint8_t init_ttl
Initial TTL value used for sending this heartbeat message.
uint32_t iv_index
IV index currently used for sending messages.
Device state manager flash user.
nrf_mesh_evt_rx_failed_t rx_failed
RX failed.
uint16_t src
Metadata for the received packet.
DFU request for this node to be the source of a transfer.
nrf_mesh_evt_flash_failed_t flash_failed
Flash failed event.
net_state_iv_update_t iv_update
IV update flag in the beacon.
nrf_mesh_evt_tx_complete_t tx_complete
Transmission complete.
The peer has cancelled the SAR session.
Message received event structure.
const nrf_mesh_rx_metadata_t * p_metadata
Metadata for the received packet.
uint16_t length
Message length.
const void * p_data
Failing data.
ID of a standalone firmware segment.
uint32_t data_len
Length of the failing data.
Security material for the Bluetooth Mesh network beacons.
Definition: nrf_mesh.h:263
const nrf_mesh_beacon_info_t * p_beacon_info
Pointer to the associated beacon info used to authenticate the incoming beacon.
The transport SAR session TX retry limit was exceeded.
Access layer flash user.
nrf_mesh_sar_session_cancel_reason_t reason
Reason for closing the session.
const uint8_t * p_buffer
Buffer containing the message data.
The peer has started another SAR session.
net_state_iv_update_t
State of IV update procedure.
Definition: nrf_mesh.h:322
There were not enough resources to process the transport SAR session.
uint8_t ivi
IV index bit of the rx packet.
Mesh config persistent storage failed while loading an entry.
nrf_mesh_dfu_type_t
DFU transfer types.
uint32_t * p_start_addr
Start address of the bank.
nrf_mesh_flash_user_module_t user
The module the event is reported from.

Documentation feedback | Developer Zone | Subscribe | Updated