Bluetooth: ISO: Handle PA sync when no BIGInfo reports are generated
authorIulia Tanasescu <iulia.tanasescu@nxp.com>
Tue, 2 Apr 2024 11:39:31 +0000 (14:39 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 14 May 2024 14:51:04 +0000 (10:51 -0400)
commitd356c924e7a3adbea1e3e4ff4e098bcd9b99a82d
tree8c4565cbdfe0b659b55a6b5729d6548816b1c4d1
parent311527e9dafdcae0c5a20d62f4f84ad01b33b5f4
Bluetooth: ISO: Handle PA sync when no BIGInfo reports are generated

In case of a Broadcast Source that has PA enabled but no active BIG,
a Broadcast Sink needs to establish PA sync and parse BASE from PA
reports.

This commit moves the allocation of a PA sync hcon from the BIGInfo
advertising report event to the PA sync established event. After the
first complete PA report, the hcon is notified to the ISO layer. A
child socket is allocated and enqueued in the parent's accept queue.

BIGInfo reports also need to be processed, to extract the encryption
field and inform userspace. After the first BIGInfo report is received,
the PA sync hcon is notified again to the ISO layer. Since a socket will
be found this time, the socket state will transition to BT_CONNECTED and
the userspace will be woken up using sk_state_change.

Signed-off-by: Iulia Tanasescu <iulia.tanasescu@nxp.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
include/net/bluetooth/hci_core.h
net/bluetooth/hci_event.c
net/bluetooth/iso.c