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;

Reply via email to