From 986aaa2bb8b163f2d7d6d253d2576ec8c1cabeb7 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Mon, 1 Mar 2021 14:15:25 -0800 Subject: [PATCH] monitor: Fix BIG Create Sync decoding Number of Bis is actually at the end of the PDU, also avoid prefixing with big when it is implied by the struct name. --- monitor/bt.h | 4 ++-- monitor/packet.c | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/monitor/bt.h b/monitor/bt.h index d00dabed1..84bf50ac6 100644 --- a/monitor/bt.h +++ b/monitor/bt.h @@ -2732,13 +2732,13 @@ struct bt_hci_bis_sync { } __attribute__ ((packed)); struct bt_hci_cmd_le_big_create_sync { - uint8_t big_id; + uint8_t handle; uint16_t sync_handle; - uint8_t num_bis; uint8_t encryption; uint8_t bcode[16]; uint8_t mse; uint16_t timeout; + uint8_t num_bis; struct bt_hci_bis_sync bis[0]; } __attribute__ ((packed)); diff --git a/monitor/packet.c b/monitor/packet.c index 482e82703..63d9afe13 100644 --- a/monitor/packet.c +++ b/monitor/packet.c @@ -8059,13 +8059,16 @@ static void le_big_create_sync_cmd(const void *data, uint8_t size) { const struct bt_hci_cmd_le_big_create_sync *cmd = data; - print_field("BIG ID: 0x%2.2x", cmd->big_id); - print_field("Number of BIS: %u", cmd->num_bis); - print_field("Encryption: 0x%2.2x", cmd->encryption); + print_field("BIG Handle: 0x%2.2x", cmd->handle); + print_field("BIG Sync Handle: 0x%4.4x", le16_to_cpu(cmd->sync_handle)); + print_field("Encryption: %s (0x%2.2x)", + cmd->encryption ? "Unencrypted" : "Encrypted", + cmd->encryption); print_hex_field("Broadcast Code", cmd->bcode, 16); - print_field("Number Subevents: 0x%2.2x", cmd->mse); + print_field("Maximum Number Subevents: 0x%2.2x", cmd->mse); print_field("Timeout: %d ms (0x%4.4x)", le16_to_cpu(cmd->timeout) * 10, le16_to_cpu(cmd->timeout)); + print_field("Number of BIS: %u", cmd->num_bis); size -= sizeof(*cmd); @@ -9051,7 +9054,7 @@ static const struct opcode_data opcode_table[] = { "LE Broadcast Isochronous Group Create Sync", le_big_create_sync_cmd, sizeof(struct bt_hci_cmd_le_big_create_sync), - true }, + false }, { BT_HCI_CMD_LE_BIG_TERM_SYNC, BT_HCI_BIT_LE_BIG_TERM_SYNC, "LE Broadcast Isochronous Group Terminate Sync", le_big_term_sync_cmd, -- 2.47.3