New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 803737 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

Bluetooth: resume advertising when connection is established

Project Member Reported by josephsih@chromium.org, Jan 19 2018

Issue description

By spec, advertising would be stopped in favor of creating a new connection. It is desirable that advertising is resumed as soon as connection is established. In current kernel implementation, advertising is not resumed until all connections are terminated.

        Vol 2, Part E, 7.8.9 LE Set Advertise Enable Command  (Core spec v4.2)

        The Controller shall continue advertising until the Host issues an LE_Set_Advertise_Enable command with Advertising_Enable set to 0x00 (Advertising is disabled) or until a connection is created or until the Advertising is timed out due to high duty cycle Directed Advertising. In these cases, advertising is then disabled.

  This would be an issue when running magic tethering. Imagine that a user has connected an LE mouse to a chromebook. Now the user would like to use magic tethering. However, advertising would not take effect since there is an existing bluetooth mouse connection. This would prevent magic tethering from working smoothly.

  Dmitry's comment: "if you advertise, and someone connects to you, adv will stop. if you want to adv again, start it again yourself"

  Per the above comment, kernel should resume advertising as soon as the connection has been established.

  Rahul's comment: "it is a very important use case but not now. Once we move to tablets, it will be. Till then we should be fine."

  Hence, we will increase the priority of this bug later on.

  Notes for fixing the bug:
  - For advertisements that have been enabled and then disabled due to the connection, the advertisements should be reenabled in the connection complete event callback.
  - For advertisements that have been added when there are existing connections, they should be allowed. Should check the connection status that there are no connections being created.
  - Remove the reenabling code from disconnection complete event callback.
  - Pay attention to the controller exception and handle it properly -- "Connection Failed to be Established". There might might not be a connection complete event callback. In the latter case, we might need to handle the advertising in connection command status callback.

 
Status: Assigned (was: Available)
Cc: shijinabraham@chromium.org

Sign in to add a comment