Updated ticker implementation to return lazy value for a
ticker when enumerating active tickers with time
reservations.
This is required to find offsets and to use the lazy value
to correctly calculate event and payload counter values that
needs to be filled into SyncInfo and BigInfo structures.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
LL_CIS_IND starts a ticker for the created CIG, using the event_counter
and offset provided. Ticker generates callbacks to
lll_peripheral_iso_prepare. Event done with ISO (extra) type is demuxed
and done handled for CIG including ticker update with drift
compensation.
TODO: Handle multiple CISes as well as pause/resume and scheduling
latency.
Signed-off-by: Morten Priess <mtpr@oticon.com>
Implemented LL_CIS_REQ/RSP and LL_CIS_IND handling to allow a central
to establish a CIS connection. Implementation is temporary, for
test/development purpose and should be re-implemented in the new LLCP
framework when ready.
Signed-off-by: Morten Priess <mtpr@oticon.com>
In the file gatt.c, GAP service contains the Device Name
characteristic. If writable, authentication and authorization may
be defined by a higher layer specification.It means that GATT
clients can write to device name GAP characteristic without
bonding. So we add a configuration for writable name without
bonding.
Signed-off-by: Jun Huang <huangjun6@xiaomi.com>
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Adds a check for the BT_LE_FEAT_BIT_PER_ADV bit for each
function related to periodic advertising, including sync and
PAST transfer.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Fix undefined reference to bt_key_foreach when BT_LOG_SNIFFER_INFO has
been enabled but BT_SMP is not enabled.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
The Configuration Client doesn't check the address in a received
response. This means that a response from any device will be accepted.
This change ensures that the correct response will be accepted.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Fix bluetooth audio compilation issue when BT_AUDIO is enabled but
no Bluetooth host services has been enabled.
This leads to an empty library file.
Instead of creating a new library for audio add the sources to the
parent library, similar to how bluetooth services are added.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
VOCS does not support the write long procedure, and thus
should not accept any offset in write requests.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This adds bt_conn_iso function to safely access the struct bt_conn_iso
within a bt_conn.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Channel direction was actually a source of confusion since the spec does
actually define the data path direction from controller point of view
meaning input actually means transmit and output receive, also direction
can be configured with different QoS settings.
To make these APIs less confusing and allow QoS to be configured
independently they are now split into RX (receiving) and TX
(transmission) settings including its data path.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
CHECKIF is preferred as it handles full runtime error handling in
addition to just asserts.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This fixes bt_iso_cleanup when there are still channels bound to the
ACL connection.
On top of it introduce bt_iso_chan_unbind which can be used to unbind
channels and thus release the reference to the ACL connection if that
has not been disconnected in which case the channels are unbind
automatically.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
When the channel has just been bound but is not connected yet there is
no need to send any command over the air but the disconnected callback
shall still be called in order to notify the channel owner that it has
reached disconnected state.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
When initiating a disconnection conn_disconnect would be called to send
HCI_Disconnect but the controller may be quick enough to send Disconnect
Complete event before setting BT_CONN_DISCONNECT which will then cause
the invalid transition from BT_CONN_DISCONNECTED to BT_CONN_DISCONNECT
and the connection won't be freed properly.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This fixes a regression introduced by 4350021f09 which prevents
references to be properly release when there is an ISO connection.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit implements the secondary service
Volume Offset Control Service (VOCS) server and client.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Fix control Tx buffer leak into data Tx pool that happens
after a cross-over control procedure response was paused due
to currently active encryption setup procedure, and a new
control Tx PDU in addition to the paused one is enqueued
thereafter.
When the control tx PDUs is resumed but not yet enqueued
towards the radio, if there is a new control Tx PDU enqueued
then the paused control Tx PDU is not set as the head of the
control PDUs in the Tx queue. This caused the paused control
Tx PDU to be associated with data Tx pool, hence causing the
incorrect release into data Tx pool.
Relates to the commit bff76b4cce ("Bluetooth: controller:
split: Fix control tx queue handling") and to the
commit 6991d09977 ("Bluetooth: controller: Fix control tx
queue handling").
Fixes#32898.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Remove the redundant connection initiated check as the event
is closed on connection initiated and it is sufficient to
check in the prepare_cb function to abort any events in the
pipeline after the connection has been initiated.
Relates to commit 5ce5dc055e ("Bluetooth: controller:
Avoid race between ULL and LLL when initiating conn") and
commit 18f5fb99c1 ("Bluetooth: controller: Remove use of
lll_stop").
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Use the channel identifier calculation function in the
central and peripheral implementation.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Added function to calculate channel identifier value
required for Channel Selection Algorithm #2.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
A bunch of commands were missing from the bitmap in the Read Local
Supported Commands response. Add them accordingly.
Fixes#33324.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Ignore connection indications from peers that are already
connected. This is to bring the behavior of the controller in
accordance with [5.2, Vol 6, Part B, 4.5 Connection state]:
"If an advertiser receives a connection request from an initiator it
is already connected to, it shall ignore that request."
Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
Rename the peer's address in the advertising set struct from `id_addr`
to `peer_addr` to clarify what the address refers to.
Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
Fix regression is central only builds when CONFIG_BT_PRIVACY and/or
CONFIG_BT_EXT_ADV is enabled, or the functions bt_id_reset or
bt_id_delete is called from application.
This resulted in build error for undefined functions
bt_le_ext_adv_foreach and bt_le_adv_lookup_legacy since the definition
for these functions are now only compiled in when CONFIG_BT_BROADCASTER
has been enabled.
Regression from:
53cea4719d
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Fix CONFIG_BT_HCI_ACL_DATA_SIZE default value set to 0 when data length
feature in the controller is not enabled. In this case the default value
will be set to 0 which is outside of the range specified for the option.
Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Move access to volatile variable out of assertion to avoid warnings
about side effect in assertion.
Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
Add hci_driver.h to include files in id.c to ensure that prototype for
bt_read_static_addr is visible. This fixes builds that define
CONFIG_BT_CTLR but not CONFIG_BT_HCI_VS_EXT.
Signed-off-by: Wolfgang Puffitsch <wopu@demant.com>
Moved the call to obj_id_to_index such that we can check for valid
ID before getting the index.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Adds a ots_obj_manager function that returns true if the object is
in the object manager, or false otherwise.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The directory listing object is an internal object which
content is the aggregation of all the metadata of all objects
(including the directory listing object itself). The client
can read this value to get a list of all objects with names,
lengths, and other metadata.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The order of Destination CIDs shall correspond the order of Source CIDs
including its amount so errors that don't result in all connection being
refused shall not break the order of CIDs.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
For errors that means all connections have been refused there is no need
to add dcids since none will be valid.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
When receiving L2CAP_CREDIT_BASED_CONNECTION_REQ the remote may request
more channels than allowed so this checks if amount of channel surpasses
the maximum channels (5) and return an error.
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>