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;