diff --git a/emulator/btdev.c b/emulator/btdev.c
index 1b3ad64..46d71d7 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
const struct bt_hci_le_scan_phy *lsp;
const struct bt_hci_cmd_le_set_ext_scan_enable *lsese;
const struct bt_hci_cmd_le_reject_cis *lrcis;
+ const struct bt_hci_cmd_le_remove_iso_path *lerip;
struct bt_hci_rsp_read_default_link_policy rdlp;
struct bt_hci_rsp_read_stored_link_key rslk;
struct bt_hci_rsp_write_stored_link_key wslk;
break;
+ case BT_HCI_CMD_LE_REMOVE_ISO_PATH:
+ if (btdev->type != BTDEV_TYPE_BREDRLE52)
+ goto unsupported;
+
+ lerip = data;
+ status = BT_HCI_ERR_SUCCESS;
+
+ if (!btdev->conn || le16_to_cpu(lerip->handle) != ISO_HANDLE)
+ status = BT_HCI_ERR_UNKNOWN_CONN_ID;
+
+ switch (lerip->direction) {
+ case 0x00:
+ btdev->le_iso_path[0] = 0x00;
+ break;
+ case 0x01:
+ btdev->le_iso_path[1] = 0x00;
+ break;
+ default:
+ status = BT_HCI_ERR_INVALID_PARAMETERS;
+ }
+
+ cmd_complete(btdev, opcode, &status, sizeof(status));
+ break;
+
case BT_HCI_CMD_LE_SET_HOST_FEATURE:
if (btdev->type != BTDEV_TYPE_BREDRLE52)
goto unsupported;
diff --git a/monitor/bt.h b/monitor/bt.h
index 39ca1e3..32ea10c 100644
--- a/monitor/bt.h
+++ b/monitor/bt.h
#define BT_HCI_BIT_LE_REMOVE_ISO_PATH BT_HCI_CMD_BIT(43, 4)
struct bt_hci_cmd_le_remove_iso_path {
uint16_t handle;
- uint8_t path_dir;
+ uint8_t direction;
} __attribute__ ((packed));
#define BT_HCI_CMD_LE_ISO_TX_TEST 0x2070
diff --git a/monitor/packet.c b/monitor/packet.c
index 777a522..5d8709c 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
const struct bt_hci_cmd_le_remove_iso_path *cmd = data;
print_field("Connection Handle: %d", le16_to_cpu(cmd->handle));
- print_iso_dir("Data Path Direction", cmd->path_dir);
+ print_iso_dir("Data Path Direction", cmd->direction);
}
static void le_req_peer_sca_cmd(const void *data, uint8_t size)