nRF5 SDK for Mesh v5.0.0
Data Structures | Macros | Typedefs | Enumerations | Functions
Internal event module

Module for reporting internal stack events, to help traceability and debugging. More...

Data Structures

struct  internal_event_t
 Internal event structure. More...
 

Macros

#define __INTERNAL_EVENT_PUSH(EVENT_TYPE, ADDATA, PACKET_SIZE, P_PACKET)
 Pushes an internal event to the callback function provided at the initialization. More...
 

Typedefs

typedef uint32_t(* internal_event_report_cb_t) (internal_event_t *p_event)
 Callback function for inline handling of internal events. More...
 

Enumerations

enum  internal_event_type_t {
  INTERNAL_EVENT_DECRYPT_APP, INTERNAL_EVENT_DECRYPT_TRS, INTERNAL_EVENT_DECRYPT_TRS_SEG, INTERNAL_EVENT_PACKET_DROPPED,
  INTERNAL_EVENT_PACKET_RELAYED, INTERNAL_EVENT_NET_PACKET_QUEUED_TX, INTERNAL_EVENT_TRS_ACK_RECEIVED, INTERNAL_EVENT_ACK_QUEUED,
  INTERNAL_EVENT_SAR_CANCELLED, INTERNAL_EVENT_FM_ACTION, INTERNAL_EVENT_FM_DEFRAG, INTERNAL_EVENT_SAR_SUCCESS,
  INTERNAL_EVENT_NET_PACKET_RECEIVED, INTERNAL_EVENT_GATT_PROV_PDU_IGNORED, INTERNAL_EVENT_FRIEND_PACKET_QUEUED, INTERNAL_EVENT_NET_BEACON_TX,
  INTERNAL_EVENT__LAST
}
 Internal event types. More...
 
enum  internal_event_packet_dropped_t {
  PACKET_DROPPED_INVALID_APPKEY, PACKET_DROPPED_INVALID_NETKEY, PACKET_DROPPED_INVALID_DEVKEY, PACKET_DROPPED_INVALID_ADDRESS,
  PACKET_DROPPED_UNKNOWN_ADDRESS, PACKET_DROPPED_REPLAY_CACHE, PACKET_DROPPED_NETWORK_CACHE, PACKET_DROPPED_NETWORK_DECRYPT_FAILED,
  PACKET_DROPPED_INVALID_ADTYPE, PACKET_DROPPED_INVALID_PACKET_LEN, PACKET_DROPPED_NO_MEM
}
 Internal event packet dropped reasons. More...
 

Functions

void internal_event_init (internal_event_report_cb_t report_cb)
 Initializes the internal event module. More...
 
uint32_t internal_event_push (internal_event_t *p_event)
 Pushes an internal event to the callback function provided at the initialization. More...
 

Detailed Description

Module for reporting internal stack events, to help traceability and debugging.

Macro Definition Documentation

◆ __INTERNAL_EVENT_PUSH

#define __INTERNAL_EVENT_PUSH (   EVENT_TYPE,
  ADDATA,
  PACKET_SIZE,
  P_PACKET 
)
Value:
do { \
internal_event_t EVT = \
{ \
.type = (EVENT_TYPE), \
.state.value = (ADDATA), \
.packet_size = (PACKET_SIZE), \
.p_packet = (uint8_t *) (P_PACKET) \
}; \
uint32_t RESULT = internal_event_push(&EVT); \
if (RESULT != NRF_SUCCESS) \
{ \
__LOG(LOG_SRC_INTERNAL, LOG_LEVEL_WARN, "Unable to push the internal event to the callback function [er%d]", RESULT); \
} \
} while (0)
uint32_t internal_event_push(internal_event_t *p_event)
Pushes an internal event to the callback function provided at the initialization. ...

Pushes an internal event to the callback function provided at the initialization.

Warning
The macro will not return any error codes as a result of the callback call.
Parameters
[in]EVENT_TYPEType of internal event.
[in]ADDATAContext data for event. May be NULL.
[in]PACKET_SIZESize of packet (optional)
[in]P_PACKETPointer to packet.

Definition at line 155 of file internal_event.h.

Typedef Documentation

◆ internal_event_report_cb_t

typedef uint32_t(* internal_event_report_cb_t) (internal_event_t *p_event)

Callback function for inline handling of internal events.

Warning
Events may be generated in STACK_LOW context and may be highly timing sensitive.
Parameters
[in,out]p_eventInternal event.
Returns
NRF_SUCCESS Successfully handled event.

Definition at line 124 of file internal_event.h.

Enumeration Type Documentation

◆ internal_event_type_t

Internal event types.

Enumerator
INTERNAL_EVENT_DECRYPT_APP 
INTERNAL_EVENT_DECRYPT_TRS 

Transport layer decrypted packet.

INTERNAL_EVENT_DECRYPT_TRS_SEG 

Transport layer decrypted packet segment.

INTERNAL_EVENT_PACKET_DROPPED 

Packet dropped with reason internal_event_packet_dropped_t.

INTERNAL_EVENT_PACKET_RELAYED 

Packet was relayed by the network layer.

INTERNAL_EVENT_NET_PACKET_QUEUED_TX 

Network queued packet in bearer for TX.

INTERNAL_EVENT_TRS_ACK_RECEIVED 

ACK for transport SAR segment received.

INTERNAL_EVENT_ACK_QUEUED 

ACK for transport SAR queued in bearer.

INTERNAL_EVENT_SAR_CANCELLED 

SAR transaction cancelled.

INTERNAL_EVENT_FM_ACTION 

Flash Manager Action Completed.

INTERNAL_EVENT_FM_DEFRAG 

Flash Manager Defrag Completed.

INTERNAL_EVENT_SAR_SUCCESS 

SAR transaction cancelled.

INTERNAL_EVENT_NET_PACKET_RECEIVED 

Network layer packet data used for PTS.

INTERNAL_EVENT_GATT_PROV_PDU_IGNORED 

Invalid provisioning PDU was ignored.

INTERNAL_EVENT_FRIEND_PACKET_QUEUED 

Packet to LPN is queued on Friend node.

INTERNAL_EVENT_NET_BEACON_TX 

Network beacon is transmitted.

Definition at line 56 of file internal_event.h.

◆ internal_event_packet_dropped_t

Internal event packet dropped reasons.

Enumerator
PACKET_DROPPED_INVALID_APPKEY 

Dropped due to invalid application key.

PACKET_DROPPED_INVALID_NETKEY 

Dropped due to invalid network key.

PACKET_DROPPED_INVALID_DEVKEY 

Dropped due to invalid device key.

PACKET_DROPPED_INVALID_ADDRESS 

Dropped due to invalid address.

PACKET_DROPPED_UNKNOWN_ADDRESS 

Dropped due to unknown address.

PACKET_DROPPED_REPLAY_CACHE 

Dropped due to packet already in replay cache.

PACKET_DROPPED_NETWORK_CACHE 

Dropped due to packet already in network cache.

PACKET_DROPPED_NETWORK_DECRYPT_FAILED 

Dropped due to network decrypt failed.

PACKET_DROPPED_INVALID_ADTYPE 

Dropped due to invalid AD type.

PACKET_DROPPED_INVALID_PACKET_LEN 

Dropped due to invalid packet length.

PACKET_DROPPED_NO_MEM 

Dropped due to no more memory.

Definition at line 80 of file internal_event.h.

Function Documentation

◆ internal_event_init()

void internal_event_init ( internal_event_report_cb_t  report_cb)

Initializes the internal event module.

Parameters
[in]report_cbA callback function for reporting internal events.

◆ internal_event_push()

uint32_t internal_event_push ( internal_event_t p_event)

Pushes an internal event to the callback function provided at the initialization.

Parameters
[in]p_eventPointer to internal event structure.
Return values
NRF_SUCCESSSuccessfully pushed event to the callback function.
NRF_ERROR_NULLNULL pointer supplied to function.

Documentation feedback | Developer Zone | Subscribe | Updated