Return GATT_INVALID_HANDLE instead of GATT_NOT_FOUND when Read Multiple
(Variable) response assembly fails, since 0x0A is not a valid ATT error
for these PDUs per Core Spec Vol 3 Part F.
Replace the legacy multi-LBM transport layer with one shared pool:
- one bitmap-indexed pool of CONFIG_BLE_LOG_POOL_TRANS_CNT transports
with a non-yield reserve for ISR and critical-section writers;
- per-transport state machine (FREE/OPEN/CLAIMED/SENDING) guarded by a
per-transport CAS lock; bitmaps are only candidate hints;
- claim/commit interface for the compressed-log path; claim bookkeeping
lives in the pool (ble_log_pool_claim_t), not in the peripheral
transport;
- dedicated Internal Snapshot transport and fixed-layout snapshot
record (reason flags, version block, lc/esp/os clock samples, pool
state, compact core statistics);
- source-local 24-bit wire sequences and compact per-source counters;
- UART console redirection stream writer (ble_log_redir_t);
- CMakeLists compiles ble_log_lbm_v2.c instead of ble_log_lbm.c; the
legacy ble_log_lbm.c/.h stay in-tree, out of the build, until their
removal;
- the public ble_log_src_t ABI is restored and frozen; protocol v7
wire source IDs are a separate internal enum (ble_log_wire_src_t)
and the older BLE Stack sources map onto the v7 core sources
(LL_TASK/LL_ISR -> LL, LL_HCI/HCI -> HCI, HOST -> CUSTOM);
BLE_LOG_VERSION 7;
- Kconfig: pool sizing options replace the LBM options, whose names
remain as hidden deprecated symbols for backward sdkconfig
compatibility; BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED becomes the single
BLE_LOG_HCI_LOG_ENABLED switch for host and controller HCI traffic
(Bluedroid and NimBLE host call sites follow the rename), enabled
by default on all targets instead of only where
BLE_LOG_IS_ESP_LEGACY_CONTROLLER; the old name keeps a deprecated
promptless shim that selects the new symbol, so sdkconfig files
still pinning it keep host HCI logging enabled;
- util: ble_log_cas_acquire/release become macros; multi-call-site
pool helpers are no longer inline (IRAM);
- test app record structs gain a source_meta field for the v7 wire
source byte;
- the Internal Snapshot no longer carries a schema_version: the record
is self-identifying via int_src_code and the version block.
When the bond list is full, drop the oldest disconnected device instead
of the oldest NVS entry, and allow a per-bond except flag so selected
devices are never auto-removed.
fix(nimble): fix crash on disconnect due to stale per-connection CCCD pool
Closes BLERP-3057, BLERP-3060, BLERP-3061, and BLERP-3062
See merge request espressif/esp-idf!51868
- Update LC3 in btc and bta, update AT
- Update LC3 in SCO frame transfer and examples
- improve lc3 transfer speed
- Fix some encoding and decoding bugs
- Rename the functions and macros to fit both msbc and lc3
- Add config dependency
- Add migration guides for bluetooth-classic
- change the statement of "Wide Band Speech" to "Wideband Speech" to fit HFPv1.10