summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--monitor/ll.c12
-rw-r--r--monitor/ll.h4
-rw-r--r--monitor/packet.c2
3 files changed, 9 insertions, 9 deletions
diff --git a/monitor/ll.c b/monitor/ll.c
index e9d0cf6d6..8addbc6ea 100644
--- a/monitor/ll.c
+++ b/monitor/ll.c
@@ -245,7 +245,7 @@ static void advertising_packet(const void *data, uint8_t size)
}
}
-static void data_packet(const void *data, uint8_t size)
+static void data_packet(const void *data, uint8_t size, bool padded)
{
const uint8_t *ptr = data;
uint8_t llid, length;
@@ -290,7 +290,7 @@ static void data_packet(const void *data, uint8_t size)
switch (llid) {
case 0x03:
- llcp_packet(data + 2, size - 2);
+ llcp_packet(data + 2, size - 2, padded);
break;
default:
@@ -299,7 +299,7 @@ static void data_packet(const void *data, uint8_t size)
}
}
-void ll_packet(uint16_t frequency, const void *data, uint8_t size)
+void ll_packet(uint16_t frequency, const void *data, uint8_t size, bool padded)
{
const struct bt_ll_hdr *hdr = data;
uint8_t channel = (frequency - 2402) / 2;
@@ -368,7 +368,7 @@ void ll_packet(uint16_t frequency, const void *data, uint8_t size)
if (access_addr == 0x8e89bed6)
advertising_packet(pdu_data, pdu_len);
else
- data_packet(pdu_data, pdu_len);
+ data_packet(pdu_data, pdu_len, padded);
}
static void null_pdu(const void *data, uint8_t size)
@@ -500,7 +500,7 @@ static const char *opcode_to_string(uint8_t opcode)
return "Unknown";
}
-void llcp_packet(const void *data, uint8_t size)
+void llcp_packet(const void *data, uint8_t size, bool padded)
{
uint8_t opcode = ((const uint8_t *) data)[0];
const struct llcp_data *llcp_data = NULL;
@@ -533,7 +533,7 @@ void llcp_packet(const void *data, uint8_t size)
return;
}
- if (llcp_data->fixed) {
+ if (llcp_data->fixed && !padded) {
if (size - 1 != llcp_data->size) {
print_text(COLOR_ERROR, "invalid packet size");
packet_hexdump(data + 1, size - 1);
diff --git a/monitor/ll.h b/monitor/ll.h
index ee28f40a8..98e0bf489 100644
--- a/monitor/ll.h
+++ b/monitor/ll.h
@@ -24,5 +24,5 @@
#include <stdint.h>
-void ll_packet(uint16_t frequency, const void *data, uint8_t size);
-void llcp_packet(const void *data, uint8_t size);
+void ll_packet(uint16_t frequency, const void *data, uint8_t size, bool padded);
+void llcp_packet(const void *data, uint8_t size, bool padded);
diff --git a/monitor/packet.c b/monitor/packet.c
index e61e2ba20..f8bde976a 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
@@ -3790,7 +3790,7 @@ void packet_simulator(struct timeval *tv, uint16_t frequency,
print_packet(tv, 0, '*', COLOR_PHY_PACKET,
"Physical packet:", NULL, str);
- ll_packet(frequency, data, size);
+ ll_packet(frequency, data, size, false);
}
static void null_cmd(const void *data, uint8_t size)