This is an automated email from the ASF dual-hosted git repository.
janc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git
The following commit(s) were added to refs/heads/master by this push:
new eb498c304 nimble/ll: Ensure host-driven octet changes trigger DLE
eb498c304 is described below
commit eb498c30405705f6738d19418760a4ff087ad249
Author: Szymon Czapracki <[email protected]>
AuthorDate: Mon Nov 17 13:35:39 2025 +0100
nimble/ll: Ensure host-driven octet changes trigger DLE
When BLE_LL_CONN_INIT_AUTO_DLE is disabled, apply host-requested
changes to max_tx_octets and max_rx_octets.
This ensures that host-driven updates to TX/RX octets
correctly generate the LE Meta Event: Data Length Change.
This keeps DLE behavior consistent with host expectations.
---
nimble/controller/src/ble_ll_conn.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/nimble/controller/src/ble_ll_conn.c
b/nimble/controller/src/ble_ll_conn.c
index 32d0c8aea..cc073aaf6 100644
--- a/nimble/controller/src/ble_ll_conn.c
+++ b/nimble/controller/src/ble_ll_conn.c
@@ -1854,6 +1854,18 @@ ble_ll_conn_set_data_len(struct ble_ll_conn_sm *connsm,
rx_time = MIN(rx_time, BLE_LL_CONN_SUPP_TIME_MAX_UNCODED);
#endif
+#if !MYNEWT_VAL(BLE_LL_CONN_INIT_AUTO_DLE)
+ if (connsm->eff_max_tx_octets != tx_octets) {
+ connsm->max_tx_octets = tx_octets;
+ init_dle = 1;
+ }
+
+ if (rx_octets && connsm->eff_max_rx_octets != rx_octets) {
+ connsm->max_rx_octets = rx_octets;
+ init_dle = 1;
+ }
+#endif
+
if (connsm->max_tx_time != tx_time) {
connsm->max_tx_time = tx_time;
init_dle = 1;