RA Flexible Software Package Documentation  Release v5.2.0

 
BLE Mesh Network Lower Trans (rm_ble_mesh_lower_trans)

Functions

fsp_err_t RM_BLE_MESH_LOWER_TRANS_Open (rm_ble_mesh_lower_trans_ctrl_t *const p_ctrl, rm_ble_mesh_lower_trans_cfg_t const *const p_cfg)
 
fsp_err_t RM_BLE_MESH_LOWER_TRANS_Close (rm_ble_mesh_provision_ctrl_t *const p_ctrl)
 
fsp_err_t RM_BLE_MESH_LOWER_TRANS_SendPdu (rm_ble_mesh_lower_trans_ctrl_t *const p_ctrl, rm_ble_mesh_lower_trans_transmit_setting_t const *const p_transmit_setting, rm_ble_mesh_buffer_t const *const p_buffer, rm_ble_mesh_lower_trans_reliable_t reliable)
 
fsp_err_t RM_BLE_MESH_LOWER_TRANS_ClearSarContexts (rm_ble_mesh_lower_trans_ctrl_t *const p_ctrl)
 
fsp_err_t RM_BLE_MESH_LOWER_TRANS_ClearSubnetSarContexts (rm_ble_mesh_lower_trans_ctrl_t *const p_ctrl, rm_ble_mesh_network_subnet_handle_t subnet_handle)
 
fsp_err_t RM_BLE_MESH_LOWER_TRANS_ReinitReplayCache (rm_ble_mesh_lower_trans_ctrl_t *const p_ctrl)
 
fsp_err_t RM_BLE_MESH_LOWER_TRANS_TriggerPendingTransmits (rm_ble_mesh_lower_trans_ctrl_t *const p_ctrl)
 

Detailed Description

Overview

Target Devices

The BLE Mesh Network Lower Trans module supports the following devices.

Configuration

Build Time Configurations for rm_ble_mesh_lower_trans

The following build time configurations are defined in fsp_cfg/rm_ble_mesh_lower_trans_cfg.h:

ConfigurationOptionsDefaultDescription

Configurations for Networking > BLE Mesh Network modules > BLE Mesh Lower Trans (rm_ble_mesh_lower_trans)

This module can be added to the Stacks tab via New Stack > Networking > BLE Mesh Network modules > BLE Mesh Lower Trans (rm_ble_mesh_lower_trans).

ConfigurationOptionsDefaultDescription
General
NameName Must Be a Valid C Symbolg_rm_ble_mesh_lower_trans0 Module name.
Channel NumberInvalid Channel Number0 Select channel corresponding to the channel number of the hardware.
Notification Enable
  • Enabled
  • Disabled
Disabled Whether to enable the notification or not.
CallbackName Must Be a Valid C SymbolNULL Callback function name.

Data Structures

struct  rm_ble_mesh_lower_trans_instance_ctrl_t
 

Data Structure Documentation

◆ rm_ble_mesh_lower_trans_instance_ctrl_t

struct rm_ble_mesh_lower_trans_instance_ctrl_t

RM_BLE_MESH_LOWER_TRANS private control block. DO NOT MODIFY. Initialization occurs when RM_BLE_MESH_LOWER_TRANS_Open() is called.

Function Documentation

◆ RM_BLE_MESH_LOWER_TRANS_Open()

fsp_err_t RM_BLE_MESH_LOWER_TRANS_Open ( rm_ble_mesh_lower_trans_ctrl_t *const  p_ctrl,
rm_ble_mesh_lower_trans_cfg_t const *const  p_cfg 
)

Register Inerface with Lower Transport Layer. This routine registers interface with the Lower Transport Layer. Transport Layer supports single Application, hence this rouine shall be called once.

Implements rm_ble_mesh_lower_trans_api_t::open.

Example:

/* Open the module. */
err = RM_BLE_MESH_LOWER_TRANS_Open(&g_ble_mesh_lower_trans0_ctrl, &g_ble_mesh_lower_trans0_cfg);
Return values
FSP_SUCCESSModule opened successfully.
FSP_ERR_ASSERTIONPointer to control block or configuration structure is NULL.
FSP_ERR_ALREADY_OPENModule is already open.
FSP_ERR_INVALID_STATELower layer is invalid state.

◆ RM_BLE_MESH_LOWER_TRANS_Close()

fsp_err_t RM_BLE_MESH_LOWER_TRANS_Close ( rm_ble_mesh_provision_ctrl_t *const  p_ctrl)

Unregister Inerface with Lower Transport Layer. Implements rm_ble_mesh_lower_trans_api_t::close.

Example:

/* Close the module. */
err = RM_BLE_MESH_LOWER_TRANS_Close(&g_ble_mesh_lower_trans0_ctrl);
Return values
FSP_SUCCESSModule successfully closed.
FSP_ERR_ASSERTIONThe parameter p_ctrl is NULL.
FSP_ERR_NOT_OPENModule is not open.
FSP_ERR_INVALID_STATELower layer is invalid state.

◆ RM_BLE_MESH_LOWER_TRANS_SendPdu()

fsp_err_t RM_BLE_MESH_LOWER_TRANS_SendPdu ( rm_ble_mesh_lower_trans_ctrl_t *const  p_ctrl,
rm_ble_mesh_lower_trans_transmit_setting_t const *const  p_transmit_setting,
rm_ble_mesh_buffer_t const *const  p_buffer,
rm_ble_mesh_lower_trans_reliable_t  reliable 
)

API to send transport PDUs. This routine sends transport PDUs to peer device.

Implements rm_ble_mesh_lower_trans_api_t::sendPdu.

Example:

/* Send transport PDUs. */
err = RM_BLE_MESH_LOWER_TRANS_SendPdu(&g_ble_mesh_lower_trans0_ctrl,
&transmit_setting,
&buffer,
Return values
FSP_SUCCESSOperation succeeded.
FSP_ERR_ASSERTIONThe parameter p_ctrl is NULL.
FSP_ERR_INVALID_POINTERThe parameter p_transmit_setting and p_buffer are NULL.
FSP_ERR_NOT_OPENModule is not open.
FSP_ERR_OUT_OF_MEMORYMemory allocation is failed.
FSP_ERR_OVERFLOWTX queue is full.
FSP_ERR_UNDERFLOWTX queue is empty.
FSP_ERR_INVALID_ARGUMENTInput parameter is invalid.
FSP_ERR_NOT_FOUNDInput parameter is not found.

◆ RM_BLE_MESH_LOWER_TRANS_ClearSarContexts()

fsp_err_t RM_BLE_MESH_LOWER_TRANS_ClearSarContexts ( rm_ble_mesh_lower_trans_ctrl_t *const  p_ctrl)

To clear all segmentation and reassembly contexts. This routine clears all segmentation and reassembly contexts.

Implements rm_ble_mesh_lower_trans_api_t::clearSarContexts.

Example:

/* Clear all segmentation and reassembly contexts. */
err = RM_BLE_MESH_LOWER_TRANS_ClearSarContexts(&g_ble_mesh_lower_trans0_ctrl);
Return values
FSP_SUCCESSOperation succeeded.
FSP_ERR_ASSERTIONThe parameter p_ctrl is NULL.
FSP_ERR_NOT_OPENModule is not open.

◆ RM_BLE_MESH_LOWER_TRANS_ClearSubnetSarContexts()

fsp_err_t RM_BLE_MESH_LOWER_TRANS_ClearSubnetSarContexts ( rm_ble_mesh_lower_trans_ctrl_t *const  p_ctrl,
rm_ble_mesh_network_subnet_handle_t  subnet_handle 
)

To clear all segmentation and reassembly contexts for a given subnet. This routine clears all segmentation and reassembly contexts.

Implements rm_ble_mesh_lower_trans_api_t::clearSubnetSarContexts.

Example:

/* Clear all segmentation and reassembly contexts for a given subnet. */
err = RM_BLE_MESH_LOWER_TRANS_ClearSubnetSarContexts(&g_ble_mesh_lower_trans0_ctrl, subnet_handle);
Return values
FSP_SUCCESSOperation succeeded.
FSP_ERR_ASSERTIONThe parameter p_ctrl is NULL.
FSP_ERR_NOT_OPENModule is not open.

◆ RM_BLE_MESH_LOWER_TRANS_ReinitReplayCache()

fsp_err_t RM_BLE_MESH_LOWER_TRANS_ReinitReplayCache ( rm_ble_mesh_lower_trans_ctrl_t *const  p_ctrl)

To reinitialize all Lower Transport replay cache entries. This routine clears and reinitializes all Transport Replay Cache Entries. This needs to be invoked by the upper layer when the Network moves to a newer IV Index (Normal State) and the Sequence numbers are reset.

Implements rm_ble_mesh_lower_trans_api_t::reinitReplayCache.

Example:

/* Reinitialize all Lower Transport replay cache Entries. */
err = RM_BLE_MESH_LOWER_TRANS_ReinitReplayCache(&g_ble_mesh_lower_trans0_ctrl);
Return values
FSP_SUCCESSOperation succeeded.
FSP_ERR_ASSERTIONThe parameter p_ctrl is NULL.
FSP_ERR_NOT_OPENModule is not open.

◆ RM_BLE_MESH_LOWER_TRANS_TriggerPendingTransmits()

fsp_err_t RM_BLE_MESH_LOWER_TRANS_TriggerPendingTransmits ( rm_ble_mesh_lower_trans_ctrl_t *const  p_ctrl)

To trigger any LTRN pending transmissions. Trigger pending transmits is an interface to check for pending segments in the tx queue and schedule for transmission, which is mainly used by the LPN operation.

Implements rm_ble_mesh_lower_trans_api_t::triggerPendingTransmits.

Example:

/* Trigger any Lower Transport pending transmissions. */
err = RM_BLE_MESH_LOWER_TRANS_TriggerPendingTransmits(&g_ble_mesh_lower_trans0_ctrl);
Return values
FSP_SUCCESSOperation succeeded.
FSP_ERR_ASSERTIONThe parameter p_ctrl is NULL.
FSP_ERR_NOT_OPENModule is not open.