Repository: incubator-mynewt-core Updated Branches: refs/heads/bluetooth5 aa7a27459 -> 646b35dfa
nimble: Add defines for all Bluetooth 5.0 HCI commands and events Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/0c627e2b Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/0c627e2b Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/0c627e2b Branch: refs/heads/bluetooth5 Commit: 0c627e2bc01ec1d9d32cc706c2cbd61e600147d3 Parents: aa7a274 Author: Åukasz Rymanowski <[email protected]> Authored: Tue Apr 4 10:39:58 2017 +0200 Committer: Åukasz Rymanowski <[email protected]> Committed: Wed Apr 5 16:00:06 2017 +0200 ---------------------------------------------------------------------- net/nimble/controller/src/ble_ll_hci.c | 2 +- net/nimble/include/nimble/hci_common.h | 228 +++++++++++++++++++++------- net/nimble/src/hci_common.c | 35 ++++- 3 files changed, 204 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/0c627e2b/net/nimble/controller/src/ble_ll_hci.c ---------------------------------------------------------------------- diff --git a/net/nimble/controller/src/ble_ll_hci.c b/net/nimble/controller/src/ble_ll_hci.c index 83d99a7..844060a 100644 --- a/net/nimble/controller/src/ble_ll_hci.c +++ b/net/nimble/controller/src/ble_ll_hci.c @@ -619,7 +619,7 @@ ble_ll_hci_le_cmd_proc(uint8_t *cmdbuf, uint16_t ocf, uint8_t *rsplen) /* Check the length to make sure it is valid */ cmdlen = g_ble_hci_le_cmd_len[ocf]; - if (len != cmdlen) { + if (len != cmdlen && cmdlen != BLE_HCI_VARIABLE_LEN) { goto ll_hci_le_cmd_exit; } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/0c627e2b/net/nimble/include/nimble/hci_common.h ---------------------------------------------------------------------- diff --git a/net/nimble/include/nimble/hci_common.h b/net/nimble/include/nimble/hci_common.h index 6e80d49..d565a74 100644 --- a/net/nimble/include/nimble/hci_common.h +++ b/net/nimble/include/nimble/hci_common.h @@ -57,7 +57,7 @@ extern "C" { * Number of LE commands. NOTE: this is really just used to size the array * containing the lengths of the LE commands. */ -#define BLE_HCI_NUM_LE_CMDS (48) +#define BLE_HCI_NUM_LE_CMDS (79) /* List of OCF for Link Control commands (OGF=0x01) */ #define BLE_HCI_OCF_DISCONNECT_CMD (0x0006) @@ -81,55 +81,89 @@ extern "C" { #define BLE_HCI_OCF_RD_RSSI (0x0005) /* List of OCF for LE commands (OGF = 0x08) */ -#define BLE_HCI_OCF_LE_SET_EVENT_MASK (0x0001) -#define BLE_HCI_OCF_LE_RD_BUF_SIZE (0x0002) -#define BLE_HCI_OCF_LE_RD_LOC_SUPP_FEAT (0x0003) +#define BLE_HCI_OCF_LE_SET_EVENT_MASK (0x0001) +#define BLE_HCI_OCF_LE_RD_BUF_SIZE (0x0002) +#define BLE_HCI_OCF_LE_RD_LOC_SUPP_FEAT (0x0003) /* NOTE: 0x0004 is intentionally left undefined */ -#define BLE_HCI_OCF_LE_SET_RAND_ADDR (0x0005) -#define BLE_HCI_OCF_LE_SET_ADV_PARAMS (0x0006) -#define BLE_HCI_OCF_LE_RD_ADV_CHAN_TXPWR (0x0007) -#define BLE_HCI_OCF_LE_SET_ADV_DATA (0x0008) -#define BLE_HCI_OCF_LE_SET_SCAN_RSP_DATA (0x0009) -#define BLE_HCI_OCF_LE_SET_ADV_ENABLE (0x000A) -#define BLE_HCI_OCF_LE_SET_SCAN_PARAMS (0x000B) -#define BLE_HCI_OCF_LE_SET_SCAN_ENABLE (0x000C) -#define BLE_HCI_OCF_LE_CREATE_CONN (0x000D) -#define BLE_HCI_OCF_LE_CREATE_CONN_CANCEL (0x000E) -#define BLE_HCI_OCF_LE_RD_WHITE_LIST_SIZE (0x000F) -#define BLE_HCI_OCF_LE_CLEAR_WHITE_LIST (0x0010) -#define BLE_HCI_OCF_LE_ADD_WHITE_LIST (0x0011) -#define BLE_HCI_OCF_LE_RMV_WHITE_LIST (0x0012) -#define BLE_HCI_OCF_LE_CONN_UPDATE (0x0013) -#define BLE_HCI_OCF_LE_SET_HOST_CHAN_CLASS (0x0014) -#define BLE_HCI_OCF_LE_RD_CHAN_MAP (0x0015) -#define BLE_HCI_OCF_LE_RD_REM_FEAT (0x0016) -#define BLE_HCI_OCF_LE_ENCRYPT (0x0017) -#define BLE_HCI_OCF_LE_RAND (0x0018) -#define BLE_HCI_OCF_LE_START_ENCRYPT (0x0019) -#define BLE_HCI_OCF_LE_LT_KEY_REQ_REPLY (0x001A) -#define BLE_HCI_OCF_LE_LT_KEY_REQ_NEG_REPLY (0x001B) -#define BLE_HCI_OCF_LE_RD_SUPP_STATES (0x001C) -#define BLE_HCI_OCF_LE_RX_TEST (0x001D) -#define BLE_HCI_OCF_LE_TX_TEST (0x001E) -#define BLE_HCI_OCF_LE_TEST_END (0x001F) -#define BLE_HCI_OCF_LE_REM_CONN_PARAM_RR (0x0020) -#define BLE_HCI_OCF_LE_REM_CONN_PARAM_NRR (0x0021) -#define BLE_HCI_OCF_LE_SET_DATA_LEN (0x0022) -#define BLE_HCI_OCF_LE_RD_SUGG_DEF_DATA_LEN (0x0023) -#define BLE_HCI_OCF_LE_WR_SUGG_DEF_DATA_LEN (0x0024) -#define BLE_HCI_OCF_LE_RD_P256_PUBKEY (0x0025) -#define BLE_HCI_OCF_LE_GEN_DHKEY (0x0026) -#define BLE_HCI_OCF_LE_ADD_RESOLV_LIST (0x0027) -#define BLE_HCI_OCF_LE_RMV_RESOLV_LIST (0x0028) -#define BLE_HCI_OCF_LE_CLR_RESOLV_LIST (0x0029) -#define BLE_HCI_OCF_LE_RD_RESOLV_LIST_SIZE (0x002A) -#define BLE_HCI_OCF_LE_RD_PEER_RESOLV_ADDR (0x002B) -#define BLE_HCI_OCF_LE_RD_LOCAL_RESOLV_ADDR (0x002C) -#define BLE_HCI_OCF_LE_SET_ADDR_RES_EN (0x002D) -#define BLE_HCI_OCF_LE_SET_RPA_TMO (0x002E) -#define BLE_HCI_OCF_LE_RD_MAX_DATA_LEN (0x002F) +#define BLE_HCI_OCF_LE_SET_RAND_ADDR (0x0005) +#define BLE_HCI_OCF_LE_SET_ADV_PARAMS (0x0006) +#define BLE_HCI_OCF_LE_RD_ADV_CHAN_TXPWR (0x0007) +#define BLE_HCI_OCF_LE_SET_ADV_DATA (0x0008) +#define BLE_HCI_OCF_LE_SET_SCAN_RSP_DATA (0x0009) +#define BLE_HCI_OCF_LE_SET_ADV_ENABLE (0x000A) +#define BLE_HCI_OCF_LE_SET_SCAN_PARAMS (0x000B) +#define BLE_HCI_OCF_LE_SET_SCAN_ENABLE (0x000C) +#define BLE_HCI_OCF_LE_CREATE_CONN (0x000D) +#define BLE_HCI_OCF_LE_CREATE_CONN_CANCEL (0x000E) +#define BLE_HCI_OCF_LE_RD_WHITE_LIST_SIZE (0x000F) +#define BLE_HCI_OCF_LE_CLEAR_WHITE_LIST (0x0010) +#define BLE_HCI_OCF_LE_ADD_WHITE_LIST (0x0011) +#define BLE_HCI_OCF_LE_RMV_WHITE_LIST (0x0012) +#define BLE_HCI_OCF_LE_CONN_UPDATE (0x0013) +#define BLE_HCI_OCF_LE_SET_HOST_CHAN_CLASS (0x0014) +#define BLE_HCI_OCF_LE_RD_CHAN_MAP (0x0015) +#define BLE_HCI_OCF_LE_RD_REM_FEAT (0x0016) +#define BLE_HCI_OCF_LE_ENCRYPT (0x0017) +#define BLE_HCI_OCF_LE_RAND (0x0018) +#define BLE_HCI_OCF_LE_START_ENCRYPT (0x0019) +#define BLE_HCI_OCF_LE_LT_KEY_REQ_REPLY (0x001A) +#define BLE_HCI_OCF_LE_LT_KEY_REQ_NEG_REPLY (0x001B) +#define BLE_HCI_OCF_LE_RD_SUPP_STATES (0x001C) +#define BLE_HCI_OCF_LE_RX_TEST (0x001D) +#define BLE_HCI_OCF_LE_TX_TEST (0x001E) +#define BLE_HCI_OCF_LE_TEST_END (0x001F) +#define BLE_HCI_OCF_LE_REM_CONN_PARAM_RR (0x0020) +#define BLE_HCI_OCF_LE_REM_CONN_PARAM_NRR (0x0021) +#define BLE_HCI_OCF_LE_SET_DATA_LEN (0x0022) +#define BLE_HCI_OCF_LE_RD_SUGG_DEF_DATA_LEN (0x0023) +#define BLE_HCI_OCF_LE_WR_SUGG_DEF_DATA_LEN (0x0024) +#define BLE_HCI_OCF_LE_RD_P256_PUBKEY (0x0025) +#define BLE_HCI_OCF_LE_GEN_DHKEY (0x0026) +#define BLE_HCI_OCF_LE_ADD_RESOLV_LIST (0x0027) +#define BLE_HCI_OCF_LE_RMV_RESOLV_LIST (0x0028) +#define BLE_HCI_OCF_LE_CLR_RESOLV_LIST (0x0029) +#define BLE_HCI_OCF_LE_RD_RESOLV_LIST_SIZE (0x002A) +#define BLE_HCI_OCF_LE_RD_PEER_RESOLV_ADDR (0x002B) +#define BLE_HCI_OCF_LE_RD_LOCAL_RESOLV_ADDR (0x002C) +#define BLE_HCI_OCF_LE_SET_ADDR_RES_EN (0x002D) +#define BLE_HCI_OCF_LE_SET_RPA_TMO (0x002E) +#define BLE_HCI_OCF_LE_RD_MAX_DATA_LEN (0x002F) +#define BLE_HCI_OCF_LE_RD_PHY (0x0030) +#define BLE_HCI_OCF_LE_SET_DEFAULT_PHY (0x0031) +#define BLE_HCI_OCF_LE_SET_PHY (0x0032) +#define BLE_HCI_OCF_LE_ENH_RCVR_TEST (0x0033) +#define BLE_HCI_OCF_LE_ENH_TRANS_TEST (0x0034) +#define BLE_HCI_OCF_LE_SET_ADV_SET_RND_ADDR (0x0035) +#define BLE_HCI_OCF_LE_SET_EXT_ADV_PARAM (0x0036) +#define BLE_HCI_OCF_LE_SET_EXT_ADV_DATA (0x0037) +#define BLE_HCI_OCF_LE_SET_EXT_SCAN_RSP_DATA (0x0038) +#define BLE_HCI_OCF_LE_SET_EXT_ADV_ENABLE (0x0039) +#define BLE_HCI_OCF_LE_RD_MAX_ADV_DATA_LEN (0x003A) +#define BLE_HCI_OCF_LE_RD_NUM_OF_ADV_SETS (0x003B) +#define BLE_HCI_OCF_LE_REMOVE_ADV_SET (0x003C) +#define BLE_HCI_OCF_LE_CLEAR_ADV_SETS (0x003D) +#define BLE_HCI_OCF_LE_SET_PER_ADV_PARAMS (0x003E) +#define BLE_HCI_OCF_LE_SET_PER_ADV_DATA (0x003F) +#define BLE_HCI_OCF_LE_SET_PER_ADV_ENABLE (0x0040) +#define BLE_HCI_OCF_LE_SET_EXT_SCAN_PARAM (0x0041) +#define BLE_HCI_OCF_LE_SET_EXT_SCAN_ENABLE (0x0042) +#define BLE_HCI_OCF_LE_EXT_CREATE_CONN (0x0043) +#define BLE_HCI_OCF_LE_PER_ADV_CREATE_SYNC (0x0044) +#define BLE_HCI_OCF_LE_PER_ADV_CREATE_SYNC_CANCEL (0x0045) +#define BLE_HCI_OCF_LE_PER_ADV_TERM_SYNC (0x0046) +#define BLE_HCI_OCF_LE_ADD_DEV_TO_PER_ADV_LIST (0x0047) +#define BLE_HCI_OCF_LE_REM_DEV_FROM_PER_ADV_LIST (0x0048) +#define BLE_HCI_OCF_LE_CLEAR_PER_ADV_LIST (0x0049) +#define BLE_HCI_OCF_LE_RD_PER_ADV_LIST_SIZE (0x004A) +#define BLE_HCI_OCF_LE_RD_TRANSMIT_POWER (0x004B) +#define BLE_HCI_OCF_LE_RD_RF_PATH_COMPENSATION (0x004C) +#define BLE_HCI_OCF_LE_WR_RF_PATH_COMPENSATION (0x004D) +#define BLE_HCI_OCF_LE_SET_PRIVACY_MODE (0x004E) /* Command Specific Definitions */ + +#define BLE_HCI_VARIABLE_LEN (0xFF) + /* --- Disconnect command (OGF 0x01, OCF 0x0006) --- */ #define BLE_HCI_DISCONNECT_CMD_LEN (3) @@ -383,6 +417,75 @@ extern "C" { /* --- LE read maximum data length (OCF 0x002F) */ #define BLE_HCI_RD_MAX_DATALEN_RSPLEN (8) +/* --- LE read maximum default PHY (OCF 0x0030) */ +#define BLE_HCI_LE_RD_PHY_LEN (2) + +/* --- LE set default PHY (OCF 0x0031) */ +#define BLE_HCI_LE_SET_DEFAULT_PHY_LEN (3) + +/* --- LE set PHY (OCF 0x0032) */ +#define BLE_HCI_LE_SET_PHY_LEN (7) + +/* --- LE enhanced receiver test (OCF 0x0033) */ +#define BLE_HCI_LE_ENH_RCVR_TEST_LEN (3) + +/* --- LE enhanced transmitter test (OCF 0x0034) */ +#define BLE_HCI_LE_ENH_TRANS_TEST_LEN (4) + +/* --- LE set advertising set random address (OCF 0x0035) */ +#define BLE_HCI_LE_SET_ADV_SET_RND_ADDR_LEN (7) + +/* --- LE set extended advertising parameters (OCF 0x0036) */ +#define BLE_HCI_LE_SET_EXT_ADV_PARAM_LEN (25) + +/* --- LE set extended advertising data (OCF 0x0037) */ +#define BLE_HCI_LE_SET_EXT_ADV_DATA_LEN BLE_HCI_VARIABLE_LEN + +/* --- LE set extended scan response data (OCF 0x0038) */ +#define BLE_HCI_LE_SET_EXT_SCAN_RSP_DATA_LEN BLE_HCI_VARIABLE_LEN + +/* --- LE set extended advertising enable (OCF 0x0039) */ +#define BLE_HCI_LE_SET_EXT_ADV_ENABLE_LEN BLE_HCI_VARIABLE_LEN + +/* --- LE remove advertising set (OCF 0x003C) */ +#define BLE_HCI_LE_REMOVE_ADV_SET_LEN (1) + +/* --- LE set periodic advertising parameters (OCF 0x003E) */ +#define BLE_HCI_LE_SET_PER_ADV_PARAMS_LEN (7) + +/* --- LE set periodic advertising data (OCF 0x003F) */ +#define BLE_HCI_LE_SET_PER_ADV_DATA_LEN BLE_HCI_VARIABLE_LEN + +/* --- LE periodic advertising enable (OCF 0x0040) */ +#define BLE_HCI_LE_SET_PER_ADV_ENABLE_LEN (2) + +/* --- LE set extended scan parameters (OCF 0x0041) */ +#define BLE_HCI_LE_SET_EXT_SCAN_PARAM_LEN BLE_HCI_VARIABLE_LEN + +/* --- LE set extended scan enable (OCF 0x0042) */ +#define BLE_HCI_LE_SET_EXT_SCAN_ENABLE_LEN (6) + +/* --- LE extended create connection (OCF 0x0043) */ +#define BLE_HCI_LE_EXT_CREATE_CONN_LEN BLE_HCI_VARIABLE_LEN + +/* --- LE periodic advertising create sync (OCF 0x0044) */ +#define BLE_HCI_LE_PER_ADV_CREATE_SYNC_LEN (14) + +/* --- LE periodic advertising terminate (OCF 0x0046) */ +#define BLE_HCI_LE_PER_ADV_TERM_SYNC_LEN (2) + +/* --- LE add device to periodic advertising list (OCF 0x0047) */ +#define BLE_HCI_LE_ADD_DEV_TO_PER_ADV_LIST_LEN (8) + +/* --- LE remove device from periodic advertising list (OCF 0x0048) */ +#define BLE_HCI_LE_REM_DEV_FROM_PER_ADV_LIST_LEN (8) + +/* --- LE write RF path (OCF 0x004D) */ +#define BLE_HCI_LE_WR_RF_PATH_COMPENSATION_LEN (4) + +/* --- LE set privacy mode (OCF 0x004E) */ +#define BLE_HCI_LE_SET_PRIVACY_MODE_LEN (8) + /* Event Codes */ #define BLE_HCI_EVCODE_INQUIRY_CMP (0x01) #define BLE_HCI_EVCODE_INQUIRY_RESULT (0x02) @@ -463,17 +566,26 @@ extern "C" { #define BLE_HCI_EVCODE_AUTH_PYLD_TMO (0x57) /* LE sub-event codes */ -#define BLE_HCI_LE_SUBEV_CONN_COMPLETE (0x01) -#define BLE_HCI_LE_SUBEV_ADV_RPT (0x02) -#define BLE_HCI_LE_SUBEV_CONN_UPD_COMPLETE (0x03) -#define BLE_HCI_LE_SUBEV_RD_REM_USED_FEAT (0x04) -#define BLE_HCI_LE_SUBEV_LT_KEY_REQ (0x05) -#define BLE_HCI_LE_SUBEV_REM_CONN_PARM_REQ (0x06) -#define BLE_HCI_LE_SUBEV_DATA_LEN_CHG (0x07) -#define BLE_HCI_LE_SUBEV_RD_LOC_P256_PUBKEY (0x08) -#define BLE_HCI_LE_SUBEV_GEN_DHKEY_COMPLETE (0x09) -#define BLE_HCI_LE_SUBEV_ENH_CONN_COMPLETE (0x0A) -#define BLE_HCI_LE_SUBEV_DIRECT_ADV_RPT (0x0B) +#define BLE_HCI_LE_SUBEV_CONN_COMPLETE (0x01) +#define BLE_HCI_LE_SUBEV_ADV_RPT (0x02) +#define BLE_HCI_LE_SUBEV_CONN_UPD_COMPLETE (0x03) +#define BLE_HCI_LE_SUBEV_RD_REM_USED_FEAT (0x04) +#define BLE_HCI_LE_SUBEV_LT_KEY_REQ (0x05) +#define BLE_HCI_LE_SUBEV_REM_CONN_PARM_REQ (0x06) +#define BLE_HCI_LE_SUBEV_DATA_LEN_CHG (0x07) +#define BLE_HCI_LE_SUBEV_RD_LOC_P256_PUBKEY (0x08) +#define BLE_HCI_LE_SUBEV_GEN_DHKEY_COMPLETE (0x09) +#define BLE_HCI_LE_SUBEV_ENH_CONN_COMPLETE (0x0A) +#define BLE_HCI_LE_SUBEV_DIRECT_ADV_RPT (0x0B) +#define BLE_HCI_LE_SUBEV_PHY_UPDATE_COMPLETE (0x0C) +#define BLE_HCI_LE_SUBEV_EXT_ADV_RPT (0x0D) +#define BLE_HCI_LE_SUBEV_PER_ADV_SYNC_ESTAB (0x0E) +#define BLE_HCI_LE_SUBEV_PER_ADV_RPT (0x0F) +#define BLE_HCI_LE_SUBEV_PER_ADV_SYNC_LOST (0x10) +#define BLE_HCI_LE_SUBEV_SCAN_TIMEOUT (0x11) +#define BLE_HCI_LE_SUBEV_ADV_SET_TERMINATED (0x12) +#define BLE_HCI_LE_SUBEV_SCAN_REQ_RCVD (0x13) +#define BLE_HCI_LE_SUBEV_CHAN_SEL_ALG (0x14) /* Generic event header */ #define BLE_HCI_EVENT_HDR_LEN (2) http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/0c627e2b/net/nimble/src/hci_common.c ---------------------------------------------------------------------- diff --git a/net/nimble/src/hci_common.c b/net/nimble/src/hci_common.c index 527efd9..a092714 100644 --- a/net/nimble/src/hci_common.c +++ b/net/nimble/src/hci_common.c @@ -73,6 +73,37 @@ const uint8_t g_ble_hci_le_cmd_len[BLE_HCI_NUM_LE_CMDS] = BLE_HCI_RD_PEER_RESOLV_ADDR_LEN, /* 0x002B: read peer resolvable addr */ BLE_HCI_RD_LOC_RESOLV_ADDR_LEN, /* 0x002C: read local resolvable addr */ sizeof(uint8_t), /* 0x002D: set addr resolution enable */ - sizeof(uint16_t), /* 0x002E: Set resolv priv addr tmo */ - 0, /* 0x002F: Read max data length */ + sizeof(uint16_t), /* 0x002E: set resolv priv addr tmo */ + 0, /* 0x002F: read max data length */ + BLE_HCI_LE_RD_PHY_LEN, /* 0x0030: read maximum default PHY */ + BLE_HCI_LE_SET_DEFAULT_PHY_LEN, /* 0x0031: set default PHY */ + BLE_HCI_LE_SET_PHY_LEN, /* 0x0032: set PHY */ + BLE_HCI_LE_ENH_RCVR_TEST_LEN, /* 0x0033: enhanced receiver test */ + BLE_HCI_LE_ENH_TRANS_TEST_LEN, /* 0x0034: enhanced transmitter test */ + BLE_HCI_LE_SET_ADV_SET_RND_ADDR_LEN,/* 0x0035: set adv. set random address */ + BLE_HCI_LE_SET_EXT_ADV_PARAM_LEN, /* 0x0036: set ext. adv params */ + BLE_HCI_LE_SET_EXT_ADV_DATA_LEN, /* 0x0037: set ext. adv. data */ + BLE_HCI_LE_SET_EXT_SCAN_RSP_DATA_LEN,/* 0x0038: set ext. scan resp. data */ + BLE_HCI_LE_SET_EXT_ADV_ENABLE_LEN, /* 0x0039: set ext. adv. enable */ + 0, /* 0x003A: read max adv. data len */ + 0, /* 0x003B: read number of sup. adv. sets */ + BLE_HCI_LE_REMOVE_ADV_SET_LEN, /* 0x003C: remove adv. set */ + 0, /* 0x003D: clear advertising sets */ + BLE_HCI_LE_SET_PER_ADV_PARAMS_LEN, /* 0x003E: set periodic adv. param. */ + BLE_HCI_LE_SET_PER_ADV_DATA_LEN, /* 0x003F: set periodic adv. data */ + BLE_HCI_LE_SET_PER_ADV_ENABLE_LEN, /* 0x0040: periodic adv. enable */ + BLE_HCI_LE_SET_EXT_SCAN_PARAM_LEN, /* 0x0041: set ext. scan param. */ + BLE_HCI_LE_SET_EXT_SCAN_ENABLE_LEN, /* 0x0042: set ext. scan enable */ + BLE_HCI_LE_EXT_CREATE_CONN_LEN, /* 0x0043: ext. create connection */ + BLE_HCI_LE_PER_ADV_CREATE_SYNC_LEN, /* 0x0044: periodic adv. create sync */ + 0, /* 0x0045: periodic adv. create sync cancel */ + 0, /* 0x0046: periodic adv. terminate sync */ + BLE_HCI_LE_ADD_DEV_TO_PER_ADV_LIST_LEN, /* 0x0047: add dev to per. adv. list */ + BLE_HCI_LE_REM_DEV_FROM_PER_ADV_LIST_LEN,/* 0x0048: remove dev from per. adv. list */ + 0, /* 0x0049: clear periodic adv. list */ + 0, /* 0x004A: read periodic list size */ + 0, /* 0x004B: read transmit power */ + 0, /* 0x004C: read RF path */ + BLE_HCI_LE_WR_RF_PATH_COMPENSATION_LEN, /* 0x004D: write RF path */ + BLE_HCI_LE_SET_PRIVACY_MODE_LEN, /* 0x004E: set privacy mode */ };
