Merge branch 'feature/LE_Conn_Subrating_v5.0' into 'release/v5.0'

Nimble: Stack support for Connection subrating feature (v5.0)

See merge request espressif/esp-idf!20814
This commit is contained in:
Jiang Jiang Jian
2022-12-06 17:21:57 +08:00
4 changed files with 60 additions and 1 deletions

View File

@@ -588,6 +588,19 @@ config BT_NIMBLE_MAX_PERIODIC_ADVERTISER_LIST
help help
Set this option to set the upper limit for number of periodic advertiser list. Set this option to set the upper limit for number of periodic advertiser list.
menuconfig BT_NIMBLE_53_FEATURE_SUPPORT
bool "Enable BLE 5.3 feature"
depends on BT_NIMBLE_ENABLED && SOC_ESP_NIMBLE_CONTROLLER
help
Enable BLE 5.3 feature
config BT_NIMBLE_SUBRATE
bool "Connection Subrate"
depends on BT_NIMBLE_53_FEATURE_SUPPORT
help
Enable support for Connection Subrate
choice BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM choice BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM
prompt "Coexistence: limit on MAX Tx/Rx time for coded-PHY connection" prompt "Coexistence: limit on MAX Tx/Rx time for coded-PHY connection"
default BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS default BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS

View File

@@ -160,6 +160,19 @@
#ifndef MYNEWT_VAL_BLE_WHITELIST #ifndef MYNEWT_VAL_BLE_WHITELIST
#define MYNEWT_VAL_BLE_WHITELIST (1) #define MYNEWT_VAL_BLE_WHITELIST (1)
#endif #endif
#ifndef CONFIG_BT_NIMBLE_53_FEATURE_SUPPORT
#define BLE_53_FEATURE_SUPPORT (0)
#else
#define BLE_53_FEATURE_SUPPORT (CONFIG_BT_NIMBLE_53_FEATURE_SUPPORT)
#endif
#ifndef CONFIG_BT_NIMBLE_SUBRATE
#define MYNEWT_VAL_BLE_CONN_SUBRATING (0)
#else
#define MYNEWT_VAL_BLE_CONN_SUBRATING (CONFIG_BT_NIMBLE_SUBRATE)
#endif
/*** @apache-mynewt-nimble/nimble/controller */ /*** @apache-mynewt-nimble/nimble/controller */
/*** @apache-mynewt-nimble/nimble/controller */ /*** @apache-mynewt-nimble/nimble/controller */
#ifndef MYNEWT_VAL_BLE_CONTROLLER #ifndef MYNEWT_VAL_BLE_CONTROLLER

View File

@@ -1068,6 +1068,25 @@ struct ble_hci_le_set_host_feat_cp {
uint8_t val; uint8_t val;
} __attribute__((packed)); } __attribute__((packed));
#define BLE_HCI_OCF_LE_SET_DEFAULT_SUBRATE (0x007D)
struct ble_hci_le_set_default_subrate_cp {
uint16_t subrate_min;
uint16_t subrate_max;
uint16_t max_latency;
uint16_t cont_num;
uint16_t supervision_tmo;
} __attribute__((packed));
#define BLE_HCI_OCF_LE_SUBRATE_REQ (0x007E)
struct ble_hci_le_subrate_req_cp {
uint16_t conn_handle;
uint16_t subrate_min;
uint16_t subrate_max;
uint16_t max_latency;
uint16_t cont_num;
uint16_t supervision_tmo;
} __attribute__((packed));
/* --- Vendor specific commands (OGF 0x00FF) */ /* --- Vendor specific commands (OGF 0x00FF) */
#define BLE_HCI_OCF_VS_RD_STATIC_ADDR (0x0001) #define BLE_HCI_OCF_VS_RD_STATIC_ADDR (0x0001)
struct ble_hci_vs_rd_static_addr_rp { struct ble_hci_vs_rd_static_addr_rp {
@@ -1797,6 +1816,18 @@ struct ble_hci_ev_le_subev_biginfo_adv_report {
uint8_t encryption; uint8_t encryption;
} __attribute__((packed)); } __attribute__((packed));
#define BLE_HCI_LE_SUBEV_SUBRATE_CHANGE (0x23)
struct ble_hci_ev_le_subev_subrate_change {
uint8_t subev_code;
uint8_t status;
uint16_t conn_handle;
uint16_t subrate_factor;
uint16_t periph_latency;
uint16_t cont_num;
uint16_t supervision_tmo;
} __attribute__((packed));
/* Data buffer overflow event */ /* Data buffer overflow event */
#define BLE_HCI_EVENT_ACL_BUF_OVERFLOW (0x01) #define BLE_HCI_EVENT_ACL_BUF_OVERFLOW (0x01)
@@ -1839,6 +1870,7 @@ struct ble_hci_ev_le_subev_biginfo_adv_report {
#define BLE_HCI_VER_BCS_5_0 (9) #define BLE_HCI_VER_BCS_5_0 (9)
#define BLE_HCI_VER_BCS_5_1 (10) #define BLE_HCI_VER_BCS_5_1 (10)
#define BLE_HCI_VER_BCS_5_2 (11) #define BLE_HCI_VER_BCS_5_2 (11)
#define BLE_HCI_VER_BCS_5_3 (12)
#define BLE_LMP_VER_BCS_1_0b (0) #define BLE_LMP_VER_BCS_1_0b (0)
#define BLE_LMP_VER_BCS_1_1 (1) #define BLE_LMP_VER_BCS_1_1 (1)
@@ -1852,6 +1884,7 @@ struct ble_hci_ev_le_subev_biginfo_adv_report {
#define BLE_LMP_VER_BCS_5_0 (9) #define BLE_LMP_VER_BCS_5_0 (9)
#define BLE_LMP_VER_BCS_5_1 (10) #define BLE_LMP_VER_BCS_5_1 (10)
#define BLE_LMP_VER_BCS_5_2 (11) #define BLE_LMP_VER_BCS_5_2 (11)
#define BLE_LMP_VER_BCS_5_3 (12)
/* selected HCI and LMP version */ /* selected HCI and LMP version */
#if MYNEWT_VAL(BLE_VERSION) == 50 #if MYNEWT_VAL(BLE_VERSION) == 50