diff --git a/monitor/bt.h b/monitor/bt.h
index 1fbb40e..59d5c20 100644
--- a/monitor/bt.h
+++ b/monitor/bt.h
#define BT_LL_PING_RSP 0x13
#define BT_LL_LENGTH_REQ 0x14
+struct bt_ll_length {
+ uint16_t rx_len;
+ uint16_t rx_time;
+ uint16_t tx_len;
+ uint16_t tx_time;
+} __attribute__ ((packed));
#define BT_LL_LENGTH_RSP 0x15
diff --git a/monitor/ll.c b/monitor/ll.c
index 3ddbf7a..c70c116 100644
--- a/monitor/ll.c
+++ b/monitor/ll.c
packet_print_error("Error code", pdu->error);
}
+static void length_req_rsp(const void *data, uint8_t size)
+{
+ const struct bt_ll_length *pdu = data;
+
+ print_field("MaxRxOctets: %u", pdu->rx_len);
+ print_field("MaxRxTime: %u", pdu->rx_time);
+ print_field("MaxTxOctets: %u", pdu->tx_len);
+ print_field("MaxtxTime: %u", pdu->tx_time);
+}
+
struct llcp_data {
uint8_t opcode;
const char *str;
{ 0x11, "LL_REJECT_IND_EXT", reject_ind_ext, 2, true },
{ 0x12, "LL_PING_REQ", null_pdu, 0, true },
{ 0x13, "LL_PING_RSP", null_pdu, 0, true },
- { 0x14, "LL_LENGTH_REQ", NULL, 8, true },
- { 0x15, "LL_LENGTH_RSP", NULL, 8, true },
+ { 0x14, "LL_LENGTH_REQ", length_req_rsp, 8, true },
+ { 0x15, "LL_LENGTH_RSP", length_req_rsp, 8, true },
{ 0x16, "LL_PHY_REQ", NULL, 2, true },
{ 0x17, "LL_PHY_RSP", NULL, 2, true },
{ 0x18, "LL_PHY_UPDATE_IND", NULL, 4, true },