nRF5 SDK for Mesh v2.2.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 internal event FIFO. 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__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 FIFO. More...
 
uint32_t internal_event_push (internal_event_t *p_event)
 Pushes an internal event. More...
 
uint32_t internal_event_pop (internal_event_t *p_event)
 Pops an internal event. 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 to internal event queue [er%d]", RESULT); \
} \
} while (0)
uint32_t internal_event_push(internal_event_t *p_event)
Pushes an internal event.

Pushes an internal event to the internal event FIFO.

Warning
The macro will not return any error codes as a result of, e.g. the FIFO being full.
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 166 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 121 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.

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 77 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 FIFO.

Parameters
[in]report_cbA callback function for reporting internal events. This can be a NULL pointer, in which case the events will be stored internally in a buffer size of INTERNAL_EVENT_BUFFER_SIZE.

◆ internal_event_push()

uint32_t internal_event_push ( internal_event_t p_event)

Pushes an internal event.

Parameters
[in]p_eventPointer to internal event structure.
Return values
NRF_SUCCESSSuccessfully pushed event to FIFO.
NRF_ERROR_NO_MEMFIFO is full.
NRF_ERROR_NULLNULL pointer supplied to function.

◆ internal_event_pop()

uint32_t internal_event_pop ( internal_event_t p_event)

Pops an internal event.

Parameters
[out]p_eventPointer to internal event structure.
Return values
NRF_SUCCESSSuccessfully popped event from FIFO.
NRF_ERROR_NOT_FOUNDNo more events to pop from FIFO.
NRF_ERROR_NULLNULL pointer supplied to function.

Documentation feedback | Developer Zone | Subscribe | Updated