You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ja...@apache.org on 2022/09/26 12:51:36 UTC

[mynewt-nimble] 02/02: btshell and blestress: update l2cap coc rx buffers

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

commit 154bdd46acadee8bb1fc6f28535fdf8a9fa61004
Author: Jakub Rotkiewicz <ja...@codecoup.pl>
AuthorDate: Mon Sep 26 10:12:55 2022 +0200

    btshell and blestress: update l2cap coc rx buffers
    
    Updated apps to support setting the RX SDU buffers number.
---
 apps/blestress/src/stress.c | 10 ++++++----
 apps/blestress/syscfg.yml   |  3 +++
 apps/btshell/src/main.c     | 16 +++++++++++-----
 apps/btshell/syscfg.yml     |  3 +++
 4 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/apps/blestress/src/stress.c b/apps/blestress/src/stress.c
index 1bdbafa9..1a9cb0c0 100644
--- a/apps/blestress/src/stress.c
+++ b/apps/blestress/src/stress.c
@@ -167,11 +167,13 @@ stress_l2cap_coc_accept(uint16_t peer_mtu, struct ble_l2cap_chan *chan)
     console_printf("LE CoC accepting, chan: 0x%08lx, peer_mtu %d\n",
                    (uint32_t) chan, peer_mtu);
 
-    sdu_rx = os_msys_get_pkthdr(STRESS_COC_MTU, 0);
-    assert(sdu_rx != NULL);
+    for (int i = 0; i < MYNEWT_VAL(BLE_L2CAP_COC_SDU_BUFF_COUNT); i++) {
+        sdu_rx = os_msys_get_pkthdr(STRESS_COC_MTU, 0);
+        assert(sdu_rx != NULL);
 
-    rc = ble_l2cap_recv_ready(chan, sdu_rx);
-    assert(rc == 0);
+        rc = ble_l2cap_recv_ready(chan, sdu_rx);
+        assert(rc == 0);
+    }
 }
 
 void
diff --git a/apps/blestress/syscfg.yml b/apps/blestress/syscfg.yml
index 3acf280b..ce50050c 100644
--- a/apps/blestress/syscfg.yml
+++ b/apps/blestress/syscfg.yml
@@ -67,6 +67,9 @@ syscfg.vals:
     #
     BLE_L2CAP_COC_MAX_NUM: 2
 
+    # L2CAP COC SDU buffers in RX endpoint
+    BLE_L2CAP_COC_SDU_BUFF_COUNT: 1
+
     # Enable 2M PHY
     BLE_LL_CFG_FEAT_LE_2M_PHY: 1
 
diff --git a/apps/btshell/src/main.c b/apps/btshell/src/main.c
index 7bea9067..2df37191 100644
--- a/apps/btshell/src/main.c
+++ b/apps/btshell/src/main.c
@@ -2224,19 +2224,25 @@ btshell_l2cap_coc_recv(struct ble_l2cap_chan *chan, struct os_mbuf *sdu)
 
 static int
 btshell_l2cap_coc_accept(uint16_t conn_handle, uint16_t peer_mtu,
-                           struct ble_l2cap_chan *chan)
+                         struct ble_l2cap_chan *chan)
 {
     struct os_mbuf *sdu_rx;
+    int rc;
 
     console_printf("LE CoC accepting, chan: 0x%08lx, peer_mtu %d\n",
                    (uint32_t) chan, peer_mtu);
 
-    sdu_rx = os_mbuf_get_pkthdr(&sdu_os_mbuf_pool, 0);
-    if (!sdu_rx) {
-        return BLE_HS_ENOMEM;
+    for (int i = 0; i < MYNEWT_VAL(BLE_L2CAP_COC_SDU_BUFF_COUNT); i++) {
+        sdu_rx = os_mbuf_get_pkthdr(&sdu_os_mbuf_pool, 0);
+        if (!sdu_rx) {
+            return BLE_HS_ENOMEM;
+        }
+
+        rc = ble_l2cap_recv_ready(chan, sdu_rx);
+        assert(rc == 0);
     }
 
-    return ble_l2cap_recv_ready(chan, sdu_rx);
+    return rc;
 }
 
 static void
diff --git a/apps/btshell/syscfg.yml b/apps/btshell/syscfg.yml
index 1535b336..b9dfa875 100644
--- a/apps/btshell/syscfg.yml
+++ b/apps/btshell/syscfg.yml
@@ -41,5 +41,8 @@ syscfg.vals:
     # Whether to save data to sys/config, or just keep it in RAM.
     BLE_STORE_CONFIG_PERSIST: 0
 
+    # L2CAP COC SDU buffers in RX endpoint
+    BLE_L2CAP_COC_SDU_BUFF_COUNT: 1
+
 syscfg.vals.BLE_MESH:
     MSYS_1_BLOCK_COUNT: 16