Adding support for one missing MCP testcase - verifying characteristic
handles during service discovery.
Signed-off-by: Piotr Narajowski <piotr.narajowski@codecoup.pl>
This removes the fixed size bt_bap_base, which provides
2 improvements:
1) The RAM usage of the broadcast sink has been reduced.
For the Broadcast Sink sample it is a reduction of 120
octets, but with much better scaling for supporting
more or larger BASEs.
2) The functions to parse BASEs now support arbitrary sized
BASEs, where they were previously restricted by our
local Kconfig options. This allow us to parse any BASE
from a remote device, without encounting memory issues.
We are still memory restricted on the devices we
actually want to sync to.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Implements sync established and sync lost BTP events.
This was affecting GAP/PADV/PASE/BV-01-C test case.
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
This allows for more tuning regarding Periodic Advertising Sync
behavior.
Required by GAP/PADV/PASE/BV-01-C qualification test case.
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
- Removed preset initializations. Done in auto-pts client.
- Added one additional preset in overlay-le-audio.conf.
Signed-off-by: Henrik Eriksen <heri@demant.com>
If there is any element on filter list it is used for advertising.
This allows to test all scenarios involving allow list (empty, peer
on list, peer not on list).
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
The Private Beacon Client API requires a response argument to allow to
call the API in the asynchronous manner
(https://github.com/zephyrproject-rtos/zephyr/pull/56426).
Because the removal of the EXPERIMENTAL tag for this API was not
released yet, it should be OK to change this API.
The EXPERIMENTAL tag has been removed here:
https://github.com/zephyrproject-rtos/zephyr/pull/64866
Coverity-CID: 330039
Coverity-CID: 330029
Coverity-CID: 329977
Fixes#65336Fixes#65338Fixes#65354
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
the reason is that the Mesh Profile clearly stipulates that Mesh nodes
cannot change their own element definitions.
Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
Since model struct most of member should not change at run time,
so mark as const will be suitable and safely.
Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
The existing driver and sample:
- drivers/bluetooth/hci/rpmsg
- samples/bluetooth/hci_rpmsg
are no longer correctly named, since they now use the IPC subsystem to
send and receive data. The IPC subsystem can use RPMsg as a transport,
but that is one of several selectable backends.
I initially wanted to deprecated both the BT_RPMSG Kconfig option as
well as the zephyr,bt-hci-rpmsg-ipc chosen node in Devicetree. However,
this proved to be undoable in the case of the Kconfig option. This is
because it's a choice option, and those have special behavior. In
particular, the only practical way to deprecate would've been to keep
the old Kconfig option outside the choice (much like it's done in this
commit) but then also add a 'depends on !BT_RPMSG' on each of the
remaining choice symbols *except* on the new BT_HCI_IPC one. This, however,
only works correctly for .conf files. If a board instead sets the
default BT_HCI_BUS_TYPE in the Kconfig.defconfig file then the Kconfig
tree parsing would fail, because it'd try to set it to a value
(BT_RPMSG) that is no longer part of the choice.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This fixes missing unreference of network buffer allocated
when there is no data to send in the ring buffer.
The code have been refactored, so that we check whether there is
anything to send first, and if there is, the TX buffer is allocated.
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
The call to bt_micp_mic_ctlr_mute_get function will return the value of
mute state in bt_micp_mic_ctlr_cb.mute callback. This fixes invalid
function calls by storing the recent mute state value in the
application.
Fixes: MICP/CL/SPE/BI-01-C
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
PTS uses BLOB server model instantiated by DFD server for MBT tests as
it is the first BLOB server model in the device composition data. DFU
server, which also has BLOB server model, is instantiated after DFD
server.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
PTS requires IUT to send requests with page number with
0xFF or the highest supported page number in order to
retrieve all the composition data pages from the lower
tester.
This commit add the page number to the response, thus
the upper tester can follow the last page number and
send the next page request until page 0 is requested.
Signed-off-by: Alperen Şener <alperen.sener@nordicsemi.no>
Refactor the codec_cfg_get_frame_duration function to return the
assigned numbers value, instead of a converted value, but with
support for converting the value.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This allow to run the following PTS test:
- DFU/SR/FD/BV-06-C
- DFU/SR/FD/BV-13-C
- DFU/SR/FD/BV-14-C
- DFU/SR/FD/BV-15-C
- DFU/SR/FD/BV-16-C
- DFU/SR/FD/BV-17-C
- DFU/SR/FD/BV-18-C
- DFU/SR/FD/BV-22-C
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Pass only speficied number of handler to read_params for GATT read
multiple. This is to avoid sending invalid (zeros) handles in
ATT_READ_MULTIPLE_REQ.
This was affecting GATT/CL/GAR/BI-18-C and GATT/CL/GAR/BI-19-C
qualification test cases.
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>
This fixes regression introduced in
https://github.com/zephyrproject-rtos/zephyr/pull/63556
In the PR above `bt_mesh_init()` call was moved to `BTP_MESH_INIT`
command to allow to select alternative composition data when starting
the stack. AutoPTS sends `BTP_MESH_CONFIG_PROVISIONING` command
before `BTP_MESH_INIT` to prepare the provisioning context. But
because `bt_mesh_init()` is now called after
`BTP_MESH_CONFIG_PROVISIONING` command is sent, this configuration is
reset to the default which makes PTS tests to fail.
To solve this, this commit calls introduces a new command,
`BTP_MESH_START`, which will replace the original `BTP_MESH_INIT`
command. `bt_mesh_init()` will stay in `BTP_MESH_INIT` while the stack
will be started in `BTP_MESH_START` command.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
DFU/SR/FD/BV-59-C tests Distributor self-update. Because the actuall
firmware swapping doesn't happen, we need to just simulate the swapping
by setting new Firmware ID sent by LT. We use slot to take firmware id
as by procedure, Fw Update Server doesn't know about it.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Remove this command as composition can only be set in bt_mesh_init call
which is called before settings are loaded.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
In some RPR tests we need to pass alternative composition data when
testing CDP128. When bt_mesh_init is called from mesh service
registration callback, we can't pass any arguments. Therefore we need
to move bt_mesh_init call out from mesh service registration to
BTP_MESH_INIT command.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Update the function name from codec_cfg_get_chan_allocation_val
to just codec_cfg_get_chan_allocation, and add
codec_cfg_set_chan_allocation.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Large composition data response struct should have a
data buffer to store the reponse data to
Signed-off-by: Alperen Şener <alperen.sener@nordicsemi.no>
Refactor the codec_cfg_get_freq function to return the assigned
numbers value, instead of a converted value, but with
support for converting the value.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Support for BAP/BSRC and BAP/BSNK test cases.
Add partial support for GAP/PADV as periodic advertising is needed
for BAP/BSRC tests and they can share common code.
Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
Add Models Metadata Page 128 support to tester.
Signed-off-by: Michal Narajowski <michal.narajowski@codecoup.pl>
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
This allows to advertise beacons with Private Node Identity on demand,
like was available for regular Node Identity.
Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>
- Add entry for client and server in composition data.
- Add Client commands to aggregate and send messages.
MESH/SR/AGG/BV-02-C requires more key slots.
Signed-off-by: Michal Narajowski <michal.narajowski@codecoup.pl>
Adding support for automatic testing BLOB, DFU and DFD models.
Co-authored-by: Agata Ponitka <agata.ponitka@codecoup.pl>
Co-authored-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
This enables Remote Provisioning in tester application. Adds basic
setup and required structures/functions.
add BTP API for Remote Provisioning Client
This adds BTP commands for RPR Client API.
Signed-off-by: Krzysztof Kopyściński <krzysztof.kopyscinski@codecoup.pl>
- Adds Large Comp Data Server and Client
- Defines some dummy metadata for Health Server
Signed-off-by: Michal Narajowski <michal.narajowski@codecoup.pl>
Some test cases require more control over transmission parameters used
when sending access messages.
Signed-off-by: Michal Narajowski <michal.narajowski@codecoup.pl>
Mesh1d1 uses EHP wth SHA256 algorithm as the main one.
This mandates to use 32 bytes static oob if static oob
has been chosen.
Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
Replace the BT_AUDIO_CODEC_LC3_ID macro with the
BT_HCI_CODING_FORMAT_LC3 as there is no reason to
define and use the LC3 ID different than the other
allowed codec IDs.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This patch amends the existing L2CAP accept callbacks to use the new
accept signature that includes a pointer to the L2CAP server structure.
Signed-off-by: Donatien Garnier <donatien.garnier@blecon.net>
After recent refactors some PACS characteristics have to be enabled
with CONFIG_ variables.
Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
Fix a bunch of mismatched CONTAINER_OF, few missing
k_work_delayable_from_work conversions but also many
bt_l2cap_le_chan/bt_l2cap_chan and few others.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Refactor the bt_audio_codec_cfg to use flat arrays to store
metadata and codec specific configurations.
The purpose of this is to make it easier to copy the data
between layers, but also to support non-LTV data for non-LC3
codec configurations.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This extends the list of build variants with native_posix variant to
build the tester application by CI.
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
This moves the board DT overlays and configurations to /board
directory so that it can be automatically applied in compilation
pipeline.
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
As the metadata has to be validated anyway, let the initial vaidation of
metadata to be done in ASCS. The application can still reject the
metadata, but the length validation and supported type validation can be
performed by the stack.
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
This updates the testcase.yaml to include new configurations for
LeAudio, Mesh and native builds.
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
The streams can be deallocated once bt_bap_stream_ops.released callback
is called. Otherwise it may cause memory violation in the stack.
Fixes: ASCS/SR/ACP/BV-31-C
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
Extend Codec capabilities of the server.
At Codec Config operation initiated autonomously by server, all ASEs
with lower IDs than the requested one have to be initated first due
to API limitation.
In some BAP/USR (server role) test cases the PTS sends the MMI 202
to configure the Sink ASE to streaming state, in some others it does not.
For now, let's autonomously send Receiver Start Ready at ASE Enabled.
Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
There is no reason why the capabilities
should be modified by the stack after registration,
nor any reason why a the unicast client application
needs to modify the reported remote capabilities, so
all have been marked as const.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Refactor the bt_audio_codec_cap to use flat arrays to store
metadata and codec specific capabilities.
The purpose of this is to make it easier to copy the data
between layers, but also to support non-LTV data for non-LC3
codec capabilities.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Modify audio_send_timeout to use bt_bap_stream_get_tx_sync
instead of bt_iso_chan_get_tx_sync to avoid using an internal
function to get the ISO channel from the BAP stream.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
- Initialisation of Coordinated Set Identification Service.
- Set and clear member lock.
- Get member RSI.
Signed-off-by: Henrik Eriksen <heri@demant.com>
Allow to assing end points to CISes before creating a CIG. Previously
the end points were assinged top-down, so the configuration 7(i) and
other similar were not covered.
Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
The BAP stream object should not have a dir field. The
dir field should be stored in the EP only (to avoid having two
fields storing the same value, causing possible issues).
The field was removed, and the places that use it has been updated.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Recently there have been a few name changes in the API that caused
build errors of the tester application when LE Audio overlays applied.
Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
Rename the bt_codec struct to bt_audio_codec_conf or
to the new struct bt_audio_codec_cap.
Rename the bt_codec_data to bt_audio_codec_data.
The purpose of this is to split the codec specific configuration
and codec capabilities into seperate structs, as they do not
reflect the same values, or used for the same purpose.
This commit depends on the preset macros workings on either
type of struct (for now), but will be modified in future updates.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This fixes metadata length checks for BT_AUDIO_METADATA_TYPE_EXTENDED
and BT_AUDIO_METADATA_TYPE_VENDOR that should be at least 2 bytes long.
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
The CCID list can be empty, as the Assigned Numbers is not strict
regarding it's minimum length.
Fixes: #59666
Signed-off-by: Mariusz Skamra <mariusz.skamra@codecoup.pl>
PTS l2cap tests need BT_BUF_ACL_RX_SIZE to be 100.
Signed-off-by: Lang Xie <Lang.Xie@nordicsemi.no>
Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
The bt_has_register_param was renamed to bt_has_features_param
recently. Fixes build errors.
Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
The host app should increment the sequence number within SDU interval
whether it has any data to send data to the controller or not.
Signed-off-by: Magdalena Kasenberg <magdalena.kasenberg@codecoup.pl>
ATT attributes can be up to 512 bytes long, so the comparisong needed
fixing.
See spec v5.4, Vol 3, Part F, 3.2.9.
Fixes#57930.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Remove usage of Kconfig symbol `CONFIG_BT_DEBUG_LOG` from tests. It has
been deprecated since this PR:
https://github.com/zephyrproject-rtos/zephyr/pull/56183
The Kconfig symbols has been replaced by `CONFIG_LOG=y` on most of the
cases. Or it has been removed when not needed anymore.
Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
This is required by GATT/SR/GAW/BV-14-C where PTS does a lot of small
writes to characteristic of 512 bytes.
Signed-off-by: Szymon Janc <szymon.janc@codecoup.pl>