Bluetooth: ISO: Reassociate a socket with an active BIS
authorIulia Tanasescu <iulia.tanasescu@nxp.com>
Mon, 13 Nov 2023 15:38:00 +0000 (17:38 +0200)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 22 Dec 2023 17:53:29 +0000 (12:53 -0500)
commitfa224d0c094a458e9ebf5ea9b1c696136b7af427
treec2d4599b441bc4b11b9e774ed75a8fef173a70ed
parent80837140c1f2c05d566b49181785bced3ab6140e
Bluetooth: ISO: Reassociate a socket with an active BIS

For ISO Broadcast, all BISes from a BIG have the same lifespan - they
cannot be created or terminated independently from each other.

This links together all BIS hcons that are part of the same BIG, so all
hcons are kept alive as long as the BIG is active.

If multiple BIS sockets are opened for a BIG handle, and only part of
them are closed at some point, the associated hcons will be marked as
open. If new sockets will later be opened for the same BIG, they will
be reassociated with the open BIS hcons.

All BIS hcons will be cleaned up and the BIG will be terminated when
the last BIS socket is closed from userspace.

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_conn.c
net/bluetooth/iso.c