Merge branch 'feat/features_and_fixes_for_pts_qualification' into 'master'

feat(nimble): Features and Fixes for PTS Qualification

Closes BLERP-427, BLERP-429, and BLERP-430

See merge request espressif/esp-idf!28608
pull/13114/head
Rahul Tank 2024-01-29 13:37:45 +08:00
commit c8220ad5af
6 zmienionych plików z 87 dodań i 2 usunięć

Wyświetl plik

@ -201,6 +201,17 @@ config BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION
help
Enable encryption connection
config BT_NIMBLE_SM_SC_LVL
int "Security level"
depends on BT_NIMBLE_SECURITY_ENABLE
default 0
help
LE Security Mode 1 Levels:
1. No Security
2. Unauthenticated pairing with encryption
3. Authenticated pairing with encryption
4. Authenticated LE Secure Connections pairing with encryption using a 128-bit strength encryption key.
config BT_NIMBLE_DEBUG
bool "Enable extra runtime asserts and host debugging"
default n

@ -1 +1 @@
Subproject commit 0eed0eb2f41d79209f7a36f58b90530e133bc605
Subproject commit 0273e0e83a05559809c317e41fa4fd88a244620e

Wyświetl plik

@ -844,7 +844,7 @@
#ifndef MYNEWT_VAL_BLE_SM_SC_LVL
#define MYNEWT_VAL_BLE_SM_SC_LVL (0)
#define MYNEWT_VAL_BLE_SM_SC_LVL CONFIG_BT_NIMBLE_SM_SC_LVL
#endif
#ifndef MYNEWT_VAL_BLE_SM_SC_ONLY

Wyświetl plik

@ -92,6 +92,10 @@ extern "C" {
#define NIMBLE_BLE_ATT_CLT_WRITE \
(MYNEWT_VAL(BLE_GATT_WRITE))
#undef NIMBLE_BLE_ATT_CLT_SIGNED_WRITE
#define NIMBLE_BLE_ATT_CLT_SIGNED_WRITE \
(MYNEWT_VAL(BLE_GATT_SIGNED_WRITE))
#undef NIMBLE_BLE_ATT_CLT_WRITE_NO_RSP
#define NIMBLE_BLE_ATT_CLT_WRITE_NO_RSP \
(MYNEWT_VAL(BLE_GATT_WRITE_NO_RSP))

Wyświetl plik

@ -393,6 +393,16 @@ bleprph_gap_event(struct ble_gap_event *event, void *arg)
}
return 0;
case BLE_GAP_EVENT_AUTHORIZE:
MODLOG_DFLT(INFO, "authorize event: conn_handle=%d attr_handle=%d is_read=%d",
event->authorize.conn_handle,
event->authorize.attr_handle,
event->authorize.is_read);
/* The default behaviour for the event is to reject authorize request */
event->authorize.out_response = BLE_GAP_AUTHORIZE_REJECT;
return 0;
#if MYNEWT_VAL(BLE_POWER_CONTROL)
case BLE_GAP_EVENT_TRANSMIT_POWER:
MODLOG_DFLT(INFO, "Transmit power event : status=%d conn_handle=%d reason=%d "

Wyświetl plik

@ -169,6 +169,43 @@ print_adv_fields(const struct ble_hs_adv_fields *fields)
MODLOG_DFLT(DEBUG, "\n");
}
if (fields->sm_tk_value_is_present) {
MODLOG_DFLT(DEBUG, " sm_tk_value=");
print_bytes(fields->sm_tk_value, 16);
MODLOG_DFLT(DEBUG, "\n");
}
if (fields->sm_oob_flag_is_present) {
MODLOG_DFLT(DEBUG, " sm_oob_flag=%d\n", fields->sm_oob_flag);
}
if (fields->sol_uuids16 != NULL) {
MODLOG_DFLT(DEBUG, " sol_uuids16=");
for (i = 0; i < fields->sol_num_uuids16; i++) {
print_uuid(&fields->sol_uuids16[i].u);
MODLOG_DFLT(DEBUG, " ");
}
MODLOG_DFLT(DEBUG, "\n");
}
if (fields->sol_uuids32 != NULL) {
MODLOG_DFLT(DEBUG, " sol_uuids32=");
for (i = 0; i < fields->sol_num_uuids32; i++) {
print_uuid(&fields->sol_uuids32[i].u);
MODLOG_DFLT(DEBUG, "\n");
}
MODLOG_DFLT(DEBUG, "\n");
}
if (fields->sol_uuids128 != NULL) {
MODLOG_DFLT(DEBUG, " sol_uuids128=");
for (i = 0; i < fields->sol_num_uuids128; i++) {
print_uuid(&fields->sol_uuids128[i].u);
MODLOG_DFLT(DEBUG, " ");
}
MODLOG_DFLT(DEBUG, "\n");
}
if (fields->svc_data_uuid16 != NULL) {
MODLOG_DFLT(DEBUG, " svc_data_uuid16=");
print_bytes(fields->svc_data_uuid16, fields->svc_data_uuid16_len);
@ -185,6 +222,16 @@ print_adv_fields(const struct ble_hs_adv_fields *fields)
MODLOG_DFLT(DEBUG, "\n");
}
if (fields->random_tgt_addr != NULL) {
MODLOG_DFLT(DEBUG, " random_tgt_addr=");
u8p = fields->random_tgt_addr;
for (i = 0; i < fields->num_random_tgt_addrs; i++) {
MODLOG_DFLT(DEBUG, "random_tgt_addr=%s ", addr_str(u8p));
u8p += BLE_HS_ADV_PUBLIC_TGT_ADDR_ENTRY_LEN;
}
MODLOG_DFLT(DEBUG, "\n");
}
if (fields->appearance_is_present) {
MODLOG_DFLT(DEBUG, " appearance=0x%04x\n", fields->appearance);
}
@ -193,6 +240,19 @@ print_adv_fields(const struct ble_hs_adv_fields *fields)
MODLOG_DFLT(DEBUG, " adv_itvl=0x%04x\n", fields->adv_itvl);
}
if (fields->device_addr_is_present) {
MODLOG_DFLT(DEBUG, " device_addr=");
u8p = fields->device_addr;
MODLOG_DFLT(DEBUG, "%s ", addr_str(u8p));
u8p += BLE_HS_ADV_PUBLIC_TGT_ADDR_ENTRY_LEN;
MODLOG_DFLT(DEBUG, "addr_type %d ", *u8p);
}
if (fields->le_role_is_present) {
MODLOG_DFLT(DEBUG, " le_role=%d\n", fields->le_role);
}
if (fields->svc_data_uuid32 != NULL) {
MODLOG_DFLT(DEBUG, " svc_data_uuid32=");
print_bytes(fields->svc_data_uuid32, fields->svc_data_uuid32_len);