Commit graph zephyr/subsys/bluetooth
Author SHA1 Message Date
Lyle Zhu
741afc85af Bluetooth: Classic: HFP_AG: Optimize audio connect management
In current implementation, the call will be terminated, or rejected if
the audio connect cannot be established. But from the application
view, if the sco connect cannot be established, the audio paths can be
routed towards the AG. So force routeing the audio towards the HF is
not reasonable and it is not the mandatory.

The changes aim to keep the sequence that creating SCO connect in the
right time. And ignore the result whether the SCO connect has been
created or can be established.

If the audio connect cannot be established, the application can try to
change the audio route paths according to the audio connection
procedure.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-27 11:31:36 +01:00
Vinayak Kariappa Chettimada
61a8648c2c Bluetooth: Controller: Replace Kconfig select with depends
Replace use of `select` with `depends on` in the LL_SW_SPLIT
Kconfig options.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-11-26 12:17:47 -05:00
Aleksander Wasaznik
04b8dbae4b Bluetooth: Host: Disable bt_hci_cmd_send_sync workaround
The workaround in bt_cmd_send_sync should no longer by needed when
tx_processor is not on the system work queue.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2025-11-26 12:16:43 -05:00
Aleksander Wasaznik
f101976e31 Bluetooth: Host: Run tx processor on its own thread
When thread that TX processor is used to send commands and data to
Controller is also used for sync commands sending and command buffer
allocation, a deadlock happens.

This thread is used to avoid such deadlocks by moving TX processor to
its own dedicated thread exclusively used by tx processor only.

Co-authored-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2025-11-26 12:16:43 -05:00
Aleksander Wasaznik
6889042d96 Bluetooth: Host: Don't call user callback from TX thread
ATT is invoking user callbacks in its net_buf destroy function. It is
common practice that these callbacks can block on bt_hci_cmd_alloc().
This is a deadlock when the net_buf_unref() happens inside the HCI
driver, invoked from tx_processor.

Blocking callbacks like this appear in our own samples. See further down
about how this problem was detected.

tx_processor not protect against blocking callbacks so it is de-facto
forbidden. The Host should not equip net_bufs with dangerous destroy
callbacks.

This commit makes ATT defer its net_buf destruction and user callback
invocation to the system workqueue, so that net_buf_unref is safe to
call from non-blocking threads. In the case of the deadlock, the
net_buf_unref() was below the tx_processor in the call stack, which (at
the time of this commit) is on the system work queue, so defering it to
the system work queue is preserving the existing behavior.

Future improvement may be to allow the user to provide their own
workqueue for ATT callbacks.

This deadlock was detected because the following test was failing while
moving tx_processor to the bt_taskq:

    tests/bsim/bluetooth/ll/throughput/tests_scripts/gatt_write.sh

The above test has an ATT callback `write_cmd_cb` invokes
`bt_conn_le_param_update` can block waiting for `tx_processor`.

The reason it was not failing while tx_processor was on the system work
queue is that the GATT API has a special non-blocking behavior when
called from the system work queue.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2025-11-26 12:16:43 -05:00
Omkar Kulkarni
d8ed0f8e3d tests: Bluetooth: Tester: Audio: Adds BRS
This commit adds API to tester to allow exposing of Broadcast Receive
State.

Signed-off-by: Omkar Kulkarni <omkar.kulkarni@nordicsemi.no>
2025-11-26 11:05:19 +00:00
Omkar Kulkarni
b6e5d03ff4 bluetooth: audio: Update encrypt state value
Fixes a bug where encrypt state value was not updated based on given
parameters.

Signed-off-by: Omkar Kulkarni <omkar.kulkarni@nordicsemi.no>
2025-11-26 11:05:19 +00:00
Lyle Zhu
25d2c50ca3 Bluetooth: Classic: HFP_HF: Correct definition of supported features
In current implementation, there are two issues found,

Issue 1, the feature defined in the SDP HFP HF record are used in
combination as HFP HF supported features reported via `+BRSF`.

Issue 2, the macro `BT_HFP_HF_FEATURE_CODEC_NEG_ENABLE` is not
aligned with macro name of other features. The other macros are named
with prefix `BT_HFP_HF_FEATURE_`.

Use `BT_HFP_HF_FEATURE_VOLUME_ENABLE` to set the volume feature
instead of `BT_HFP_HF_SDP_FEATURE_VOLUME_ENABLE`.

Rename `BT_HFP_HF_CODEC_NEG_ENABLE` with new name
`BT_HFP_HF_FEATURE_CODEC_NEG_ENABLE`.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-26 11:04:23 +00:00
Håvard Reierstad
6bb0e982ad Bluetooth: Host: Add legacy pairing test config
Adds the `CONFIG_BT_SMP_LEGACY_PAIR_ONLY` Kconfig option to force
devices to use legacy pairing. This has a dependency on
`CONFIG_BT_TESTING` as it is only intended for testing purposes, and use
of legacy pairing is discouraged.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2025-11-24 17:35:19 +01:00
Emil Gydesen
4c54eef0d0 Bluetooth: BAP: Fix bad check for ASE state for CIS connect
A CIS may be connected in either the QoS Configured state
or the enabling state. The QoS Configured state is the
earliest state it is allowed, due to it being the first
state where the CIS_ID and ASE_ID are paired.
The enabling state is the "last" state it is allowed,
as if the ASE is in the streaming, disabling or releasing
state we should not allow/expect a CIS connection to happen.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-11-24 17:28:58 +01:00
Make Shi
f88eb16d7c Bluetooth: AVRCP: enable full browsing commands
This change implements full AVRCP Browsing support on both CT/TG,
and included all public APIs and callbacks, and add shell commands
for testing.

Signed-off-by: Make Shi <make.shi@nxp.com>
2025-11-24 17:21:27 +01:00
Make Shi
497d3bba43 Bluetooth: AVRCP: Add alloc_buf callback and browsing RX pool
Introduce an optional alloc_buf() callback into AVCTP so that each
session can decide which RX buffer pool to use. Provided a dedicated
RX pool for the AVRCP browsing channel.
Also provided BT_AVRCP_BROWSING_L2CAP_MTU for configure.

Signed-off-by: Make Shi <make.shi@nxp.com>
2025-11-24 17:21:27 +01:00
Make Shi
3d57125247 bluetooth: avrcp: align enums and response struct naming
Drop the 'U' suffix from enum hex literals keep style consistent
and rename `bt_avrcp_list_app_setting_attr_rsp` to the clearer.

Signed-off-by: Make Shi <make.shi@nxp.com>
2025-11-24 17:21:27 +01:00
Håvard Reierstad
627b6e4dd7 Bluetooth: Host: Legacy passkey entry 6.2 update
As of Core v6.2, the passkey entry pairing method for legacy pairing
does no longer grant authenticated MITM protection. This commit
updates `smp.c` accordingly to not grant the authenticated states when
using legacy passkey entry pairing.

Adds a check to make sure that bonds that have been stored persistently
adheres to these changes. Bonds that have been generated using the
legacy passkey entry pairing method will thus be downgraded from
authenticated to unauthenticated when restored from storage.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2025-11-22 05:12:56 -05:00
Emil Gydesen
1d28715d25 Bluetooth: ISO: Add SDU check for CIS
If both the TX and RX SDUs are 0, then we reject
the call as that is an invalid configuration
(minimum SDU size is 1, and 0 indicates that
no data in that direction is being configured).

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-11-22 05:11:45 -05:00
Aleksandar Stanoev
1eea6adad2 bluetooth: host: Fix bt_conn reference leak in Frame Space Update
Fix a missing unref of a bt_conn reference, leading to a ref count
mismatch, and causing the following warning to be printed:
bt_conn: Found valid connection ... in disconnected state.

Signed-off-by: Aleksandar Stanoev <aleksandar.stanoev@nordicsemi.no>
2025-11-21 11:41:24 -05:00
Alexander Svensen
87997afeb2 bluetooth: audio: scan_delegator: Reject remove when PA synced
- BASS mandates that a remove_source operation is not done if
  we are synced to PA or BIS. This PR fixes that
- Update BabbleSim tests to reflect this behavior
- Fixes BASS/SR/SPE/BI-05-C

Signed-off-by: Alexander Svensen <alexander.svensen@nordicsemi.no>
2025-11-21 09:47:10 -05:00
Emil Gydesen
797fa99f57 Bluetooth: BAP: Shell: Refactor receive states
Refactor how receive states are handled in the BAP
shell.

The scan delegator's receive states are not available from
the broadcast sink, and the broadcast sink makes sure to
properly set the pa_sync object in the receive state
struct.
The receive states are now also using the BAP service data to
identity the receive state when using PAST.

The broadcast assistant will now cache data from a remote device,
and makes it available to e.g. CAP.
Additionally if there is a broadcast source, we cache the values
neccesary to identity if a remote receive state represents our
local broadcast source.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-11-20 09:00:27 -05:00
Emil Gydesen
be874a2aaf Bluetooth: BAP: Missing assignment to aggregated_bis_syncs
When using the add_src and mod_src APIs the
aggregated_bis_syncs variable was only ever set to 0
and never updated, thus making all calls to
bis_syncs_unique_or_no_pref to be true.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-11-20 08:59:49 -05:00
Cheng Chang
5959016f1b Bluetooth: classic: obex: Fix active client validation logic
Fix the active client validation in OBEX abort operations to
handle concurrent request scenarios. The check now
ensures that if there is an active client and it's different
from the current client, the operation is rejected with -EBUSY.

Signed-off-by: Cheng Chang <cheng.chang@nxp.com>
2025-11-20 06:02:24 -05:00
Cheng Chang
ca1a522f93 bluetooth: classic : shell : Add test visibility for static functions
Add STATIC macro definition to conditionally expose static functions
for testing purposes. When CONFIG_ZTEST is enabled, STATIC expands
to nothing, making functions globally visible for unit tests.
Otherwise, STATIC expands to 'static' for normal builds.

Signed-off-by: Cheng Chang <cheng.chang@nxp.com>
2025-11-20 06:01:23 -05:00
Alexander Svensen
78729f4ff0 bluetooth: audio: scan_delegator: Fix validation
- Fixes bug where bis_sync_requests were wrongfully validated.
  - Two BISes across subgroups should not have the same bits set
- Remove use of internal->bis_syncs before it's updated in mod_src.

Signed-off-by: Alexander Svensen <alexander.svensen@nordicsemi.no>
2025-11-19 15:54:23 -05:00
Timothy Keys
6bfa6fa9a8 bluetooth: host: shell: Add SCI shell commands
This adds support for Shorter Connection Interval commands in the bt
shell.

Signed-off-by: Timothy Keys <timothy.keys@nordicsemi.no>
2025-11-19 09:15:18 -05:00
Timothy Keys
c14dcaf199 bluetooth: host: Change uses of interval to interval_us
Since Shorter Connection Intervals changes the unit that connection
intervals can be represented in. It is necessary to change how
they are stored and represented.

This commit deprecates interval in favour of interval_us.

Remove use of interval in internal bt_conn struct since it is no longer
needed.

Signed-off-by: Timothy Keys <timothy.keys@nordicsemi.no>
2025-11-19 09:15:18 -05:00
Timothy Keys
e2cd247ec4 bluetooth: host: Add Shorter Connection Intervals support
This commit adds support for the Shorter Connection Intervals feature to
the Bluetooth host.

Signed-off-by: Timothy Keys <timothy.keys@nordicsemi.no>
2025-11-19 09:15:18 -05:00
Pavel Vasilyev
b7b35b89ed bluetooth: host: Deprecate CONFIG_BT_SIGNING
This commit deprecates:
- the `CONFIG_BT_SIGNING` Kconfig option
- `BT_GATT_CHRC_AUTH` property

IOW, this commit deprecates the LE Security mode 2 support.

Explanation:

Erratum ES-26047 introduced in Bluetooth Core Specification v6.2
requires SingCounter to be persistently stored to prevent replay
attacks.

Currently, the Host doesn't store SignCounter, therefore the device is
vulnerable to replay attacks after reboot.

Additionally, the current implementation doesn't assume that SignCounter
of a received message can be incremented by more than one and thus may
not validate correct message.

The Bluetooth Security and Privacy Best Practices Guide recommends to
not using Data signing and recommends to use LE Security mode 1 levels
2, 3 or 4 instead.

The Signed Write Without Response sub-procedure, which is the only user
of Data signing, is optional (see Vol 3, Part G, Table 4.1).

See also ES-18901.

The aforementioned reasons make no sense to keep this feature.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2025-11-19 06:52:38 -05:00
Aleksandr Khromykh
613d228002 bluetooth: mesh: update max oob size till 32 bytes
Commit updates maximum OOB authentication size from 8 bytes
till 32 bytes according to specification errata ES-27446.
Since previous OOB API does not allow to expose OOB values
with such width the new API has been introduced.
The previous API was deprecated and hidden under
BT_MESH_PROV_OOB_API_LEGACY option and left for backward
compatibility with existing code base.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2025-11-18 10:48:18 -05:00
Aleksandr Khromykh
6bf8409e39 bluetooth: mesh: adjust adv stack dependency and size
Commit removes legacy dependancy on Host crypto.
Additionally, it adapts advertiser stack size if
provisioner feature has been enabled (tested with
mesh_shell and thread analyzer).

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2025-11-18 10:48:18 -05:00
Aleksandr Khromykh
8b2e37f0e2 bluetooth: mesh: prevent getting wrong authentication size
Commit moves SHA256 authentication size under SHA256 macro.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2025-11-18 10:48:18 -05:00
Aleksandr Khromykh
760d190723 bluetooth: mesh: zeroing not used part of auth array
Commit set zero to not used part of authentication array
to prevent garbage from the previous provisioning using.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2025-11-18 10:48:18 -05:00
Aleksandr Khromykh
666950efff bluetooth: mesh: improve oob size checking
Commit improves oob size checking to catch wrong size
as early as possible and prevents zero size.

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2025-11-18 10:48:18 -05:00
Alexander Svensen
fa8c244313 Bluetooth: Audio: CSIS: Check all pending notifications
- When a bonded device is reconnected, check flags for pending
  notifications for:
 - Lock
 - SIRK
 - Size

Previously only lock was checked

Signed-off-by: Alexander Svensen <alexander.svensen@nordicsemi.no>
2025-11-18 08:12:06 -05:00
Sean Kyer
05634c3d6c bluetooth: ANS: Add Alert Notification Service
Add alert notification service (ANS) to Bluetooth
subsystem and accompanying sample.

Signed-off-by: Sean Kyer <sean.actor@gmail.com>
2025-11-17 13:49:22 -05:00
Josuah Demangeon
9bd94fab14 style: subsys: apply coding style on CMakeLists.txt files
Apply the CMake style guidelines to CMakeList.txt files in subsys/.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-11-17 13:48:03 -05:00
Zhijie Zhong
c222dcff8c bluetooth: host: Add bt_gatt_cb_unregister() to unregister GATT callbacks
New API bt_gatt_cb_unregister, use _SAFE iteration for callback list.

Signed-off-by: Zhijie Zhong <zhongzhijie1@xiaomi.com>
2025-11-17 13:46:47 -05:00
Lyle Zhu
6c83b9bc04 Bluetooth: Classic: HFP_HF: Register SCO connect callback
There is an issue that the SCO connect cannot be un-referenced by HFP
HF when the SCO connection is broken if the SCO connect is not created
by HFP HF.

Register SCO connect change callback. And un-reference the SCO connect
in SCO disconnected callback.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 10:59:10 -05:00
Lyle Zhu
3d8dfd7af7 Bluetooth: Classic: HFP_AG: Compatible old version HF
In current implementation, the HF with old version cannot be
supported properly.
Such as, if the AG is version 0.96, the AT command `AT+BRSF` will not
be sent. It causes the AG cannot know the features of HF.

Compatible old version with the following changes,

Discover the HF SDP record to get the profile version and HF features.
If the SDP discovery is failed, break the RFCOMM DLC connection.

If the AG version is v0.96, update the HF features according to the
discovered HF features.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 10:59:10 -05:00
Lyle Zhu
477b3ddd0c Bluetooth: Classic: HFP_HF: Compatible old version AG
In current implementation, the AG with old version cannot be
supported properly.
Such as, if the AG is version 0.96, the AT command `AT+BRSF` should
not be sent.
And if the AG is no newer than version 1.5, the `Codec Negotiation`
should be unsupported.

Compatible old version with the following changes,

Discover the AG SDP record to get the profile version and AG
features. If the SDP discovery is failed, break the RFCOMM DLC
connection.

If the AG version is v0.96, do not send AT command `AT+BRSF`.

Create SCO connection directly if the codec negotiation feature is
unsupported on both side in the function `bt_hfp_hf_audio_connect()`.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 10:59:10 -05:00
Lyle Zhu
3f201d5c5f Bluetooth: Classic: shell: Add cover art shell commands
Add cover art shell commands for AVRCP controller and target.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 10:58:06 -05:00
Lyle Zhu
8e144a89f3 Bluetooth: Classic: AVRCP: Enable cover art feature
Add Kconfig `BT_AVRCP_TG_COVER_ART` to enable the target cover art
feature.

Add Kconfig `BT_AVRCP_CT_COVER_ART_GET_IMAGE_PROPERTIES` to enable
the controller cover art get image properties feature.

Add Kconfig `BT_AVRCP_CT_COVER_ART_GET_IMAGE` to enable the
controller cover art get image feature.

Add Kconfig `BT_AVRCP_CT_COVER_ART_GET_LINKED_THUMBNAIL` to enable
the controller cover art get linked thumbnail feature.

Add functions `bt_avrcp_cover_art_ct_cb_register()` and
`bt_avrcp_cover_art_tg_cb_register()` to register the callback.

Add function `bt_avrcp_cover_art_ct_l2cap_connect()` to create the
L2CAP connection for OBEX transport.

Add functions `bt_avrcp_cover_art_ct_l2cap_disconnect()` and
`bt_avrcp_cover_art_tg_l2cap_disconnect()` to disconnect the L2CAP
connection.

Add functions to send OBEX request/response, including connect,
disconnect, abort, get_image_properties, get_image, and
get_linked_thumbnail.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 10:58:06 -05:00
Lyle Zhu
3cc5c1be45 Bluetooth: Classic: HFP_AG: Get default indicator value
In current implementation, the default indicator value cannot be set
when building the SLC. And it causes the incorrect indicator value is
notified by AG.

Add a callback `get_indicator_value` to get the default indicator
value from the application.

Add shell command `indicator_value` to set the default indicator
value. The set indicator value will be passed to HFP AG when callback
`get_indicator_value` is notified.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-17 09:16:45 -05:00
Johan Hedberg
3ab1caa87f Bluetooth: Classic: AVRCP: Fix another Clang/LLVM build failure
subsys/bluetooth/host/classic/shell/avrcp.c:407:3: error: label followed
by a declaration is a C23 extension [-Werror,-Wc23-extensions]
  407 |                 uint64_t identifier;
      |                 ^

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2025-11-14 12:19:00 +02:00
Lyle Zhu
46c51cbefe Bluetooth: Classic: BIP: Ensure uncompleted request func consistent
For the uncompleted BIP request, the following BIP request function
should be same with the previous.

Keep the first request function type, and check it with the following
request function type.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-14 10:31:16 +02:00
Lyle Zhu
179928a147 Bluetooth: classic: BIP: Check if rsp func is consistent with req's
The response function should be consistent with the function of
request when server responses the request of client.

Check whether the BIP function in the server response function is
consistent with the client request.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-14 10:31:16 +02:00
Lyle Zhu
04c2b996a8 Bluetooth: shell: Support BIP SDP record register and discovery
Add command `reg` to register the BIP responder SDP record.

Add command `set_caps`, `set_features`, and `set_functions` to set the
supported capabilities, features, and functions for BIP responder.

Add command `discover` to discovery the BIP responder SDP record. And
parse the response data to get the supported features and functions.

Add command `set_feats_funcs` to set the discovered supported features
and functions.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-14 10:31:16 +02:00
Lyle Zhu
631bd89dd8 Bluetooth: Classic: BIP: Check features and functions of initiator
Add function `bt_bip_set_supported_capabilities()` to set the
supported caps of responder.

Add function `bt_bip_set_supported_features()` to set the supported
features of responder.

Add function `bt_bip_set_supported_functions()` to set the supported
functions of responder.

Check the supported features of responder when sending OBEX connect
request on initiator side.

Check the supported functions of responder when sending OBEX get/put
request on initiator side.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-14 10:31:16 +02:00
Lyle Zhu
270a2e6584 Bluetooth: shell: Add BIP shell commands
Add commands for transport over RFCOMM, including `register-rfcomm`,
`connect-rfcomm`, and `disconnect-rfcomm`.

Add commands for transport over L2CAP, including `register-l2cap`,
`connect-l2cap`, and `disconnect-l2cap`.

Add command `alloc-buf` and `release-buf` to allocate and release TX
buffer.

Add command set `add-header` to add the OBEX headers to allocated TX
buffer.

Add command set `client` to send BIP client requests with allocated
TX buffer.

Add command set `server` to send BIP responses with allocated TX
buffer.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-14 10:31:16 +02:00
Lyle Zhu
89fda049bc Bluetooth: classic: Enable BIP features
Add functions to manage BIP transport connect and disconnect both for
l2cap and rfcomm.

Add functions to register and unregister primary and secondary OBEX
servers.

Add functions to send OBEX connect/disconnect request and response.

Add functions to send OBEX get/put request and response with different
type defined by BT_BIP_HDR_TYPE_*.

Add functions to send abort request and response.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-14 10:31:16 +02:00
Lyle Zhu
860fb0a96b Bluetooth: classic: OBEX: Fix action id type issue
The OBEX packet cannot be parsed properly if the action ID header is
included in the packet.

It is caused by the value type issue of the action ID. The action ID
type should be `uint8_t` instead of `uint32_t`.

Fix the issue by change action ID value type from `uint32_t` to
`uint8_t`.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-14 10:31:16 +02:00
Lyle Zhu
44ef5a8857 Bluetooth: classic: OBEX: Expose function bt_obex_has_header()
The function `bt_obex_has_header()` is used to check whether the
specific header is in the buffer.

It is required by upper layer to check the header from the receiving
buffer.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-11-14 10:31:16 +02:00