Commit Graph
6145 Commits
Author SHA1 Message Date
Island 08a66ea273 Merge branch 'refactor/ble-log-esp-timer-rt-migration' into 'master'
refactor: BLE Log Runtime Migration

See merge request espressif/esp-idf!52002
2026-09-01 11:28:59 +08:00
ShenWeilong 40706bf28f fix(ble): Check if there are illegal library files in controller lib path 2026-08-28 19:20:18 +08:00
Wang Meng Yang 1b937bd648 Merge branch 'bugfix/a2dp_aac_br' into 'master'
fix(bt): Fix some bugs of A2DP AAC

Closes BTQABR2023-876, BTQABR2023-877, BTQABR2023-878, and BTQABR2023-879

See merge request espressif/esp-idf!51819
2026-08-28 15:26:50 +08:00
Wang Meng Yang 63076cf266 Merge branch 'fix/bt_memory' into 'master'
fix(bt_memory): Reduce memory usage in transfer

See merge request espressif/esp-idf!51396
2026-08-28 14:52:59 +08:00
Wang Meng Yang 2608853f3f Merge branch 'bugfix/assert_8486' into 'master'
fix(bt/controller): update libbtdm_common_app.a to f60e5b29

Closes BTQABR2023-884

See merge request espressif/esp-idf!52135
2026-08-28 14:46:34 +08:00
Island 74512f74a4 Merge branch 'feat/adapt_uhci_code_260824' into 'master'
refactor(hci): switch HCI UART DMA transport to UHCI driver APIs

Closes BLERP-2978

See merge request espressif/esp-idf!51986
2026-08-28 11:02:23 +08:00
Zhou Xiao 327016d1a3 test(ble_log): add dedicated runtime dispatch test app
Extend the test peripheral with receipt timestamps and an auto-recycle
hook so runtime tests can observe handoff latency and sustain arrivals from
dispatch completion.

Add a standalone Unity app covering fixed first-submission deadlines,
callback-entry batch drain, shared ESP timer task fairness, periodic
timestamp light-sleep behavior, synchronous flush, dispatch latency,
deinit races, bounded inflight peaks, and timeout conversion at both
supported tick rates. Verify FIFO delivery and reject delayed-consumer and
extra-marker false positives.

Render BLE_LOG_RT_PERF lines in the performance log parser and
cross-reference the runtime and performance apps from their READMEs.
2026-08-27 16:16:38 +08:00
Zhou Xiao 620a3c90a9 refactor(ble_log): move runtime dispatch to esp_timer
Replace the dedicated BLE Log FreeRTOS task with a deferred esp_timer
batch dispatch. The first submission anchors a one-shot 1 ms deadline;
the callback drains the queue depth captured at entry and schedules the
next fixed defer only for arrivals left behind. Later submissions cannot
move the current deadline, and no fixed batch-size cap limits throughput.

Protect queue and timer lifetime with runtime references. Drain queued
submissions before ble_log_lbm_flush_all_trans waits for transport
ownership to return, so synchronous flush does not depend on the deferred
alarm firing.

Keep the defer alarm as a light-sleep wake source and select
ESP_TIMER_IN_IRAM. Timestamp synchronization uses the shared ESP timer task
with skipped unhandled events, so it neither wakes light sleep nor replays
missed periods. Retain legacy task and trigger symbols as hidden no-op
sdkconfig compatibility options.
2026-08-27 16:16:38 +08:00
yangfeng 5a8e9347a5 fix(bt): Build the optimal config when registering A2DP SEP 2026-08-27 15:58:39 +08:00
Jin Cheng 2e9769d270 fix(bt/controller): update libbtdm_common_app.a to f60e5b29
- fixed BT ASSERT ID 8486
- relates to BTQABR2023-884
2026-08-27 15:51:59 +08:00
yangfeng d1d1f91b12 fix(bt): Add invalid codec capability verification when registering SEP 2026-08-27 15:44:58 +08:00
yangfeng 998bd59e3f feat: Add default SBC SEP in A2DP init 2026-08-27 15:44:58 +08:00
yangfeng ba8b1091a5 fix(bt): Fix the processing of bit rate being 0 in A2DP AAC 2026-08-27 15:44:58 +08:00
hejiaxin 12fe70031f fix(bt_avrcp): size some AVRC command buffers 2026-08-27 15:14:53 +08:00
hejiaxin 59eee88105 fix(bt_l2cap): size L2CAP ERTM S-frame & RX SDU buffer 2026-08-27 15:13:58 +08:00
hejiaxin 8a0156c4ed fix(bt_sdp): size SDP TX buffers 2026-08-27 15:11:44 +08:00
hejiaxin 53200e1ec4 fix(bt_rfcomm): size RFCOMM TX buffers by peer MTU 2026-08-27 15:10:28 +08:00
hejiaxin b58556b338 fix(bt_hid): size HID TX buffers to report length 2026-08-27 15:10:05 +08:00
Wang Meng Yang 13e18a6a43 Merge branch 'bugfix/fixed_ble_deinit_crash_issue' into 'master'
Bugfix/fixed ble deinit crash issue

Closes BLECRT-623, BLECRT-624, and BT-4481

See merge request espressif/esp-idf!52103
2026-08-27 14:12:41 +08:00
Island e2930d30c8 Merge branch 'bugfix/fix_bluedroid_find_info_format_mismatch' into 'master'
fix(ble/bluedroid): restore find info PDU stop on UUID format mismatch

See merge request espressif/esp-idf!52063
2026-08-26 22:00:25 +08:00
ShenWeilong 0ed6004586 fix(bt): fixed mempool deinit crash issue for esp32s31 2026-08-26 21:48:02 +08:00
Island 61aefd09ae Merge branch 'feat/ble_smp_repairing_hardening' into 'master'
feat(ble/bluedroid): add Kconfig options for BLE re-pairing hardening

See merge request espressif/esp-idf!51221
2026-08-26 15:07:45 +08:00
zhaoweiliang a56a614fdf fix(ble): refactor uart dma hci transport code on ESP32-S31 2026-08-26 11:33:19 +08:00
zhaoweiliang 404e45a4f0 refactor(hci): switch HCI UART DMA transport to UHCI driver APIs 2026-08-26 11:33:19 +08:00
Island 0260f0511a Merge branch 'idf/ble_audio_dynamic_svc' into 'master'
fix(ble_audio): Fix wrong registration when multiple tbs instances exist

See merge request espressif/esp-idf!52046
2026-08-26 11:30:06 +08:00
zhanghaipeng 196cb39545 fix(ble/bluedroid): restore find info PDU stop on UUID format mismatch
Restore GATT_NO_RESOURCES when sequential attributes have differing UUID
sizes so gatts_process_find_info() stops building the response PDU.
2026-08-26 11:20:23 +08:00
Jiang Jiang Jian 1072706739 Merge branch 'bugfix/avrcp_version_compatibility' into 'master'
fix(bt): Fix the issue of AVRCP version compatibility

Closes BTQABR2023-886

See merge request espressif/esp-idf!51978
2026-08-26 10:37:22 +08:00
Liu Linyan eb2b8bdb00 fix(ble_audio): Fix wrong registration when multiple tbs instances exist 2026-08-25 21:29:12 +08:00
Rahul Tank 3af5e71150 Merge branch 'bugfix/fix_pawr_conn_issues' into 'master'
fix(nimble): bound PAwR synced connect retries in the example

See merge request espressif/esp-idf!51941
2026-08-25 16:02:57 +05:30
Island 0db46728bc Merge branch 'idf/ble_audio_deinit' into 'master'
feat(ble_audio): Support BLE ISO & BLE Audio deinitialization

See merge request espressif/esp-idf!51616
2026-08-25 16:39:38 +08:00
Island c438746e5d Merge branch 'change/ble_update_lib_20260824' into 'master'
change(ble): [AUTO_MR] 20260824 - Update ESP BLE Controller Lib

Closes BLERP-3039, BLERP-3037, BLERP-3036, BLERP-2950, and BLERP-2932

See merge request espressif/esp-idf!51996
2026-08-25 14:21:40 +08:00
Island 120d813cd9 Merge branch 'bugfix/fix_bluedroid_gatt_discover_downstream_stall' into 'master'
fix(ble/bluedroid): allow osi_event re-post during POSTING window

Closes BLERP-3044, BLERP-3042, BLERP-3043, BLERP-3051, and BLERP-3052

See merge request espressif/esp-idf!51833
2026-08-25 12:13:38 +08:00
Island 5de7d85e4e Merge branch 'feat/support_ble_ots_nimble' into 'master'
Feat/support ble ots nimble

See merge request espressif/esp-idf!51019
2026-08-25 11:19:50 +08:00
Island 59c42b763f Merge branch 'feat/ble-log-build-and-chip-version-report' into 'master'
feat(ble_log): Periodically Report ESP-IDF & BLE Controller Build Commit and Chip Version

See merge request espressif/esp-idf!51947
2026-08-25 11:19:13 +08:00
Liu Linyan 475f26e5d1 feat(ble_audio): Support BLE ISO & BLE Audio deinitialization 2026-08-25 11:15:15 +08:00
Rahul Tank 7321fce391 fix(nimble): bound PAwR synced connect retries in the example 2026-08-24 21:31:32 +05:30
Rahul Tank 76ecf87829 Merge branch 'bugfix/gatt_cach_disconn' into 'master'
fix(nimble): gatt caching crash on disconnect

Closes BLERP-3059

See merge request espressif/esp-idf!51962
2026-08-24 21:27:08 +05:30
zhaoweiliang d2210c2c26 change(ble): [AUTO_MR] Update lib_esp32c6 to cdaefea1 2026-08-24 20:47:25 +08:00
zhaoweiliang 85d8971199 change(ble): [AUTO_MR] Update lib_esp32c5 to cdaefea1 2026-08-24 20:47:25 +08:00
zhaoweiliang b3ba8cad9a change(ble): [AUTO_MR] Update lib_esp32h2 to cdaefea1 2026-08-24 20:47:25 +08:00
Island 17780f1f85 Merge branch 'idf/ble_mesh_iv_recover' into 'master'
feat(ble_mesh): Enable IV Index recovery by default

See merge request espressif/esp-idf!51968
2026-08-24 17:07:24 +08:00
chenjianhua aca579eeca feat(ble/nimble): support ble ots profile 2026-08-24 15:43:15 +08:00
Wang Meng Yang 44008286d6 Merge branch 'fix/aireview_obex' into 'master'
fix(bt_obex): fix some bugs in bluedroid obex

See merge request espressif/esp-idf!51054
2026-08-24 14:20:40 +08:00
Astha Verma b1f2ebffef fix(nimble): Fixed gatt caching crash on disconnect 2026-08-24 11:15:40 +05:30
yangfeng f3c7229003 fix(bt): Fix the issue of AVRCP version compatibility 2026-08-24 11:31:48 +08:00
Liu Linyan 8e59eb4850 feat(ble_mesh): Enable IV Index recovery by default 2026-08-22 17:53:25 +08:00
Zhou Xiao 5d989c4ce8 test(ble_log): add on-target test app for the version info frame
New ble_log_test app captures the runtime hook output through the test
peripheral and validates the version info frame: source code, BLE Log
version, a hex-valid idf commit that must be non-zero, per-lib commit
fields non-zero exactly when the matching lib is linked, and chip
model/revision matching esp_chip_info(). The README carries the
generated empty Supported Targets table to match the build-test
manifest.

The test drives transports via sustained writes instead of
ble_log_flush(): the flush window disables the module, so hook frames
written during a flush would be dropped.

Also move .build-test-rules.yml from ble_log_perf_test/ to the
test_apps/ root (one manifest entry per app, as elsewhere in ESP-IDF).
Both apps stay disabled until BLE Log test runners are available.

Verified: full esp32c6 build of the app; the build-test checker's own
parsing logic confirms the README table matches the manifest.
2026-08-21 22:35:46 +08:00
Zhou Xiao 4dfb8568e7 feat(ble_log): report build, lib and chip versions in a version info frame
Replace the 2-byte BLE Log info record with a 58-byte version info
frame (BLE_LOG_VERSION 5 -> 6; the abandoned branch that claimed the
version-6 slot frees it, so the overall bump stays 5 -> 6):

- idf build commit (12 bytes), injected at build time by
  register_ble_log_idf_commit() next to the other register_* helpers;
  the git probe is only trusted when the IDF tree itself is a
  repo/worktree, since rev-parse walks up parent directories
- controller, btdm_common, BLE Mesh and BLE Audio lib commits (10
  bytes each, zero-padded), every getter guarded by the exact
  condition that links its lib, so configs without the lib leave the
  field zero (no link errors)
- chip model and revision from esp_chip_info() at runtime

Lib strings are copied NUL-safely instead of assuming a fixed hash
length; the mesh commit is the substring after the last space of
bt_mesh_v11_commit_str. Frame layout is pinned by a static assert.

Verified on target: esp32, esp32c3, esp32c5 and esp32h4 boards (the
h4 run covers controller + btdm_common + mesh in one build); the
audio-enabled build is blocked by pre-existing esp_ble_audio compile
errors on this base (audio symbol verified with nm instead).
2026-08-21 22:35:46 +08:00
zhiweijian 88ea45be73 feat(ble/bluedroid): reject LE re-pairing that weakens an existing bond
Add smp_repairing_is_allowed() behind BT_BLE_SMP_HARDENED_REPAIRING so a
peer cannot replace an existing bond with one that has less MITM
protection, no Secure Connections, or a shorter key. Compare a preceding
Security Request against the pairing command AuthReq, not the
association-model result, and always allow first pairing.

A refusal keeps the stored bond. Pairing-failure erase is split by link
role: default is erase as Central and keep as Peripheral.

Closes BLERP (NDSS 2026) V3, V4 and V6.
2026-08-21 19:17:48 +08:00
zhiweijian f864615d7d fix(ble/bluedroid): harden LE bond handling across encryption
Keep the existing bond until the new pairing is encrypted, and on encryption
failure drop the link instead of clearing keys. Recovering from a peer that
really deleted the bond is opt-in through BT_BLE_SMP_UNBOND_ON_KEY_MISSING.

Closes BLERP (NDSS 2026) V5, and stops an unauthenticated Pairing Request
from dropping the stored keys (V2 exploitation).
2026-08-21 19:17:48 +08:00