Skip to contentSkip to conversation

Bluetooth: enumerate local supported codec and cache details

PATCH Superseded Kiran K 3 participants 22 messages May 18, 2021 – Jun 8, 2021

Subsystems (2)

v8 of 15 Superseded Latest is v15 →

lore
Share & tools
lore

Kiran K

author
#0 lore raw

PATCH v8 1/9 Bluetooth: enumerate local supported codec and cache details

Move reading of supported local codecs into a separate init function, query codecs capabilities and cache the data

---
* changes in v8:
- add comments
- split __u8 codec_id[5] into {__u8 id; __le16 cid, vid }
- address review comment related codec caps structure

* changes in v7:
- keep codec enumeration call in hci_init instead of having a separate function
- Remove unused bitmasks defined for LE transports

* changes in v6:
- fix compiler warning reported for ARCH=arc

* changes in v5:
- fix review comments
- move code used to read standard/vendor codecs caps into single function

* changes in v4:
- convert reading of codecs and codecs caps calls from async to sync

* changes in v3
move codec enumeration into a new init function

* changes in v2
add skb length check before accessing data

 include/net/bluetooth/hci.h      |  41 +++++++
 include/net/bluetooth/hci_core.h |  17 +++
 net/bluetooth/hci_core.c         | 199 ++++++++++++++++++++++++++++++-
 3 files changed, 253 insertions(+), 4 deletions(-)
include/net/bluetooth/hci.h +41 -0
index c4b0650fb9ae..6cb9340a2d51 100644
@@ -1307,6 +1307,28 @@ struct hci_rp_read_data_block_size {
 } __packed;
 
 #define HCI_OP_READ_LOCAL_CODECS	0x100b
+struct hci_std_codecs {
+	__u8	num;
+	__u8	codec[];
+} __packed;
+
+struct hci_ven_codec {
+	/* company id */
+	__le16	cid;
+	/* vendor codec id */
+	__le16	vid;
+} __packed;
+
+struct hci_ven_codecs {
+	__u8	num;
+	struct hci_ven_codec codec[];
+} __packed;
+
+struct hci_rp_read_local_supported_codecs {
+	__u8	status;
+	struct hci_std_codecs std_codecs;
+	struct hci_ven_codecs ven_codecs;
+} __packed;
 
 #define HCI_OP_READ_LOCAL_PAIRING_OPTS	0x100c
 struct hci_rp_read_local_pairing_opts {
@@ -1315,6 +1337,25 @@ struct hci_rp_read_local_pairing_opts {
 	__u8     max_key_size;
 } __packed;
 
+#define HCI_OP_READ_LOCAL_CODEC_CAPS	0x100e
+struct hci_op_read_local_codec_caps {
+	__u8	id;
+	__le16	cid;
+	__le16	vid;
+	__u8	transport;
+	__u8	direction;
+} __packed;
+
+struct hci_codec_caps {
+	__u8	len;
+	__u8	data[];
+} __packed;
+
+struct hci_rp_read_local_codec_caps {
+	__u8	status;
+	__u8	num_caps;
+} __packed;
+
 #define HCI_OP_READ_PAGE_SCAN_ACTIVITY	0x0c1b
 struct hci_rp_read_page_scan_activity {
 	__u8     status;
include/net/bluetooth/hci_core.h +17 -0
index 43b08bebae74..cdc9580ff264 100644
@@ -131,6 +131,17 @@ struct bdaddr_list {
 	u8 bdaddr_type;
 };
 
+struct codec_list {
+	struct list_head list;
+	u8	id;
+	__le16	cid;
+	__le16	vid;
+	u8	transport;
+	u8	num_caps;
+	u32	len;
+	struct hci_codec_caps caps[];
+};
+
 struct bdaddr_list_with_irk {
 	struct list_head list;
 	bdaddr_t bdaddr;
@@ -535,6 +546,7 @@ struct hci_dev {
 	struct list_head	pend_le_conns;
 	struct list_head	pend_le_reports;
 	struct list_head	blocked_keys;
+	struct list_head	local_codecs;
 
 	struct hci_dev_stats	stat;
 
@@ -1849,4 +1861,9 @@ void hci_copy_identity_address(struct hci_dev *hdev, bdaddr_t *bdaddr,
 #define SCO_AIRMODE_CVSD       0x0000
 #define SCO_AIRMODE_TRANSP     0x0003
 
+#define LOCAL_CODEC_ACL_MASK	BIT(0)
+#define LOCAL_CODEC_SCO_MASK	BIT(1)
+
+#define TRANSPORT_TYPE_MAX	0x04
+
 #endif /* __HCI_CORE_H */
net/bluetooth/hci_core.c +195 -4

229 lines not on this page · raw message

Signature · 1 line
2.17.1
author
#1 lore raw

PATCH v8 2/9 Bluetooth: Add support for Read Local Supported Codecs V2

Use V2 version of read local supported command is controller supports

snoop:

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 20

      Read Local Supported Codecs V2 (0x04|0x000d) ncmd 1
        Status: Success (0x00)
        Number of supported codecs: 7
          Codec: u-law log (0x00)
          Logical Transport Type: 0x02
            Codec supported over BR/EDR SCO and eSCO
          Codec: A-law log (0x01)
          Logical Transport Type: 0x02
            Codec supported over BR/EDR SCO and eSCO
          Codec: CVSD (0x02)
          Logical Transport Type: 0x02
            Codec supported over BR/EDR SCO and eSCO
          Codec: Transparent (0x03)
          Logical Transport Type: 0x02
            Codec supported over BR/EDR SCO and eSCO
          Codec: Linear PCM (0x04)
          Logical Transport Type: 0x02
            Codec supported over BR/EDR SCO and eSCO
          Codec: Reserved (0x08)
          Logical Transport Type: 0x03
            Codec supported over BR/EDR ACL
            Codec supported over BR/EDR SCO and eSCO
          Codec: mSBC (0x05)
          Logical Transport Type: 0x03
            Codec supported over BR/EDR ACL
            Codec supported over BR/EDR SCO and eSCO
        Number of vendor codecs: 0
......
< HCI Command: Read Local Suppor.. (0x04|0x000e) plen 7
        Codec: mSBC (0x05)
        Logical Transport Type: 0x00
        Direction: Input (Host to Controller) (0x00)
Quoted 1 line

HCI Event: Command Complete (0x0e) plen 12

      Read Local Supported Codec Capabilities (0x04|0x000e) ncmd 1
        Status: Success (0x00)
        Number of codec capabilities: 1
         Capabilities #0:
        00 00 11 15 02 33

---
* changes in v8:
no changes

* changes in v7:
call codec enumeration code in hci_init instead of having it in a separate function

* changes in v6
no changes

* changes in v5:
fix review comments

* changes in v4:
converts codec read capabilities calls from async to sync

* changes in v3:
No changes

* changes in v2:
add length check for event data before accessing

 include/net/bluetooth/hci.h | 29 ++++++++++++++
 net/bluetooth/hci_core.c    | 78 ++++++++++++++++++++++++++++++++++++-
 2 files changed, 106 insertions(+), 1 deletion(-)
include/net/bluetooth/hci.h +29 -0
index 6cb9340a2d51..08508b3d13b4 100644
@@ -1337,6 +1337,35 @@ struct hci_rp_read_local_pairing_opts {
 	__u8     max_key_size;
 } __packed;
 
+#define HCI_OP_READ_LOCAL_CODECS_V2	0x100d
+struct hci_std_codec_v2 {
+	__u8	id;
+	__u8	transport;
+} __packed;
+
+struct hci_std_codecs_v2 {
+	__u8	num;
+	struct hci_std_codec_v2 codec[];
+} __packed;
+
+struct hci_ven_codec_v2 {
+	__u8	id;
+	__le16	cid;
+	__le16	vid;
+	__u8	transport;
+} __packed;
+
+struct hci_ven_codecs_v2 {
+	__u8	num;
+	struct hci_ven_codec_v2 codec[];
+} __packed;
+
+struct hci_rp_read_local_supported_codecs_v2 {
+	__u8	status;
+	struct hci_std_codecs_v2 std_codecs;
+	struct hci_ven_codecs_v2 vendor_codecs;
+} __packed;
+
 #define HCI_OP_READ_LOCAL_CODEC_CAPS	0x100e
 struct hci_op_read_local_codec_caps {
 	__u8	id;
net/bluetooth/hci_core.c +77 -1

96 lines not on this page · raw message

Signature · 1 line
2.17.1
maintainer
#2 lore raw

Re: [PATCH v8 2/9] Bluetooth: Add support for Read Local Supported Codecs V2

Hi Kiran,

Quoted 89 lines

Use V2 version of read local supported command is controller supports

snoop:

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 20

     Read Local Supported Codecs V2 (0x04|0x000d) ncmd 1
       Status: Success (0x00)
       Number of supported codecs: 7
         Codec: u-law log (0x00)
         Logical Transport Type: 0x02
           Codec supported over BR/EDR SCO and eSCO
         Codec: A-law log (0x01)
         Logical Transport Type: 0x02
           Codec supported over BR/EDR SCO and eSCO
         Codec: CVSD (0x02)
         Logical Transport Type: 0x02
           Codec supported over BR/EDR SCO and eSCO
         Codec: Transparent (0x03)
         Logical Transport Type: 0x02
           Codec supported over BR/EDR SCO and eSCO
         Codec: Linear PCM (0x04)
         Logical Transport Type: 0x02
           Codec supported over BR/EDR SCO and eSCO
         Codec: Reserved (0x08)
         Logical Transport Type: 0x03
           Codec supported over BR/EDR ACL
           Codec supported over BR/EDR SCO and eSCO
         Codec: mSBC (0x05)
         Logical Transport Type: 0x03
           Codec supported over BR/EDR ACL
           Codec supported over BR/EDR SCO and eSCO
       Number of vendor codecs: 0
......
< HCI Command: Read Local Suppor.. (0x04|0x000e) plen 7
       Codec: mSBC (0x05)
       Logical Transport Type: 0x00
       Direction: Input (Host to Controller) (0x00)
Quoted 1 line

HCI Event: Command Complete (0x0e) plen 12

     Read Local Supported Codec Capabilities (0x04|0x000e) ncmd 1
       Status: Success (0x00)
       Number of codec capabilities: 1
        Capabilities #0:
       00 00 11 15 02 33

---
* changes in v8:
no changes

* changes in v7:
call codec enumeration code in hci_init instead of having it in a separate function

* changes in v6
no changes

* changes in v5:
fix review comments

* changes in v4:
converts codec read capabilities calls from async to sync

* changes in v3:
No changes

* changes in v2:
add length check for event data before accessing

include/net/bluetooth/hci.h | 29 ++++++++++++++
net/bluetooth/hci_core.c | 78 ++++++++++++++++++++++++++++++++++++-

2 files changed, 106 insertions(+), 1 deletion(-)
include/net/bluetooth/hci.h +7 -0
index 6cb9340a2d51..08508b3d13b4 100644
@@ -1337,6 +1337,35 @@ struct hci_rp_read_local_pairing_opts {
 	__u8     max_key_size;
 } __packed;
 
+#define HCI_OP_READ_LOCAL_CODECS_V2	0x100d
+struct hci_std_codec_v2 {
+	__u8	id;
+	__u8	transport;
+} __packed;
+
+struct hci_std_codecs_v2 {

include/net/bluetooth/hci.h struct hci_rp_read_local_pairing_opts { · line 1356

Quoted 10 lines
include/net/bluetooth/hci.h +10 -0
+	__u8	num;
+	struct hci_std_codec_v2 codec[];
+} __packed;
+
+struct hci_ven_codec_v2 {
+	__u8	id;
+	__le16	cid;
+	__le16	vid;
+	__u8	transport;
+} __packed;

See comment from previous patch.

Regards

Marcel

author
#3 lore raw

PATCH v8 3/9 Bluetooth: btintel: Add a quirk for hfp offload usecase

In reply to Kiran K

Define a quirk to identify if intel controllers supports offload for HFP. In *setup* function, driver sends vendor specific command to check if controller supports offload. If offload is supports then quirk flag is set

---
 drivers/bluetooth/btintel.c | 28 ++++++++++++++++++++++++++++
 drivers/bluetooth/btintel.h |  5 +++++
 drivers/bluetooth/btusb.c   |  2 ++
 include/net/bluetooth/hci.h |  7 +++++++
 4 files changed, 42 insertions(+)
drivers/bluetooth/btintel.c +28 -0
index e44b6993cf91..e3ad19244054 100644
@@ -32,6 +32,11 @@ struct cmd_write_boot_params {
 	u8  fw_build_yy;
 } __packed;
 
+struct intel_offload_usecases {
+	__u8	status;
+	__u8	preset[8];
+} __packed;
+
 int btintel_check_bdaddr(struct hci_dev *hdev)
 {
 	struct hci_rp_read_bd_addr *bda;
@@ -1272,6 +1277,29 @@ int btintel_set_debug_features(struct hci_dev *hdev,
 }
 EXPORT_SYMBOL_GPL(btintel_set_debug_features);
 
+int btintel_read_offload_usecases(struct hci_dev *hdev)
+{
+	struct sk_buff *skb;
+	struct intel_offload_usecases *usecases;
+
+	skb = __hci_cmd_sync(hdev, 0xfc86, 0, NULL, HCI_INIT_TIMEOUT);
+	if (IS_ERR(skb)) {
+		bt_dev_err(hdev, "Reading offload usecases failed (%ld)",
+			   PTR_ERR(skb));
+		return PTR_ERR(skb);
+	}
+	usecases = (void *)skb->data;
+	if (usecases->status)
+		goto error;
+
+	if (usecases->preset[0] & 0x03)
+		set_bit(HCI_QUIRK_HFP_OFFLOAD_CODECS_SUPPORTED, &hdev->quirks);
+error:
+	kfree_skb(skb);
+	return 0;
+}
+EXPORT_SYMBOL_GPL(btintel_read_offload_usecases);
+
 MODULE_AUTHOR("Marcel Holtmann <[email protected]>");
 MODULE_DESCRIPTION("Bluetooth support for Intel devices ver " VERSION);
 MODULE_VERSION(VERSION);
drivers/bluetooth/btintel.h +5 -0
index d184064a5e7c..d561d4899b1b 100644
@@ -175,6 +175,7 @@ int btintel_read_debug_features(struct hci_dev *hdev,
 				struct intel_debug_features *features);
 int btintel_set_debug_features(struct hci_dev *hdev,
 			       const struct intel_debug_features *features);
+int btintel_read_offload_usecases(struct hci_dev *hdev);
 #else
 
 static inline int btintel_check_bdaddr(struct hci_dev *hdev)
@@ -307,4 +308,8 @@ static inline int btintel_set_debug_features(struct hci_dev *hdev,
 	return -EOPNOTSUPP;
 }
 
+static int btintel_read_offload_usecases(struct hci_dev *hdev)
+{
+	return -EOPNOTSUPP;
+}
 #endif
drivers/bluetooth/btusb.c +2 -0
index 5245714dc6d0..ac245df5fa18 100644
@@ -2993,6 +2993,8 @@ static int btusb_setup_intel_newgen(struct hci_dev *hdev)
 	/* Set DDC mask for available debug features */
 	btintel_set_debug_features(hdev, &features);
 
+	btintel_read_offload_usecases(hdev);
+
 	/* Read the Intel version information after loading the FW  */
 	err = btintel_read_version_tlv(hdev, &version);
 	if (err)
include/net/bluetooth/hci.h +7 -0
index 08508b3d13b4..731d48ca873a 100644
@@ -246,6 +246,13 @@ enum {
 	 * HCI after resume.
 	 */
 	HCI_QUIRK_NO_SUSPEND_NOTIFIER,
+
+	/* When this quirk is set, then controller supports offload codecs
+	 * for HFP.
+	 * This quirk can be set before hci_register_dev is called or
+	 * during the hdev->setup vendor callback.
+	 */
+	HCI_QUIRK_HFP_OFFLOAD_CODECS_SUPPORTED,
 };
 
 /* HCI device flags */
Signature · 1 line
2.17.1
maintainer
#4 lore raw

Re: [PATCH v8 3/9] Bluetooth: btintel: Add a quirk for hfp offload usecase

Hi Kiran,

Quoted 8 lines

Define a quirk to identify if intel controllers supports offload for HFP. In *setup* function, driver sends vendor specific command to check if controller supports offload. If offload is supports then quirk flag is set

Quoted 6 lines

---

drivers/bluetooth/btintel.c | 28 ++++++++++++++++++++++++++++
drivers/bluetooth/btintel.h |  5 +++++
drivers/bluetooth/btusb.c   |  2 ++
include/net/bluetooth/hci.h |  7 +++++++
4 files changed, 42 insertions(+)

I dislike mixing driver changes with core changes. So first please introduce a core feature or a quirk and then use it in the driver in a separate patch.

Regards

Marcel

author
#5 lore raw

PATCH v8 4/9 Bluetooth: btitnel: Add a callback function to retireve data path

In reply to Kiran K

There is no standard HCI command to retrieve data path for transport. Add a new callback function to retrieve data path which is used in offload usecase.

---

This callback gets called when audio module queries codecs suppoted on SCO socket. For Intel controllers, data_path is always 1

 drivers/bluetooth/btintel.c      | 8 ++++++++
 drivers/bluetooth/btintel.h      | 6 ++++++
 drivers/bluetooth/btusb.c        | 1 +
 include/net/bluetooth/hci_core.h | 1 +
 4 files changed, 16 insertions(+)
drivers/bluetooth/btintel.c +8 -0
index e3ad19244054..8407e9736c62 100644
@@ -1300,6 +1300,14 @@ int btintel_read_offload_usecases(struct hci_dev *hdev)
 }
 EXPORT_SYMBOL_GPL(btintel_read_offload_usecases);
 
+int btintel_get_data_path_id(struct hci_dev *hdev)
+{
+	if (!test_bit(HCI_QUIRK_HFP_OFFLOAD_CODECS_SUPPORTED, &hdev->quirks))
+		return -EOPNOTSUPP;
+	return 1;
+}
+EXPORT_SYMBOL_GPL(btintel_get_data_path_id);
+
 MODULE_AUTHOR("Marcel Holtmann <[email protected]>");
 MODULE_DESCRIPTION("Bluetooth support for Intel devices ver " VERSION);
 MODULE_VERSION(VERSION);
drivers/bluetooth/btintel.h +6 -0
index d561d4899b1b..6d4edfd16d44 100644
@@ -176,6 +176,7 @@ int btintel_read_debug_features(struct hci_dev *hdev,
 int btintel_set_debug_features(struct hci_dev *hdev,
 			       const struct intel_debug_features *features);
 int btintel_read_offload_usecases(struct hci_dev *hdev);
+int btintel_get_data_path_id(struct hci_dev *hdev);
 #else
 
 static inline int btintel_check_bdaddr(struct hci_dev *hdev)
@@ -312,4 +313,9 @@ static int btintel_read_offload_usecases(struct hci_dev *hdev)
 {
 	return -EOPNOTSUPP;
 }
+
+static int btintel_get_data_path_id(struct hci_dev *hdev)
+{
+	return -EOPNOTSUPP;
+}
 #endif
drivers/bluetooth/btusb.c +1 -0
index ac245df5fa18..f7b349db392a 100644
@@ -4631,6 +4631,7 @@ static int btusb_probe(struct usb_interface *intf,
 		hdev->set_diag = btintel_set_diag;
 		hdev->set_bdaddr = btintel_set_bdaddr;
 		hdev->cmd_timeout = btusb_intel_cmd_timeout;
+		hdev->get_data_path_id = btintel_get_data_path_id;
 		set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
 		set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks);
 		set_bit(HCI_QUIRK_NON_PERSISTENT_DIAG, &hdev->quirks);
include/net/bluetooth/hci_core.h +1 -0
index cdc9580ff264..78d1ebab58f6 100644
@@ -617,6 +617,7 @@ struct hci_dev {
 	int (*set_bdaddr)(struct hci_dev *hdev, const bdaddr_t *bdaddr);
 	void (*cmd_timeout)(struct hci_dev *hdev);
 	bool (*prevent_wake)(struct hci_dev *hdev);
+	int (*get_data_path_id)(struct hci_dev *hdev);
 };
 
 #define HCI_PHY_HANDLE(handle)	(handle & 0xff)
Signature · 1 line
2.17.1
maintainer
#6 lore raw

Re: [PATCH v8 4/9] Bluetooth: btitnel: Add a callback function to retireve data path

Hi Kiran,

Quoted 24 lines

There is no standard HCI command to retrieve data path for transport. Add a new callback function to retrieve data path which is used in offload usecase.

---

This callback gets called when audio module queries codecs suppoted on SCO socket. For Intel controllers, data_path is always 1

drivers/bluetooth/btintel.c      | 8 ++++++++
drivers/bluetooth/btintel.h      | 6 ++++++
drivers/bluetooth/btusb.c        | 1 +
include/net/bluetooth/hci_core.h | 1 +
4 files changed, 16 insertions(+)
drivers/bluetooth/btintel.c +0 -0
index e3ad19244054..8407e9736c62 100644
@@ -1300,6 +1300,14 @@ int btintel_read_offload_usecases(struct hci_dev *hdev)
 }

drivers/bluetooth/btintel.c int btintel_read_offload_usecases(struct hci_dev *hdev) · line 1310

Quoted 10 lines
drivers/bluetooth/btintel.c +8 -0
 EXPORT_SYMBOL_GPL(btintel_read_offload_usecases);
 
+int btintel_get_data_path_id(struct hci_dev *hdev)
+{
+	if (!test_bit(HCI_QUIRK_HFP_OFFLOAD_CODECS_SUPPORTED, &hdev->quirks))
+		return -EOPNOTSUPP;
+	return 1;
+}
+EXPORT_SYMBOL_GPL(btintel_get_data_path_id);
+

actually lets not do it this way. Only set the get_data_path_id callback if offloading is supported and with that we don’t actually need to quirk either. If it is set, we know that we can offload.

Regards

Marcel

author
#7 lore raw

RE: [PATCH v8 4/9] Bluetooth: btitnel: Add a callback function to retireve data path

Hi Marcel,

Quoted 19 lines
Quoted 14 lines

This callback gets called when audio module queries codecs suppoted on SCO socket. For Intel controllers, data_path is always 1

drivers/bluetooth/btintel.c      | 8 ++++++++
drivers/bluetooth/btintel.h      | 6 ++++++
drivers/bluetooth/btusb.c        | 1 +
include/net/bluetooth/hci_core.h | 1 +
4 files changed, 16 insertions(+)
drivers/bluetooth/btintel.c +0 -0
index e3ad19244054..8407e9736c62 100644

drivers/bluetooth/btintel.c int btintel_read_offload_usecases(struct · line 1303

Quoted 4 lines
drivers/bluetooth/btintel.c +2 -0
@@ -1300,6 +1300,14 @@ int btintel_read_offload_usecases(struct
 hci_dev *hdev) } EXPORT_SYMBOL_GPL(btintel_read_offload_usecases);
 
+int btintel_get_data_path_id(struct hci_dev *hdev) {
+	if (!test_bit(HCI_QUIRK_HFP_OFFLOAD_CODECS_SUPPORTED,

&hdev->quirks))

Quoted 10 lines

drivers/bluetooth/btintel.c int btintel_read_offload_usecases(struct hci_dev *hdev) · line 1310

Quoted 5 lines
drivers/bluetooth/btintel.c +5 -0
+		return -EOPNOTSUPP;
+	return 1;
+}
+EXPORT_SYMBOL_GPL(btintel_get_data_path_id);
+

actually lets not do it this way. Only set the get_data_path_id callback if offloading is supported and with that we don’t actually need to quirk either. If it is set, we know that we can offload.

Ack.

Thanks,
Kiran

author
#8 lore raw

PATCH v8 5/9 Bluetooth: Add BT_CODEC option for getsockopt for SCO socket

In reply to Kiran K

Add BT_CODEC option for getsockopt systemcall over SCO socket to expose the codecs supported by controller

---
 include/net/bluetooth/bluetooth.h |  20 ++++++
 include/net/bluetooth/hci.h       |   4 ++
 net/bluetooth/sco.c               | 109 ++++++++++++++++++++++++++++++
 3 files changed, 133 insertions(+)
include/net/bluetooth/bluetooth.h +20 -0
index 9125effbf448..1840756958ce 100644
@@ -153,6 +153,26 @@ struct bt_voice {
 
 #define BT_SCM_PKT_STATUS	0x03
 
+#define BT_CODEC	19
+
+struct	bt_codec_caps {
+	__u8	len;
+	__u8	data[];
+} __packed;
+
+struct bt_codec {
+	__u8	id;
+	__le16	cid;
+	__le16	vid;
+	__u8	data_path;
+	__u8	num_caps;
+} __packed;
+
+struct bt_codecs {
+	__u8		num_codecs;
+	struct bt_codec	codecs[];
+} __packed;
+
 __printf(1, 2)
 void bt_info(const char *fmt, ...);
 __printf(1, 2)
include/net/bluetooth/hci.h +4 -0
index 731d48ca873a..9658600ae5de 100644
@@ -2626,6 +2626,10 @@ static inline struct hci_sco_hdr *hci_sco_hdr(const struct sk_buff *skb)
 #define hci_iso_data_len(h)		((h) & 0x3fff)
 #define hci_iso_data_flags(h)		((h) >> 14)
 
+/* codec transport types */
+#define TRANSPORT_BREDR		0x00
+#define TRANSPORT_SCO_ESCO	0x01
+
 /* le24 support */
 static inline void hci_cpu_to_le24(__u32 val, __u8 dst[3])
 {
net/bluetooth/sco.c +109 -0

121 lines not on this page · raw message

Signature · 1 line
2.17.1
maintainer
#9 lore raw

Re: [PATCH v8 5/9] Bluetooth: Add BT_CODEC option for getsockopt for SCO socket

Hi Kiran,

Quoted 30 lines

Add BT_CODEC option for getsockopt systemcall over SCO socket to expose the codecs supported by controller

---

include/net/bluetooth/bluetooth.h |  20 ++++++
include/net/bluetooth/hci.h       |   4 ++
net/bluetooth/sco.c               | 109 ++++++++++++++++++++++++++++++
3 files changed, 133 insertions(+)
include/net/bluetooth/bluetooth.h +10 -0
index 9125effbf448..1840756958ce 100644
@@ -153,6 +153,26 @@ struct bt_voice {
 
 #define BT_SCM_PKT_STATUS	0x03
 
+#define BT_CODEC	19
+
+struct	bt_codec_caps {
+	__u8	len;
+	__u8	data[];
+} __packed;
+
+struct bt_codec {
+	__u8	id;
+	__le16	cid;

include/net/bluetooth/bluetooth.h struct bt_voice { · line 175

Quoted 10 lines
include/net/bluetooth/bluetooth.h +10 -0
+	__le16	vid;
+	__u8	data_path;
+	__u8	num_caps;
+} __packed;
+
+struct bt_codecs {
+	__u8		num_codecs;
+	struct bt_codec	codecs[];
+} __packed;
+

what is encapsulating what here?

Quoted 8 lines
include/net/bluetooth/bluetooth.h +0 -0
 __printf(1, 2)
 void bt_info(const char *fmt, ...);
 __printf(1, 2)
include/net/bluetooth/hci.h +0 -0
index 731d48ca873a..9658600ae5de 100644

include/net/bluetooth/hci.h static inline struct hci_sco_hdr *hci_sco_hdr(const struct sk_buff *skb) · line 2632

Quoted 7 lines
include/net/bluetooth/hci.h +4 -0
@@ -2626,6 +2626,10 @@ static inline struct hci_sco_hdr *hci_sco_hdr(const struct sk_buff *skb)
 #define hci_iso_data_len(h)		((h) & 0x3fff)
 #define hci_iso_data_flags(h)		((h) >> 14)
 
+/* codec transport types */
+#define TRANSPORT_BREDR		0x00
+#define TRANSPORT_SCO_ESCO	0x01
+

This is confusing. SCO_ESCO is also BREDR.

Quoted 20 lines
include/net/bluetooth/hci.h +0 -0
 /* le24 support */
 static inline void hci_cpu_to_le24(__u32 val, __u8 dst[3])
 {
net/bluetooth/sco.c +5 -0
index 3bd41563f118..d66293d1cba4 100644
@@ -948,6 +948,11 @@ static int sco_sock_getsockopt(struct socket *sock, int level, int optname,
 	struct bt_voice voice;
 	u32 phys;
 	int pkt_status;
+	struct codec_list *c;
+	u8 num_codecs, i, __user *ptr;
+	struct hci_dev *hdev;
+	struct hci_codec_caps *caps;
+	__u8	data_path;
 
 	BT_DBG("sk %p", sk);
 

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket *sock, int level, int optname, · line 1025

Quoted 9 lines
net/bluetooth/sco.c +6 -0
@@ -1012,6 +1017,110 @@ static int sco_sock_getsockopt(struct socket *sock, int level, int optname,
 			err = -EFAULT;
 		break;
 
+	case BT_CODEC:
+		num_codecs = 0;
+		len = 0;
+
+		hdev = hci_get_route(&sco_pi(sk)->dst, &sco_pi(sk)->src, BDADDR_BREDR);
+

Remove extra empty line.

Quoted 4 lines
net/bluetooth/sco.c +4 -0
+		if (!hdev) {
+			err = -EBADFD;
+			break;
+		}

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket *sock, int level, int optname, · line 1039

Quoted 10 lines
net/bluetooth/sco.c +10 -0
+
+		if (!test_bit(HCI_QUIRK_HFP_OFFLOAD_CODECS_SUPPORTED, &hdev->quirks)) {
+			err = -EOPNOTSUPP;
+			break;
+		}
+
+		if (!hdev->get_data_path_id) {
+			err = -EOPNOTSUPP;
+			break;
+		}

See it is pointless to check a quirk, you can use the callback for it.

Quoted 7 lines
net/bluetooth/sco.c +7 -0
+
+		hci_dev_lock(hdev);
+		list_for_each_entry(c, &hdev->local_codecs, list) {
+			if (c->transport != TRANSPORT_SCO_ESCO)
+				continue;
+			num_codecs++;
+			for (i = 0, caps = c->caps; i < c->num_caps; i++) {

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket *sock, int level, int optname, · line 1056

Quoted 10 lines
net/bluetooth/sco.c +10 -0
+				len += 1 + caps->len;
+				caps = (void *)&caps->data[caps->len];
+			}
+			len += sizeof(struct bt_codec);
+		}
+		hci_dev_unlock(hdev);
+
+		if (len > 255) {
+			err = -ENOMEM;
+			break;

I think this is the wrong error code. You need to indicate that size is wrong. ENOMEM really means that memory allocation failed.

Quoted 60 lines
net/bluetooth/sco.c +60 -0
+		}
+
+		ptr = optval;
+		if (put_user(num_codecs, ptr)) {
+			err = -EFAULT;
+			break;
+		}
+		ptr += sizeof(num_codecs);
+
+		hci_dev_lock(hdev);
+		list_for_each_entry(c, &hdev->local_codecs, list) {
+			if (c->transport != TRANSPORT_SCO_ESCO)
+				continue;
+
+			if (put_user(c->id, ptr)) {
+				err = -EFAULT;
+				goto unlock;
+			}
+			ptr += sizeof(c->id);
+
+			if (put_user(c->cid, ptr)) {
+				err = -EFAULT;
+				goto unlock;
+			}
+			ptr += sizeof(c->cid);
+
+			if (put_user(c->vid, ptr)) {
+				err = -EFAULT;
+				goto unlock;
+			}
+			ptr += sizeof(c->vid);
+
+			err = hdev->get_data_path_id(hdev);
+			if (err < 0) {
+				err = -EFAULT;
+				goto unlock;
+			}
+			data_path = (__u8)err;
+			if (put_user(data_path, ptr)) {
+				err = -EFAULT;
+				goto unlock;
+			}
+			ptr += sizeof(data_path);
+
+			if (put_user(c->num_caps, ptr)) {
+				err = -EFAULT;
+				goto unlock;
+			}
+			ptr += sizeof(c->num_caps);
+
+			len = 0;
+			for (i = 0, caps = c->caps; i < c->num_caps; i++) {
+				len += 1 + caps->len;
+				caps = (void *)&caps->data[caps->len];
+			}
+
+			if (len && copy_to_user(ptr, c->caps, len)) {
+				err = -EFAULT;
+				goto unlock;
+			}

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket *sock, int level, int optname, · line 1126

Quoted 10 lines
net/bluetooth/sco.c +7 -0
+			ptr += len;
+		}
+unlock:
+		hci_dev_unlock(hdev);
+
+		break;
+
 	default:
 		err = -ENOPROTOOPT;
 		break;

Regards

Marcel

author
#10 lore raw

RE: [PATCH v8 5/9] Bluetooth: Add BT_CODEC option for getsockopt for SCO socket

Hi Marcel,

Quoted 17 lines
Quoted 17 lines

#define BT_SCM_PKT_STATUS 0x03

include/net/bluetooth/bluetooth.h +14 -0
+#define BT_CODEC	19
+
+struct	bt_codec_caps {
+	__u8	len;
+	__u8	data[];
+} __packed;
+
+struct bt_codec {
+	__u8	id;
+	__le16	cid;
+	__le16	vid;
+	__u8	data_path;
+	__u8	num_caps;
+} __packed;
Quoted 8 lines

include/net/bluetooth/bluetooth.h struct bt_voice { · line 175

Quoted 6 lines
include/net/bluetooth/bluetooth.h +6 -0
+
+struct bt_codecs {
+	__u8		num_codecs;
+	struct bt_codec	codecs[];
+} __packed;
+

what is encapsulating what here?

bt_codec encapsulates caps.
bt_codecs is aggregation of bt_codec.

Quoted 13 lines

include/net/bluetooth/hci.h static inline struct hci_sco_hdr

Quoted 9 lines

__printf(1, 2)
void bt_info(const char *fmt, ...);
__printf(1, 2)

include/net/bluetooth/hci.h +0 -0
index 731d48ca873a..9658600ae5de 100644
@@ -2626,6 +2626,10 @@ static inline struct hci_sco_hdr

*hci_sco_hdr(const struct sk_buff *skb)

Quoted 3 lines
include/net/bluetooth/hci.h +0 -0
 #define hci_iso_data_len(h)		((h) & 0x3fff)
 #define hci_iso_data_flags(h)		((h) >> 14)
 
Quoted 6 lines

include/net/bluetooth/hci.h static inline struct hci_sco_hdr *hci_sco_hdr(const struct sk_buff *skb) · line 2632

Quoted 4 lines
include/net/bluetooth/hci.h +4 -0
+/* codec transport types */
+#define TRANSPORT_BREDR		0x00
+#define TRANSPORT_SCO_ESCO	0x01
+

This is confusing. SCO_ESCO is also BREDR.

Ack. I will remove the suffix BREDR.

Quoted 25 lines

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket *sock,

Quoted 8 lines
include/net/bluetooth/hci.h +0 -0
 /* le24 support */

static inline void hci_cpu_to_le24(__u32 val, __u8 dst[3]) { diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c index 3bd41563f118..d66293d1cba4 100644

net/bluetooth/sco.c +0 -0
@@ -948,6 +948,11 @@ static int sco_sock_getsockopt(struct socket *sock,

int level, int optname,

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket

Quoted 12 lines
net/bluetooth/sco.c +5 -0
 	struct bt_voice voice;
 	u32 phys;
 	int pkt_status;
+	struct codec_list *c;
+	u8 num_codecs, i, __user *ptr;
+	struct hci_dev *hdev;
+	struct hci_codec_caps *caps;
+	__u8	data_path;
 
 	BT_DBG("sk %p", sk);
 
@@ -1012,6 +1017,110 @@ static int sco_sock_getsockopt(struct socket

*sock, int level, int optname,

Quoted 3 lines
net/bluetooth/sco.c +0 -0
 			err = -EFAULT;
 		break;
 
Quoted 9 lines

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket *sock, int level, int optname, · line 1025

Quoted 7 lines
net/bluetooth/sco.c +7 -0
+	case BT_CODEC:
+		num_codecs = 0;
+		len = 0;
+
+		hdev = hci_get_route(&sco_pi(sk)->dst, &sco_pi(sk)->src,
+BDADDR_BREDR);
+

Remove extra empty line.

Ack

Quoted 9 lines

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket *sock, int level, int optname,

Quoted 7 lines
net/bluetooth/sco.c +6 -0
+		if (!hdev) {
+			err = -EBADFD;
+			break;
+		}
+
+		if

(!test_bit(HCI_QUIRK_HFP_OFFLOAD_CODECS_SUPPORTED, &hdev->quirks)) {

Quoted 11 lines

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket *sock, int level, int optname, · line 1039

Quoted 8 lines
net/bluetooth/sco.c +8 -0
+			err = -EOPNOTSUPP;
+			break;
+		}
+
+		if (!hdev->get_data_path_id) {
+			err = -EOPNOTSUPP;
+			break;
+		}

See it is pointless to check a quirk, you can use the callback for it.

Ack

Quoted 12 lines
Quoted 12 lines
net/bluetooth/sco.c +12 -0
+
+		hci_dev_lock(hdev);
+		list_for_each_entry(c, &hdev->local_codecs, list) {
+			if (c->transport != TRANSPORT_SCO_ESCO)
+				continue;
+			num_codecs++;
+			for (i = 0, caps = c->caps; i < c->num_caps; i++) {
+				len += 1 + caps->len;
+				caps = (void *)&caps->data[caps->len];
+			}
+			len += sizeof(struct bt_codec);
+		}
Quoted 8 lines

net/bluetooth/sco.c static int sco_sock_getsockopt(struct socket *sock, int level, int optname, · line 1056

Quoted 5 lines
net/bluetooth/sco.c +5 -0
+		hci_dev_unlock(hdev);
+
+		if (len > 255) {
+			err = -ENOMEM;
+			break;

I think this is the wrong error code. You need to indicate that size is wrong. ENOMEM really means that memory allocation failed.

I will change error code to ENOBUFS

Quoted 1 line

Thanks,
Kiran

author
#11 lore raw

PATCH v8 6/9 Bluetooth: btintel: Add a callback function to configure data path

In reply to Kiran K

In HFP offload usecase, Intel controllers require offload use case id (NBS or WBS) to be set before opening SCO connection. Define a new callback which gets called on setsockopt SCO socket. User space audio module is expected to set codec via setsockopt(sk, BT_CODEC, ....) before opening SCO connection.

---

This callback gets called when audio module does setsockopt(sk, BT_CODEC,...) on SCO socket and data_path is 1 (non-HCI transport). For non-HCI transport, Intel controller expects presets to be set before opening SCO connection. Presets are pre-defined, 0 - NBS, 1 - WBS. Likewise additional presets will be defined for A2DP, LE Audio offload use cases.

 drivers/bluetooth/btintel.c      | 50 ++++++++++++++++++++++++++++++++
 drivers/bluetooth/btintel.h      |  8 +++++
 drivers/bluetooth/btusb.c        |  1 +
 include/net/bluetooth/hci.h      |  8 +++++
 include/net/bluetooth/hci_core.h |  2 ++
 5 files changed, 69 insertions(+)
drivers/bluetooth/btintel.c +50 -0
index 8407e9736c62..8efb15504973 100644
@@ -1308,6 +1308,56 @@ int btintel_get_data_path_id(struct hci_dev *hdev)
 }
 EXPORT_SYMBOL_GPL(btintel_get_data_path_id);
 
+int btintel_configure_data_path(struct hci_dev *hdev, __u8 type,
+				struct bt_codec *codec)
+{
+	__u8 preset;
+	struct hci_op_configure_data_path *cmd;
+	__u8 buffer[255];
+	struct sk_buff *skb;
+
+	if (type != SCO_LINK && type != ESCO_LINK)
+		return -EINVAL;
+
+	switch (codec->id) {
+	case 0x02:
+		preset = 0x00;
+	break;
+	case 0x05:
+		preset = 0x01;
+	break;
+	default:
+		return -EINVAL;
+	}
+
+	cmd = (void *)buffer;
+	cmd->data_path_id = 0x01;
+	cmd->len = 1;
+	cmd->data[0] = preset;
+
+	cmd->direction = 0x00;
+	skb = __hci_cmd_sync(hdev, HCI_CONFIGURE_DATA_PATH, sizeof(*cmd) + 1,
+			     cmd, HCI_INIT_TIMEOUT);
+	if (IS_ERR(skb)) {
+		bt_dev_err(hdev, "configure input data path failed (%ld)",
+			   PTR_ERR(skb));
+		return PTR_ERR(skb);
+	}
+	kfree_skb(skb);
+
+	cmd->direction = 0x01;
+	skb = __hci_cmd_sync(hdev, HCI_CONFIGURE_DATA_PATH, sizeof(*cmd) + 1,
+			     cmd, HCI_INIT_TIMEOUT);
+	if (IS_ERR(skb)) {
+		bt_dev_err(hdev, "configure output data path failed (%ld)",
+			   PTR_ERR(skb));
+		return PTR_ERR(skb);
+	}
+	kfree_skb(skb);
+	return 0;
+}
+EXPORT_SYMBOL_GPL(btintel_configure_data_path);
+
 MODULE_AUTHOR("Marcel Holtmann <[email protected]>");
 MODULE_DESCRIPTION("Bluetooth support for Intel devices ver " VERSION);
 MODULE_VERSION(VERSION);
drivers/bluetooth/btintel.h +8 -0
index 6d4edfd16d44..f4af22ecdc0d 100644
@@ -177,6 +177,8 @@ int btintel_set_debug_features(struct hci_dev *hdev,
 			       const struct intel_debug_features *features);
 int btintel_read_offload_usecases(struct hci_dev *hdev);
 int btintel_get_data_path_id(struct hci_dev *hdev);
+int btintel_configure_data_path(struct hci_dev *hdev, __u8 type,
+				struct bt_codec *codec);
 #else
 
 static inline int btintel_check_bdaddr(struct hci_dev *hdev)
@@ -318,4 +320,10 @@ static int btintel_get_data_path_id(struct hci_dev *hdev)
 {
 	return -EOPNOTSUPP;
 }
+
+static int btintel_configure_data_path(struct hci_dev *hdev, __u8 type,
+				       struct bt_codec *codec)
+{
+	return -EOPNOTSUPP;
+}
 #endif
drivers/bluetooth/btusb.c +1 -0
index f7b349db392a..220e7c85db10 100644
@@ -4632,6 +4632,7 @@ static int btusb_probe(struct usb_interface *intf,
 		hdev->set_bdaddr = btintel_set_bdaddr;
 		hdev->cmd_timeout = btusb_intel_cmd_timeout;
 		hdev->get_data_path_id = btintel_get_data_path_id;
+		hdev->configure_data_path = btintel_configure_data_path;
 		set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
 		set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks);
 		set_bit(HCI_QUIRK_NON_PERSISTENT_DIAG, &hdev->quirks);
include/net/bluetooth/hci.h +8 -0
index 9658600ae5de..bd666b114aea 100644
@@ -1257,6 +1257,14 @@ struct hci_rp_read_local_oob_ext_data {
 	__u8     rand256[16];
 } __packed;
 
+#define HCI_CONFIGURE_DATA_PATH	0x0c83
+struct hci_op_configure_data_path {
+	__u8	direction;
+	__u8	data_path_id;
+	__u8	len;
+	__u8	data[];
+} __packed;
+
 #define HCI_OP_READ_LOCAL_VERSION	0x1001
 struct hci_rp_read_local_version {
 	__u8     status;
include/net/bluetooth/hci_core.h +2 -0
index 78d1ebab58f6..959585bafa8d 100644
@@ -618,6 +618,8 @@ struct hci_dev {
 	void (*cmd_timeout)(struct hci_dev *hdev);
 	bool (*prevent_wake)(struct hci_dev *hdev);
 	int (*get_data_path_id)(struct hci_dev *hdev);
+	int (*configure_data_path)(struct hci_dev *hdev, __u8 type,
+				   struct bt_codec *codec);
 };
 
 #define HCI_PHY_HANDLE(handle)	(handle & 0xff)
Signature · 1 line
2.17.1
maintainer
#12 lore raw

Re: [PATCH v8 6/9] Bluetooth: btintel: Add a callback function to configure data path

Hi Kiran,

Quoted 17 lines

In HFP offload usecase, Intel controllers require offload use case id (NBS or WBS) to be set before opening SCO connection. Define a new callback which gets called on setsockopt SCO socket. User space audio module is expected to set codec via setsockopt(sk, BT_CODEC, ....) before opening SCO connection.

---

This callback gets called when audio module does setsockopt(sk, BT_CODEC,...) on SCO socket and data_path is 1 (non-HCI transport). For non-HCI transport, Intel controller expects presets to be set before opening SCO connection. Presets are pre-defined, 0 - NBS, 1 - WBS. Likewise additional presets will be defined for A2DP, LE Audio offload use cases.

Quoted 6 lines
drivers/bluetooth/btintel.c      | 50 ++++++++++++++++++++++++++++++++
drivers/bluetooth/btintel.h      |  8 +++++
drivers/bluetooth/btusb.c        |  1 +
include/net/bluetooth/hci.h      |  8 +++++
include/net/bluetooth/hci_core.h |  2 ++
5 files changed, 69 insertions(+)

same thing here. Please introduce the callbacks as one patch and then in a separate patch, you start using them in a driver.

Regards

Marcel

author
#13 lore raw

PATCH v8 7/9 Bluetooth: Add BT_CODEC option for setsockopt over SCO

In reply to Kiran K

Add BT_CODEC option on setsockopt system call to allow user space audio modules to set codec. Driver also configures codec if non-HCI data is selected.

---
 include/net/bluetooth/bluetooth.h |  2 +
 net/bluetooth/sco.c               | 63 +++++++++++++++++++++++++++++++
 2 files changed, 65 insertions(+)
include/net/bluetooth/bluetooth.h +2 -0
index 1840756958ce..0e8802d09068 100644
@@ -173,6 +173,8 @@ struct bt_codecs {
 	struct bt_codec	codecs[];
 } __packed;
 
+#define CODING_FORMAT_CVSD	0x02
+
 __printf(1, 2)
 void bt_info(const char *fmt, ...);
 __printf(1, 2)
net/bluetooth/sco.c +63 -0

93 lines not on this page · raw message

Signature · 1 line
2.17.1
maintainer
#14 lore raw

Re: [PATCH v8 7/9] Bluetooth: Add BT_CODEC option for setsockopt over SCO

Hi Kiran,

Quoted 77 lines

Add BT_CODEC option on setsockopt system call to allow user space audio modules to set codec. Driver also configures codec if non-HCI data is selected.

---
include/net/bluetooth/bluetooth.h | 2 +
net/bluetooth/sco.c | 63 +++++++++++++++++++++++++++++++

2 files changed, 65 insertions(+)
include/net/bluetooth/bluetooth.h +2 -0
index 1840756958ce..0e8802d09068 100644
@@ -173,6 +173,8 @@ struct bt_codecs {
 	struct bt_codec	codecs[];
 } __packed;
 
+#define CODING_FORMAT_CVSD	0x02
+
 __printf(1, 2)
 void bt_info(const char *fmt, ...);
 __printf(1, 2)
net/bluetooth/sco.c +16 -0
index d66293d1cba4..d59f30fc4b9f 100644
@@ -67,6 +67,7 @@ struct sco_pinfo {
 	__u32		flags;
 	__u16		setting;
 	__u8		cmsg_mask;
+	struct bt_codec codec;
 	struct sco_conn	*conn;
 };
 
@@ -438,6 +439,7 @@ static void __sco_sock_close(struct sock *sk)
 		sock_set_flag(sk, SOCK_ZAPPED);
 		break;
 	}
+
 }
 
 /* Must be called on unlocked socket. */
@@ -499,6 +501,10 @@ static struct sock *sco_sock_alloc(struct net *net, struct socket *sock,
 	sk->sk_state    = BT_OPEN;
 
 	sco_pi(sk)->setting = BT_VOICE_CVSD_16BIT;
+	sco_pi(sk)->codec.id = CODING_FORMAT_CVSD;
+	sco_pi(sk)->codec.cid = 0xffff;
+	sco_pi(sk)->codec.vid = 0xffff;
+	sco_pi(sk)->codec.data_path = 0x00;
 
 	timer_setup(&sk->sk_timer, sco_sock_timeout, 0);
 
@@ -808,6 +814,9 @@ static int sco_sock_setsockopt(struct socket *sock, int level, int optname,
 	struct sock *sk = sock->sk;
 	int len, err = 0;
 	struct bt_voice voice;
+	struct bt_codecs *codecs;
+	struct hci_dev *hdev;
+	__u8 buffer[255];
 	u32 opt;
 
 	BT_DBG("sk %p", sk);
@@ -870,6 +879,60 @@ static int sco_sock_setsockopt(struct socket *sock, int level, int optname,
 			sco_pi(sk)->cmsg_mask &= SCO_CMSG_PKT_STATUS;
 		break;
 
+	case BT_CODEC:
+		if (sk->sk_state != BT_OPEN && sk->sk_state != BT_BOUND &&
+		    sk->sk_state != BT_CONNECT2) {
+			err = -EINVAL;
+			break;
+		}
+

net/bluetooth/sco.c static int sco_sock_setsockopt(struct socket *sock, int level, int optname, · line 898

Quoted 10 lines
net/bluetooth/sco.c +10 -0
+		hdev = hci_get_route(&sco_pi(sk)->dst, &sco_pi(sk)->src, BDADDR_BREDR);
+		if (!hdev) {
+			err = -EBADFD;
+			break;
+		}
+
+		if (!test_bit(HCI_QUIRK_HFP_OFFLOAD_CODECS_SUPPORTED, &hdev->quirks)) {
+			err = -EOPNOTSUPP;
+			break;
+		}

Same here. Just check the configure_data_path (and I think set_data_path is better and shorter) is available, if not bail our here right away instead checking this over and over again later.

Quoted 30 lines
net/bluetooth/sco.c +30 -0
+
+		if (optlen < sizeof(struct bt_codecs) || optlen > 255) {
+			err = -EINVAL;
+			break;
+		}
+
+		if (copy_from_sockptr(buffer, optval, optlen)) {
+			err = -EFAULT;
+			break;
+		}
+
+		codecs = (void *)buffer;
+
+		if (codecs->num_codecs > 1) {
+			err = -EINVAL;
+			break;
+		}
+
+		if (codecs->codecs[0].data_path) {
+			if (!hdev->configure_data_path) {
+				err = -EOPNOTSUPP;
+				break;
+			}
+			err = hdev->configure_data_path(hdev, SCO_LINK,
+							codecs->codecs);
+			if (err < 0)
+				break;
+
+			if (codecs->codecs[0].id == 0xff) {
+				sco_pi(sk)->codec.cid = codecs->codecs[0].cid;

net/bluetooth/sco.c static int sco_sock_setsockopt(struct socket *sock, int level, int optname, · line 938

Quoted 10 lines
net/bluetooth/sco.c +7 -0
+				sco_pi(sk)->codec.vid = codecs->codecs[0].vid;
+			}
+		}
+		sco_pi(sk)->codec.id = codecs->codecs[0].id;
+		sco_pi(sk)->codec.data_path = codecs->codecs[0].data_path;
+		break;
+
 	default:
 		err = -ENOPROTOOPT;
 		break;

Regards

Marcel

author
#15 lore raw

PATCH v8 8/9 Bluetooth: Add support for HCI_Enhanced_Setup_Synchronous_Connection command

In reply to Kiran K

< HCI Command: Enhanced Setup Synchronous Connection (0x01|0x003d) plen 59
Handle: 256
Transmit bandwidth: 8000
Receive bandwidth: 8000
Max latency: 13
Packet type: 0x0380
3-EV3 may not be used
2-EV5 may not be used
3-EV5 may not be used
Retransmission effort: Optimize for link quality (0x02)

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

      Enhanced Setup Synchronous Connection (0x01|0x003d) ncmd 1
        Status: Success (0x00)
Quoted 1 line

HCI Event: Synchronous Connect Complete (0x2c) plen 17

        Status: Success (0x00)
        Handle: 257
        Address: CC:98:8B:92:04:FD (SONY Visual Products Inc.)
        Link type: eSCO (0x02)
        Transmission interval: 0x0c
        Retransmission window: 0x06
        RX packet length: 60
        TX packet length: 60
        Air mode: Transparent (0x03)

---

Need implementation HCI_Enhanced_Setup_Synchronous_Command as it allows setting of non-HCI data path

 include/net/bluetooth/bluetooth.h |   1 +
 include/net/bluetooth/hci.h       |  34 ++++++++++
 include/net/bluetooth/hci_core.h  |   7 +-
 net/bluetooth/hci_conn.c          | 104 +++++++++++++++++++++++++++++-
 net/bluetooth/hci_event.c         |  48 +++++++++++++-
 net/bluetooth/sco.c               |  11 +++-
 6 files changed, 198 insertions(+), 7 deletions(-)
include/net/bluetooth/bluetooth.h +1 -0
index 0e8802d09068..4e58d275c72c 100644
@@ -174,6 +174,7 @@ struct bt_codecs {
 } __packed;
 
 #define CODING_FORMAT_CVSD	0x02
+#define CODING_FORMAT_TRANS	0x03
 
 __printf(1, 2)
 void bt_info(const char *fmt, ...);
include/net/bluetooth/hci.h +34 -0
index bd666b114aea..af168f3c1f2e 100644
@@ -878,6 +878,40 @@ struct hci_cp_logical_link_cancel {
 	__u8     flow_spec_id;
 } __packed;
 
+#define HCI_OP_ENHANCED_SETUP_SYNC_CONN		0x043D
+struct hci_coding_format {
+	__u8	id;
+	__le16	cid;
+	__le16	vid;
+} __packed;
+
+struct hci_cp_enhanced_setup_sync_conn {
+	__le16   handle;
+	__le32   tx_bandwidth;
+	__le32   rx_bandwidth;
+	struct	 hci_coding_format tx_coding_format;
+	struct	 hci_coding_format rx_coding_format;
+	__le16	 tx_codec_frame_size;
+	__le16	 rx_codec_frame_size;
+	__le32	 in_bandwidth;
+	__le32	 out_bandwidth;
+	struct	 hci_coding_format in_coding_format;
+	struct	 hci_coding_format out_coding_format;
+	__le16   in_coded_data_size;
+	__le16	 out_coded_data_size;
+	__u8	 in_pcm_data_format;
+	__u8	 out_pcm_data_format;
+	__u8	 in_pcm_sample_payload_msb_pos;
+	__u8	 out_pcm_sample_payload_msb_pos;
+	__u8	 in_data_path;
+	__u8	 out_data_path;
+	__u8	 in_trasnport_unit_size;
+	__u8	 out_trasnport_unit_size;
+	__le16   max_latency;
+	__le16   pkt_type;
+	__u8     retrans_effort;
+} __packed;
+
 struct hci_rp_logical_link_cancel {
 	__u8     status;
 	__u8     phy_handle;
include/net/bluetooth/hci_core.h +6 -1
index 959585bafa8d..760d21a2134e 100644
@@ -712,6 +712,7 @@ struct hci_conn {
 	struct amp_mgr	*amp_mgr;
 
 	struct hci_conn	*link;
+	struct bt_codec codec;
 
 	void (*connect_cfm_cb)	(struct hci_conn *conn, u8 status);
 	void (*security_cfm_cb)	(struct hci_conn *conn, u8 status);
@@ -1094,6 +1095,7 @@ static inline struct hci_conn *hci_lookup_le_connect(struct hci_dev *hdev)
 
 int hci_disconnect(struct hci_conn *conn, __u8 reason);
 bool hci_setup_sync(struct hci_conn *conn, __u16 handle);
+bool hci_enhanced_setup_sync(struct hci_conn *conn, __u16 handle);
 void hci_sco_setup(struct hci_conn *conn, __u8 status);
 
 struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst,
@@ -1118,7 +1120,7 @@ struct hci_conn *hci_connect_acl(struct hci_dev *hdev, bdaddr_t *dst,
 				 u8 sec_level, u8 auth_type,
 				 enum conn_reasons conn_reason);
 struct hci_conn *hci_connect_sco(struct hci_dev *hdev, int type, bdaddr_t *dst,
-				 __u16 setting);
+				 __u16 setting, struct bt_codec *codec);
 int hci_conn_check_link_mode(struct hci_conn *conn);
 int hci_conn_check_secure(struct hci_conn *conn, __u8 sec_level);
 int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type,
@@ -1439,6 +1441,9 @@ void hci_conn_del_sysfs(struct hci_conn *conn);
 /* Use LL Privacy based address resolution if supported */
 #define use_ll_privacy(dev) ((dev)->le_features[0] & HCI_LE_LL_PRIVACY)
 
+/* Use enhanced synchronous connection if command is supported */
+#define use_enhanced_sco_conn(dev) ((dev)->commands[29] & 0x08)
+
 /* Use ext scanning if set ext scan param and ext scan enable is supported */
 #define use_ext_scan(dev) (((dev)->commands[37] & 0x20) && \
 			   ((dev)->commands[37] & 0x40))
net/bluetooth/hci_conn.c +101 -3

128 lines not on this page · raw message

net/bluetooth/hci_event.c +46 -2

66 lines not on this page · raw message

net/bluetooth/sco.c +10 -1
index d59f30fc4b9f..19d8ee11eed5 100644
@@ -240,7 +240,7 @@ static int sco_connect(struct sock *sk)
 	}
 
 	hcon = hci_connect_sco(hdev, type, &sco_pi(sk)->dst,
-			       sco_pi(sk)->setting);
+			       sco_pi(sk)->setting, &sco_pi(sk)->codec);
 	if (IS_ERR(hcon)) {
 		err = PTR_ERR(hcon);
 		goto done;
@@ -865,6 +865,15 @@ static int sco_sock_setsockopt(struct socket *sock, int level, int optname,
 		}
 
 		sco_pi(sk)->setting = voice.setting;
+		hdev = hci_get_route(&sco_pi(sk)->dst, &sco_pi(sk)->src,
+				     BDADDR_BREDR);
+		if (!hdev) {
+			err = -EBADFD;
+			break;
+		}
+		if (use_enhanced_sco_conn(hdev) &&
+		    voice.setting == BT_VOICE_TRANSPARENT)
+			sco_pi(sk)->codec.id = CODING_FORMAT_TRANS;
 		break;
 
 	case BT_PKT_STATUS:
Signature · 1 line
2.17.1
maintainer
#16 lore raw

Re: [PATCH v8 8/9] Bluetooth: Add support for HCI_Enhanced_Setup_Synchronous_Connection command

Hi Kiran,

Quoted 241 lines

< HCI Command: Enhanced Setup Synchronous Connection (0x01|0x003d) plen 59
Handle: 256
Transmit bandwidth: 8000
Receive bandwidth: 8000
Max latency: 13
Packet type: 0x0380
3-EV3 may not be used
2-EV5 may not be used
3-EV5 may not be used
Retransmission effort: Optimize for link quality (0x02)

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

     Enhanced Setup Synchronous Connection (0x01|0x003d) ncmd 1
       Status: Success (0x00)
Quoted 1 line

HCI Event: Synchronous Connect Complete (0x2c) plen 17

       Status: Success (0x00)
       Handle: 257
       Address: CC:98:8B:92:04:FD (SONY Visual Products Inc.)
       Link type: eSCO (0x02)
       Transmission interval: 0x0c
       Retransmission window: 0x06
       RX packet length: 60
       TX packet length: 60
       Air mode: Transparent (0x03)

---

Need implementation HCI_Enhanced_Setup_Synchronous_Command as it allows setting of non-HCI data path

include/net/bluetooth/bluetooth.h |   1 +
include/net/bluetooth/hci.h       |  34 ++++++++++
include/net/bluetooth/hci_core.h  |   7 +-
net/bluetooth/hci_conn.c          | 104 +++++++++++++++++++++++++++++-
net/bluetooth/hci_event.c         |  48 +++++++++++++-
net/bluetooth/sco.c               |  11 +++-
6 files changed, 198 insertions(+), 7 deletions(-)
include/net/bluetooth/bluetooth.h +1 -0
index 0e8802d09068..4e58d275c72c 100644
@@ -174,6 +174,7 @@ struct bt_codecs {
 } __packed;
 
 #define CODING_FORMAT_CVSD	0x02
+#define CODING_FORMAT_TRANS	0x03
 
 __printf(1, 2)
 void bt_info(const char *fmt, ...);
include/net/bluetooth/hci.h +34 -0
index bd666b114aea..af168f3c1f2e 100644
@@ -878,6 +878,40 @@ struct hci_cp_logical_link_cancel {
 	__u8     flow_spec_id;
 } __packed;
 
+#define HCI_OP_ENHANCED_SETUP_SYNC_CONN		0x043D
+struct hci_coding_format {
+	__u8	id;
+	__le16	cid;
+	__le16	vid;
+} __packed;
+
+struct hci_cp_enhanced_setup_sync_conn {
+	__le16   handle;
+	__le32   tx_bandwidth;
+	__le32   rx_bandwidth;
+	struct	 hci_coding_format tx_coding_format;
+	struct	 hci_coding_format rx_coding_format;
+	__le16	 tx_codec_frame_size;
+	__le16	 rx_codec_frame_size;
+	__le32	 in_bandwidth;
+	__le32	 out_bandwidth;
+	struct	 hci_coding_format in_coding_format;
+	struct	 hci_coding_format out_coding_format;
+	__le16   in_coded_data_size;
+	__le16	 out_coded_data_size;
+	__u8	 in_pcm_data_format;
+	__u8	 out_pcm_data_format;
+	__u8	 in_pcm_sample_payload_msb_pos;
+	__u8	 out_pcm_sample_payload_msb_pos;
+	__u8	 in_data_path;
+	__u8	 out_data_path;
+	__u8	 in_trasnport_unit_size;
+	__u8	 out_trasnport_unit_size;
+	__le16   max_latency;
+	__le16   pkt_type;
+	__u8     retrans_effort;
+} __packed;
+
 struct hci_rp_logical_link_cancel {
 	__u8     status;
 	__u8     phy_handle;
include/net/bluetooth/hci_core.h +6 -1
index 959585bafa8d..760d21a2134e 100644
@@ -712,6 +712,7 @@ struct hci_conn {
 	struct amp_mgr	*amp_mgr;
 
 	struct hci_conn	*link;
+	struct bt_codec codec;
 
 	void (*connect_cfm_cb)	(struct hci_conn *conn, u8 status);
 	void (*security_cfm_cb)	(struct hci_conn *conn, u8 status);
@@ -1094,6 +1095,7 @@ static inline struct hci_conn *hci_lookup_le_connect(struct hci_dev *hdev)
 
 int hci_disconnect(struct hci_conn *conn, __u8 reason);
 bool hci_setup_sync(struct hci_conn *conn, __u16 handle);
+bool hci_enhanced_setup_sync(struct hci_conn *conn, __u16 handle);
 void hci_sco_setup(struct hci_conn *conn, __u8 status);
 
 struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst,
@@ -1118,7 +1120,7 @@ struct hci_conn *hci_connect_acl(struct hci_dev *hdev, bdaddr_t *dst,
 				 u8 sec_level, u8 auth_type,
 				 enum conn_reasons conn_reason);
 struct hci_conn *hci_connect_sco(struct hci_dev *hdev, int type, bdaddr_t *dst,
-				 __u16 setting);
+				 __u16 setting, struct bt_codec *codec);
 int hci_conn_check_link_mode(struct hci_conn *conn);
 int hci_conn_check_secure(struct hci_conn *conn, __u8 sec_level);
 int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type,
@@ -1439,6 +1441,9 @@ void hci_conn_del_sysfs(struct hci_conn *conn);
 /* Use LL Privacy based address resolution if supported */
 #define use_ll_privacy(dev) ((dev)->le_features[0] & HCI_LE_LL_PRIVACY)
 
+/* Use enhanced synchronous connection if command is supported */
+#define use_enhanced_sco_conn(dev) ((dev)->commands[29] & 0x08)
+
 /* Use ext scanning if set ext scan param and ext scan enable is supported */
 #define use_ext_scan(dev) (((dev)->commands[37] & 0x20) && \
 			   ((dev)->commands[37] & 0x40))
net/bluetooth/hci_conn.c +90 -0
index 88ec08978ff4..e2435b5abeca 100644
@@ -307,6 +307,96 @@ static bool find_next_esco_param(struct hci_conn *conn,
 	return conn->attempt <= size;
 }
 
+bool hci_enhanced_setup_sync(struct hci_conn *conn, __u16 handle)
+{
+	struct hci_dev *hdev = conn->hdev;
+	struct hci_cp_enhanced_setup_sync_conn cp;
+	const struct sco_param *param;
+
+	BT_DBG("hcon %p", conn);
+
+	conn->state = BT_CONNECT;
+	conn->out = true;
+
+	conn->attempt++;
+
+	memset(&cp, 0x00, sizeof(cp));
+
+	cp.handle   = cpu_to_le16(handle);
+
+	cp.tx_bandwidth   = cpu_to_le32(0x00001f40);
+	cp.rx_bandwidth   = cpu_to_le32(0x00001f40);
+
+	switch (conn->codec.id) {
+	case CODING_FORMAT_CVSD:
+		if (lmp_esco_capable(conn->link)) {
+			if (conn->attempt > ARRAY_SIZE(esco_param_cvsd))
+				return false;
+			param = &esco_param_cvsd[conn->attempt - 1];
+		} else {
+			if (conn->attempt > ARRAY_SIZE(sco_param_cvsd))
+				return false;
+			param = &sco_param_cvsd[conn->attempt - 1];
+		}
+		cp.tx_coding_format.id = 2;
+		cp.rx_coding_format.id = 2;
+		cp.tx_codec_frame_size = __cpu_to_le16(60);
+		cp.rx_codec_frame_size = __cpu_to_le16(60);
+		cp.in_bandwidth = __cpu_to_le32(16000);
+		cp.out_bandwidth = __cpu_to_le32(16000);
+		cp.in_coding_format.id = 4;
+		cp.out_coding_format.id = 4;
+		cp.in_coded_data_size = __cpu_to_le16(16);
+		cp.out_coded_data_size = __cpu_to_le16(16);
+		cp.in_pcm_data_format = 2;
+		cp.out_pcm_data_format = 2;
+		cp.in_pcm_sample_payload_msb_pos = 0;
+		cp.out_pcm_sample_payload_msb_pos = 0;
+		cp.in_data_path = conn->codec.data_path;
+		cp.out_data_path = conn->codec.data_path;
+		cp.in_trasnport_unit_size = 16;
+		cp.out_trasnport_unit_size = 16;
+		break;
+
+	case CODING_FORMAT_TRANS:
+		if (conn->attempt > ARRAY_SIZE(esco_param_msbc))
+			return false;
+
+		param = &esco_param_msbc[conn->attempt - 1];
+		cp.tx_coding_format.id = 0x03;
+		cp.rx_coding_format.id = 0x03;
+		cp.tx_codec_frame_size = __cpu_to_le16(60);
+		cp.rx_codec_frame_size = __cpu_to_le16(60);
+		cp.in_bandwidth = __cpu_to_le32(0x1f40);
+		cp.out_bandwidth = __cpu_to_le32(0x1f40);
+		cp.in_coding_format.id = 0x03;
+		cp.out_coding_format.id = 0x03;
+		cp.in_coded_data_size = __cpu_to_le16(16);
+		cp.out_coded_data_size = __cpu_to_le16(16);
+		cp.in_pcm_data_format = 2;
+		cp.out_pcm_data_format = 2;
+		cp.in_pcm_sample_payload_msb_pos = 0;
+		cp.out_pcm_sample_payload_msb_pos = 0;
+		cp.in_data_path = conn->codec.data_path;
+		cp.out_data_path = conn->codec.data_path;
+		cp.in_trasnport_unit_size = 1;
+		cp.out_trasnport_unit_size = 1;
+		break;
+
+	default:
+		return false;
+	}
+
+	cp.retrans_effort = param->retrans_effort;
+	cp.pkt_type = __cpu_to_le16(param->pkt_type);
+	cp.max_latency = __cpu_to_le16(param->max_latency);
+
+	if (hci_send_cmd(hdev, HCI_OP_ENHANCED_SETUP_SYNC_CONN, sizeof(cp), &cp) < 0)
+		return false;
+
+	return true;
+}
+
 bool hci_setup_sync(struct hci_conn *conn, __u16 handle)
 {
 	struct hci_dev *hdev = conn->hdev;
@@ -424,8 +514,12 @@ void hci_sco_setup(struct hci_conn *conn, __u8 status)
 	BT_DBG("hcon %p", conn);
 
 	if (!status) {

net/bluetooth/hci_conn.c void hci_sco_setup(struct hci_conn *conn, __u8 status) · line 524

Quoted 10 lines
net/bluetooth/hci_conn.c +6 -2
-		if (lmp_esco_capable(conn->hdev))
-			hci_setup_sync(sco, conn->handle);
+		if (lmp_esco_capable(conn->hdev)) {
+			if (use_enhanced_sco_conn(conn->hdev))
+				hci_enhanced_setup_sync(sco, conn->handle);
+			else
+				hci_setup_sync(sco, conn->handle);
+		}
 		else
 			hci_add_sco(sco, conn->handle);

you have coding style mistake here.

Quoted 37 lines
net/bluetooth/hci_conn.c +5 -1
 	} else {
@@ -1319,7 +1413,7 @@ struct hci_conn *hci_connect_acl(struct hci_dev *hdev, bdaddr_t *dst,
 }
 
 struct hci_conn *hci_connect_sco(struct hci_dev *hdev, int type, bdaddr_t *dst,
-				 __u16 setting)
+				 __u16 setting, struct bt_codec *codec)
 {
 	struct hci_conn *acl;
 	struct hci_conn *sco;
@@ -1344,6 +1438,10 @@ struct hci_conn *hci_connect_sco(struct hci_dev *hdev, int type, bdaddr_t *dst,
 	hci_conn_hold(sco);
 
 	sco->setting = setting;
+	sco->codec.id = codec->id;
+	sco->codec.cid = codec->cid;
+	sco->codec.vid = codec->vid;
+	sco->codec.data_path = codec->data_path;
 
 	if (acl->state == BT_CONNECTED &&
 	    (sco->state == BT_OPEN || sco->state == BT_CLOSED)) {
net/bluetooth/hci_event.c +8 -0
index 4241ae310fcb..94c64e2c11e4 100644
@@ -2236,6 +2236,41 @@ static void hci_cs_setup_sync_conn(struct hci_dev *hdev, __u8 status)
 	hci_dev_unlock(hdev);
 }
 
+static void hci_cs_enhanced_setup_sync_conn(struct hci_dev *hdev, __u8 status)
+{
+	struct hci_cp_enhanced_setup_sync_conn *cp;
+	struct hci_conn *acl, *sco;
+	__u16 handle;
+
+	bt_dev_dbg(hdev, "status 0x%2.2x", status);
+

net/bluetooth/hci_event.c static void hci_cs_setup_sync_conn(struct hci_dev *hdev, __u8 status) · line 2256

Quoted 10 lines
net/bluetooth/hci_event.c +10 -0
+	if (!status)
+		return;
+
+	cp = hci_sent_cmd_data(hdev, HCI_OP_ENHANCED_SETUP_SYNC_CONN);
+	if (!cp)
+		return;
+
+	handle = __le16_to_cpu(cp->handle);
+
+	BT_DBG("%s handle 0x%4.4x", hdev->name, handle);

Please start using bt_dev_dbg.

Quoted 64 lines
net/bluetooth/hci_event.c +28 -2
+
+	hci_dev_lock(hdev);
+
+	acl = hci_conn_hash_lookup_handle(hdev, handle);
+	if (acl) {
+		sco = acl->link;
+		if (sco) {
+			sco->state = BT_CLOSED;
+
+			hci_connect_cfm(sco, status);
+			hci_conn_del(sco);
+		}
+	}
+
+	hci_dev_unlock(hdev);
+}
+
 static void hci_cs_sniff_mode(struct hci_dev *hdev, __u8 status)
 {
 	struct hci_cp_sniff_mode *cp;
@@ -3715,6 +3750,10 @@ static void hci_cmd_status_evt(struct hci_dev *hdev, struct sk_buff *skb,
 		hci_cs_setup_sync_conn(hdev, ev->status);
 		break;
 
+	case HCI_OP_ENHANCED_SETUP_SYNC_CONN:
+		hci_cs_enhanced_setup_sync_conn(hdev, ev->status);
+		break;
+
 	case HCI_OP_SNIFF_MODE:
 		hci_cs_sniff_mode(hdev, ev->status);
 		break;
@@ -4401,8 +4440,13 @@ static void hci_sync_conn_complete_evt(struct hci_dev *hdev,
 		if (conn->out) {
 			conn->pkt_type = (hdev->esco_type & SCO_ESCO_MASK) |
 					(hdev->esco_type & EDR_ESCO_MASK);
-			if (hci_setup_sync(conn, conn->link->handle))
-				goto unlock;
+			if (use_enhanced_sco_conn(hdev)) {
+				if (hci_enhanced_setup_sync(conn, conn->link->handle))
+					goto unlock;
+			} else {
+				if (hci_setup_sync(conn, conn->link->handle))
+					goto unlock;
+			}
 		}
 		fallthrough;
 
net/bluetooth/sco.c +1 -1
index d59f30fc4b9f..19d8ee11eed5 100644
@@ -240,7 +240,7 @@ static int sco_connect(struct sock *sk)
 	}
 
 	hcon = hci_connect_sco(hdev, type, &sco_pi(sk)->dst,
-			       sco_pi(sk)->setting);
+			       sco_pi(sk)->setting, &sco_pi(sk)->codec);
 	if (IS_ERR(hcon)) {
 		err = PTR_ERR(hcon);
 		goto done;
@@ -865,6 +865,15 @@ static int sco_sock_setsockopt(struct socket *sock, int level, int optname,
 		}
 
 		sco_pi(sk)->setting = voice.setting;

net/bluetooth/sco.c static int sco_sock_setsockopt(struct socket *sock, int level, int optname, · line 877

Quoted 10 lines
net/bluetooth/sco.c +9 -0
+		hdev = hci_get_route(&sco_pi(sk)->dst, &sco_pi(sk)->src,
+				     BDADDR_BREDR);
+		if (!hdev) {
+			err = -EBADFD;
+			break;
+		}
+		if (use_enhanced_sco_conn(hdev) &&
+		    voice.setting == BT_VOICE_TRANSPARENT)
+			sco_pi(sk)->codec.id = CODING_FORMAT_TRANS;
 		break;

Regards

Marcel

author
#17 lore raw

RE: [PATCH v8 8/9] Bluetooth: Add support for HCI_Enhanced_Setup_Synchronous_Connection command

Hi Marcel,

Quoted 6 lines

Review void hci_sco_setup(struct hci_conn *conn, __u8

Quoted 3 lines
bool hci_setup_sync(struct hci_conn *conn, __u16 handle) {
	struct hci_dev *hdev = conn->hdev;
(quoted diff) +0 -0
@@ -424,8 +514,12 @@ void hci_sco_setup(struct hci_conn *conn, __u8

status)

Quoted 2 lines
net/bluetooth/hci_conn.c +0 -0
 	BT_DBG("hcon %p", conn);
 
Quoted 14 lines

net/bluetooth/hci_conn.c void hci_sco_setup(struct hci_conn *conn, __u8 status) · line 524

Quoted 12 lines
net/bluetooth/hci_conn.c +6 -2
 	if (!status) {
-		if (lmp_esco_capable(conn->hdev))
-			hci_setup_sync(sco, conn->handle);
+		if (lmp_esco_capable(conn->hdev)) {
+			if (use_enhanced_sco_conn(conn->hdev))
+				hci_enhanced_setup_sync(sco, conn-
 handle);
+			else
+				hci_setup_sync(sco, conn->handle);
+		}
 		else
 			hci_add_sco(sco, conn->handle);

you have coding style mistake here.

Ack.

Quoted 15 lines
Quoted 4 lines
net/bluetooth/hci_event.c +2 -0
+static void hci_cs_enhanced_setup_sync_conn(struct hci_dev *hdev,
+__u8 status) {

net/bluetooth/hci_event.c static void hci_cs_setup_sync_conn(struct hci_dev *hdev, __u8 status)

Quoted 10 lines
net/bluetooth/hci_event.c +10 -0
+	struct hci_cp_enhanced_setup_sync_conn *cp;
+	struct hci_conn *acl, *sco;
+	__u16 handle;
+
+	bt_dev_dbg(hdev, "status 0x%2.2x", status);
+
+	if (!status)
+		return;
+
+	cp = hci_sent_cmd_data(hdev,

HCI_OP_ENHANCED_SETUP_SYNC_CONN);

Quoted 8 lines

net/bluetooth/hci_event.c static void hci_cs_setup_sync_conn(struct hci_dev *hdev, __u8 status) · line 2256

Quoted 6 lines
net/bluetooth/hci_event.c +6 -0
+	if (!cp)
+		return;
+
+	handle = __le16_to_cpu(cp->handle);
+
+	BT_DBG("%s handle 0x%4.4x", hdev->name, handle);

Please start using bt_dev_dbg.

Ack.

Thanks,
Kiran

author
#18 lore raw

PATCH v8 9/9 Bluetooth: Add support for msbc coding format

In reply to Kiran K

In Enhanced_Setup_Synchronous_Command, add support for msbc coding format

---
 include/net/bluetooth/bluetooth.h |  1 +
 net/bluetooth/hci_conn.c          | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+)
include/net/bluetooth/bluetooth.h +1 -0
index 4e58d275c72c..817245d1046f 100644
@@ -175,6 +175,7 @@ struct bt_codecs {
 
 #define CODING_FORMAT_CVSD	0x02
 #define CODING_FORMAT_TRANS	0x03
+#define CODING_FORMAT_MSBC	0x05
 
 __printf(1, 2)
 void bt_info(const char *fmt, ...);
net/bluetooth/hci_conn.c +24 -0
index e2435b5abeca..edacf791d663 100644
@@ -383,6 +383,30 @@ bool hci_enhanced_setup_sync(struct hci_conn *conn, __u16 handle)
 		cp.out_trasnport_unit_size = 1;
 		break;
 
+	case CODING_FORMAT_MSBC:
+		if (conn->attempt > ARRAY_SIZE(esco_param_msbc))
+			return false;
+
+		param = &esco_param_msbc[conn->attempt - 1];
+		cp.tx_coding_format.id = 0x05;
+		cp.rx_coding_format.id = 0x05;
+		cp.tx_codec_frame_size = __cpu_to_le16(60);
+		cp.rx_codec_frame_size = __cpu_to_le16(60);
+		cp.in_bandwidth = __cpu_to_le32(32000);
+		cp.out_bandwidth = __cpu_to_le32(32000);
+		cp.in_coding_format.id = 0x04;
+		cp.out_coding_format.id = 0x04;
+		cp.in_coded_data_size = __cpu_to_le16(16);
+		cp.out_coded_data_size = __cpu_to_le16(16);
+		cp.in_pcm_data_format = 2;
+		cp.out_pcm_data_format = 2;
+		cp.in_pcm_sample_payload_msb_pos = 0;
+		cp.out_pcm_sample_payload_msb_pos = 0;
+		cp.in_data_path = conn->codec.data_path;
+		cp.out_data_path = conn->codec.data_path;
+		cp.in_trasnport_unit_size = 1;
+		cp.out_trasnport_unit_size = 1;
+		break;
 	default:
 		return false;
 	}
Signature · 1 line
2.17.1
#19 lore raw
In reply to Kiran K

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=484205

---Test result---

Test Summary:

CheckPatch                    PASS      6.88 seconds
GitLint                       FAIL      0.84 seconds
BuildKernel                   PASS      505.55 seconds
TestRunner: Setup             PASS      324.01 seconds
TestRunner: l2cap-tester      PASS      2.45 seconds
TestRunner: bnep-tester       PASS      1.82 seconds
TestRunner: mgmt-tester       PASS      26.31 seconds
TestRunner: rfcomm-tester     PASS      2.01 seconds
TestRunner: sco-tester        PASS      1.96 seconds
TestRunner: smp-tester        PASS      2.04 seconds
TestRunner: userchan-tester   PASS      1.82 seconds

Details
##############################
Test: CheckPatch - PASS - 6.88 seconds
Run checkpatch.pl script with rule in .checkpatch.conf

##############################
Test: GitLint - FAIL - 0.84 seconds
Run gitlint with rule in .gitlint
Bluetooth: Add support for HCI_Enhanced_Setup_Synchronous_Connection command
1: T1 Title exceeds max length (76>72): "Bluetooth: Add support for HCI_Enhanced_Setup_Synchronous_Connection command"

##############################
Test: BuildKernel - PASS - 505.55 seconds
Build Kernel with minimal configuration supports Bluetooth

##############################
Test: TestRunner: Setup - PASS - 324.01 seconds
Setup environment for running Test Runner

##############################
Test: TestRunner: l2cap-tester - PASS - 2.45 seconds Run test-runner with l2cap-tester
Total: 40, Passed: 40 (100.0%), Failed: 0, Not Run: 0

##############################
Test: TestRunner: bnep-tester - PASS - 1.82 seconds Run test-runner with bnep-tester
Total: 1, Passed: 1 (100.0%), Failed: 0, Not Run: 0

##############################
Test: TestRunner: mgmt-tester - PASS - 26.31 seconds Run test-runner with mgmt-tester
Total: 416, Passed: 403 (96.9%), Failed: 0, Not Run: 13

##############################
Test: TestRunner: rfcomm-tester - PASS - 2.01 seconds Run test-runner with rfcomm-tester
Total: 9, Passed: 9 (100.0%), Failed: 0, Not Run: 0

##############################
Test: TestRunner: sco-tester - PASS - 1.96 seconds Run test-runner with sco-tester
Total: 8, Passed: 8 (100.0%), Failed: 0, Not Run: 0

##############################
Test: TestRunner: smp-tester - PASS - 2.04 seconds Run test-runner with smp-tester
Total: 8, Passed: 8 (100.0%), Failed: 0, Not Run: 0

##############################
Test: TestRunner: userchan-tester - PASS - 1.82 seconds Run test-runner with userchan-tester
Total: 3, Passed: 3 (100.0%), Failed: 0, Not Run: 0

---
Regards,
Linux Bluetooth

c[?7lSeaBIOS (version 1.13.0-1ubuntu1.1) Booting from ROM..c[?7learly console in extract_kernel
input_data: 0x0000000001e772e0
input_len: 0x0000000000361ce6
output: 0x0000000001000000
output_len: 0x00000000011a7274
kernel_total_size: 0x0000000001030000
needed_size: 0x0000000001200000
trampoline_32bit: 0x000000000009d000
Physical KASLR using RDTSC...
Virtual KASLR using RDTSC...

Decompressing Linux... Parsing ELF... Performing relocations... done.
Booting the kernel.
Linux version 5.12.0-g6342268a1e2a (root@3efa844bda40) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #2 Tue May 18 11:11:28 UTC 2021
Command line: console=ttyS0,115200n8 earlyprintk=serial rootfstype=9p rootflags=trans=virtio,version=9p2000.L acpi=off pci=noacpi noapic quiet ro init=/github/workspace/bluez/tools/test-runner bluetooth.enable_ecred=1TESTHOME=/github/workspace TESTDBUS=0 TESTMONITOR=0 TESTDEVS=0 TESTAUTO=0 TESTARGS='/github/workspace/bluez/tools/l2cap-tester' x86/fpu: x87 FPU will use FXSAVE
BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
BIOS-e820: [mem 0x0000000000100000-0x000000000bffdfff] usable
BIOS-e820: [mem 0x000000000bffe000-0x000000000bffffff] reserved
BIOS-e820: [mem 0x00000000b0000000-0x00000000bfffffff] reserved
BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
printk: bootconsole [earlyser0] enabled
Memory KASLR using RDTSC...
Poking KASLR using RDTSC...
Mounting sysfs to /sys
Mounting proc to /proc
Mounting devtmpfs to /dev
Creating /dev/pts
Mounting devpts to /dev/pts
Creating /dev/shm
Mounting tmpfs to /dev/shm
Mounting tmpfs to /run
Mounting tmpfs to /tmp
Mounting debugfs to /sys/kernel/debug
Linking /dev/fd to /proc/self/fd
Linking /dev/stdin to /proc/self/fd/0
Linking /dev/stdout to /proc/self/fd/1
Linking /dev/stderr to /proc/self/fd/2
Creating new session group leader
Setting controlling terminal
Creating /var/lib/bluetooth
Failed to create filesystem: No such file or directory
Creating /etc/bluetooth
Failed to create filesystem: No such file or directory
Creating /etc/dbus-1
Failed to create filesystem: No such file or directory
Creating /usr/share/dbus-1
Running command /github/workspace/bluez/tools/l2cap-tester
New process 41 created
Changing into directory /github/workspace

Basic L2CAP Socket - Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Basic L2CAP Socket - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
Basic L2CAP Socket - Success - setup complete
Basic L2CAP Socket - Success - run
Basic L2CAP Socket - Success - test passed
Basic L2CAP Socket - Success - teardown
Index Removed callback

    Index: 0x0000

Basic L2CAP Socket - Success - teardown complete
Basic L2CAP Socket - Success - done

Non-connected getpeername - Failure - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Non-connected getpeername - Failure - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
Non-connected getpeername - Failure - setup complete Non-connected getpeername - Failure - run Non-connected getpeername - Failure - test passed Non-connected getpeername - Failure - teardown
Index Removed callback

    Index: 0x0000

Non-connected getpeername - Failure - teardown complete Non-connected getpeername - Failure - done

L2CAP BR/EDR Client - Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP BR/EDR Client - Success - setup complete
L2CAP BR/EDR Client - Success - run
Connect in progress
Successfully connected
L2CAP BR/EDR Client - Success - test passed
L2CAP BR/EDR Client - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client - Success - teardown complete
L2CAP BR/EDR Client - Success - done

L2CAP BR/EDR Client SSP - Success 1 - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client SSP - Success 1 - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
Client enable SSP status 0x00
L2CAP BR/EDR Client SSP - Success 1 - setup complete L2CAP BR/EDR Client SSP - Success 1 - run
Connect in progress
Successfully connected
L2CAP BR/EDR Client SSP - Success 1 - test passed L2CAP BR/EDR Client SSP - Success 1 - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client SSP - Success 1 - teardown complete L2CAP BR/EDR Client SSP - Success 1 - done

L2CAP BR/EDR Client SSP - Success 2 - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client SSP - Success 2 - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
Client enable SSP status 0x00
L2CAP BR/EDR Client SSP - Success 2 - setup complete L2CAP BR/EDR Client SSP - Success 2 - run
Connect in progress
Successfully connected
L2CAP BR/EDR Client SSP - Success 2 - test passed L2CAP BR/EDR Client SSP - Success 2 - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client SSP - Success 2 - teardown complete L2CAP BR/EDR Client SSP - Success 2 - done

L2CAP BR/EDR Client PIN Code - Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client PIN Code - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP BR/EDR Client PIN Code - Success - setup complete L2CAP BR/EDR Client PIN Code - Success - run
Connect in progress
Successfully connected
L2CAP BR/EDR Client PIN Code - Success - test passed L2CAP BR/EDR Client PIN Code - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client PIN Code - Success - teardown complete L2CAP BR/EDR Client PIN Code - Success - done

L2CAP BR/EDR Client - Read Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client - Read Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP BR/EDR Client - Read Success - setup complete L2CAP BR/EDR Client - Read Success - run
Connect in progress
Successfully connected
L2CAP BR/EDR Client - Read Success - test passed L2CAP BR/EDR Client - Read Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client - Read Success - teardown complete L2CAP BR/EDR Client - Read Success - done

L2CAP BR/EDR Client - Write Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client - Write Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP BR/EDR Client - Write Success - setup complete L2CAP BR/EDR Client - Write Success - run
Connect in progress
Successfully connected
L2CAP BR/EDR Client - Write Success - test passed L2CAP BR/EDR Client - Write Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client - Write Success - teardown complete L2CAP BR/EDR Client - Write Success - done

L2CAP BR/EDR Client - Invalid PSM 1 - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client - Invalid PSM 1 - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP BR/EDR Client - Invalid PSM 1 - setup complete L2CAP BR/EDR Client - Invalid PSM 1 - run
Connect in progress
Connect failed: Connection refused (111)
L2CAP BR/EDR Client - Invalid PSM 1 - test passed L2CAP BR/EDR Client - Invalid PSM 1 - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client - Invalid PSM 1 - teardown complete L2CAP BR/EDR Client - Invalid PSM 1 - done

L2CAP BR/EDR Client - Invalid PSM 2 - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client - Invalid PSM 2 - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP BR/EDR Client - Invalid PSM 2 - setup complete L2CAP BR/EDR Client - Invalid PSM 2 - run
Connect in progress
Connect failed: Connection refused (111)
L2CAP BR/EDR Client - Invalid PSM 2 - test passed L2CAP BR/EDR Client - Invalid PSM 2 - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client - Invalid PSM 2 - teardown complete L2CAP BR/EDR Client - Invalid PSM 2 - done

L2CAP BR/EDR Client - Invalid PSM 3 - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client - Invalid PSM 3 - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
Client enable SSP status 0x00
L2CAP BR/EDR Client - Invalid PSM 3 - setup complete L2CAP BR/EDR Client - Invalid PSM 3 - run
Connect in progress
Connect failed: Connection refused (111)
L2CAP BR/EDR Client - Invalid PSM 3 - test passed L2CAP BR/EDR Client - Invalid PSM 3 - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client - Invalid PSM 3 - teardown complete L2CAP BR/EDR Client - Invalid PSM 3 - done

L2CAP BR/EDR Client - Socket Shut WR Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Client - Socket Shut WR Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP BR/EDR Client - Socket Shut WR Success - setup complete L2CAP BR/EDR Client - Socket Shut WR Success - run
Connect in progress
Successfully connected
L2CAP BR/EDR Client - Socket Shut WR Success - test passed L2CAP BR/EDR Client - Socket Shut WR Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Client - Socket Shut WR Success - teardown complete L2CAP BR/EDR Client - Socket Shut WR Success - done

L2CAP BR/EDR Server - Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Server - Success - setup
Powering on controller
Controller powered on
L2CAP BR/EDR Server - Success - setup complete
L2CAP BR/EDR Server - Success - run
Listening for connections
New client connection with handle 0x002a
Sending L2CAP Request from client
Client received response code 0x03
L2CAP BR/EDR Server - Success - test passed
Successfully connected
L2CAP BR/EDR Server - Success - test passed
L2CAP BR/EDR Server - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Server - Success - teardown complete
L2CAP BR/EDR Server - Success - done

L2CAP BR/EDR Server - Read Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Server - Read Success - setup
Powering on controller
Controller powered on
L2CAP BR/EDR Server - Read Success - setup complete L2CAP BR/EDR Server - Read Success - run
Listening for connections
New client connection with handle 0x002a Sending L2CAP Request from client
Client received response code 0x03
L2CAP BR/EDR Server - Read Success - test passed L2CAP BR/EDR Server - Read Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Server - Read Success - teardown complete L2CAP BR/EDR Server - Read Success - done

L2CAP BR/EDR Server - Write Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Server - Write Success - setup
Powering on controller
Controller powered on
L2CAP BR/EDR Server - Write Success - setup complete L2CAP BR/EDR Server - Write Success - run
Listening for connections
New client connection with handle 0x002a Sending L2CAP Request from client
Client received response code 0x03
L2CAP BR/EDR Server - Write Success - test passed L2CAP BR/EDR Server - Write Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Server - Write Success - teardown complete L2CAP BR/EDR Server - Write Success - done

L2CAP BR/EDR Server - Security Block - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Server - Security Block - setup
Powering on controller
Controller powered on
Server enable SSP status 0x00
L2CAP BR/EDR Server - Security Block - setup complete L2CAP BR/EDR Server - Security Block - run
Listening for connections
New client connection with handle 0x002a Sending L2CAP Request from client
Client received response code 0x03
L2CAP BR/EDR Server - Security Block - test passed L2CAP BR/EDR Server - Security Block - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Server - Security Block - teardown complete L2CAP BR/EDR Server - Security Block - done

L2CAP BR/EDR Server - Invalid PSM - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Server - Invalid PSM - setup
Powering on controller
Controller powered on
L2CAP BR/EDR Server - Invalid PSM - setup complete L2CAP BR/EDR Server - Invalid PSM - run
New client connection with handle 0x002a Sending L2CAP Request from client
Client received response code 0x03
L2CAP BR/EDR Server - Invalid PSM - test passed L2CAP BR/EDR Server - Invalid PSM - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Server - Invalid PSM - teardown complete L2CAP BR/EDR Server - Invalid PSM - done

L2CAP BR/EDR Server - Invalid PDU - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Server - Invalid PDU - setup
Powering on controller
Controller powered on
L2CAP BR/EDR Server - Invalid PDU - setup complete L2CAP BR/EDR Server - Invalid PDU - run
New client connection with handle 0x002a Sending L2CAP Request from client
Bluetooth: Wrong link type (-71)
Client received response code 0x01
L2CAP BR/EDR Server - Invalid PDU - test passed L2CAP BR/EDR Server - Invalid PDU - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Server - Invalid PDU - teardown complete L2CAP BR/EDR Server - Invalid PDU - done

L2CAP BR/EDR Server - Invalid Disconnect CID - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Server - Invalid Disconnect CID - setup
Powering on controller
Controller powered on
L2CAP BR/EDR Server - Invalid Disconnect CID - setup complete L2CAP BR/EDR Server - Invalid Disconnect CID - run
New client connection with handle 0x002a
Sending L2CAP Request from client
Client received response code 0x01
L2CAP BR/EDR Server - Invalid Disconnect CID - test passed L2CAP BR/EDR Server - Invalid Disconnect CID - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Server - Invalid Disconnect CID - teardown complete L2CAP BR/EDR Server - Invalid Disconnect CID - done

L2CAP BR/EDR Server - Invalid Config CID - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP BR/EDR Server - Invalid Config CID - setup
Powering on controller
Controller powered on
L2CAP BR/EDR Server - Invalid Config CID - setup complete L2CAP BR/EDR Server - Invalid Config CID - run
New client connection with handle 0x002a Sending L2CAP Request from client
Client received response code 0x01
L2CAP BR/EDR Server - Invalid Config CID - test passed L2CAP BR/EDR Server - Invalid Config CID - teardown
Index Removed callback

    Index: 0x0000

L2CAP BR/EDR Server - Invalid Config CID - teardown complete L2CAP BR/EDR Server - Invalid Config CID - done

L2CAP LE Client - Success - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP LE Client - Success - setup complete
L2CAP LE Client - Success - run
Connect in progress
Successfully connected
L2CAP LE Client - Success - test passed
L2CAP LE Client - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client - Success - teardown complete
L2CAP LE Client - Success - done

L2CAP LE Client, Direct Advertising - Success - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client, Direct Advertising - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP LE Client, Direct Advertising - Success - setup complete L2CAP LE Client, Direct Advertising - Success - run
Connect in progress
Received advertising parameters HCI command
L2CAP LE Client, Direct Advertising - Success - test passed L2CAP LE Client, Direct Advertising - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client, Direct Advertising - Success - teardown complete L2CAP LE Client, Direct Advertising - Success - done

L2CAP LE Client SMP - Success - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client SMP - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP LE Client SMP - Success - setup complete
L2CAP LE Client SMP - Success - run
Connect in progress
Successfully connected
L2CAP LE Client SMP - Success - test passed
Bluetooth: hci0: link tx timeout
L2CAP LE Client SMP - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client SMP - Success - teardown complete
L2CAP LE Client SMP - Success - done

L2CAP LE Client - Command Reject - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client - Command Reject - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP LE Client - Command Reject - setup complete
L2CAP LE Client - Command Reject - run
Connect in progress
New connection with handle 0x002a
Connect failed: Connection refused (111)
L2CAP LE Client - Command Reject - test passed
L2CAP LE Client - Command Reject - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client - Command Reject - teardown complete L2CAP LE Client - Command Reject - done

L2CAP LE Client - Connection Reject - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client - Connection Reject - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP LE Client - Connection Reject - setup complete L2CAP LE Client - Connection Reject - run
Can't connect socket: No route to host (113)
L2CAP LE Client - Connection Reject - test passed L2CAP LE Client - Connection Reject - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client - Connection Reject - teardown complete L2CAP LE Client - Connection Reject - done

L2CAP LE Client - Close socket 1 - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client - Close socket 1 - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP LE Client - Close socket 1 - setup complete
L2CAP LE Client - Close socket 1 - run
Connect in progress, sk = 13
Will close socket during scan phase...
Checking whether scan was properly stopped...
L2CAP LE Client - Close socket 1 - test passed
L2CAP LE Client - Close socket 1 - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client - Close socket 1 - teardown complete L2CAP LE Client - Close socket 1 - done

L2CAP LE Client - Close socket 2 - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client - Close socket 2 - setup
Powering on controller
Controller powered on
L2CAP LE Client - Close socket 2 - setup complete
L2CAP LE Client - Close socket 2 - run
Connect in progress, sk = 13
Client set connectable status 0x00
Client set connectable status 0x00
L2CAP LE Client - Close socket 2 - test passed
L2CAP LE Client - Close socket 2 - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client - Close socket 2 - teardown complete L2CAP LE Client - Close socket 2 - done

L2CAP LE Client - Open two sockets - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client - Open two sockets - setup
Powering on controller
Controller powered on
L2CAP LE Client - Open two sockets - setup complete L2CAP LE Client - Open two sockets - run
Connect in progress, sk = 13
HCI Command 0x200b length 7
HCI Command 0x200c length 2
Connect in progress, sk = 14
HCI Command 0x200c length 2
Client set connectable status 0x00
HCI Command 0x200d length 25
HCI Command 0x2016 length 2
Successfully connected
Successfully connected
L2CAP LE Client - Open two sockets - test passed

(l2cap-tester:41): GLib-WARNING **: 11:11:35.765: Invalid file descriptor. L2CAP LE Client - Open two sockets - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client - Open two sockets - teardown complete L2CAP LE Client - Open two sockets - done

L2CAP LE Client - Open two sockets close one - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client - Open two sockets close one - setup
Powering on controller
Controller powered on
L2CAP LE Client - Open two sockets close one - setup complete L2CAP LE Client - Open two sockets close one - run
Connect in progress, sk = 13
HCI Command 0x200b length 7
HCI Command 0x200c length 2
Connect in progress, sk = 14
Closing first socket! 13
HCI Command 0x200c length 2
Client set connectable status 0x00
HCI Command 0x200d length 25
HCI Command 0x2016 length 2
Successfully connected
L2CAP LE Client - Open two sockets close one - test passed

(l2cap-tester:41): GLib-WARNING **: 11:11:35.789: Invalid file descriptor. L2CAP LE Client - Open two sockets close one - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client - Open two sockets close one - teardown complete L2CAP LE Client - Open two sockets close one - done

L2CAP LE Client - Invalid PSM - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Client - Invalid PSM - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP LE Client - Invalid PSM - setup complete
L2CAP LE Client - Invalid PSM - run
Connect in progress
Connect failed: Connection refused (111)
L2CAP LE Client - Invalid PSM - test passed
L2CAP LE Client - Invalid PSM - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Client - Invalid PSM - teardown complete
L2CAP LE Client - Invalid PSM - done

L2CAP LE Server - Success - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Server - Success - setup
Powering on controller
Controller powered on
L2CAP LE Server - Success - setup complete
L2CAP LE Server - Success - run
Listening for connections
New client connection with handle 0x002a
Sending L2CAP Request from client
Successfully connected
L2CAP LE Server - Success - test passed
Client received response code 0x15
L2CAP LE Server - Success - test passed
L2CAP LE Server - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Server - Success - teardown complete
L2CAP LE Server - Success - done

L2CAP LE Server - Nval SCID - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE Server - Nval SCID - setup
Powering on controller
Controller powered on
L2CAP LE Server - Nval SCID - setup complete
L2CAP LE Server - Nval SCID - run
Listening for connections
New client connection with handle 0x002a
Sending L2CAP Request from client
Client received response code 0x15
L2CAP LE Server - Nval SCID - test passed
L2CAP LE Server - Nval SCID - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE Server - Nval SCID - teardown complete
L2CAP LE Server - Nval SCID - done

L2CAP Ext-Flowctl Client - Success - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP Ext-Flowctl Client - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP Ext-Flowctl Client - Success - setup complete L2CAP Ext-Flowctl Client - Success - run
Connect in progress
Successfully connected
L2CAP Ext-Flowctl Client - Success - test passed L2CAP Ext-Flowctl Client - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP Ext-Flowctl Client - Success - teardown complete L2CAP Ext-Flowctl Client - Success - done

L2CAP Ext-Flowctl Client, Direct Advertising - Success - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP Ext-Flowctl Client, Direct Advertising - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP Ext-Flowctl Client, Direct Advertising - Success - setup complete L2CAP Ext-Flowctl Client, Direct Advertising - Success - run
Connect in progress
Received advertising parameters HCI command
L2CAP Ext-Flowctl Client, Direct Advertising - Success - test passed L2CAP Ext-Flowctl Client, Direct Advertising - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP Ext-Flowctl Client, Direct Advertising - Success - teardown complete L2CAP Ext-Flowctl Client, Direct Advertising - Success - done

L2CAP Ext-Flowctl Client SMP - Success - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP Ext-Flowctl Client SMP - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP Ext-Flowctl Client SMP - Success - setup complete L2CAP Ext-Flowctl Client SMP - Success - run
Connect in progress
Successfully connected
L2CAP Ext-Flowctl Client SMP - Success - test passed
Bluetooth: hci0: link tx timeout
L2CAP Ext-Flowctl Client SMP - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP Ext-Flowctl Client SMP - Success - teardown complete L2CAP Ext-Flowctl Client SMP - Success - done

L2CAP Ext-Flowctl Client - Command Reject - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP Ext-Flowctl Client - Command Reject - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP Ext-Flowctl Client - Command Reject - setup complete L2CAP Ext-Flowctl Client - Command Reject - run
Connect in progress
New connection with handle 0x002a
Connect failed: Connection refused (111)
L2CAP Ext-Flowctl Client - Command Reject - test passed L2CAP Ext-Flowctl Client - Command Reject - teardown
Index Removed callback

    Index: 0x0000

L2CAP Ext-Flowctl Client - Command Reject - teardown complete L2CAP Ext-Flowctl Client - Command Reject - done

L2CAP Ext-Flowctl Client - Open two sockets - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP Ext-Flowctl Client - Open two sockets - setup
Powering on controller
Controller powered on
L2CAP Ext-Flowctl Client - Open two sockets - setup complete L2CAP Ext-Flowctl Client - Open two sockets - run
Connect in progress, sk = 13 (deferred)
HCI Command 0x200b length 7
HCI Command 0x200c length 2
Connect in progress, sk = 14
HCI Command 0x200c length 2
Client set connectable status 0x00
HCI Command 0x200d length 25
HCI Command 0x2016 length 2
Successfully connected
Successfully connected
Bluetooth: hci0: link tx timeout
L2CAP Ext-Flowctl Client - Open two sockets - test passed

(l2cap-tester:41): GLib-WARNING **: 11:11:35.877: Invalid file descriptor. L2CAP Ext-Flowctl Client - Open two sockets - teardown
Index Removed callback

    Index: 0x0000

L2CAP Ext-Flowctl Client - Open two sockets - teardown complete L2CAP Ext-Flowctl Client - Open two sockets - done

L2CAP Ext-Flowctl Client - Open two sockets close one - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP Ext-Flowctl Client - Open two sockets close one - setup
Powering on controller
Controller powered on
L2CAP Ext-Flowctl Client - Open two sockets close one - setup complete L2CAP Ext-Flowctl Client - Open two sockets close one - run
Connect in progress, sk = 13 (deferred)
HCI Command 0x200b length 7
HCI Command 0x200c length 2
Connect in progress, sk = 14
Closing first socket! 13
HCI Command 0x200c length 2
Client set connectable status 0x00
HCI Command 0x200d length 25
HCI Command 0x2016 length 2
Successfully connected
L2CAP Ext-Flowctl Client - Open two sockets close one - test passed

(l2cap-tester:41): GLib-WARNING **: 11:11:35.891: Invalid file descriptor. L2CAP Ext-Flowctl Client - Open two sockets close one - teardown
Index Removed callback

    Index: 0x0000

L2CAP Ext-Flowctl Client - Open two sockets close one - teardown complete L2CAP Ext-Flowctl Client - Open two sockets close one - done

L2CAP LE ATT Client - Success - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE ATT Client - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
L2CAP LE ATT Client - Success - setup complete
L2CAP LE ATT Client - Success - run
Connect in progress
Successfully connected
L2CAP LE ATT Client - Success - test passed
L2CAP LE ATT Client - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE ATT Client - Success - teardown complete
L2CAP LE ATT Client - Success - done

L2CAP LE ATT Server - Success - init
Read Index List callback

    Status: 0x00
  New hciemu instance created
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

L2CAP LE ATT Server - Success - setup
Powering on controller
Controller powered on
L2CAP LE ATT Server - Success - setup complete
L2CAP LE ATT Server - Success - run
Listening for connections
New client connection with handle 0x002a
Successfully connected
L2CAP LE ATT Server - Success - test passed
L2CAP LE ATT Server - Success - teardown
Index Removed callback

    Index: 0x0000

L2CAP LE ATT Server - Success - teardown complete
L2CAP LE ATT Server - Success - done

Test Summary
------------

Basic L2CAP Socket - Success                         Passed       0.053 seconds
Non-connected getpeername - Failure                  Passed       0.020 seconds
L2CAP BR/EDR Client - Success                        Passed       0.029 seconds
L2CAP BR/EDR Client SSP - Success 1                  Passed       0.020 seconds
L2CAP BR/EDR Client SSP - Success 2                  Passed       0.018 seconds
L2CAP BR/EDR Client PIN Code - Success               Passed       0.015 seconds
L2CAP BR/EDR Client - Read Success                   Passed       0.014 seconds
L2CAP BR/EDR Client - Write Success                  Passed       0.013 seconds
L2CAP BR/EDR Client - Invalid PSM 1                  Passed       0.014 seconds
L2CAP BR/EDR Client - Invalid PSM 2                  Passed       0.012 seconds
L2CAP BR/EDR Client - Invalid PSM 3                  Passed       0.012 seconds
L2CAP BR/EDR Client - Socket Shut WR Success         Passed       0.013 seconds
L2CAP BR/EDR Server - Success                        Passed       0.016 seconds
L2CAP BR/EDR Server - Read Success                   Passed       0.013 seconds
L2CAP BR/EDR Server - Write Success                  Passed       0.013 seconds
L2CAP BR/EDR Server - Security Block                 Passed       0.013 seconds
L2CAP BR/EDR Server - Invalid PSM                    Passed       0.015 seconds
L2CAP BR/EDR Server - Invalid PDU                    Passed       0.018 seconds
L2CAP BR/EDR Server - Invalid Disconnect CID         Passed       0.018 seconds
L2CAP BR/EDR Server - Invalid Config CID             Passed       0.019 seconds
L2CAP LE Client - Success                            Passed       0.022 seconds
L2CAP LE Client, Direct Advertising - Success        Passed       0.013 seconds
L2CAP LE Client SMP - Success                        Passed       0.024 seconds
L2CAP LE Client - Command Reject                     Passed       0.011 seconds
L2CAP LE Client - Connection Reject                  Passed       0.011 seconds
L2CAP LE Client - Close socket 1                     Passed       0.010 seconds
L2CAP LE Client - Close socket 2                     Passed       0.010 seconds
L2CAP LE Client - Open two sockets                   Passed       0.036 seconds
L2CAP LE Client - Open two sockets close one         Passed       0.015 seconds
L2CAP LE Client - Invalid PSM                        Passed       0.010 seconds
L2CAP LE Server - Success                            Passed       0.012 seconds
L2CAP LE Server - Nval SCID                          Passed       0.010 seconds
L2CAP Ext-Flowctl Client - Success                   Passed       0.010 seconds
L2CAP Ext-Flowctl Client, Direct Advertising - Success Passed       0.009 seconds
L2CAP Ext-Flowctl Client SMP - Success               Passed       0.012 seconds
L2CAP Ext-Flowctl Client - Command Reject            Passed       0.009 seconds
L2CAP Ext-Flowctl Client - Open two sockets          Passed       0.014 seconds
L2CAP Ext-Flowctl Client - Open two sockets close one Passed       0.014 seconds
L2CAP LE ATT Client - Success                        Passed       0.009 seconds
L2CAP LE ATT Server - Success                        Passed       0.009 seconds

Total: 40, Passed: 40 (100.0%), Failed: 0, Not Run: 0 Overall execution time: 0.653 seconds
Process 41 exited with status 0
reboot: Restarting system

c[?7lSeaBIOS (version 1.13.0-1ubuntu1.1) Booting from ROM..c[?7learly console in extract_kernel
input_data: 0x0000000001e772e0
input_len: 0x0000000000361ce6
output: 0x0000000001000000
output_len: 0x00000000011a7274
kernel_total_size: 0x0000000001030000
needed_size: 0x0000000001200000
trampoline_32bit: 0x000000000009d000
Physical KASLR using RDTSC...
Virtual KASLR using RDTSC...

Decompressing Linux... Parsing ELF... Performing relocations... done.
Booting the kernel.
Linux version 5.12.0-g6342268a1e2a (root@3efa844bda40) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #2 Tue May 18 11:11:28 UTC 2021
Command line: console=ttyS0,115200n8 earlyprintk=serial rootfstype=9p rootflags=trans=virtio,version=9p2000.L acpi=off pci=noacpi noapic quiet ro init=/github/workspace/bluez/tools/test-runner bluetooth.enable_ecred=1TESTHOME=/github/workspace TESTDBUS=0 TESTMONITOR=0 TESTDEVS=0 TESTAUTO=0 TESTARGS='/github/workspace/bluez/tools/bnep-tester' x86/fpu: x87 FPU will use FXSAVE
BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
BIOS-e820: [mem 0x0000000000100000-0x000000000bffdfff] usable
BIOS-e820: [mem 0x000000000bffe000-0x000000000bffffff] reserved
BIOS-e820: [mem 0x00000000b0000000-0x00000000bfffffff] reserved
BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
printk: bootconsole [earlyser0] enabled
Memory KASLR using RDTSC...
Poking KASLR using RDTSC...
Mounting sysfs to /sys
Mounting proc to /proc
Mounting devtmpfs to /dev
Creating /dev/pts
Mounting devpts to /dev/pts
Creating /dev/shm
Mounting tmpfs to /dev/shm
Mounting tmpfs to /run
Mounting tmpfs to /tmp
Mounting debugfs to /sys/kernel/debug
Linking /dev/fd to /proc/self/fd
Linking /dev/stdin to /proc/self/fd/0
Linking /dev/stdout to /proc/self/fd/1
Linking /dev/stderr to /proc/self/fd/2
Creating new session group leader
Setting controlling terminal
Creating /var/lib/bluetooth
Failed to create filesystem: No such file or directory
Creating /etc/bluetooth
Failed to create filesystem: No such file or directory
Creating /etc/dbus-1
Failed to create filesystem: No such file or directory
Creating /usr/share/dbus-1
Running command /github/workspace/bluez/tools/bnep-tester
New process 41 created
Changing into directory /github/workspace

Basic BNEP Socket - Success - init
Read Index List callback

    Status: 0x00

New hciemu instance created
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: 0x00
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Basic BNEP Socket - Success - setup
Powering on controller
Controller powered on
Client set connectable status 0x00
Basic BNEP Socket - Success - setup complete
Basic BNEP Socket - Success - run
Basic BNEP Socket - Success - test passed
Basic BNEP Socket - Success - teardown
Index Removed callback

    Index: 0x0000

Basic BNEP Socket - Success - teardown complete
Basic BNEP Socket - Success - done

Test Summary
------------
Basic BNEP Socket - Success Passed 0.050 seconds
Total: 1, Passed: 1 (100.0%), Failed: 0, Not Run: 0 Overall execution time: 0.0559 seconds Process 41 exited with status 0
reboot: Restarting system

c[?7lSeaBIOS (version 1.13.0-1ubuntu1.1) Booting from ROM..c[?7learly console in extract_kernel
input_data: 0x0000000001e772e0
input_len: 0x0000000000361ce6
output: 0x0000000001000000
output_len: 0x00000000011a7274
kernel_total_size: 0x0000000001030000
needed_size: 0x0000000001200000
trampoline_32bit: 0x000000000009d000
Physical KASLR using RDTSC...
Virtual KASLR using RDTSC...

Decompressing Linux... Parsing ELF... Performing relocations... done.
Booting the kernel.
Linux version 5.12.0-g6342268a1e2a (root@3efa844bda40) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #2 Tue May 18 11:11:28 UTC 2021
Command line: console=ttyS0,115200n8 earlyprintk=serial rootfstype=9p rootflags=trans=virtio,version=9p2000.L acpi=off pci=noacpi noapic quiet ro init=/github/workspace/bluez/tools/test-runner bluetooth.enable_ecred=1TESTHOME=/github/workspace TESTDBUS=0 TESTMONITOR=0 TESTDEVS=0 TESTAUTO=0 TESTARGS='/github/workspace/bluez/tools/mgmt-tester' x86/fpu: x87 FPU will use FXSAVE
BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
BIOS-e820: [mem 0x0000000000100000-0x000000000bffdfff] usable
BIOS-e820: [mem 0x000000000bffe000-0x000000000bffffff] reserved
BIOS-e820: [mem 0x00000000b0000000-0x00000000bfffffff] reserved
BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
printk: bootconsole [earlyser0] enabled
Memory KASLR using RDTSC...
Poking KASLR using RDTSC...
Mounting sysfs to /sys
Mounting proc to /proc
Mounting devtmpfs to /dev
Creating /dev/pts
Mounting devpts to /dev/pts
Creating /dev/shm
Mounting tmpfs to /dev/shm
Mounting tmpfs to /run
Mounting tmpfs to /tmp
Mounting debugfs to /sys/kernel/debug
Linking /dev/fd to /proc/self/fd
Linking /dev/stdin to /proc/self/fd/0
Linking /dev/stdout to /proc/self/fd/1
Linking /dev/stderr to /proc/self/fd/2
Creating new session group leader
Setting controlling terminal
Creating /var/lib/bluetooth
Failed to create filesystem: No such file or directory
Creating /etc/bluetooth
Failed to create filesystem: No such file or directory
Creating /etc/dbus-1
Failed to create filesystem: No such file or directory
Creating /usr/share/dbus-1
Running command /github/workspace/bluez/tools/mgmt-tester
New process 41 created
Changing into directory /github/workspace

Controller setup - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Controller setup - setup
Controller setup - setup complete
Controller setup - run
Controller setup - test passed
Controller setup - teardown
Index Removed callback

    Index: 0x0000

Controller setup - teardown complete
Controller setup - done

Controller setup (BR/EDR-only) - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)

Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Controller setup (BR/EDR-only) - setup
Controller setup (BR/EDR-only) - setup complete
Controller setup (BR/EDR-only) - run
Controller setup (BR/EDR-only) - test passed
Controller setup (BR/EDR-only) - teardown
Index Removed callback

    Index: 0x0000

Controller setup (BR/EDR-only) - teardown complete Controller setup (BR/EDR-only) - done

Controller setup (LE) - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Controller setup (LE) - setup
Controller setup (LE) - setup complete
Controller setup (LE) - run
Controller setup (LE) - test passed
Controller setup (LE) - teardown
Index Removed callback

    Index: 0x0000

Controller setup (LE) - teardown complete
Controller setup (LE) - done

Invalid command - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Invalid command - setup
Invalid command - setup complete
Invalid command - run
Sending <unknown opcode> (0xffff)
Test condition added, total 1
<unknown opcode> (0xffff): Unknown Command (0x01) Test condition complete, 0 left
Invalid command - test passed
Invalid command - teardown
Index Removed callback

    Index: 0x0000

Invalid command - teardown complete
Invalid command - done

Read version - Success - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read version - Success - setup
Read version - Success - setup complete
Read version - Success - run
Sending Read Version (0x0001)
Test condition added, total 1
Read Version (0x0001): Success (0x00)
Test condition complete, 0 left
Read version - Success - test passed
Read version - Success - teardown
Index Removed callback

    Index: 0x0000

Read version - Success - teardown complete
Read version - Success - done

Read version - Invalid parameters - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read version - Invalid parameters - setup Read version - Invalid parameters - setup complete Read version - Invalid parameters - run
Sending Read Version (0x0001)
Test condition added, total 1
Read Version (0x0001): Invalid Parameters (0x0d) Test condition complete, 0 left
Read version - Invalid parameters - test passed Read version - Invalid parameters - teardown
Index Removed callback

    Index: 0x0000

Read version - Invalid parameters - teardown complete Read version - Invalid parameters - done

Read version - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read version - Invalid index - setup
Read version - Invalid index - setup complete
Read version - Invalid index - run
Sending Read Version (0x0001)
Test condition added, total 1
Read Version (0x0001): Invalid Index (0x11)
Test condition complete, 0 left
Read version - Invalid index - test passed
Read version - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Read version - Invalid index - teardown complete
Read version - Invalid index - done

Read commands - Invalid parameters - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read commands - Invalid parameters - setup Read commands - Invalid parameters - setup complete Read commands - Invalid parameters - run
Sending Read Commands (0x0002)
Test condition added, total 1
Read Commands (0x0002): Invalid Parameters (0x0d) Test condition complete, 0 left
Read commands - Invalid parameters - test passed Read commands - Invalid parameters - teardown
Index Removed callback

    Index: 0x0000

Read commands - Invalid parameters - teardown complete Read commands - Invalid parameters - done

Read commands - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read commands - Invalid index - setup
Read commands - Invalid index - setup complete
Read commands - Invalid index - run
Sending Read Commands (0x0002)
Test condition added, total 1
Read Commands (0x0002): Invalid Index (0x11)
Test condition complete, 0 left
Read commands - Invalid index - test passed
Read commands - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Read commands - Invalid index - teardown complete
Read commands - Invalid index - done

Read index list - Invalid parameters - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read index list - Invalid parameters - setup Read index list - Invalid parameters - setup complete Read index list - Invalid parameters - run
Sending Read Index List (0x0003)
Test condition added, total 1
Read Index List (0x0003): Invalid Parameters (0x0d) Test condition complete, 0 left
Read index list - Invalid parameters - test passed Read index list - Invalid parameters - teardown
Index Removed callback

    Index: 0x0000

Read index list - Invalid parameters - teardown complete Read index list - Invalid parameters - done

Read index list - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read index list - Invalid index - setup
Read index list - Invalid index - setup complete
Read index list - Invalid index - run
Sending Read Index List (0x0003)
Test condition added, total 1
Read Index List (0x0003): Invalid Index (0x11)
Test condition complete, 0 left
Read index list - Invalid index - test passed
Read index list - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Read index list - Invalid index - teardown complete Read index list - Invalid index - done

Read info - Invalid parameters - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read info - Invalid parameters - setup
Read info - Invalid parameters - setup complete Read info - Invalid parameters - run
Sending Read Controller Info (0x0004)
Test condition added, total 1
Read Controller Info (0x0004): Invalid Parameters (0x0d) Test condition complete, 0 left
Read info - Invalid parameters - test passed
Read info - Invalid parameters - teardown
Index Removed callback

    Index: 0x0000

Read info - Invalid parameters - teardown complete Read info - Invalid parameters - done

Read info - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read info - Invalid index - setup
Read info - Invalid index - setup complete Read info - Invalid index - run
Sending Read Controller Info (0x0004)
Test condition added, total 1
Read Controller Info (0x0004): Invalid Index (0x11) Test condition complete, 0 left
Read info - Invalid index - test passed
Read info - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Read info - Invalid index - teardown complete
Read info - Invalid index - done

Read unconfigured index list - Invalid parameters - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read unconfigured index list - Invalid parameters - setup Read unconfigured index list - Invalid parameters - setup complete Read unconfigured index list - Invalid parameters - run
Sending Read Unconfigured Index List (0x0036)
Test condition added, total 1
Read Unconfigured Index List (0x0036): Invalid Parameters (0x0d) Test condition complete, 0 left
Read unconfigured index list - Invalid parameters - test passed Read unconfigured index list - Invalid parameters - teardown
Index Removed callback

    Index: 0x0000

Read unconfigured index list - Invalid parameters - teardown complete Read unconfigured index list - Invalid parameters - done

Read unconfigured index list - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read unconfigured index list - Invalid index - setup Read unconfigured index list - Invalid index - setup complete Read unconfigured index list - Invalid index - run
Sending Read Unconfigured Index List (0x0036) Test condition added, total 1
Read Unconfigured Index List (0x0036): Invalid Index (0x11) Test condition complete, 0 left
Read unconfigured index list - Invalid index - test passed Read unconfigured index list - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Read unconfigured index list - Invalid index - teardown complete Read unconfigured index list - Invalid index - done

Read configuration info - Invalid parameters - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read configuration info - Invalid parameters - setup
Read configuration info - Invalid parameters - setup complete
Read configuration info - Invalid parameters - run
Sending Read Controller Configuration Information (0x0037)
Test condition added, total 1
Read Controller Configuration Information (0x0037): Invalid Parameters (0x0d) Test condition complete, 0 left
Read configuration info - Invalid parameters - test passed
Read configuration info - Invalid parameters - teardown
Index Removed callback

    Index: 0x0000

Read configuration info - Invalid parameters - teardown complete Read configuration info - Invalid parameters - done

Read configuration info - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read configuration info - Invalid index - setup
Read configuration info - Invalid index - setup complete
Read configuration info - Invalid index - run
Sending Read Controller Configuration Information (0x0037) Test condition added, total 1
Read Controller Configuration Information (0x0037): Invalid Index (0x11) Test condition complete, 0 left
Read configuration info - Invalid index - test passed
Read configuration info - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Read configuration info - Invalid index - teardown complete Read configuration info - Invalid index - done

Read extended index list - Invalid parameters - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read extended index list - Invalid parameters - setup
Read extended index list - Invalid parameters - setup complete Read extended index list - Invalid parameters - run
Sending Read Extended Controller Index List (0x003c)
Test condition added, total 1
Read Extended Controller Index List (0x003c): Invalid Parameters (0x0d) Test condition complete, 0 left
Read extended index list - Invalid parameters - test passed Read extended index list - Invalid parameters - teardown
Index Removed callback

    Index: 0x0000

Read extended index list - Invalid parameters - teardown complete Read extended index list - Invalid parameters - done

Read extended index list - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Read extended index list - Invalid index - setup
Read extended index list - Invalid index - setup complete Read extended index list - Invalid index - run
Sending Read Extended Controller Index List (0x003c) Test condition added, total 1
Read Extended Controller Index List (0x003c): Invalid Index (0x11) Test condition complete, 0 left
Read extended index list - Invalid index - test passed Read extended index list - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Read extended index list - Invalid index - teardown complete Read extended index list - Invalid index - done

Set powered on - Success - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered on - Success - setup
Set powered on - Success - setup complete
Set powered on - Success - run
Registering new settings notification
Test condition added, total 1
Sending Set Powered (0x0005)
Test condition added, total 2
Set Powered (0x0005): Success (0x00)
Test condition complete, 1 left
New settings 0x00000081 received
Unregistering new settings notification
Test condition complete, 0 left
Set powered on - Success - test passed
Set powered on - Success - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set powered on - Success - teardown complete
Set powered on - Success - done

Set powered on - Invalid parameters 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered on - Invalid parameters 1 - setup Set powered on - Invalid parameters 1 - setup complete Set powered on - Invalid parameters 1 - run
Sending Set Powered (0x0005)
Test condition added, total 1
Set Powered (0x0005): Invalid Parameters (0x0d) Test condition complete, 0 left
Set powered on - Invalid parameters 1 - test passed Set powered on - Invalid parameters 1 - teardown
Index Removed callback

    Index: 0x0000

Set powered on - Invalid parameters 1 - teardown complete Set powered on - Invalid parameters 1 - done

Set powered on - Invalid parameters 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered on - Invalid parameters 2 - setup Set powered on - Invalid parameters 2 - setup complete Set powered on - Invalid parameters 2 - run
Sending Set Powered (0x0005)
Test condition added, total 1
Set Powered (0x0005): Invalid Parameters (0x0d) Test condition complete, 0 left
Set powered on - Invalid parameters 2 - test passed Set powered on - Invalid parameters 2 - teardown
Index Removed callback

    Index: 0x0000

Set powered on - Invalid parameters 2 - teardown complete Set powered on - Invalid parameters 2 - done

Set powered on - Invalid parameters 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered on - Invalid parameters 3 - setup Set powered on - Invalid parameters 3 - setup complete Set powered on - Invalid parameters 3 - run
Sending Set Powered (0x0005)
Test condition added, total 1
Set Powered (0x0005): Invalid Parameters (0x0d) Test condition complete, 0 left
Set powered on - Invalid parameters 3 - test passed Set powered on - Invalid parameters 3 - teardown
Index Removed callback

    Index: 0x0000

Set powered on - Invalid parameters 3 - teardown complete Set powered on - Invalid parameters 3 - done

Set powered on - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered on - Invalid index - setup
Set powered on - Invalid index - setup complete
Set powered on - Invalid index - run
Sending Set Powered (0x0005)
Test condition added, total 1
Set Powered (0x0005): Invalid Index (0x11)
Test condition complete, 0 left
Set powered on - Invalid index - test passed
Set powered on - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Set powered on - Invalid index - teardown complete Set powered on - Invalid index - done

Set powered on - Privacy and Advertising - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set powered on - Privacy and Advertising - setup
Initial settings completed
Client set connectable: Success (0x00)
Set powered on - Privacy and Advertising - setup complete Set powered on - Privacy and Advertising - run
Sending Set Advertising (0x0029)
Test condition added, total 1
Set Advertising (0x0029): Success (0x00)
Test condition complete, 0 left
Set powered on - Privacy and Advertising - test passed Set powered on - Privacy and Advertising - teardown
Index Removed callback

    Index: 0x0000

Set powered on - Privacy and Advertising - teardown complete Set powered on - Privacy and Advertising - done

Set powered off - Success - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered off - Success - setup
Initial settings completed
Client set connectable: Success (0x00)
Set powered off - Success - setup complete
Set powered off - Success - run
Registering new settings notification
Test condition added, total 1
Sending Set Powered (0x0005)
Test condition added, total 2
Set Powered (0x0005): Success (0x00)
Test condition complete, 1 left
New settings 0x00000080 received
Unregistering new settings notification
Test condition complete, 0 left
Set powered off - Success - test passed
Set powered off - Success - teardown
Index Removed callback

    Index: 0x0000

Set powered off - Success - teardown complete
Set powered off - Success - done

Set powered off - Class of Device - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered off - Class of Device - setup
Setting device class and powering on Controller powered on
Client set connectable: Success (0x00)
Set powered off - Class of Device - setup complete Set powered off - Class of Device - run
Registering new settings notification Test condition added, total 1 Registering Class of Device Changed notification Test condition added, total 2
Sending Set Powered (0x0005)
Test condition added, total 3
Set Powered (0x0005): Success (0x00) Test condition complete, 2 left
New Class of Device Changed event received Test condition complete, 1 left
New settings 0x00000080 received Unregistering new settings notification Test condition complete, 0 left
Set powered off - Class of Device - test passed Set powered off - Class of Device - teardown
Index Removed callback

    Index: 0x0000

Set powered off - Class of Device - teardown complete Set powered off - Class of Device - done

Set powered off - Invalid parameters 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered off - Invalid parameters 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set powered off - Invalid parameters 1 - setup complete Set powered off - Invalid parameters 1 - run
Sending Set Powered (0x0005)
Test condition added, total 1
Set Powered (0x0005): Invalid Parameters (0x0d) Test condition complete, 0 left
Set powered off - Invalid parameters 1 - test passed Set powered off - Invalid parameters 1 - teardown
Index Removed callback

    Index: 0x0000

Set powered off - Invalid parameters 1 - teardown complete Set powered off - Invalid parameters 1 - done

Set powered off - Invalid parameters 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered off - Invalid parameters 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set powered off - Invalid parameters 2 - setup complete Set powered off - Invalid parameters 2 - run
Sending Set Powered (0x0005)
Test condition added, total 1
Set Powered (0x0005): Invalid Parameters (0x0d) Test condition complete, 0 left
Set powered off - Invalid parameters 2 - test passed Set powered off - Invalid parameters 2 - teardown
Index Removed callback

    Index: 0x0000

Set powered off - Invalid parameters 2 - teardown complete Set powered off - Invalid parameters 2 - done

Set powered off - Invalid parameters 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set powered off - Invalid parameters 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set powered off - Invalid parameters 3 - setup complete Set powered off - Invalid parameters 3 - run
Sending Set Powered (0x0005)
Test condition added, total 1
Set Powered (0x0005): Invalid Parameters (0x0d) Test condition complete, 0 left
Set powered off - Invalid parameters 3 - test passed Set powered off - Invalid parameters 3 - teardown
Index Removed callback

    Index: 0x0000

Set powered off - Invalid parameters 3 - teardown complete Set powered off - Invalid parameters 3 - done

Set connectable on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable on - Success 1 - setup
Set connectable on - Success 1 - setup complete
Set connectable on - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Connectable (0x0007)
Test condition added, total 2
Set Connectable (0x0007): Success (0x00)
Test condition complete, 1 left
New settings 0x00000082 received
Unregistering new settings notification
Test condition complete, 0 left
Set connectable on - Success 1 - test passed
Set connectable on - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set connectable on - Success 1 - teardown complete Set connectable on - Success 1 - done

Set connectable on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable on - Success 2 - setup complete
Set connectable on - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Connectable (0x0007)
Test condition added, total 3
HCI Command 0x0c1a length 1
Test condition complete, 2 left
Set Connectable (0x0007): Success (0x00)
Test condition complete, 1 left
New settings 0x00000083 received
Unregistering new settings notification
Test condition complete, 0 left
Set connectable on - Success 2 - test passed
Set connectable on - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set connectable on - Success 2 - teardown complete Set connectable on - Success 2 - done

Set connectable on - Invalid parameters 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable on - Invalid parameters 1 - setup Set connectable on - Invalid parameters 1 - setup complete Set connectable on - Invalid parameters 1 - run
Sending Set Connectable (0x0007)
Test condition added, total 1
Set Connectable (0x0007): Invalid Parameters (0x0d) Test condition complete, 0 left
Set connectable on - Invalid parameters 1 - test passed Set connectable on - Invalid parameters 1 - teardown
Index Removed callback

    Index: 0x0000

Set connectable on - Invalid parameters 1 - teardown complete Set connectable on - Invalid parameters 1 - done

Set connectable on - Invalid parameters 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable on - Invalid parameters 2 - setup Set connectable on - Invalid parameters 2 - setup complete Set connectable on - Invalid parameters 2 - run
Sending Set Connectable (0x0007)
Test condition added, total 1
Set Connectable (0x0007): Invalid Parameters (0x0d) Test condition complete, 0 left
Set connectable on - Invalid parameters 2 - test passed Set connectable on - Invalid parameters 2 - teardown
Index Removed callback

    Index: 0x0000

Set connectable on - Invalid parameters 2 - teardown complete Set connectable on - Invalid parameters 2 - done

Set connectable on - Invalid parameters 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable on - Invalid parameters 3 - setup Set connectable on - Invalid parameters 3 - setup complete Set connectable on - Invalid parameters 3 - run
Sending Set Connectable (0x0007)
Test condition added, total 1
Set Connectable (0x0007): Invalid Parameters (0x0d) Test condition complete, 0 left
Set connectable on - Invalid parameters 3 - test passed Set connectable on - Invalid parameters 3 - teardown
Index Removed callback

    Index: 0x0000

Set connectable on - Invalid parameters 3 - teardown complete Set connectable on - Invalid parameters 3 - done

Set connectable on - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable on - Invalid index - setup Set connectable on - Invalid index - setup complete Set connectable on - Invalid index - run
Sending Set Connectable (0x0007)
Test condition added, total 1
Set Connectable (0x0007): Invalid Index (0x11) Test condition complete, 0 left
Set connectable on - Invalid index - test passed Set connectable on - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Set connectable on - Invalid index - teardown complete Set connectable on - Invalid index - done

Set connectable on (LE) - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set connectable on (LE) - Success 1 - setup Set connectable on (LE) - Success 1 - setup complete Set connectable on (LE) - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Connectable (0x0007)
Test condition added, total 2
Set Connectable (0x0007): Success (0x00) Test condition complete, 1 left
New settings 0x00000202 received Unregistering new settings notification Test condition complete, 0 left
Set connectable on (LE) - Success 1 - test passed Set connectable on (LE) - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set connectable on (LE) - Success 1 - teardown complete Set connectable on (LE) - Success 1 - done

Set connectable on (LE) - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set connectable on (LE) - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable on (LE) - Success 2 - setup complete Set connectable on (LE) - Success 2 - run
Registering new settings notification
Test condition added, total 1
Sending Set Connectable (0x0007)
Test condition added, total 2
Set Connectable (0x0007): Success (0x00) Test condition complete, 1 left
New settings 0x00000203 received Unregistering new settings notification Test condition complete, 0 left
Set connectable on (LE) - Success 2 - test passed Set connectable on (LE) - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set connectable on (LE) - Success 2 - teardown complete Set connectable on (LE) - Success 2 - done

Set connectable on (LE) - Success 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set connectable on (LE) - Success 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable on (LE) - Success 3 - setup complete Set connectable on (LE) - Success 3 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Connectable (0x0007)
Test condition added, total 3
HCI Command 0x200a length 1
HCI Command 0x2006 length 15
Test condition complete, 2 left
HCI Command 0x200a length 1
Set Connectable (0x0007): Success (0x00) Test condition complete, 1 left
New settings 0x00000603 received Unregistering new settings notification Test condition complete, 0 left
Set connectable on (LE) - Success 3 - test passed Set connectable on (LE) - Success 3 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set connectable on (LE) - Success 3 - teardown complete Set connectable on (LE) - Success 3 - done

Set connectable off - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable off - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable off - Success 1 - setup complete
Set connectable off - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Connectable (0x0007)
Test condition added, total 2
Set Connectable (0x0007): Success (0x00)
Test condition complete, 1 left
New settings 0x00000080 received
Unregistering new settings notification
Test condition complete, 0 left
Set connectable off - Success 1 - test passed
Set connectable off - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set connectable off - Success 1 - teardown complete Set connectable off - Success 1 - done

Set connectable off - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable off - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable off - Success 2 - setup complete
Set connectable off - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Connectable (0x0007)
Test condition added, total 3
HCI Command 0x0c1a length 1
Test condition complete, 2 left
Set Connectable (0x0007): Success (0x00)
Test condition complete, 1 left
New settings 0x00000081 received
Unregistering new settings notification
Test condition complete, 0 left
Set connectable off - Success 2 - test passed
Set connectable off - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set connectable off - Success 2 - teardown complete Set connectable off - Success 2 - done

Set connectable off - Success 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable off - Success 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable off - Success 3 - setup complete
Set connectable off - Success 3 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Connectable (0x0007)
Test condition added, total 3
HCI Command 0x0c1a length 1
Test condition complete, 2 left
Set Connectable (0x0007): Success (0x00)
Test condition complete, 1 left
New settings 0x00000081 received
Unregistering new settings notification
Test condition complete, 0 left
Set connectable off - Success 3 - test passed
Set connectable off - Success 3 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set connectable off - Success 3 - teardown complete Set connectable off - Success 3 - done

Set connectable off - Success 4 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set connectable off - Success 4 - setup
Initial settings completed
Powering on controller (with added device)
Controller powered on
Client set connectable: Success (0x00)
Set connectable off - Success 4 - setup complete
Set connectable off - Success 4 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Connectable (0x0007)
Test condition added, total 3
HCI Command 0x0c1a length 1
Test condition complete, 2 left
Set Connectable (0x0007): Success (0x00)
Test condition complete, 1 left
New settings 0x00000081 received
Unregistering new settings notification
Test condition complete, 0 left
Set connectable off - Success 4 - test passed
Set connectable off - Success 4 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set connectable off - Success 4 - teardown complete Set connectable off - Success 4 - done

Set connectable off (LE) - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set connectable off (LE) - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable off (LE) - Success 1 - setup complete Set connectable off (LE) - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Connectable (0x0007)
Test condition added, total 2
Set Connectable (0x0007): Success (0x00) Test condition complete, 1 left
New settings 0x00000200 received Unregistering new settings notification Test condition complete, 0 left
Set connectable off (LE) - Success 1 - test passed Set connectable off (LE) - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set connectable off (LE) - Success 1 - teardown complete Set connectable off (LE) - Success 1 - done

Set connectable off (LE) - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set connectable off (LE) - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable off (LE) - Success 2 - setup complete Set connectable off (LE) - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Connectable (0x0007)
Test condition added, total 3
HCI Command 0x200a length 1
HCI Command 0x2005 length 6
HCI Command 0x2006 length 15
Test condition complete, 2 left
HCI Command 0x200a length 1
Set Connectable (0x0007): Success (0x00) Test condition complete, 1 left
New settings 0x00000601 received Unregistering new settings notification Test condition complete, 0 left
Set connectable off (LE) - Success 2 - test passed Set connectable off (LE) - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set connectable off (LE) - Success 2 - teardown complete Set connectable off (LE) - Success 2 - done

Set connectable off (LE) - Success 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set connectable off (LE) - Success 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable off (LE) - Success 3 - setup complete Set connectable off (LE) - Success 3 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Connectable (0x0007)
Test condition added, total 3
HCI Command 0x2008 length 32
HCI Command 0x200a length 1
HCI Command 0x2005 length 6
HCI Command 0x2006 length 15
Test condition complete, 2 left
HCI Command 0x200a length 1
Set Connectable (0x0007): Success (0x00) Test condition complete, 1 left
New settings 0x00000601 received Unregistering new settings notification Test condition complete, 0 left
Set connectable off (LE) - Success 3 - test passed Set connectable off (LE) - Success 3 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set connectable off (LE) - Success 3 - teardown complete Set connectable off (LE) - Success 3 - done

Set connectable off (LE) - Success 4 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set connectable off (LE) - Success 4 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set connectable off (LE) - Success 4 - setup complete Set connectable off (LE) - Success 4 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Connectable (0x0007)
Test condition added, total 3
HCI Command 0x2008 length 32
HCI Command 0x200a length 1
HCI Command 0x2005 length 6
HCI Command 0x2006 length 15
Test condition complete, 2 left
HCI Command 0x200a length 1
Set Connectable (0x0007): Success (0x00) Test condition complete, 1 left
New settings 0x00000601 received Unregistering new settings notification Test condition complete, 0 left
Set connectable off (LE) - Success 4 - test passed Set connectable off (LE) - Success 4 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set connectable off (LE) - Success 4 - teardown complete Set connectable off (LE) - Success 4 - done

Set fast connectable on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set fast connectable on - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set fast connectable on - Success 1 - setup complete Set fast connectable on - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Fast Connectable (0x0008)
Test condition added, total 2
Set Fast Connectable (0x0008): Success (0x00) Test condition complete, 1 left
New settings 0x00000087 received Unregistering new settings notification Test condition complete, 0 left
Set fast connectable on - Success 1 - test passed Set fast connectable on - Success 1 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set fast connectable on - Success 1 - teardown complete Set fast connectable on - Success 1 - done

Set fast connectable on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set fast connectable on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set fast connectable on - Success 2 - setup complete Set fast connectable on - Success 2 - run
Registering new settings notification
Test condition added, total 1
Sending Set Fast Connectable (0x0008)
Test condition added, total 2
Set Fast Connectable (0x0008): Success (0x00) Test condition complete, 1 left
New settings 0x00000085 received Unregistering new settings notification Test condition complete, 0 left
Set fast connectable on - Success 2 - test passed Set fast connectable on - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set fast connectable on - Success 2 - teardown complete Set fast connectable on - Success 2 - done

Set fast connectable on - Success 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set fast connectable on - Success 3 - setup Set fast connectable on - Success 3 - setup complete Set fast connectable on - Success 3 - run
Registering new settings notification
Test condition added, total 1
Sending Set Fast Connectable (0x0008)
Test condition added, total 2
Set Fast Connectable (0x0008): Success (0x00) Test condition complete, 1 left
New settings 0x00000084 received Unregistering new settings notification Test condition complete, 0 left
Set fast connectable on - Success 3 - test passed Set fast connectable on - Success 3 - teardown
Index Removed callback

    Index: 0x0000

Set fast connectable on - Success 3 - teardown complete Set fast connectable on - Success 3 - done

Set fast connectable on - Invalid Params 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set fast connectable on - Invalid Params 1 - setup Set fast connectable on - Invalid Params 1 - setup complete Set fast connectable on - Invalid Params 1 - run
Sending Set Fast Connectable (0x0008)
Test condition added, total 1
Set Fast Connectable (0x0008): Invalid Parameters (0x0d) Test condition complete, 0 left
Set fast connectable on - Invalid Params 1 - test passed Set fast connectable on - Invalid Params 1 - teardown
Index Removed callback

    Index: 0x0000

Set fast connectable on - Invalid Params 1 - teardown complete Set fast connectable on - Invalid Params 1 - done

Set fast connectable on - Not Supported 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set fast connectable on - Not Supported 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set fast connectable on - Not Supported 1 - setup complete Set fast connectable on - Not Supported 1 - run
Sending Set Fast Connectable (0x0008)
Test condition added, total 1
Set Fast Connectable (0x0008): Not Supported (0x0c) Test condition complete, 0 left
Set fast connectable on - Not Supported 1 - test passed Set fast connectable on - Not Supported 1 - teardown
Index Removed callback

    Index: 0x0000

Set fast connectable on - Not Supported 1 - teardown complete Set fast connectable on - Not Supported 1 - done

Set bondable on - Success - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set bondable on - Success - setup
Set bondable on - Success - setup complete
Set bondable on - Success - run
Registering new settings notification
Test condition added, total 1
Sending Set Bondable (0x0009)
Test condition added, total 2
Set Bondable (0x0009): Success (0x00)
Test condition complete, 1 left
New settings 0x00000090 received
Unregistering new settings notification
Test condition complete, 0 left
Set bondable on - Success - test passed
Set bondable on - Success - teardown
Index Removed callback

    Index: 0x0000

Set bondable on - Success - teardown complete
Set bondable on - Success - done

Set bondable on - Invalid parameters 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set bondable on - Invalid parameters 1 - setup Set bondable on - Invalid parameters 1 - setup complete Set bondable on - Invalid parameters 1 - run
Sending Set Bondable (0x0009)
Test condition added, total 1
Set Bondable (0x0009): Invalid Parameters (0x0d) Test condition complete, 0 left
Set bondable on - Invalid parameters 1 - test passed Set bondable on - Invalid parameters 1 - teardown
Index Removed callback

    Index: 0x0000

Set bondable on - Invalid parameters 1 - teardown complete Set bondable on - Invalid parameters 1 - done

Set bondable on - Invalid parameters 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set bondable on - Invalid parameters 2 - setup Set bondable on - Invalid parameters 2 - setup complete Set bondable on - Invalid parameters 2 - run
Sending Set Bondable (0x0009)
Test condition added, total 1
Set Bondable (0x0009): Invalid Parameters (0x0d) Test condition complete, 0 left
Set bondable on - Invalid parameters 2 - test passed Set bondable on - Invalid parameters 2 - teardown
Index Removed callback

    Index: 0x0000

Set bondable on - Invalid parameters 2 - teardown complete Set bondable on - Invalid parameters 2 - done

Set bondable on - Invalid parameters 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set bondable on - Invalid parameters 3 - setup Set bondable on - Invalid parameters 3 - setup complete Set bondable on - Invalid parameters 3 - run
Sending Set Bondable (0x0009)
Test condition added, total 1
Set Bondable (0x0009): Invalid Parameters (0x0d) Test condition complete, 0 left
Set bondable on - Invalid parameters 3 - test passed Set bondable on - Invalid parameters 3 - teardown
Index Removed callback

    Index: 0x0000

Set bondable on - Invalid parameters 3 - teardown complete Set bondable on - Invalid parameters 3 - done

Set bondable on - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set bondable on - Invalid index - setup
Set bondable on - Invalid index - setup complete
Set bondable on - Invalid index - run
Sending Set Bondable (0x0009)
Test condition added, total 1
Set Bondable (0x0009): Invalid Index (0x11)
Test condition complete, 0 left
Set bondable on - Invalid index - test passed
Set bondable on - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Set bondable on - Invalid index - teardown complete Set bondable on - Invalid index - done

Set discoverable on - Invalid parameters 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Invalid parameters 1 - setup Set discoverable on - Invalid parameters 1 - setup complete Set discoverable on - Invalid parameters 1 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Invalid Parameters (0x0d) Test condition complete, 0 left
Set discoverable on - Invalid parameters 1 - test passed Set discoverable on - Invalid parameters 1 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Invalid parameters 1 - teardown complete Set discoverable on - Invalid parameters 1 - done

Set discoverable on - Invalid parameters 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Invalid parameters 2 - setup Set discoverable on - Invalid parameters 2 - setup complete Set discoverable on - Invalid parameters 2 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Invalid Parameters (0x0d) Test condition complete, 0 left
Set discoverable on - Invalid parameters 2 - test passed Set discoverable on - Invalid parameters 2 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Invalid parameters 2 - teardown complete Set discoverable on - Invalid parameters 2 - done

Set discoverable on - Invalid parameters 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Invalid parameters 3 - setup Set discoverable on - Invalid parameters 3 - setup complete Set discoverable on - Invalid parameters 3 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Invalid Parameters (0x0d) Test condition complete, 0 left
Set discoverable on - Invalid parameters 3 - test passed Set discoverable on - Invalid parameters 3 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Invalid parameters 3 - teardown complete Set discoverable on - Invalid parameters 3 - done

Set discoverable on - Invalid parameters 4 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Invalid parameters 4 - setup Set discoverable on - Invalid parameters 4 - setup complete Set discoverable on - Invalid parameters 4 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Invalid Parameters (0x0d) Test condition complete, 0 left
Set discoverable on - Invalid parameters 4 - test passed Set discoverable on - Invalid parameters 4 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Invalid parameters 4 - teardown complete Set discoverable on - Invalid parameters 4 - done

Set discoverable on - Not powered 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Not powered 1 - setup Set discoverable on - Not powered 1 - setup complete Set discoverable on - Not powered 1 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Not Powered (0x0f) Test condition complete, 0 left
Set discoverable on - Not powered 1 - test passed Set discoverable on - Not powered 1 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Not powered 1 - teardown complete Set discoverable on - Not powered 1 - done

Set discoverable on - Not powered 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Not powered 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set discoverable on - Not powered 2 - setup complete Set discoverable on - Not powered 2 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Not Powered (0x0f) Test condition complete, 0 left
Set discoverable on - Not powered 2 - test passed Set discoverable on - Not powered 2 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Not powered 2 - teardown complete Set discoverable on - Not powered 2 - done

Set discoverable on - Rejected 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Rejected 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set discoverable on - Rejected 1 - setup complete
Set discoverable on - Rejected 1 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Rejected (0x0b)
Test condition complete, 0 left
Set discoverable on - Rejected 1 - test passed
Set discoverable on - Rejected 1 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Rejected 1 - teardown complete Set discoverable on - Rejected 1 - done

Set discoverable on - Rejected 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Rejected 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set discoverable on - Rejected 2 - setup complete
Set discoverable on - Rejected 2 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Rejected (0x0b)
Test condition complete, 0 left
Set discoverable on - Rejected 2 - test passed
Set discoverable on - Rejected 2 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Rejected 2 - teardown complete Set discoverable on - Rejected 2 - done

Set discoverable on - Rejected 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Rejected 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set discoverable on - Rejected 3 - setup complete
Set discoverable on - Rejected 3 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Rejected (0x0b)
Test condition complete, 0 left
Set discoverable on - Rejected 3 - test passed
Set discoverable on - Rejected 3 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Rejected 3 - teardown complete Set discoverable on - Rejected 3 - done

Set discoverable on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set discoverable on - Success 1 - setup complete
Set discoverable on - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Discoverable (0x0006)
Test condition added, total 2
Set Discoverable (0x0006): Success (0x00)
Test condition complete, 1 left
New settings 0x0000008a received
Unregistering new settings notification
Test condition complete, 0 left
Set discoverable on - Success 1 - test passed
Set discoverable on - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on - Success 1 - teardown complete Set discoverable on - Success 1 - done

Set discoverable on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set discoverable on - Success 2 - setup complete
Set discoverable on - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Discoverable (0x0006)
Test condition added, total 3
HCI Command 0x0c3a length 4
HCI Command 0x0c1a length 1
Test condition complete, 2 left
Set Discoverable (0x0006): Success (0x00)
Test condition complete, 1 left
New settings 0x0000008b received
Unregistering new settings notification
Test condition complete, 0 left
Set discoverable on - Success 2 - test passed
Set discoverable on - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set discoverable on - Success 2 - teardown complete Set discoverable on - Success 2 - done

Set discoverable on (LE) - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable on (LE) - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set discoverable on (LE) - Success 1 - setup complete Set discoverable on (LE) - Success 1 - run
Registering HCI command callback
Test condition added, total 1
Sending Set Discoverable (0x0006)
Test condition added, total 2
HCI Command 0x2008 length 32
Test condition complete, 1 left
Set Discoverable (0x0006): Success (0x00) Test condition complete, 0 left
Set discoverable on (LE) - Success 1 - test passed Set discoverable on (LE) - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable on (LE) - Success 1 - teardown complete Set discoverable on (LE) - Success 1 - done

Set discoverable off - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable off - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set discoverable off - Success 1 - setup complete
Set discoverable off - Success 1 - run
Sending Set Discoverable (0x0006)
Test condition added, total 1
Set Discoverable (0x0006): Success (0x00)
Test condition complete, 0 left
Set discoverable off - Success 1 - test passed
Set discoverable off - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable off - Success 1 - teardown complete Set discoverable off - Success 1 - done

Set discoverable off - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set discoverable off - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set discoverable off - Success 2 - setup complete
Set discoverable off - Success 2 - run
Registering HCI command callback
Test condition added, total 1
Sending Set Discoverable (0x0006)
Test condition added, total 2
HCI Command 0x0c1a length 1
Test condition complete, 1 left
Set Discoverable (0x0006): Success (0x00)
Test condition complete, 0 left
Set discoverable off - Success 2 - test passed
Set discoverable off - Success 2 - teardown
Index Removed callback

    Index: 0x0000

Set discoverable off - Success 2 - teardown complete Set discoverable off - Success 2 - done

Set limited discoverable on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set limited discoverable on - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set limited discoverable on - Success 1 - setup complete Set limited discoverable on - Success 1 - run
Registering HCI command callback
Test condition added, total 1
Sending Set Discoverable (0x0006)
Test condition added, total 2
HCI Command 0x0c3a length 4
HCI Command 0x0c1a length 1
Test condition complete, 1 left
HCI Command 0x0c24 length 3
Set Discoverable (0x0006): Success (0x00) Test condition complete, 0 left
Set limited discoverable on - Success 1 - test passed Set limited discoverable on - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set limited discoverable on - Success 1 - teardown complete Set limited discoverable on - Success 1 - done

Set limited discoverable on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set limited discoverable on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set limited discoverable on - Success 2 - setup complete Set limited discoverable on - Success 2 - run
Registering HCI command callback
Test condition added, total 1
Sending Set Discoverable (0x0006)
Test condition added, total 2
HCI Command 0x0c3a length 4
Test condition complete, 1 left
HCI Command 0x0c1a length 1
HCI Command 0x0c24 length 3
Set Discoverable (0x0006): Success (0x00) Test condition complete, 0 left
Set limited discoverable on - Success 2 - test passed Set limited discoverable on - Success 2 - teardown
Index Removed callback

    Index: 0x0000

Set limited discoverable on - Success 2 - teardown complete Set limited discoverable on - Success 2 - done

Set limited discoverable on - Success 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set limited discoverable on - Success 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set limited discoverable on - Success 3 - setup complete Set limited discoverable on - Success 3 - run
Registering HCI command callback
Test condition added, total 1
Sending Set Discoverable (0x0006)
Test condition added, total 2
HCI Command 0x0c3a length 4
HCI Command 0x0c1a length 1
HCI Command 0x0c24 length 3
Test condition complete, 1 left
Set Discoverable (0x0006): Success (0x00) Test condition complete, 0 left
Set limited discoverable on - Success 3 - test passed Set limited discoverable on - Success 3 - teardown
Index Removed callback

    Index: 0x0000

Set limited discoverable on - Success 3 - teardown complete Set limited discoverable on - Success 3 - done

Set limited discoverable on (LE) - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001be1b
    Current settings: 0x00000200
    Class: 0x000000
    Name: 
    Short name: 

Set limited discoverable on (LE) - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set limited discoverable on (LE) - Success 1 - setup complete Set limited discoverable on (LE) - Success 1 - run
Registering HCI command callback
Test condition added, total 1
Sending Set Discoverable (0x0006)
Test condition added, total 2
HCI Command 0x2008 length 32
Test condition complete, 1 left
Set Discoverable (0x0006): Success (0x00)
Test condition complete, 0 left
Set limited discoverable on (LE) - Success 1 - test passed Set limited discoverable on (LE) - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set limited discoverable on (LE) - Success 1 - teardown complete Set limited discoverable on (LE) - Success 1 - done

Set link security on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set link security on - Success 1 - setup
Set link security on - Success 1 - setup complete
Set link security on - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Link Security (0x000a)
Test condition added, total 2
Set Link Security (0x000a): Success (0x00)
Test condition complete, 1 left
New settings 0x000000a0 received
Unregistering new settings notification
Test condition complete, 0 left
Set link security on - Success 1 - test passed
Set link security on - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set link security on - Success 1 - teardown complete Set link security on - Success 1 - done

Set link security on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set link security on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set link security on - Success 2 - setup complete
Set link security on - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Link Security (0x000a)
Test condition added, total 3
HCI Command 0x0c20 length 1
Test condition complete, 2 left
Set Link Security (0x000a): Success (0x00)
Test condition complete, 1 left
New settings 0x000000a1 received
Unregistering new settings notification
Test condition complete, 0 left
Set link security on - Success 2 - test passed
Set link security on - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set link security on - Success 2 - teardown complete Set link security on - Success 2 - done

Set link security on - Success 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set link security on - Success 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set link security on - Success 3 - setup complete
Set link security on - Success 3 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Powered (0x0005)
Test condition added, total 3
HCI Command 0x0c20 length 1
Test condition complete, 2 left
HCI Command 0x0c13 length 248
Set Powered (0x0005): Success (0x00)
Test condition complete, 1 left
New settings 0x000000a1 received
Unregistering new settings notification
Test condition complete, 0 left
Set link security on - Success 3 - test passed
Set link security on - Success 3 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set link security on - Success 3 - teardown complete Set link security on - Success 3 - done

Set link security on - Invalid parameters 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set link security on - Invalid parameters 1 - setup Set link security on - Invalid parameters 1 - setup complete Set link security on - Invalid parameters 1 - run
Sending Set Link Security (0x000a)
Test condition added, total 1
Set Link Security (0x000a): Invalid Parameters (0x0d) Test condition complete, 0 left
Set link security on - Invalid parameters 1 - test passed Set link security on - Invalid parameters 1 - teardown
Index Removed callback

    Index: 0x0000

Set link security on - Invalid parameters 1 - teardown complete Set link security on - Invalid parameters 1 - done

Set link security on - Invalid parameters 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set link security on - Invalid parameters 2 - setup Set link security on - Invalid parameters 2 - setup complete Set link security on - Invalid parameters 2 - run
Sending Set Link Security (0x000a)
Test condition added, total 1
Set Link Security (0x000a): Invalid Parameters (0x0d) Test condition complete, 0 left
Set link security on - Invalid parameters 2 - test passed Set link security on - Invalid parameters 2 - teardown
Index Removed callback

    Index: 0x0000

Set link security on - Invalid parameters 2 - teardown complete Set link security on - Invalid parameters 2 - done

Set link security on - Invalid parameters 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set link security on - Invalid parameters 3 - setup Set link security on - Invalid parameters 3 - setup complete Set link security on - Invalid parameters 3 - run
Sending Set Link Security (0x000a)
Test condition added, total 1
Set Link Security (0x000a): Invalid Parameters (0x0d) Test condition complete, 0 left
Set link security on - Invalid parameters 3 - test passed Set link security on - Invalid parameters 3 - teardown
Index Removed callback

    Index: 0x0000

Set link security on - Invalid parameters 3 - teardown complete Set link security on - Invalid parameters 3 - done

Set link security on - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set link security on - Invalid index - setup Set link security on - Invalid index - setup complete Set link security on - Invalid index - run
Sending Set Link Security (0x000a)
Test condition added, total 1
Set Link Security (0x000a): Invalid Index (0x11) Test condition complete, 0 left
Set link security on - Invalid index - test passed Set link security on - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Set link security on - Invalid index - teardown complete Set link security on - Invalid index - done

Set link security off - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set link security off - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set link security off - Success 1 - setup complete Set link security off - Success 1 - run
Registering new settings notification Test condition added, total 1
Sending Set Link Security (0x000a)
Test condition added, total 2
Set Link Security (0x000a): Success (0x00) Test condition complete, 1 left
New settings 0x00000080 received Unregistering new settings notification Test condition complete, 0 left
Set link security off - Success 1 - test passed Set link security off - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set link security off - Success 1 - teardown complete Set link security off - Success 1 - done

Set link security off - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set link security off - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set link security off - Success 2 - setup complete Set link security off - Success 2 - run
Registering new settings notification Test condition added, total 1 Registering HCI command callback
Test condition added, total 2
Sending Set Link Security (0x000a)
Test condition added, total 3
HCI Command 0x0c20 length 1
Test condition complete, 2 left
Set Link Security (0x000a): Success (0x00) Test condition complete, 1 left
New settings 0x00000081 received Unregistering new settings notification Test condition complete, 0 left
Set link security off - Success 2 - test passed Set link security off - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set link security off - Success 2 - teardown complete Set link security off - Success 2 - done

Set SSP on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set SSP on - Success 1 - setup
Set SSP on - Success 1 - setup complete
Set SSP on - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Secure Simple Pairing (0x000b) Test condition added, total 2
Set Secure Simple Pairing (0x000b): Success (0x00) Test condition complete, 1 left
New settings 0x000000c0 received Unregistering new settings notification Test condition complete, 0 left
Set SSP on - Success 1 - test passed
Set SSP on - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set SSP on - Success 1 - teardown complete
Set SSP on - Success 1 - done

Set SSP on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set SSP on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set SSP on - Success 2 - setup complete
Set SSP on - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Secure Simple Pairing (0x000b) Test condition added, total 3
HCI Command 0x0c56 length 1
Test condition complete, 2 left
Set Secure Simple Pairing (0x000b): Success (0x00) Test condition complete, 1 left
New settings 0x000000c1 received Unregistering new settings notification Test condition complete, 0 left
Set SSP on - Success 2 - test passed
HCI Command 0x0c52 length 241
Set SSP on - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set SSP on - Success 2 - teardown complete
Set SSP on - Success 2 - done

Set SSP on - Success 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set SSP on - Success 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set SSP on - Success 3 - setup complete
Set SSP on - Success 3 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Powered (0x0005)
Test condition added, total 3
HCI Command 0x0c56 length 1
Test condition complete, 2 left
HCI Command 0x0c13 length 248
HCI Command 0x0c52 length 241
Set Powered (0x0005): Success (0x00)
Test condition complete, 1 left
New settings 0x000000c1 received
Unregistering new settings notification
Test condition complete, 0 left
Set SSP on - Success 3 - test passed
Set SSP on - Success 3 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set SSP on - Success 3 - teardown complete
Set SSP on - Success 3 - done

Set SSP on - Invalid parameters 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set SSP on - Invalid parameters 1 - setup
Set SSP on - Invalid parameters 1 - setup complete Set SSP on - Invalid parameters 1 - run
Sending Set Secure Simple Pairing (0x000b)
Test condition added, total 1
Set Secure Simple Pairing (0x000b): Invalid Parameters (0x0d) Test condition complete, 0 left
Set SSP on - Invalid parameters 1 - test passed
Set SSP on - Invalid parameters 1 - teardown
Index Removed callback

    Index: 0x0000

Set SSP on - Invalid parameters 1 - teardown complete Set SSP on - Invalid parameters 1 - done

Set SSP on - Invalid parameters 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set SSP on - Invalid parameters 2 - setup
Set SSP on - Invalid parameters 2 - setup complete Set SSP on - Invalid parameters 2 - run
Sending Set Secure Simple Pairing (0x000b)
Test condition added, total 1
Set Secure Simple Pairing (0x000b): Invalid Parameters (0x0d) Test condition complete, 0 left
Set SSP on - Invalid parameters 2 - test passed
Set SSP on - Invalid parameters 2 - teardown
Index Removed callback

    Index: 0x0000

Set SSP on - Invalid parameters 2 - teardown complete Set SSP on - Invalid parameters 2 - done

Set SSP on - Invalid parameters 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set SSP on - Invalid parameters 3 - setup
Set SSP on - Invalid parameters 3 - setup complete Set SSP on - Invalid parameters 3 - run
Sending Set Secure Simple Pairing (0x000b)
Test condition added, total 1
Set Secure Simple Pairing (0x000b): Invalid Parameters (0x0d) Test condition complete, 0 left
Set SSP on - Invalid parameters 3 - test passed
Set SSP on - Invalid parameters 3 - teardown
Index Removed callback

    Index: 0x0000

Set SSP on - Invalid parameters 3 - teardown complete Set SSP on - Invalid parameters 3 - done

Set SSP on - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set SSP on - Invalid index - setup
Set SSP on - Invalid index - setup complete
Set SSP on - Invalid index - run
Sending Set Secure Simple Pairing (0x000b)
Test condition added, total 1
Set Secure Simple Pairing (0x000b): Invalid Index (0x11) Test condition complete, 0 left
Set SSP on - Invalid index - test passed
Set SSP on - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Set SSP on - Invalid index - teardown complete
Set SSP on - Invalid index - done

Set Secure Connections on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections on - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections on - Success 1 - setup complete Set Secure Connections on - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Secure Connections (0x002d) Test condition added, total 2
Set Secure Connections (0x002d): Success (0x00) Test condition complete, 1 left
New settings 0x000008c0 received Unregistering new settings notification Test condition complete, 0 left
Set Secure Connections on - Success 1 - test passed Set Secure Connections on - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set Secure Connections on - Success 1 - teardown complete Set Secure Connections on - Success 1 - done

Set Secure Connections on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections on - Success 2 - setup complete Set Secure Connections on - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Secure Connections (0x002d) Test condition added, total 3
HCI Command 0x0c7a length 1
Test condition complete, 2 left
Set Secure Connections (0x002d): Success (0x00) Test condition complete, 1 left
New settings 0x000008c1 received Unregistering new settings notification Test condition complete, 0 left
Set Secure Connections on - Success 2 - test passed Set Secure Connections on - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set Secure Connections on - Success 2 - teardown complete Set Secure Connections on - Success 2 - done

Set Secure Connections on - Invalid params 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections on - Invalid params 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections on - Invalid params 1 - setup complete Set Secure Connections on - Invalid params 1 - run
Sending Set Secure Connections (0x002d)
Test condition added, total 1
Set Secure Connections (0x002d): Invalid Parameters (0x0d) Test condition complete, 0 left
Set Secure Connections on - Invalid params 1 - test passed Set Secure Connections on - Invalid params 1 - teardown
Index Removed callback

    Index: 0x0000

Set Secure Connections on - Invalid params 1 - teardown complete Set Secure Connections on - Invalid params 1 - done

Set Secure Connections on - Invalid params 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections on - Invalid params 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections on - Invalid params 2 - setup complete Set Secure Connections on - Invalid params 2 - run
Sending Set Secure Connections (0x002d)
Test condition added, total 1
Set Secure Connections (0x002d): Invalid Parameters (0x0d) Test condition complete, 0 left
Set Secure Connections on - Invalid params 2 - test passed Set Secure Connections on - Invalid params 2 - teardown
Index Removed callback

    Index: 0x0000

Set Secure Connections on - Invalid params 2 - teardown complete Set Secure Connections on - Invalid params 2 - done

Set Secure Connections on - Invalid params 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections on - Invalid params 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections on - Invalid params 3 - setup complete Set Secure Connections on - Invalid params 3 - run
Sending Set Secure Connections (0x002d)
Test condition added, total 1
Set Secure Connections (0x002d): Invalid Parameters (0x0d) Test condition complete, 0 left
Set Secure Connections on - Invalid params 3 - test passed Set Secure Connections on - Invalid params 3 - teardown
Index Removed callback

    Index: 0x0000

Set Secure Connections on - Invalid params 3 - teardown complete Set Secure Connections on - Invalid params 3 - done

Set Secure Connections on - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections on - Invalid index - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections on - Invalid index - setup complete Set Secure Connections on - Invalid index - run
Sending Set Secure Connections (0x002d)
Test condition added, total 1
Set Secure Connections (0x002d): Invalid Index (0x11) Test condition complete, 0 left
Set Secure Connections on - Invalid index - test passed Set Secure Connections on - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Set Secure Connections on - Invalid index - teardown complete Set Secure Connections on - Invalid index - done

Set Secure Connections on - Not supported 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)

Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections on - Not supported 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections on - Not supported 1 - setup complete Set Secure Connections on - Not supported 1 - run
Sending Set Secure Connections (0x002d)
Test condition added, total 1
Set Secure Connections (0x002d): Not Supported (0x0c) Test condition complete, 0 left
Set Secure Connections on - Not supported 1 - test passed Set Secure Connections on - Not supported 1 - teardown
Index Removed callback

    Index: 0x0000

Set Secure Connections on - Not supported 1 - teardown complete Set Secure Connections on - Not supported 1 - done

Set Secure Connections on - Not supported 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)

Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Bluetooth: hci0: Failed to read codec capabilities (-56)
Index Added callback

    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x05
    Manufacturer: 0x003f
    Supported settings: 0x000110ff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections on - Not supported 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections on - Not supported 2 - setup complete Set Secure Connections on - Not supported 2 - run
Sending Set Secure Connections (0x002d)
Test condition added, total 1
Set Secure Connections (0x002d): Not Supported (0x0c) Test condition complete, 0 left
Set Secure Connections on - Not supported 2 - test passed Set Secure Connections on - Not supported 2 - teardown
Index Removed callback

    Index: 0x0000

Set Secure Connections on - Not supported 2 - teardown complete Set Secure Connections on - Not supported 2 - done

Set Secure Connections Only on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections Only on - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections Only on - Success 1 - setup complete Set Secure Connections Only on - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Secure Connections (0x002d)
Test condition added, total 2
Set Secure Connections (0x002d): Success (0x00) Test condition complete, 1 left
New settings 0x000008c0 received
Unregistering new settings notification
Test condition complete, 0 left
Set Secure Connections Only on - Success 1 - test passed Set Secure Connections Only on - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set Secure Connections Only on - Success 1 - teardown complete Set Secure Connections Only on - Success 1 - done

Set Secure Connections Only on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Secure Connections Only on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Secure Connections Only on - Success 2 - setup complete Set Secure Connections Only on - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Secure Connections (0x002d)
Test condition added, total 3
HCI Command 0x0c7a length 1
Test condition complete, 2 left
Set Secure Connections (0x002d): Success (0x00) Test condition complete, 1 left
New settings 0x000008c1 received
Unregistering new settings notification
Test condition complete, 0 left
Set Secure Connections Only on - Success 2 - test passed Set Secure Connections Only on - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set Secure Connections Only on - Success 2 - teardown complete Set Secure Connections Only on - Success 2 - done

Set High Speed on - Success - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Expected bit 8 not supported
Expected supported settings: 0x0001beff != 0x0001bfff
Set High Speed on - Success - pre setup failed
Index Removed callback

    Index: 0x0000

Set High Speed on - Success - done

Set High Speed on - Invalid parameters 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Expected bit 8 not supported
Expected supported settings: 0x0001beff != 0x0001bfff
Set High Speed on - Invalid parameters 1 - pre setup failed
Index Removed callback

    Index: 0x0000

Set High Speed on - Invalid parameters 1 - done

Set High Speed on - Invalid parameters 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Expected bit 8 not supported
Expected supported settings: 0x0001beff != 0x0001bfff
Set High Speed on - Invalid parameters 2 - pre setup failed
Index Removed callback

    Index: 0x0000

Set High Speed on - Invalid parameters 2 - done

Set High Speed on - Invalid parameters 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Expected bit 8 not supported
Expected supported settings: 0x0001beff != 0x0001bfff
Set High Speed on - Invalid parameters 3 - pre setup failed
Index Removed callback

    Index: 0x0000

Set High Speed on - Invalid parameters 3 - done

Set High Speed on - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Expected bit 8 not supported
Expected supported settings: 0x0001beff != 0x0001bfff
Set High Speed on - Invalid index - pre setup failed
Index Removed callback

    Index: 0x0000

Set High Speed on - Invalid index - done

Set Low Energy on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Low Energy on - Success 1 - setup
Set Low Energy on - Success 1 - setup complete
Set Low Energy on - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Low Energy (0x000d)
Test condition added, total 2
Set Low Energy (0x000d): Success (0x00)
Test condition complete, 1 left
New settings 0x00000280 received
Unregistering new settings notification
Test condition complete, 0 left
Set Low Energy on - Success 1 - test passed
Set Low Energy on - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set Low Energy on - Success 1 - teardown complete
Set Low Energy on - Success 1 - done

Set Low Energy on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Low Energy on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Low Energy on - Success 2 - setup complete
Set Low Energy on - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Low Energy (0x000d)
Test condition added, total 3
HCI Command 0x0c6d length 2
Test condition complete, 2 left
Set Low Energy (0x000d): Success (0x00)
Test condition complete, 1 left
New settings 0x00000281 received
Unregistering new settings notification
Test condition complete, 0 left
Set Low Energy on - Success 2 - test passed
HCI Command 0x2008 length 32
Set Low Energy on - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set Low Energy on - Success 2 - teardown complete
Set Low Energy on - Success 2 - done

Set Low Energy on - Success 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Low Energy on - Success 3 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Low Energy on - Success 3 - setup complete
Set Low Energy on - Success 3 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Powered (0x0005)
Test condition added, total 3
HCI Command 0x0c6d length 2
Test condition complete, 2 left
HCI Command 0x2008 length 32
HCI Command 0x0c13 length 248
Set Powered (0x0005): Success (0x00)
Test condition complete, 1 left
New settings 0x00000281 received
Unregistering new settings notification
Test condition complete, 0 left
Set Low Energy on - Success 3 - test passed
Set Low Energy on - Success 3 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set Low Energy on - Success 3 - teardown complete
Set Low Energy on - Success 3 - done

Set Low Energy on - Invalid parameters 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Low Energy on - Invalid parameters 1 - setup Set Low Energy on - Invalid parameters 1 - setup complete Set Low Energy on - Invalid parameters 1 - run
Sending Set Low Energy (0x000d)
Test condition added, total 1
Set Low Energy (0x000d): Invalid Parameters (0x0d) Test condition complete, 0 left
Set Low Energy on - Invalid parameters 1 - test passed Set Low Energy on - Invalid parameters 1 - teardown
Index Removed callback

    Index: 0x0000

Set Low Energy on - Invalid parameters 1 - teardown complete Set Low Energy on - Invalid parameters 1 - done

Set Low Energy on - Invalid parameters 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Low Energy on - Invalid parameters 2 - setup Set Low Energy on - Invalid parameters 2 - setup complete Set Low Energy on - Invalid parameters 2 - run
Sending Set Low Energy (0x000d)
Test condition added, total 1
Set Low Energy (0x000d): Invalid Parameters (0x0d) Test condition complete, 0 left
Set Low Energy on - Invalid parameters 2 - test passed Set Low Energy on - Invalid parameters 2 - teardown
Index Removed callback

    Index: 0x0000

Set Low Energy on - Invalid parameters 2 - teardown complete Set Low Energy on - Invalid parameters 2 - done

Set Low Energy on - Invalid parameters 3 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Low Energy on - Invalid parameters 3 - setup Set Low Energy on - Invalid parameters 3 - setup complete Set Low Energy on - Invalid parameters 3 - run
Sending Set Low Energy (0x000d)
Test condition added, total 1
Set Low Energy (0x000d): Invalid Parameters (0x0d) Test condition complete, 0 left
Set Low Energy on - Invalid parameters 3 - test passed Set Low Energy on - Invalid parameters 3 - teardown
Index Removed callback

    Index: 0x0000

Set Low Energy on - Invalid parameters 3 - teardown complete Set Low Energy on - Invalid parameters 3 - done

Set Low Energy on - Invalid index - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Low Energy on - Invalid index - setup Set Low Energy on - Invalid index - setup complete Set Low Energy on - Invalid index - run
Sending Set Low Energy (0x000d)
Test condition added, total 1
Set Low Energy (0x000d): Invalid Index (0x11) Test condition complete, 0 left
Set Low Energy on - Invalid index - test passed Set Low Energy on - Invalid index - teardown
Index Removed callback

    Index: 0x0000

Set Low Energy on - Invalid index - teardown complete Set Low Energy on - Invalid index - done

Set Advertising on - Success 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Advertising on - Success 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Advertising on - Success 1 - setup complete
Set Advertising on - Success 1 - run
Registering new settings notification
Test condition added, total 1
Sending Set Advertising (0x0029)
Test condition added, total 2
Set Advertising (0x0029): Success (0x00)
Test condition complete, 1 left
New settings 0x00000680 received
Unregistering new settings notification
Test condition complete, 0 left
Set Advertising on - Success 1 - test passed
Set Advertising on - Success 1 - teardown
Index Removed callback

    Index: 0x0000

Set Advertising on - Success 1 - teardown complete Set Advertising on - Success 1 - done

Set Advertising on - Success 2 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Advertising on - Success 2 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Advertising on - Success 2 - setup complete
Set Advertising on - Success 2 - run
Registering new settings notification
Test condition added, total 1
Registering HCI command callback
Test condition added, total 2
Sending Set Advertising (0x0029)
Test condition added, total 3
HCI Command 0x2005 length 6
HCI Command 0x2006 length 15
HCI Command 0x200a length 1
Test condition complete, 2 left
Set Advertising (0x0029): Success (0x00)
Test condition complete, 1 left
New settings 0x00000681 received
Unregistering new settings notification
Test condition complete, 0 left
Set Advertising on - Success 2 - test passed
Set Advertising on - Success 2 - teardown
New settings event received
Index Removed callback

    Index: 0x0000

Set Advertising on - Success 2 - teardown complete Set Advertising on - Success 2 - done

Set Advertising on - Rejected 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Advertising on - Rejected 1 - setup
Initial settings completed
Client set connectable: Success (0x00)
Set Advertising on - Rejected 1 - setup complete
Set Advertising on - Rejected 1 - run
Sending Set Advertising (0x0029)
Test condition added, total 1
Set Advertising (0x0029): Rejected (0x0b)
Test condition complete, 0 left
Set Advertising on - Rejected 1 - test passed
Set Advertising on - Rejected 1 - teardown
Index Removed callback

    Index: 0x0000

Set Advertising on - Rejected 1 - teardown complete Set Advertising on - Rejected 1 - done

Set Advertising on - Appearance 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)
  Index Added callback
    Index: 0x0000
  Read Info callback
    Status: Success (0x00)
    Address: 00:AA:01:00:00:00
    Version: 0x09
    Manufacturer: 0x003f
    Supported settings: 0x0001beff
    Current settings: 0x00000080
    Class: 0x000000
    Name: 
    Short name: 

Set Advertising on - Appearance 1 - setup
Initial settings completed
Setup sending Set Appearance (0x0043) Test setup condition added, total 1
Test setup condition complete, 0 left
Set Advertising on - Appearance 1 - setup complete Set Advertising on - Appearance 1 - run
Registering HCI command callback
Test condition added, total 1
Sending Set Advertising (0x0029)
Test condition added, total 2
HCI Command 0x2009 length 32
Test condition complete, 1 left
HCI Command 0x2005 length 6
HCI Command 0x2006 length 15
HCI Command 0x200a length 1
Set Advertising (0x0029): Success (0x00) Test condition complete, 0 left
Set Advertising on - Appearance 1 - test passed Set Advertising on - Appearance 1 - teardown
Index Removed callback

    Index: 0x0000

Set Advertising on - Appearance 1 - teardown complete Set Advertising on - Appearance 1 - done

Set Advertising on - Local name 1 - init
Read Version callback

    Status: Success (0x00)
    Version 1.20
  Read Commands callback
    Status: Success (0x00)
  Read Index List callback
    Status: Success (0x00)

12 lines not shown · raw message

13,431 lines not shown · raw message

Part of this message is not shown here. View the raw message.

maintainer
#20 lore raw
In reply to Kiran K

Hi Kiran,

Quoted 48 lines

Move reading of supported local codecs into a separate init function, query codecs capabilities and cache the data

---
* changes in v8:
- add comments
- split __u8 codec_id[5] into {__u8 id; __le16 cid, vid }
- address review comment related codec caps structure

* changes in v7:
- keep codec enumeration call in hci_init instead of having a separate function
- Remove unused bitmasks defined for LE transports

* changes in v6:
- fix compiler warning reported for ARCH=arc

* changes in v5:
- fix review comments
- move code used to read standard/vendor codecs caps into single function

* changes in v4:
- convert reading of codecs and codecs caps calls from async to sync

* changes in v3
move codec enumeration into a new init function

* changes in v2
add skb length check before accessing data

include/net/bluetooth/hci.h      |  41 +++++++
include/net/bluetooth/hci_core.h |  17 +++
net/bluetooth/hci_core.c         | 199 ++++++++++++++++++++++++++++++-
3 files changed, 253 insertions(+), 4 deletions(-)
include/net/bluetooth/hci.h +1 -0
index c4b0650fb9ae..6cb9340a2d51 100644
@@ -1307,6 +1307,28 @@ struct hci_rp_read_data_block_size {
 } __packed;
 
 #define HCI_OP_READ_LOCAL_CODECS	0x100b
+struct hci_std_codecs {

include/net/bluetooth/hci.h struct hci_rp_read_data_block_size { · line 1320

Quoted 10 lines
include/net/bluetooth/hci.h +10 -0
+	__u8	num;
+	__u8	codec[];
+} __packed;
+
+struct hci_ven_codec {
+	/* company id */
+	__le16	cid;
+	/* vendor codec id */
+	__le16	vid;
+} __packed;

I am pretty sure that I said to use vnd and not ven. The shortcut ven for vendor is not something we used at all.

Regards

Marcel

author
#21 lore raw

Hi Marcel,

Quoted 7 lines
Quoted 7 lines

#define HCI_OP_READ_LOCAL_CODECS 0x100b

include/net/bluetooth/hci.h +6 -0
+struct hci_std_codecs {
+	__u8	num;
+	__u8	codec[];
+} __packed;
+
+struct hci_ven_codec {
Quoted 9 lines

include/net/bluetooth/hci.h struct hci_rp_read_data_block_size { · line 1320

Quoted 5 lines
include/net/bluetooth/hci.h +5 -0
+	/* company id */
+	__le16	cid;
+	/* vendor codec id */
+	__le16	vid;
+} __packed;

I am pretty sure that I said to use vnd and not ven. The shortcut ven for vendor is not something we used at all.

Ack. I overlooked at it. I will fix this in the next patchset.

Regards,
Kiran