diff --git a/monitor/bt.h b/monitor/bt.h
index 0e80ad2..ca91f7f 100644
--- a/monitor/bt.h
+++ b/monitor/bt.h
uint8_t enable;
} __attribute__ ((packed));
-#define BT_HCI_CMD_PERIODIC_SYNC_TRANS 0x205a
-struct bt_hci_cmd_periodic_sync_trans {
+#define BT_HCI_CMD_LE_PAST 0x205a
+struct bt_hci_cmd_le_past {
uint16_t handle;
uint16_t service_data;
uint16_t sync_handle;
} __attribute__ ((packed));
-#define BT_HCI_CMD_PA_SET_INFO_TRANS 0x205b
-struct bt_hci_cmd_pa_set_info_trans {
+struct bt_hci_rsp_le_past {
+ uint8_t status;
+ uint16_t handle;
+} __attribute__ ((packed));
+
+#define BT_HCI_CMD_LE_PAST_SET_INFO 0x205b
+struct bt_hci_cmd_le_past_set_info {
uint16_t handle;
uint16_t service_data;
- uint8_t adv_handle;
+ uint8_t adv_handle;
} __attribute__ ((packed));
-#define BT_HCI_CMD_PA_SYNC_TRANS_PARAMS 0x205c
-struct bt_hci_cmd_pa_sync_trans_params {
+struct bt_hci_rsp_le_past_set_info {
+ uint8_t status;
+ uint16_t handle;
+} __attribute__ ((packed));
+
+#define BT_HCI_CMD_LE_PAST_PARAMS 0x205c
+struct bt_hci_cmd_le_past_params {
uint16_t handle;
uint8_t mode;
uint16_t skip;
uint8_t cte_type;
} __attribute__ ((packed));
-#define BT_HCI_CMD_DEFAULT_PA_SYNC_TRANS_PARAMS 0x205d
-struct bt_hci_cmd_default_pa_sync_trans_params {
+struct bt_hci_rsp_le_past_params {
+ uint8_t status;
+ uint16_t handle;
+} __attribute__ ((packed));
+
+#define BT_HCI_CMD_DEFAULT_PAST_PARAMS 0x205d
+struct bt_hci_cmd_le_default_past_params {
uint8_t mode;
uint16_t skip;
uint16_t sync_timeout;
uint16_t handle;
} __attribute__ ((packed));
-#define BT_HCI_EVT_LE_PA_SYNC_TRANS_REC 0x18
-struct bt_hci_evt_le_pa_sync_trans_rec {
+#define BT_HCI_EVT_LE_PAST_RECEIVED 0x18
+struct bt_hci_evt_le_past_recv {
uint8_t status;
uint16_t handle;
uint16_t service_data;
diff --git a/monitor/packet.c b/monitor/packet.c
index 2b30e88..f7db1cb 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
{ 20, "LE Connectionless IQ Report" },
{ 21, "LE Connection IQ Report" },
{ 22, "LE CTE Request Failed" },
- { 23, "LE Periodic Advertising Sync Transfer Rvc"},
+ { 23, "LE PAST Received" },
{ 24, "LE CIS Established" },
{ 25, "LE CIS Request" },
{ 26, "LE Create BIG Complete" },
print_enable("Reporting", cmd->enable);
}
-static void le_pa_sync_trans(uint16_t index, const void *data, uint8_t size)
+static void le_past(uint16_t index, const void *data, uint8_t size)
{
- const struct bt_hci_cmd_periodic_sync_trans *cmd = data;
+ const struct bt_hci_cmd_le_past *cmd = data;
print_field("Connection handle: %d", cmd->handle);
print_field("Service data: 0x%4.4x", cmd->service_data);
print_field("Sync handle: %d", cmd->sync_handle);
}
-static void le_pa_set_info_trans(uint16_t index, const void *data, uint8_t size)
+static void le_past_set_info(uint16_t index, const void *data, uint8_t size)
{
- const struct bt_hci_cmd_pa_set_info_trans *cmd = data;
+ const struct bt_hci_cmd_le_past_set_info *cmd = data;
print_field("Connection handle: %d", cmd->handle);
print_field("Service data: 0x%4.4x", cmd->service_data);
case 0x02:
str = "Enabled with report events enabled";
break;
+ case 0x03:
+ str = "Enabled with report events enabled with duplicate "
+ "filtering";
+ break;
default:
str = "RFU";
break;
print_field("Mode: %s (0x%2.2x)", str, mode);
}
-static void le_pa_sync_trans_params(uint16_t index, const void *data,
+static void le_past_params(uint16_t index, const void *data,
uint8_t size)
{
- const struct bt_hci_cmd_pa_sync_trans_params *cmd = data;
+ const struct bt_hci_cmd_le_past_params *cmd = data;
print_field("Connection handle: %d", cmd->handle);
print_sync_mode(cmd->mode);
print_create_sync_cte_type(cmd->cte_type);
}
-static void le_set_default_pa_sync_trans_params(uint16_t index,
+static void le_set_default_past_params(uint16_t index,
const void *data, uint8_t size)
{
- const struct bt_hci_cmd_default_pa_sync_trans_params *cmd = data;
+ const struct bt_hci_cmd_le_default_past_params *cmd = data;
print_sync_mode(cmd->mode);
print_field("Skip: 0x%2.2x", cmd->skip);
le_pa_rec_enable, 3, true,
status_rsp, 1, true },
{ 0x205a, 326, "LE Periodic Advertising Sync Transfer",
- le_pa_sync_trans, 6, true,
+ le_past, 6, true,
status_handle_rsp, 3, true },
{ 0x205b, 327, "LE Periodic Advertising Set Info Transfer",
- le_pa_set_info_trans, 5, true,
+ le_past_set_info, 5, true,
status_handle_rsp, 3, true },
{ 0x205c, 328, "LE Periodic Advertising Sync Transfer Parameters",
- le_pa_sync_trans_params, 8, true,
+ le_past_params, 8, true,
status_handle_rsp, 3, true},
{ 0x205d, 329, "LE Set Default Periodic Advertisng Sync Transfer "
"Parameters",
- le_set_default_pa_sync_trans_params,
+ le_set_default_past_params,
6, true, status_rsp, 1, true},
{ BT_HCI_CMD_LE_READ_BUFFER_SIZE_V2,
BT_HCI_BIT_LE_READ_BUFFER_SIZE_V2,
print_field("Connection handle: %d", evt->handle);
}
-static void le_pa_sync_trans_rec_evt(struct timeval *tv, uint16_t index,
+static void le_past_received_evt(struct timeval *tv, uint16_t index,
const void *data, uint8_t size)
{
- const struct bt_hci_evt_le_pa_sync_trans_rec *evt = data;
+ const struct bt_hci_evt_le_past_recv *evt = data;
print_status(evt->status);
print_field("Handle: %d", evt->handle);
le_chan_select_alg_evt, 3, true},
{ 0x17, "LE CTE Request Failed",
le_cte_request_failed_evt, 3, true},
- { 0x18, "LE Periodic Advertising Sync Transfer Received",
- le_pa_sync_trans_rec_evt, 19,
- true},
+ { BT_HCI_EVT_LE_PAST_RECEIVED,
+ "LE Periodic Advertising Sync Transfer Received",
+ le_past_received_evt, 19,
+ true},
{ BT_HCI_EVT_LE_CIS_ESTABLISHED,
"LE Connected Isochronous Stream Established",
le_cis_established_evt,