All of lore.kernel.org
 help / color / mirror / Atom feed
* Bluetooth Certification Testing L2CAP UCD Test Failing
@ 2016-11-10 19:27 Bates, Will
  2016-11-10 20:40 ` Marcel Holtmann
  0 siblings, 1 reply; 2+ messages in thread
From: Bates, Will @ 2016-11-10 19:27 UTC (permalink / raw)
  To: linux-bluetooth

Hello all,

I am trying to qualify Our Bluez 5.39 stack as a host subsystem with the Bluetooth Sig. Right now I am running into an issue with Unicast Connectionless Data (UCD) and the extended features mask.

My issue is running the following test:

TP/CLS/UCD/BV-01-C (also written TC_CLS_UCD_BV_01_C): Verify that the IUT has the UCD bit set in the L2CAP Extended Features Mask to indicate support for reception of Unicast Connectionless Data. Also verify that the IUT is able to receive data over the connectionless channel.

When I run this test, I get the following output:

Test case : TC_CLS_UCD_BV_01_C started
                - MTC: PTS successfully established an ACL connection.
                - MTC: Unicast Connectionless option is not supported in the IUT.
                - MTC: The L2CAP channel disconnected by IUT.
                - MTC: PTS successfully closed the active ACL connection.
                - CM_EXIT
                - CM_EXIT
                - CM_EXIT
                - MTC: Test case ended
                -Final Verdict: FAIL
TC_CLS_UCD_BV_01_C finished

It seems to me like the UCD bit is not set in the extended features mask, and I do not know how to set this bit. The tester shows the following mask:

ext_features:'00000000000000000000000010111000'B

Can anyone tell me how to enable this feature? I have seen postings on the bluez site where this feature has existed for a while now.

Thanks,
Will

The information in this email and any attachments may contain proprietary and confidential information that is intended for the addressee(s) only. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, retention or use of the contents of this information is prohibited. If you have received this email in error, please immediately contact the sender and delete the email.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Bluetooth Certification Testing L2CAP UCD Test Failing
  2016-11-10 19:27 Bluetooth Certification Testing L2CAP UCD Test Failing Bates, Will
@ 2016-11-10 20:40 ` Marcel Holtmann
  0 siblings, 0 replies; 2+ messages in thread
From: Marcel Holtmann @ 2016-11-10 20:40 UTC (permalink / raw)
  To: Bates, Will; +Cc: linux-bluetooth

Hi Will,

> I am trying to qualify Our Bluez 5.39 stack as a host subsystem with the Bluetooth Sig. Right now I am running into an issue with Unicast Connectionless Data (UCD) and the extended features mask.
> 
> My issue is running the following test:
> 
> TP/CLS/UCD/BV-01-C (also written TC_CLS_UCD_BV_01_C): Verify that the IUT has the UCD bit set in the L2CAP Extended Features Mask to indicate support for reception of Unicast Connectionless Data. Also verify that the IUT is able to receive data over the connectionless channel.
> 
> When I run this test, I get the following output:
> 
> Test case : TC_CLS_UCD_BV_01_C started
>                - MTC: PTS successfully established an ACL connection.
>                - MTC: Unicast Connectionless option is not supported in the IUT.
>                - MTC: The L2CAP channel disconnected by IUT.
>                - MTC: PTS successfully closed the active ACL connection.
>                - CM_EXIT
>                - CM_EXIT
>                - CM_EXIT
>                - MTC: Test case ended
>                -Final Verdict: FAIL
> TC_CLS_UCD_BV_01_C finished
> 
> It seems to me like the UCD bit is not set in the extended features mask, and I do not know how to set this bit. The tester shows the following mask:
> 
> ext_features:'00000000000000000000000010111000'B
> 
> Can anyone tell me how to enable this feature? I have seen postings on the bluez site where this feature has existed for a while now.

I am almost certain that I actually implemented the UCD support. And looking at the Android qualification this test case is passing.

https://git.kernel.org/cgit/bluetooth/bluez.git/plain/android/pics-l2cap.txt

Since L2CAP is in the kernel, there is no difference between BlueZ for Android and Linux. The only thing I can think of is that you are running a kernel where a patch for UCD features setting is missing. However keep in mind that for BlueZ for Android we actually used the kernel backports project to update the Bluetooth subsystem. So you might have to consider doing that as well.

Anyway, I looked through the bluetooth-next tree and found these commits:

commit d40bffbc4e9afce9c0be6ea399b4103f72e50ec2
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Sat Oct 12 08:18:18 2013 -0700

    Bluetooth: The L2CAP fixed channel connectionless data is supported

diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
index 12523c79eb3b..56f540e7a8fc 100644
--- a/include/net/bluetooth/l2cap.h
+++ b/include/net/bluetooth/l2cap.h
@@ -131,6 +131,7 @@ struct l2cap_conninfo {
 
 /* L2CAP fixed channels */
 #define L2CAP_FC_L2CAP         0x02
+#define L2CAP_FC_CONNLESS      0x04
 #define L2CAP_FC_A2MP          0x08
 
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index e932ffda5445..8b5437c44c7b 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -44,7 +44,7 @@
 bool disable_ertm;
 
 static u32 l2cap_feat_mask = L2CAP_FEAT_FIXED_CHAN;
-static u8 l2cap_fixed_chan[8] = { L2CAP_FC_L2CAP, };
+static u8 l2cap_fixed_chan[8] = { L2CAP_FC_L2CAP | L2CAP_FC_CONNLESS, };


commit 547d103280690b8febd2354320e164ae508d912e
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Sat Oct 12 08:18:19 2013 -0700

    Bluetooth: Unicast connectionless data reception is supported

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 8b5437c44c7b..13bb9da2c93a 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -43,7 +43,7 @@
 
 bool disable_ertm;
 
-static u32 l2cap_feat_mask = L2CAP_FEAT_FIXED_CHAN;
+static u32 l2cap_feat_mask = L2CAP_FEAT_FIXED_CHAN | L2CAP_FEAT_UCD;
 static u8 l2cap_fixed_chan[8] = { L2CAP_FC_L2CAP | L2CAP_FC_CONNLESS, };

There might be more patches needed since some of the security handling features might need an update for UCD, but I do not know how much PTS is testing. However I know that I have testing this for basic 3D glasses support. So upstream this should be all fixed. As I said, your kernel might not have the right set of patches.

Regards

Marcel


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-11-10 20:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-10 19:27 Bluetooth Certification Testing L2CAP UCD Test Failing Bates, Will
2016-11-10 20:40 ` Marcel Holtmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.