Mistake on this page?
Report an issue in GitHub or email us
Data Structures | Macros | Typedefs | Enumerations | Functions
ll_api.h File Reference

Link layer interface file. More...

#include "wsf_types.h"
#include "wsf_os.h"
#include "util/bda.h"
#include "cfg_mac_ble.h"
#include "ll_defs.h"

Go to the source code of this file.

Data Structures

struct  LlRtCfg_t
 LL runtime configuration parameters. More...
 
struct  LlExtAdvParam_t
 Extended advertising parameters. More...
 
struct  LlExtAdvEnableParam_t
 Extended advertising enable parameters. More...
 
struct  LlPerAdvParam_t
 Periodic advertising parameters. More...
 
struct  LlScanParam_t
 Scan parameters. More...
 
struct  LlExtScanParam_t
 Extended scan parameters. More...
 
struct  LlPerAdvCreateSyncCmd_t
 Periodic advertising create sync command. More...
 
struct  LlDevicePerAdvList_t
 Device in periodic advertiser list. More...
 
struct  LlInitParam_t
 Initiating parameters (LlExtCreateConn()). More...
 
struct  LlExtInitParam_t
 Initiating parameters (LlExtCreateConn()). More...
 
struct  LlExtInitScanParam_t
 Initiating scan parameters (LlExtCreateConn()). More...
 
struct  LlConnSpec_t
 Connection specification (LlCreateConn(), LlConnUpdate() and LlExtCreateConn()). More...
 
struct  LlCisCisParams_t
 CIS parameters. More...
 
struct  LlCisCigParams_t
 CIG parameters. More...
 
struct  LlCisCigCisParamsTest_t
 CIG test CIS parameters. More...
 
struct  LlCisCigParamsTest_t
 CIG test CIG parameters. More...
 
struct  LlCisCreateCisParams_t
 Create CIS parameters. More...
 
struct  LlIsoSetupDataPath_t
 LE setup ISO Data Path command. More...
 
struct  LlCreateBig_t
 BIG Create BIG message. More...
 
struct  LlCreateBigTest_t
 BIG Create BIG Test message. More...
 
struct  LlBigCreateSync_t
 BIG Create Sync message. More...
 
struct  LlEncMode_t
 Encryption mode data structure used in LlGetEncMode() and LlSetEncMode(). More...
 
struct  LlTestReport_t
 Test report data. More...
 
struct  LlIsoTestCtrs_t
 ISO test counter data. More...
 
struct  LlIsoLinkQual_t
 ISO link quality statistics. More...
 
struct  LlAdvReportInd_t
 Advertising report indication. More...
 
struct  LlConnInd_t
 Connect indication. More...
 
struct  LlDisconnectInd_t
 Disconnect indication. More...
 
struct  LlConnUpdateInd_t
 Connect update indication. More...
 
struct  LlRemConnParamInd_t
 Connection parameter change indication. More...
 
struct  LlCreateConnCancelCnf_t
 Create connection cancel confirm. More...
 
struct  LlReadRemoteVerInfoCnf_t
 Read remote version information confirm. More...
 
struct  LlReadRemoteFeatCnf_t
 Read remote feature confirm. More...
 
struct  LlEncChangeInd_t
 Encryption change indication. More...
 
struct  LlEncKeyRefreshInd_t
 Key refresh indication. More...
 
struct  LlLtkReqInd_t
 LTK request indication. More...
 
struct  LlLtkReqReplyCnf_t
 LTK request reply confirm. More...
 
struct  LlLtkReqNegReplyCnf_t
 LTK request negative reply. More...
 
struct  LlAuthPayloadTimeoutInd_t
 Authentication payload timeout expired indication. More...
 
struct  LlDataLenChangeInd_t
 Data length change. More...
 
struct  LlReadLocalP256PubKeyInd_t
 Read local P-256 key pair complete. More...
 
struct  LlGenerateDhKeyInd_t
 Generate Diffie-Hellman key complete. More...
 
struct  LlPhyUpdateInd_t
 PHY update complete. More...
 
struct  LlHwErrorInd_t
 HW error. More...
 
struct  LlScanReportInd_t
 Scan report. More...
 
struct  LlExtAdvEnableCnf_t
 Extended advertising enable. More...
 
struct  LlPerAdvEnableCnf_t
 Periodic advertising enable. More...
 
struct  LlExtAdvReportInd_t
 Extended advertising report. More...
 
struct  LlExtScanEnableCnf_t
 Extended scan enable confirm. More...
 
struct  LlAdvSetTermInd_t
 Advertising set terminated. More...
 
struct  LlScanReqRcvdInd_t
 Scan request received. More...
 
struct  LlChSelInd_t
 Used channel selection indication. More...
 
struct  LlPerAdvSyncEstdCnf_t
 LE periodic advertising synchronization established. More...
 
struct  LlPerAdvReportInd_t
 LE periodic advertising report. More...
 
struct  LlPerAdvSyncLostInd_t
 LE periodic advertising sync lost. More...
 
struct  LlPerSyncTrsfRcvdInd_t
 LE periodic advertising sync transfer received. More...
 
struct  LlCisEstInd_t
 CIS established event. More...
 
struct  LlCisReqInd_t
 CIS request event. More...
 
struct  LlCreateBigCnf_t
 Create BIG complete event. More...
 
struct  LlTerminateBigInd_t
 Terminate BIG complete event. More...
 
struct  LlBigTermSyncCnf_t
 BIG Terminate complete event. More...
 
struct  LlBigSyncEstInd_t
 Create BIG complete (Sync Established) event. More...
 
struct  LlBigSyncLostInd_t
 BIG sync lost event. More...
 
struct  LlPeerScaCnf_t
 LE request peer SCA complete. More...
 
struct  LlPowerReportInd_t
 LE power reporting indication. More...
 
struct  LlIsoEventCmplInd_t
 VS ISO Event complete event. More...
 
struct  LlBigInfoAdvRptInd_t
 BIG Info Advertising Report event. More...
 
struct  LlPathLossThresholdEvt_t
 LE Path loss reporting event. More...
 
union  LlEvt_t
 Union of all event types. More...
 

Macros

#define LL_VER_NUM   1366
 Version number. More...
 
#define LL_SUP_STATE_NON_CONN_ADV   (UINT64_C(1) << 0)
 
#define LL_SUP_STATE_SCAN_ADV   (UINT64_C(1) << 1)
 
#define LL_SUP_STATE_CONN_ADV   (UINT64_C(1) << 2)
 
#define LL_SUP_STATE_HI_DUTY_DIR_ADV   (UINT64_C(1) << 3)
 
#define LL_SUP_STATE_PASS_SCAN   (UINT64_C(1) << 4)
 
#define LL_SUP_STATE_ACT_SCAN   (UINT64_C(1) << 5)
 
#define LL_SUP_STATE_INIT   (UINT64_C(1) << 6)
 
#define LL_SUP_STATE_CONN_SLV   (UINT64_C(1) << 7)
 
#define LL_SUP_STATE_NON_CONN_ADV_AND_PASS_SCAN   (UINT64_C(1) << 8)
 
#define LL_SUP_STATE_SCAN_ADV_AND_PASS_SCAN   (UINT64_C(1) << 9)
 
#define LL_SUP_STATE_CONN_ADV_AND_PASS_SCAN   (UINT64_C(1) << 10)
 
#define LL_SUP_STATE_HI_DUTY_DIR_ADV_AND_PASS_SCAN   (UINT64_C(1) << 11)
 
#define LL_SUP_STATE_NON_CONN_ADV_AND_ACT_SCAN   (UINT64_C(1) << 12)
 
#define LL_SUP_STATE_SCAN_ADV_AND_ACT_SCAN   (UINT64_C(1) << 13)
 
#define LL_SUP_STATE_CONN_ADV_AND_ACT_SCAN   (UINT64_C(1) << 14)
 
#define LL_SUP_STATE_HI_DUTY_DIR_ADV_ACT_SCAN   (UINT64_C(1) << 15)
 
#define LL_SUP_STATE_NON_CONN_ADV_AND_INIT   (UINT64_C(1) << 16)
 
#define LL_SUP_STATE_SCAN_ADV_AND_INIT   (UINT64_C(1) << 17)
 
#define LL_SUP_STATE_NON_CONN_ADV_MST   (UINT64_C(1) << 18)
 
#define LL_SUP_STATE_SCAN_ADV_MST   (UINT64_C(1) << 19)
 
#define LL_SUP_STATE_NON_CONN_ADV_SLV   (UINT64_C(1) << 20)
 
#define LL_SUP_STATE_SCAN_ADV_SLV   (UINT64_C(1) << 21)
 
#define LL_SUP_STATE_PASS_SCAN_AND_INIT   (UINT64_C(1) << 22)
 
#define LL_SUP_STATE_ACT_SCAN_AND_INIT   (UINT64_C(1) << 23)
 
#define LL_SUP_STATE_PASS_SCAN_MST   (UINT64_C(1) << 24)
 
#define LL_SUP_STATE_ACT_SCAN_MST   (UINT64_C(1) << 25)
 
#define LL_SUP_STATE_PASS_SCAN_SLV   (UINT64_C(1) << 26)
 
#define LL_SUP_STATE_ACT_SCAN_SLV   (UINT64_C(1) << 27)
 
#define LL_SUP_STATE_INIT_MST   (UINT64_C(1) << 28)
 
#define LL_SUP_STATE_LO_DUTY_DIR_ADV   (UINT64_C(1) << 29)
 
#define LL_SUP_STATE_LO_DUTY_DIR_ADV_AND_PASS_SCAN   (UINT64_C(1) << 30)
 
#define LL_SUP_STATE_LO_DUTY_DIR_ADV_AND_ACT_SCAN   (UINT64_C(1) << 31)
 
#define LL_SUP_STATE_CONN_ADV_AND_INIT   (UINT64_C(1) << 32)
 
#define LL_SUP_STATE_HI_DUTY_DIR_ADV_AND_INIT   (UINT64_C(1) << 33)
 
#define LL_SUP_STATE_LO_DUTY_DIR_ADV_AND_INIT   (UINT64_C(1) << 34)
 
#define LL_SUP_STATE_CONN_ADV_MST   (UINT64_C(1) << 35)
 
#define LL_SUP_STATE_HI_DUTY_DIR_ADV_MST   (UINT64_C(1) << 36)
 
#define LL_SUP_STATE_LO_DUTY_DIR_ADV_MST   (UINT64_C(1) << 37)
 
#define LL_SUP_STATE_CONN_ADV_SLV   (UINT64_C(1) << 38)
 
#define LL_SUP_STATE_HI_DUTY_DIR_ADV_SLV   (UINT64_C(1) << 39)
 
#define LL_SUP_STATE_LO_DUTY_DIR_ADV_SLV   (UINT64_C(1) << 40)
 
#define LL_SUP_STATE_INIT_SLV   (UINT64_C(1) << 41)
 
#define LL_FEAT_ENCRYPTION   (UINT64_C(1) << 0)
 
#define LL_FEAT_CONN_PARAM_REQ_PROC   (UINT64_C(1) << 1)
 
#define LL_FEAT_EXT_REJECT_IND   (UINT64_C(1) << 2)
 
#define LL_FEAT_SLV_INIT_FEAT_EXCH   (UINT64_C(1) << 3)
 
#define LL_FEAT_LE_PING   (UINT64_C(1) << 4)
 
#define LL_FEAT_DATA_LEN_EXT   (UINT64_C(1) << 5)
 
#define LL_FEAT_PRIVACY   (UINT64_C(1) << 6)
 
#define LL_FEAT_EXT_SCAN_FILT_POLICY   (UINT64_C(1) << 7)
 
#define LL_FEAT_LE_2M_PHY   (UINT64_C(1) << 8)
 
#define LL_FEAT_STABLE_MOD_IDX_TRANSMITTER   (UINT64_C(1) << 9)
 
#define LL_FEAT_STABLE_MOD_IDX_RECEIVER   (UINT64_C(1) << 10)
 
#define LL_FEAT_LE_CODED_PHY   (UINT64_C(1) << 11)
 
#define LL_FEAT_LE_EXT_ADV   (UINT64_C(1) << 12)
 
#define LL_FEAT_LE_PER_ADV   (UINT64_C(1) << 13)
 
#define LL_FEAT_CH_SEL_2   (UINT64_C(1) << 14)
 
#define LL_FEAT_LE_POWER_CLASS_1   (UINT64_C(1) << 15)
 
#define LL_FEAT_MIN_NUM_USED_CHAN   (UINT64_C(1) << 16)
 
#define LL_FEAT_CONN_CTE_REQ   (UINT64_C(1) << 17)
 
#define LL_FEAT_CONN_CTE_RSP   (UINT64_C(1) << 18)
 
#define LL_FEAT_CONNLESS_CTE_TRANS   (UINT64_C(1) << 19)
 
#define LL_FEAT_CONNLESS_CTE_RECV   (UINT64_C(1) << 20)
 
#define LL_FEAT_ANTENNA_SWITCH_AOD   (UINT64_C(1) << 21)
 
#define LL_FEAT_ANTENNA_SWITCH_AOA   (UINT64_C(1) << 22)
 
#define LL_FEAT_RECV_CTE   (UINT64_C(1) << 23)
 
#define LL_FEAT_PAST_SENDER   (UINT64_C(1) << 24)
 
#define LL_FEAT_PAST_RECIPIENT   (UINT64_C(1) << 25)
 
#define LL_FEAT_SCA_UPDATE   (UINT64_C(1) << 26)
 
#define LL_FEAT_REMOTE_PUB_KEY_VALIDATION   (UINT64_C(1) << 27)
 
#define LL_FEAT_CIS_MASTER_ROLE   (UINT64_C(1) << 28)
 
#define LL_FEAT_CIS_SLAVE_ROLE   (UINT64_C(1) << 29)
 
#define LL_FEAT_ISO_BROADCASTER   (UINT64_C(1) << 30)
 
#define LL_FEAT_ISO_SYNC   (UINT64_C(1) << 31)
 
#define LL_FEAT_ISO_HOST_SUPPORT   (UINT64_C(1) << 32)
 
#define LL_FEAT_POWER_CONTROL_REQUEST   (UINT64_C(1) << 33)
 
#define LL_FEAT_POWER_CHANGE_IND   (UINT64_C(1) << 34)
 
#define LL_FEAT_PATH_LOSS_MONITOR   (UINT64_C(1) << 35)
 
#define LL_HOST_CONTROLLED_FEAT   LL_FEAT_ISO_HOST_SUPPORT
 
#define LL_FEAT_ALL_MASK   (UINT64_C(0x0000000FFF01FFFF))
 
#define LL_ADDR_RANDOM_BIT   LL_ADDR_RANDOM
 
#define LL_ADDR_IDENTITY_BIT   LL_ADDR_PUBLIC_IDENTITY
 
#define LL_ADV_EVT_PROP_NON_CONN_NON_SCAN   0
 
#define LL_PER_ADV_CREATE_SYNC_OPTIONS_BITS   0x03
 Periodic advertising create sync options valid bits. More...
 
#define LL_PC_PATH_LOSS_UNUSED_HIGH_THRESHOLD   0xFF
 PCL path loss monitoring unused high threshold value. More...
 
#define LL_FEAT_LEN   8
 

Typedefs

typedef bool_t(* llEvtCback_t) (LlEvt_t *pEvent)
 Event callback. More...
 
typedef void(* llAclCback_t) (uint16_t handle, uint8_t numBufs)
 ACL callback. More...
 
typedef void(* llIsoCback_t) (uint8_t numHandles, uint16_t *pHandle, uint16_t *pNumPkts)
 ISO callback. More...
 

Enumerations

Functions

void LlGetDefaultRunTimeCfg (LlRtCfg_t *pCfg)
 Get default runtime configuration values. More...
 
void LlInitRunTimeCfg (const LlRtCfg_t *pCfg)
 Initialize runtime configuration. More...
 
uint16_t LlInitConnMem (uint8_t *pFreeMem, uint32_t freeMemSize)
 Initialize memory for connections. More...
 
uint16_t LlInitExtAdvMem (uint8_t *pFreeMem, uint32_t freeMemSize)
 Initialize memory for extended advertising. More...
 
uint16_t LlInitExtScanMem (uint8_t *pFreeMem, uint32_t freeMemSize)
 Initialize memory for extended scanning. More...
 
void LlAdvSlaveInit (void)
 Initialize LL subsystem for operation as an advertising slave. More...
 
void LlExtAdvSlaveInit (void)
 Initialize LL subsystem for operation for extended advertising slave. More...
 
void LlConnSlaveInit (void)
 Initialize LL subsystem for operation as a connectable slave. More...
 
void LlEncConnSlaveInit (void)
 Initialize LL subsystem for operation as a encryptable connectable slave. More...
 
void LlScanMasterInit (void)
 Initialize LL subsystem for operation as a scanning master. More...
 
void LlExtScanMasterInit (void)
 Initialize LL subsystem for operation for extended scanning master. More...
 
void LlInitMasterInit (void)
 Initialize LL subsystem for operation as an initiating master. More...
 
void LlExtInitMasterInit (void)
 Initialize LL subsystem for operation as an extended initiating master. More...
 
void LlConnMasterInit (void)
 Initialize LL subsystem for operation as a connectable master. More...
 
void LlEncConnMasterInit (void)
 Initialize LL subsystem for operation as a encryptable connectable slave. More...
 
void LlPrivInit (void)
 Initialize LL subsystem for operation with privacy. More...
 
void LlScInit (void)
 Initialize LL subsystem for secure connections. More...
 
void LlPhySlaveInit (void)
 Initialize LL subsystem for PHY features (slave). More...
 
void LlPhyMasterInit (void)
 Initialize LL subsystem for PHY features (master). More...
 
void LlChannelSelection2Init (void)
 Initialize LL subsystem for secure connections. More...
 
void LlTestInit (void)
 Initialize LL subsystem for test modes. More...
 
void LlHandlerInit (wsfHandlerId_t handlerId)
 Initialize LL subsystem with task handler. More...
 
void LlPowerControlInit (void)
 Initialize LL subsystem for operation for power control. More...
 
void LlHandler (wsfEventMask_t event, wsfMsgHdr_t *pMsg)
 LL message dispatch handler. More...
 
void LlReset (void)
 Reset LL subsystem. More...
 
void LlEvtRegister (llEvtCback_t evtCback)
 Register LL event handler. More...
 
void LlAclRegister (llAclCback_t sendCompCback, llAclCback_t recvPendCback)
 Register ACL handler. More...
 
void LlIsoRegister (llIsoCback_t sendIsoCompCback, llIsoCback_t recvIsoPendCback)
 Register ISO handler. More...
 
void LlSetBdAddr (const uint8_t *pAddr)
 Set Bluetooth device address. More...
 
void LlGetBdAddr (uint8_t *pAddr)
 Get Bluetooth device address. More...
 
uint8_t LlSetRandAddr (const uint8_t *pAddr)
 Set random device address. More...
 
uint8_t LlGetRandAddr (uint8_t *pAddr)
 Get random device address. More...
 
void LlGetVersion (uint16_t *pCompId, uint8_t *pBtVer, uint16_t *pImplRev)
 Get versions. More...
 
void LlGetSupStates (uint8_t *pStates)
 Get supported states. More...
 
void LlGetFeatures (uint8_t *pFeatures)
 Get features. More...
 
uint8_t LlSetFeatures (const uint8_t *pFeatures)
 Set features. More...
 
uint8_t LlSetHostFeatures (uint8_t bitNum, bool_t bitVal)
 Set host feature. More...
 
uint8_t LlGetRandNum (uint8_t *pRandNum)
 Get random number. More...
 
uint8_t LlGetWhitelistSize (void)
 Get white list size. More...
 
uint8_t LlClearWhitelist (void)
 Clear all white list entries. More...
 
uint8_t LlAddDeviceToWhitelist (uint8_t addrType, bdAddr_t pAddr)
 Add device to the white list. More...
 
uint8_t LlRemoveDeviceFromWhitelist (uint8_t addrType, bdAddr_t pAddr)
 Remove device from the white list. More...
 
uint8_t LlAddDeviceToResolvingList (uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr, const uint8_t *pPeerIrk, const uint8_t *pLocalIrk)
 Add device to resolving list. More...
 
uint8_t LlRemoveDeviceFromResolvingList (uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr)
 Remove device from resolving list. More...
 
uint8_t LlClearResolvingList (void)
 Clear resolving list. More...
 
uint8_t LlReadResolvingListSize (uint8_t *pSize)
 Read resolving list size. More...
 
uint8_t LlReadPeerResolvableAddr (uint8_t addrType, const uint8_t *pIdentityAddr, uint8_t *pRpa)
 Read peer resolvable address. More...
 
uint8_t LlReadLocalResolvableAddr (uint8_t addrType, const uint8_t *pIdentityAddr, uint8_t *pRpa)
 Read local resolvable address. More...
 
uint8_t LlSetAddrResolutionEnable (uint8_t enable)
 Enable or disable address resolution. More...
 
uint8_t LlSetResolvablePrivateAddrTimeout (uint16_t rpaTimeout)
 Set resolvable private address timeout. More...
 
uint8_t LlSetPrivacyMode (uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr, uint8_t privMode)
 Set privacy mode. More...
 
uint8_t LlGenerateP256KeyPair (void)
 Generate a P-256 public/private key pair. More...
 
uint8_t LlGenerateDhKey (const uint8_t pubKey_x[LL_ECC_KEY_LEN], const uint8_t pubKey_y[LL_ECC_KEY_LEN])
 Generate a Diffie-Hellman key. More...
 
uint8_t LlGenerateDhKeyV2 (uint8_t pubKey_x[LL_ECC_KEY_LEN], uint8_t pubKey_y[LL_ECC_KEY_LEN], uint8_t keyType)
 Generate a Diffie-Hellman key. More...
 
uint8_t LlSetP256PrivateKey (const uint8_t privKey[LL_ECC_KEY_LEN])
 Set P-256 private key for debug purposes. More...
 
uint8_t LlSetValidatePublicKeyMode (uint8_t validateMode)
 Set validate public key mode. More...
 
uint8_t LlSetChannelClass (const uint8_t *pChanMap)
 Set channel class. More...
 
uint8_t LlSetOpFlags (uint32_t flags, bool_t enable)
 Set operational mode flags. More...
 
void LlSetDefaultExtAdvTxPhyOptions (const uint8_t phyOptions)
 Set the default Ext adv TX PHY options. More...
 
void LlSetAdvTxPower (int8_t advTxPwr)
 Set advertising transmit power. More...
 
uint8_t LlGetAdvTxPower (int8_t *pAdvTxPwr)
 Get advertising transmit power. More...
 
uint8_t LlSetAdvParam (uint16_t advIntervalMin, uint16_t advIntervalMax, uint8_t advType, uint8_t ownAddrType, uint8_t peerAddrType, const uint8_t *pPeerAddr, uint8_t advChanMap, uint8_t advFiltPolicy)
 Set advertising parameter. More...
 
uint8_t LlSetAdvData (uint8_t len, const uint8_t *pData)
 Set advertising data. More...
 
uint8_t LlSetScanRespData (uint8_t len, const uint8_t *pData)
 Set scan response data. More...
 
void LlAdvEnable (uint8_t enable)
 Advertising enable. More...
 
uint8_t LlSetAdvSetRandAddr (uint8_t handle, const uint8_t *pAddr)
 Set advertising set random device address. More...
 
uint64_t LlGetPeriodicChanMap (uint16_t handle, bool_t isAdv)
 Get periodic channel map. More...
 
uint8_t LlGetAdvSetRandAddr (uint8_t handle, uint8_t *pAddr)
 Get advertising set random device address. More...
 
uint8_t LlSetExtAdvParam (uint8_t handle, LlExtAdvParam_t *pExtAdvParam)
 Set extended advertising parameters. More...
 
uint8_t LlGetExtAdvTxPowerLevel (uint16_t handle, int8_t *pLevel)
 Get extended advertising TX power level. More...
 
uint8_t LlSetExtAdvData (uint8_t handle, uint8_t op, uint8_t fragPref, uint8_t len, const uint8_t *pData)
 Set extended advertising data. More...
 
uint8_t LlSetExtScanRespData (uint8_t handle, uint8_t op, uint8_t fragPref, uint8_t len, const uint8_t *pData)
 Set extended scan response data. More...
 
void LlExtAdvEnable (uint8_t enable, uint8_t numAdvSets, LlExtAdvEnableParam_t enaParam[])
 Extended advertising enable. More...
 
uint8_t LlReadMaxAdvDataLen (uint16_t *pLen)
 Read maximum advertising data length. More...
 
uint8_t LlReadNumSupAdvSets (uint8_t *pNumSets)
 Read number of supported advertising sets. More...
 
uint8_t LlRemoveAdvSet (uint8_t handle)
 Remove advertising set. More...
 
uint8_t LlClearAdvSets (void)
 Clear advertising sets. More...
 
uint8_t LlSetPeriodicAdvParam (uint8_t handle, LlPerAdvParam_t *pPerAdvParam)
 Set periodic advertising parameters. More...
 
uint8_t LlSetPeriodicAdvData (uint8_t handle, uint8_t op, uint8_t len, const uint8_t *pData)
 Set periodic advertising data. More...
 
void LlSetPeriodicAdvEnable (uint8_t enable, uint8_t handle)
 Set periodic advertising enable. More...
 
uint8_t LlSetAuxOffsetDelay (uint8_t handle, uint32_t delayUsec)
 Set auxiliary packet offset delay. More...
 
uint8_t LlSetExtAdvDataFragLen (uint8_t handle, uint8_t fragLen)
 Set extended advertising data fragmentation length. More...
 
uint8_t LlSetExtAdvTxPhyOptions (uint8_t handle, uint8_t priPhyOpts, uint8_t secPhyOpts)
 Set extended advertising transmit PHY options. More...
 
void LlReadSupTxPower (int8_t *pMinTxPwr, int8_t *pMaxTxPwr)
 Read supported transmit power. More...
 
void LlReadRfPathComp (int16_t *pTxPathComp, int16_t *pRxPathComp)
 Read RF path compensation. More...
 
uint8_t LlWriteRfPathComp (int16_t txPathComp, int16_t rxPathComp)
 Write RF path compensation. More...
 
void LlScanReportEnable (uint8_t enable)
 Scan report enable. More...
 
uint8_t LlSetSetScanChanMap (uint8_t chanMap)
 Set scan channel map. More...
 
uint8_t LlSetScanParam (const LlScanParam_t *pParam)
 Set scan parameters. More...
 
void LlScanEnable (uint8_t enable, uint8_t filterDup)
 Scan enable. More...
 
uint8_t LlSetExtScanParam (uint8_t ownAddrType, uint8_t scanFiltPolicy, uint8_t scanPhys, const LlExtScanParam_t param[])
 Set extended scanning parameters. More...
 
void LlExtScanEnable (uint8_t enable, uint8_t filterDup, uint16_t duration, uint16_t period)
 Extended scan enable. More...
 
uint8_t LlPeriodicAdvCreateSync (const LlPerAdvCreateSyncCmd_t *pParam)
 Create synchronization of periodic advertising. More...
 
uint8_t LlPeriodicAdvCreateSyncCancel (void)
 Cancel pending synchronization of periodic advertising. More...
 
uint8_t LlPeriodicAdvTerminateSync (uint16_t syncHandle)
 Stop synchronization of periodic advertising. More...
 
uint8_t LlAddDeviceToPeriodicAdvList (const LlDevicePerAdvList_t *pParam)
 Add device to periodic advertiser list. More...
 
uint8_t LlRemoveDeviceFromPeriodicAdvList (const LlDevicePerAdvList_t *pParam)
 Remove device from periodic advertiser list command. More...
 
uint8_t LlClearPeriodicAdvList (void)
 Clear all devices in periodic advertiser list command. More...
 
uint8_t LlReadPeriodicAdvListSize (uint8_t *pListSize)
 Read total number of devices in periodic advertiser list command. More...
 
uint8_t LlSetPeriodicAdvRcvEnable (uint16_t syncHandle, uint8_t enable)
 Enable or disable reports for the periodic advertising sync. More...
 
void LlPastInit (void)
 Initialize LL subsystem for PAST(Periodic advertising sync transfer). More...
 
uint8_t LlPeriodicAdvSyncTransfer (uint16_t connHandle, uint16_t serviceData, uint16_t syncHandle)
 Send sync info about periodic advertising to a connected device. More...
 
uint8_t LlPeriodicAdvSetInfoTransfer (uint16_t connHandle, uint16_t serviceData, uint8_t advHandle)
 Send sync info about periodic adv in an advertising set to a connected device. More...
 
uint8_t LlSetPeriodicAdvSyncTransParams (uint16_t connHandle, uint8_t mode, uint16_t skip, uint16_t syncTimeout, uint8_t cteType)
 Set periodic advertising sync transfer parameters. More...
 
uint8_t LlSetDefaultPeriodicAdvSyncTransParams (uint8_t mode, uint16_t skip, uint16_t syncTimeout, uint8_t cteType)
 Set default periodic advertising sync transfer parameters. More...
 
uint8_t LlDisconnect (uint16_t handle, uint8_t reason)
 Disconnect a connection. More...
 
uint8_t LlSetConnOpFlags (uint16_t handle, uint32_t flags, bool_t enable)
 Set connection's operational mode flags. More...
 
uint8_t LlReadRemoteFeat (uint16_t handle)
 Read remote features. More...
 
uint8_t LlReadRemoteVerInfo (uint16_t handle)
 Read remote version information. More...
 
uint8_t LlGetRssi (uint16_t handle, int8_t *pRssi)
 Get RSSI of a connection. More...
 
uint8_t LlGetTxPowerLevel (uint16_t handle, uint8_t type, int8_t *pLevel)
 Get connection's TX power level. More...
 
uint8_t LlGetEnhTxPowerLevel (uint16_t handle, uint8_t phy, int8_t *pCurPwr, int8_t *pMaxPwr)
 Get connection's enhanced TX power level and max txPower. More...
 
uint8_t LlSetAllPhyTxPowerLevel (uint16_t handle, int8_t level)
 Set connection's TX power level (all PHYs). More...
 
uint8_t LlSetPhyTxPowerLevel (uint16_t handle, int8_t level, uint8_t phy)
 Set connection's TX power level for a PHY. More...
 
uint8_t LlConnUpdate (uint16_t handle, const LlConnSpec_t *pConnSpec)
 Update connection parameters. More...
 
uint8_t LlRemoteConnParamReqReply (uint16_t handle, const LlConnSpec_t *pConnSpec)
 Remote connection parameter request reply. More...
 
uint8_t LlRemoteConnParamReqNegReply (uint16_t handle, uint8_t reason)
 Remote connection parameter request negative reply. More...
 
uint8_t LlSetChannelMap (uint16_t handle, const uint8_t *pChanMap)
 Set connection's channel map. More...
 
uint8_t LlGetChannelMap (uint16_t handle, uint8_t *pChanMap)
 Get connection's channel map. More...
 
uint8_t LlSetDataLen (uint16_t handle, uint16_t txLen, uint16_t txTime)
 Set data length. More...
 
void LlReadDefaultDataLen (uint16_t *pMaxTxLen, uint16_t *pMaxTxTime)
 Read default data length. More...
 
uint8_t LlWriteDefaultDataLen (uint16_t maxTxLen, uint16_t maxTxTime)
 Write default data length. More...
 
void LlReadMaximumDataLen (uint16_t *pMaxTxLen, uint16_t *pMaxTxTime, uint16_t *pMaxRxLen, uint16_t *pMaxRxTime)
 Read maximum data length. More...
 
uint8_t LlReadPhy (uint16_t handle, uint8_t *pTxPhy, uint8_t *pRxPhy)
 Read current transmitter PHY and receive PHY. More...
 
uint8_t LlSetDefaultPhy (uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys)
 Set default PHYs. More...
 
bool_t llValidatePhySupport (uint8_t txPhys, uint8_t rxPhys)
 Validate if specified PHYs are supported by LL. More...
 
uint8_t LlSetPhy (uint16_t handle, uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys, uint16_t phyOptions)
 Set PHY for a connection. More...
 
uint8_t LlSetLocalMinUsedChan (uint8_t phys, int8_t pwrThres, uint8_t minUsedCh)
 Set local minimum number of used channels. More...
 
uint8_t LlGetPeerMinUsedChan (uint16_t handle, uint8_t *pPeerMinUsedChan)
 Get peer minimum number of used channels. More...
 
uint8_t LlRequestPeerSca (uint16_t handle)
 Used to read the sleep clock accuracy of the peer device. More...
 
uint8_t LlCreateConn (const LlInitParam_t *pInitParam, const LlConnSpec_t *pConnSpec)
 Create connection. More...
 
uint8_t LlExtCreateConn (const LlExtInitParam_t *pInitParam, const LlExtInitScanParam_t scanParam[], const LlConnSpec_t connSpec[])
 Extended create connection. More...
 
void LlCreateConnCancel (void)
 Cancel a create connection operation. More...
 
uint8_t LlEncrypt (uint8_t *pKey, uint8_t *pData)
 Encrypt data. More...
 
uint8_t LlStartEncryption (uint16_t handle, const uint8_t *pRand, uint16_t diversifier, const uint8_t *pKey)
 Start encryption. More...
 
uint8_t LlLtkReqReply (uint16_t handle, const uint8_t *pKey)
 Reply to a LTK request. More...
 
uint8_t LlLtkReqNegReply (uint16_t handle)
 Negative reply to a LTK request. More...
 
uint8_t LlReadAuthPayloadTimeout (uint16_t handle, uint16_t *pTimeout)
 Read authenticated payload timeout value. More...
 
uint8_t LlWriteAuthPayloadTimeout (uint16_t handle, uint16_t timeout)
 Write authenticated payload timeout value. More...
 
uint8_t LlGetEncMode (uint16_t handle, LlEncMode_t *pMode)
 Get encryption mode used in a connection. More...
 
uint8_t LlSetEncMode (uint16_t handle, const LlEncMode_t *pMode)
 Set encryption mode used in a connection. More...
 
uint16_t LlGetAclMaxSize (void)
 Get the maximum ACL buffers size. More...
 
uint8_t LlGetAclTxBufs (void)
 Get the number of buffers in the LL ACL transmit queue. More...
 
uint8_t LlGetAclRxBufs (void)
 Get the number of buffers in the LL ACL receive queue. More...
 
uint16_t LlGetIsoMaxBufSize (void)
 Get the maximum ISO buffers size between host and controller. More...
 
uint8_t LlGetIsoTxBufs (void)
 Get the number of buffers in the LL ISO transmit queue. More...
 
uint8_t LlGetIsoRxBufs (void)
 Get the number of buffers in the LL ISO receive queue. More...
 
uint8_t LlReadIsoLinkQual (uint16_t handle, LlIsoLinkQual_t *pStats)
 Read ISO link Quality stats. More...
 
void LlSendAclData (uint8_t *pData)
 Send an ACL data packet. More...
 
uint8_t * LlRecvAclData (void)
 Receive an ACL data packet. More...
 
void LlRecvAclDataComplete (uint8_t numBufs)
 Indicate that received ACL data buffer has been deallocated. More...
 
uint8_t LlTxTest (uint8_t rfChan, uint8_t len, uint8_t pktType, uint16_t numPkt)
 Enter transmit test mode. More...
 
uint8_t LlRxTest (uint8_t rfChan, uint16_t numPkt)
 Enter receive test mode. More...
 
uint8_t LlEnhancedTxTest (uint8_t rfChan, uint8_t len, uint8_t pktType, uint8_t phy, uint16_t numPkt)
 Enter enhanced transmit test mode. More...
 
uint8_t LlEnhancedRxTest (uint8_t rfChan, uint8_t phy, uint8_t modIdx, uint16_t numPkt)
 Enter enhanced receive test mode. More...
 
uint8_t LlEndTest (LlTestReport_t *pRpt)
 End test mode. More...
 
uint8_t LlSetTxTestErrorPattern (uint32_t pattern)
 Set pattern of errors for Tx test mode. More...
 
uint8_t LlModifySleepClockAccuracy (uint8_t action)
 Modify the sleep clock accuracy. More...
 
uint8_t LlIsoTxTest (uint16_t handle, uint8_t pldType)
 Enable ISO Tx test. More...
 
uint8_t LlIsoRxTest (uint16_t handle, uint8_t pldType)
 Enable ISO Rx test. More...
 
uint8_t LlIsoReadTestCounter (uint16_t handle, LlIsoTestCtrs_t *pCtr)
 ISO read test counters. More...
 
uint8_t LlIsoTestEnd (uint16_t handle, LlIsoTestCtrs_t *pCtr)
 Terminate ISO Tx or Rx test. More...
 
uint8_t LlSetTxPowerReporting (uint16_t handle, uint8_t enableLocal, uint8_t enableRemote)
 Set transmit power change reporting enable. More...
 
uint8_t LlSetPowerMonitorEnable (uint16_t handle, bool_t enable)
 Set enable state for power monitoring. More...
 
uint8_t LlSetPathLossReportingParams (uint16_t handle, uint8_t highThresh, uint8_t highHyst, uint8_t lowThresh, uint8_t lowHyst, uint16_t minTime)
 Set path loss monitoring parameters. More...
 
uint8_t LlSetPathLossReportingEnable (uint16_t handle, uint8_t enable)
 Set path loss enable. More...
 
uint8_t LlPowerCtrlReq (uint16_t handle, int8_t delta, uint8_t phy)
 Request change to or read peer txPower. More...
 
void LlIsoEventCompleteEnable (uint8_t enable)
 ISO event complete enable. More...
 
void LlGetAdvSetContextSize (uint8_t *pMaxAdvSets, uint16_t *pAdvSetCtxSize)
 Get advertising set context size. More...
 
void LlGetConnContextSize (uint8_t *pMaxConn, uint16_t *pConnCtxSize)
 Get connection context size. More...
 
void LlGetExtScanContextSize (uint8_t *pMaxExtScan, uint16_t *pExtScanCtxSize)
 Get extended scan context size. More...
 
void LlGetExtInitContextSize (uint8_t *pMaxExtInit, uint16_t *pExtInitCtxSize)
 Get extended initiator context size. More...
 
void LlGetPerScanContextSize (uint8_t *pMaxPerScan, uint16_t *pPerScanCtxSize)
 Get periodic scan context size. More...
 
void LlGetCigContextSize (uint8_t *pMaxCig, uint16_t *pCigCtxSize)
 Get CIG context size. More...
 
void LlGetCisContextSize (uint8_t *pMaxCis, uint16_t *pCisCtxSize)
 Get CIS context size. More...
 
uint16_t LlStatsGetHandlerWatermarkUsec (void)
 Get the LL handler watermark level. More...
 
uint8_t LlSetCigParams (LlCisCigParams_t *pCigParam, uint16_t *pCisHandles)
 Used by a master host to set the parameters of all connected isochronous streams associated with a connected isochronous group in the controller. More...
 
uint8_t LlSetCigParamsTest (LlCisCigParamsTest_t *pSetCigParamTest, uint16_t *pCisHandles)
 Used by a master Host to set the parameters of all connected isochronous streams associated with a connected isochronous group in the controller for testing purpose. More...
 
uint8_t LlCreateCis (uint8_t numCis, LlCisCreateCisParams_t *pCreateCisParam)
 Used by the master host to establish one or more connected isochronous streams. More...
 
uint8_t LlRemoveCig (uint8_t cigId)
 Removes all the connected isochronous streams which have previously been set up. More...
 
uint8_t LlAcceptCisReq (uint16_t cisHandle)
 Used by the slave host to inform the controller to accept the request for the connected isochronous stream. More...
 
uint8_t LlRejectCisReq (uint16_t cisHandle, uint8_t reason)
 Used by the slave host to inform the controller to reject the request for the connected isochronous stream. More...
 
uint8_t LlCreateBig (LlCreateBig_t *pCreateBig)
 Used by a broadcaster host to command is used to create one or more BISes of a BIG in the controller. More...
 
uint8_t LlCreateBigTest (LlCreateBigTest_t *pCreateBigTest)
 Used by a broadcaster host to command is used to create one or more BISes of a BIG in the ISO test mode. More...
 
uint8_t LlTerminateBig (uint8_t bigHandle, uint8_t reason)
 Used to terminate the transmission of all BISes of a BIG, or to cancel the process of creating a BIG using the HCI_LE_Create_BIG command from the Isochronous Broadcaster. More...
 
uint8_t LlBigCreateSync (LlBigCreateSync_t *pCreateSync)
 Used to synchronize and receive PDUs from one or more BISes within a BIG. More...
 
void LlBigTerminateSync (uint8_t bigHandle)
 Used to stop synchronization with the BIG or to cancel the process of synchronizing to BISes invoked by the HCI_LE_BIG_Create_Sync command. More...
 
uint8_t LlReadIsoTxSync (uint16_t handle, uint16_t *pPktSn, uint32_t *pTs, uint32_t *pTimeOffs)
 Read the Time_Stamp and Time_Offset of a transmitted ISO_SDU identified by the Packet_Sequence_Number on a CIS or BIS identified by the Connection_Handle. More...
 
uint8_t LlSetupIsoDataPath (LlIsoSetupDataPath_t *pSetupDataPath)
 Used to identify and enable the isochronous data path between the host and the controller for each connected isochronous or broadcast isochronous stream. More...
 
uint8_t LlRemoveIsoDataPath (uint16_t handle, uint8_t dpDir)
 Used to remove the isochronous data path associated with the connected isochronous or broadcast isochronous stream. More...
 
void LlCisSlaveInit (void)
 Initialize LL subsystem for operation for slave connected isochronous stream. More...
 
void LlCisMasterInit (void)
 Initialize LL subsystem for operation for master connected isochronous stream. More...
 
uint16_t LlInitCisMem (uint8_t *pFreeMem, uint32_t freeMemSize)
 Initialize memory for CIS. More...
 
void LlBisSlaveInit (void)
 Initialize LL subsystem for operation for slave broadcast isochronous stream. More...
 
void LlBisMasterInit (void)
 Initialize LL subsystem for operation for master broadcast isochronous stream. More...
 
uint16_t LlInitBisMem (uint8_t *pFreeMem, uint32_t freeMemSize)
 Initialize memory for BIS. More...
 
uint16_t LlInitIsoMem (uint8_t *pFreeMem, uint32_t freeMemSize)
 Initialize memory for ISO. More...
 
void LlInitCodec (void)
 Initialize LL for use with an audio codec. More...
 
void LlSendIsoData (uint8_t *pData)
 Send an ISO data packet. More...
 
uint8_t * LlRecvIsoData (void)
 Receive an ISO data packet. More...
 
void LlRecvIsoDataComplete (uint8_t numBufs)
 Indicate that received ISO data buffer has been deallocated. More...
 

Detailed Description

Link layer interface file.

Copyright (c) 2013-2019 Arm Ltd. All Rights Reserved.

Copyright (c) 2019-2020 Packetcraft, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file ll_api.h.

Macro Definition Documentation

#define LL_VER_NUM   1366

Version number.

Definition at line 39 of file ll_api.h.

Enumeration Type Documentation

enum LlStatus_t

The following status values are used in the LL API.

Definition at line 46 of file ll_api.h.

Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.