You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by an...@apache.org on 2022/02/09 11:38:43 UTC

[mynewt-nimble] 02/04: nimble/ll: Update LLC PDU defs to 5.3

This is an automated email from the ASF dual-hosted git repository.

andk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git

commit 55cedd2060bcbcacf6d87fcb0111b3b8946453b9
Author: Andrzej Kaczmarek <an...@codecoup.pl>
AuthorDate: Mon Feb 7 16:53:47 2022 +0100

    nimble/ll: Update LLC PDU defs to 5.3
---
 nimble/controller/include/controller/ble_ll_ctrl.h | 17 ++++++++++++++++-
 nimble/controller/src/ble_ll_ctrl.c                | 17 ++++++++++++++---
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/nimble/controller/include/controller/ble_ll_ctrl.h b/nimble/controller/include/controller/ble_ll_ctrl.h
index 62e1a53..047d349 100644
--- a/nimble/controller/include/controller/ble_ll_ctrl.h
+++ b/nimble/controller/include/controller/ble_ll_ctrl.h
@@ -91,9 +91,16 @@ extern "C" {
 #define BLE_LL_CTRL_CIS_RSP             (0x20)
 #define BLE_LL_CTRL_CIS_IND             (0x21)
 #define BLE_LL_CTRL_CIS_TERMINATE_IND   (0x22)
+#define BLE_LL_CTRL_POWER_CONTROL_REQ   (0x23)
+#define BLE_LL_CTRL_POWER_CONTROL_RSP   (0x24)
+#define BLE_LL_CTRL_POWER_CHANGE_IND    (0x25)
+#define BLE_LL_CTRL_SUBRATE_REQ         (0x26)
+#define BLE_LL_CTRL_SUBRATE_IND         (0x27)
+#define BLE_LL_CTRL_CHAN_REPORTING_IND  (0x28)
+#define BLE_LL_CTRL_CHAN_STATUS_IND     (0x29)
 
 /* Maximum opcode value */
-#define BLE_LL_CTRL_OPCODES             (BLE_LL_CTRL_CIS_TERMINATE_IND + 1)
+#define BLE_LL_CTRL_OPCODES             (BLE_LL_CTRL_CHAN_STATUS_IND + 1)
 
 extern const uint8_t g_ble_ll_ctrl_pkt_lengths[BLE_LL_CTRL_OPCODES];
 
@@ -275,6 +282,14 @@ struct ble_ll_len_req
 #define BLE_LL_CTRL_CIS_IND_LEN         (15)
 #define BLE_LL_CTRL_CIS_TERMINATE_LEN   (3)
 
+#define BLE_LL_CTRL_POWER_CONTROL_REQ_LEN       (3)
+#define BLE_LL_CTRL_POWER_CONTROL_RSP_LEN       (4)
+#define BLE_LL_CTRL_POWER_CHANGE_IND_LEN        (4)
+#define BLE_LL_CTRL_SUBRATE_REQ_LEN             (10)
+#define BLE_LL_CTRL_SUBRATE_IND_LEN             (10)
+#define BLE_LL_CTRL_CHAN_REPORTING_IND_LEN      (3)
+#define BLE_LL_CTRL_CHAN_STATUS_IND_LEN         (10)
+
 /* API */
 struct ble_ll_conn_sm;
 void ble_ll_ctrl_proc_start(struct ble_ll_conn_sm *connsm, int ctrl_proc);
diff --git a/nimble/controller/src/ble_ll_ctrl.c b/nimble/controller/src/ble_ll_ctrl.c
index 919f4a5..aef2d02 100644
--- a/nimble/controller/src/ble_ll_ctrl.c
+++ b/nimble/controller/src/ble_ll_ctrl.c
@@ -118,7 +118,14 @@ const uint8_t g_ble_ll_ctrl_pkt_lengths[BLE_LL_CTRL_OPCODES] =
     BLE_LL_CTRL_CIS_REQ_LEN,
     BLE_LL_CTRL_CIS_RSP_LEN,
     BLE_LL_CTRL_CIS_IND_LEN,
-    BLE_LL_CTRL_CIS_TERMINATE_LEN
+    BLE_LL_CTRL_CIS_TERMINATE_LEN,
+    BLE_LL_CTRL_POWER_CONTROL_REQ_LEN,
+    BLE_LL_CTRL_POWER_CONTROL_RSP_LEN,
+    BLE_LL_CTRL_POWER_CHANGE_IND_LEN,
+    BLE_LL_CTRL_SUBRATE_REQ_LEN,
+    BLE_LL_CTRL_SUBRATE_IND_LEN,
+    BLE_LL_CTRL_CHAN_REPORTING_IND_LEN,
+    BLE_LL_CTRL_CHAN_STATUS_IND_LEN,
 };
 
 /**
@@ -2565,8 +2572,8 @@ ble_ll_ctrl_chk_proc_start(struct ble_ll_conn_sm *connsm)
 int
 ble_ll_ctrl_rx_pdu(struct ble_ll_conn_sm *connsm, struct os_mbuf *om)
 {
-    uint32_t features;
-    uint32_t feature;
+    uint64_t features;
+    uint64_t feature;
     uint8_t len;
     uint8_t opcode;
     uint8_t rsp_opcode;
@@ -2662,6 +2669,10 @@ ble_ll_ctrl_rx_pdu(struct ble_ll_conn_sm *connsm, struct os_mbuf *om)
     case BLE_LL_CTRL_PERIODIC_SYNC_IND:
         feature = BLE_LL_FEAT_SYNC_TRANS_RECV;
         break;
+    case BLE_LL_CTRL_SUBRATE_REQ:
+    case BLE_LL_CTRL_SUBRATE_IND:
+        feature = BLE_LL_FEAT_CONN_SUBRATING;
+        break;
     default:
         feature = 0;
         break;