Fix radio packet length configuration when first subevent
has empty PDU in the BIG event.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix ISO Synchronized Receiver sequential packing BIS PDU
being dropped in the first repetation just after previous
BIS subevents where skipped.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix Broadcast ISO Create Scheduling to consider reducing
Host requested RTN value. And also use maximum overhead
calculation when Extended Advertising and Periodic
Advertising have not been started before BIG create.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix incorrect HCI ISO data length check for Broadcast ISO
transmissions.
Removed initially added code when preliminary support for
Broadcast ISO was implemented.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Add functions to unset, or remove, specific codec
LTV structure from codec_cfgs or codec_caps.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Fix the handling of buffers with fragments. What seems to have been
broken is the metadata reference that was not passed to the next frag in
the chain.
Add a test to regression too.
The main user of this is IPSP.
Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
Fix double prepare overhead considered in scheduling
extended, periodic and ISO broadcast radio events when using
LOW LAT variant.
ticks_slot maintained in ticker includes the overhead, the
ticks_slot stored in role/state context exclude the overhead
hence take care to include ticks_slot_overhead when value is
used from context and not when value used from ticker nodes.
Add jitter due to ticker resolution unit between scheduled
radio events. This will allow the synchronizing side too to
not overlap due to ticker resolution related jitter.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix ISO Synchronized Receiver sequential packing subevent
skip to next BIS subevent, so that radio channel is
correctly calculated.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
After removing 20ms in advertiser, all subnetwork beacons are sent as high
dense packet of frames with minimal distance between them. That might
cause collisions if beacon interval on devices will coincide.
This commit adds an artificial delay between each subnet advertsing
beacons.
Signed-off-by: Anders Storrø <anders.storro@nordicsemi.no>
Fix assertion due to LLL scheduling of auxiliary PDU
reception was not considered in the ULL when checking for
accumulated data length exceeding the supported maximum scan
data length. This caused the auxiliary context to be release
while LLL was still active with scheduled PDU reception.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
BAP would always set up the ISO data path in both directions,
even for unidirectional CIS. This meant that in the
unconfigured direction, the data path configuration data
would all be 0, which causes issues on some controllers.
The new refactored approach implemented by this commit
will always ensure that the data path is setup correctly,
and that we only set the data path in one direction for
unidirectional CIS. The unset path will use the default
ISO path of HCI and transparant format, which should always
be allowed by a controller.
This is building on the requirement in BAP that all streams in
a unicast group shall be QoS configured at the same time. This
ensures that before any streams in the CIG has been connected,
they have all been configured.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
When the central aborts the CIS setup during the CIS Creation
procedure after it has accepted the CIS request, the peripheral
will receive the HCI LE CIS Established event with an error code.
It does not receive a disconnection event.
See the message sequence chart in Core_v5.4, Vol 6, Part D,
Section 6.23.
This commit ensures that the perirpheral disconnected callback gets
called for this particular scenario.
Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
Add callbacks to the stream objects that reflects the
state of the isochronous channel. The connected callback
is called when the isochronous channel is connected, and
similarly the disconnected callback is called when it is
disconnected.
There is a special case for unicast, where if the ACL
disconnects first, then we won't get a ISO disconnect
callback. It should be assumed that the isochronous channel
is no longer valid when the BAP stream enters the idle state,
i.e. when the "released" callback is called.
The purpose of the new callbacks is to provide additional
information to the application. Especially the unicast client
can use this to determine when the stream_start function
can be called again, as there can only ever be 1 outstanding
CIS connection request at a time, but there can be multiple
GATT requests.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Added the GATT authorization callback API that allows the user to
define application-specific authorization logic for GATT operations.
Signed-off-by: Kamil Piszczek <Kamil.Piszczek@nordicsemi.no>
Remove the logic for adding the SDU length when allocating segments. That
section was dead code after the recent patches.
Inline the remainder of the logic into `l2cap_chan_le_send()`.
Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
Bluetooth Mesh Protocol 1.1 is backward compatible with Bluetooth Mesh
Profile 1.0.1, therefore the stack can still be qualified for 1.0.1 if
needed. But explicit support for both versions requires additional
maintenance efforts and doubles the CI time. To make the stack
qualifiable for 1.0.1, the one needs to remove Private Beacons reception
and compile out SHA256 algorithm support.
What is changed:
- Removed `CONFIG_BT_MESH_V1d1` option.
- Removed `transport_legacy.c` which was using 1.0.1 implementation. The
new transport layer has new SaR logic that should still be possible to
qualify for 1.0.1.
- Removed the legacy transport Kconfig options. They are superseded by
the new transport Kconfig options.
- Tester app: `overlay-mesh-v1d1.conf` is merged into
`overlay-mesh.conf`.
- Removed BabbleSim tests for 1.0.1.
- Updated documentation.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
When using the auto discover CCC, and the function is called
more than once with the same parameters before the previous
discovery has completed, then that may cause issues when we
reset the parameters when we get the response.
This commit adds a small check for the callback function
which is only set to the specified function when the
discovery is in progress. This way we can return an error
if the application calls bt_gatt_subscribe multiple times
before the previous discovery has completed, rather
than asserting.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Do not process SegAcks which were not targeted to the node.
They were rejected in the next if statement always, but generated
the annyoing warning "No matching TX context for ack".
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Add support for controlling whether the local controller
should transcode, or whether it will be done by another
module (e.g. the host).
By default when using the macros,
controller transcoding will be disabled.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The read callbacks may be called with conn == NULL if the device
does a local read of the attributes. This commit ensures that all
the read callbacks can handle the case where conn == NULL.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The place where TF-M places its non-secure api header files has changed
Therefore changing it for for all applications that use it.
Signed-off-by: Markus Swarowsky <markus.swarowsky@nordicsemi.no>
Instead of asserting, handle CIS creation latency for the peripheral by
finding next valid ISO event at which to start the CIG ticker.
Refactored calculations of the cig_offset to separate functions, to be
used also when calculating a new start offset.
Signed-off-by: Morten Priess <mtpr@oticon.com>
Always pull from the channel queue from the system workqueue context.
This simplifies debugging.
This also allows us to remove `sent` from the metadata struct.
Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
Separate most of the param checking in `bt_l2cap_chan_send()`, with the
logic in `bt_l2cap_dyn_chan_send()`.
Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
Fix missing ISO Synchronized Receiver radio event time
reservation that did not calculate for all the subevents.
Introduce BT_CTLR_SYNC_ISO_RESERVE_MAX Kconfig option to
allow using a minimal time reservation if needed to allow
other role to pre-empt ISO Synchronized Receiver in
pre-transmission and control subevents.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
The meaning of bit0 in the audio location bitmap will change to
mono audio, so we update the audio location macro and releated
test cases.
Refer to BT SIG ES-22266.
Signed-off-by: Bi Jian <bi_jian@qq.com>
The stream_in_subgroup variable in bt_bap_broadcast_source_reconfig
may have been uninitialized.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>