Fix L2CAP/LE/CPU/BV-02-C bluetooth certification failure

Bug #2072858 reported by Leo Lin
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OEM Priority Project
New
Undecided
Leo Lin
linux (Ubuntu)
Invalid
Undecided
Leo Lin
Jammy
Fix Committed
Undecided
Leo Lin
Noble
Fix Committed
Undecided
Leo Lin

Bug Description

SRU Jusitification for Kernel

[Impact]

Noble failed the L2CAP/LE/CPU/BV-02-C test in the Porfile Tuning Suite (PTS), which Jammy previously could pass.

This is due to new behavior introduced in e4b019515f950b4e6e5b74b2e1bb03a90cb33039 (Bluetooth: Enforce validation on max value of connection interval). The kernel only accept Connection Parameter Update Requests whose incoming conn_max_interval are lower than the current conn_max_interval, and adjust the newer conn_max_interval to that received max value.

However, this behavior means that conn_max_interval can only decrease, but never increase. This could potentially make the conditions for connection parameters narrower over time, causing subsequent connections failed on some devices. See the issue 847 in bluez upstream[1]. The patch 806a5198c05987b748b50f3d0c0cfb3d417381a4 (Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ) in the linux-next fixed this by accepting connection parameter unconditionally. The relavent test procedure is also on the mailing list[2].

[1] https://github.com/bluez/bluez/issues/847
[2] https://linuxlists.cc/l/15/linux-bluetooth/t/5350289/(patch_v3)_bluetooth:_l2cap:_fix_rejecting_l2cap_conn_param_update_req#post5352326

[Fix]
Backport the from commit 806a5198c05987b748b50f3d0c0cfb3d417381a4 (Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ), which currently is in the linux-next.

[1] https://patchwork.kernel<email address hidden>/

[Test Case]
1. Install the kernel with the backported patch
2. Run the following test case in the PTS:
 L2CAP/LE/CPU/BV-02-C
 GAP/CONN/CPUP/BV-05-C

[Where problems could occur]
This essentially revert the behavior of accepting L2CAP connection parameters back to its original state before e4b019515f950b4e6e5b74b2e1bb03a90cb33039 (Bluetooth: Enforce validation on max value of connection interval).

Note that implementing restriction to the conenction parameters may take greater effort than just adding a few checks in the kernel. The user space, notably the bluetoothd may also need adjustments[1]. So in this case, removing the half-done boundary checks in kernel may still do greater good if there's no plan to make those additional changes.

[1] https://github.com/bluez/bluez/issues/717#issuecomment-1885719058

Leo Lin (0xff07)
Changed in linux (Ubuntu):
assignee: nobody → Leo Lin (0xff07)
Leo Lin (0xff07)
tags: added: jammy noble
Leo Lin (0xff07)
description: updated
En-Wei Wu (rickywu)
Changed in linux (Ubuntu Jammy):
assignee: nobody → Leo Lin (0xff07)
Changed in linux (Ubuntu Noble):
assignee: nobody → Leo Lin (0xff07)
Changed in oem-priority:
assignee: nobody → Leo Lin (0xff07)
Changed in linux (Ubuntu Jammy):
status: New → Fix Committed
Changed in linux (Ubuntu Noble):
status: New → Fix Committed
Changed in linux (Ubuntu):
status: New → Invalid
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux/6.8.0-43.43 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-noble-linux' to 'verification-done-noble-linux'. If the problem still exists, change the tag 'verification-needed-noble-linux' to 'verification-failed-noble-linux'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-noble-linux-v2 verification-needed-noble-linux
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux/5.15.0-120.130 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-jammy-linux' to 'verification-done-jammy-linux'. If the problem still exists, change the tag 'verification-needed-jammy-linux' to 'verification-failed-jammy-linux'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-jammy-linux-v2 verification-needed-jammy-linux
Rex Tsai (chihchun)
tags: added: oem-priority
Revision history for this message
Leo Lin (0xff07) wrote :

L2CAP/LE/CPU/BI-02-C should be corrected as L2CAP/LE/CPU/BV-02-C. The former one is not included in the test scope.

summary: - Fix L2CAP/LE/CPU/BI-02-C bluetooth certification failure
+ Fix L2CAP/LE/CPU/BV-02-C bluetooth certification failure
description: updated
Revision history for this message
Leo Lin (0xff07) wrote :

Enable -proposed on the same machine and install the 6.8.0-43 kernel. It passed both L2CAP/LE/CPU/BV-02-C and GAP/CONN/CPUP/BV-05-C.

tags: added: verification-done-noble-linux
removed: verification-needed-noble-linux
Leo Lin (0xff07)
tags: added: verification-done-jammy-linux
removed: verification-needed-jammy-linux
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-nvidia-tegra/5.15.0-1028.28 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-jammy-linux-nvidia-tegra' to 'verification-done-jammy-linux-nvidia-tegra'. If the problem still exists, change the tag 'verification-needed-jammy-linux-nvidia-tegra' to 'verification-failed-jammy-linux-nvidia-tegra'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-jammy-linux-nvidia-tegra-v2 verification-needed-jammy-linux-nvidia-tegra
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-gcp-6.8/6.8.0-1014.15~22.04.1 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-jammy-linux-gcp-6.8' to 'verification-done-jammy-linux-gcp-6.8'. If the problem still exists, change the tag 'verification-needed-jammy-linux-gcp-6.8' to 'verification-failed-jammy-linux-gcp-6.8'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-jammy-linux-gcp-6.8-v2 verification-needed-jammy-linux-gcp-6.8
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-nvidia-tegra-igx/5.15.0-1016.16 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-jammy-linux-nvidia-tegra-igx' to 'verification-done-jammy-linux-nvidia-tegra-igx'. If the problem still exists, change the tag 'verification-needed-jammy-linux-nvidia-tegra-igx' to 'verification-failed-jammy-linux-nvidia-tegra-igx'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-jammy-linux-nvidia-tegra-igx-v2 verification-needed-jammy-linux-nvidia-tegra-igx
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.