Skip to content

Conversation

@m-alperen-sener
Copy link
Contributor

Deprecating BT_FIXED_PASSKEY and start using BT_APP_PASSKEY instead.

@m-alperen-sener m-alperen-sener requested review from a team as code owners November 4, 2025 16:10
@NordicBuilder NordicBuilder added manifest changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. labels Nov 4, 2025
@NordicBuilder NordicBuilder requested a review from a team November 4, 2025 16:10
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Nov 4, 2025

The following west manifest projects have changed revision in this Pull Request:

Name Old Revision New Revision Diff
matter nrfconnect/sdk-connectedhomeip@4c78bef nrfconnect/sdk-connectedhomeip@c982612 (master) nrfconnect/sdk-connectedhomeip@4c78bef4..c9826122
zephyr nrfconnect/sdk-zephyr@0985cce nrfconnect/sdk-zephyr@d54a7f8 (main) nrfconnect/sdk-zephyr@0985cced..d54a7f81

All manifest checks OK

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Nov 4, 2025

CI Information

To view the history of this post, click the 'edited' button above
Build number: 28

Inputs:

Sources:

sdk-nrf: PR head: 8c7d26bc0d6b7a466ba86e95e2ea77f6f643e21b
matter: PR head: c9826122fccab36e7caec9654bd1c0fdd1d27242
zephyr: PR head: d54a7f811327fe9cc3da2dffa7365de96c999c08

more details

sdk-nrf:

PR head: 8c7d26bc0d6b7a466ba86e95e2ea77f6f643e21b
merge base: 04261b7795d9492aec972f9d14e142c8ae9cc15d
target head (main): 5fc5b0e5f152d99a0e877007e8fa346674ddc0e8
Diff

matter:

PR head: c9826122fccab36e7caec9654bd1c0fdd1d27242
merge base: 4c78bef4bfc9b66d8d4ed44813cf7560efe69323
Diff

zephyr:

PR head: d54a7f811327fe9cc3da2dffa7365de96c999c08
merge base: 0985cced399a26c994a0736ba8c00dc852e22ec3
Diff

Github labels

Enabled Name Description
ci-disabled Disable the ci execution
ci-all-test Run all of ci, no test spec filtering will be done
ci-force-downstream Force execution of downstream even if twister fails
ci-run-twister Force run twister
ci-run-zephyr-twister Force run zephyr twister
List of changed files detected by CI (26)
doc
│  ├── nrf
│  │  ├── libraries
│  │  │  ├── bluetooth
│  │  │  │  ├── mesh
│  │  │  │  │  ├── vnd
│  │  │  │  │  │  ├── images
│  │  │  │  │  │  │  │ bt_mesh_le_pair_resp.svg
│  │  │  │  │  │  │ le_pair_resp.rst
│  │  ├── releases_and_maturity
│  │  │  ├── migration
│  │  │  │  │ migration_guide_3.2.rst
│  │  │  ├── releases
│  │  │  │  │ release-notes-changelog.rst
include
│  ├── bluetooth
│  │  ├── mesh
│  │  │  ├── vnd
│  │  │  │  │ le_pair_resp.h
modules
│  ├── lib
│  │  ├── matter
│  │  │  ├── .github
│  │  │  │  ├── workflows
│  │  │  │  │  ├── examples-nrfconnect.yaml
│  │  │  │  │  │ nrfconnect-ncs.yaml
│  │  │  ├── config
│  │  │  │  ├── nrfconnect
│  │  │  │  │  ├── chip-module
│  │  │  │  │  │  │ Kconfig.features
│  │  │  ├── third_party
│  │  │  │  ├── openthread
│  │  │  │  │  │ ot-realtek
│  │  │  │  ├── pigweed
│  │  │  │  │  │ repo
samples
│  ├── bluetooth
│  │  ├── mesh
│  │  │  ├── common
│  │  │  │  │ smp_bt_auth.c
│  │  │  ├── dfu
│  │  │  │  ├── distributor
│  │  │  │  │  │ overlay-smp-bt-auth.conf
│  ├── matter
│  │  ├── common
│  │  │  ├── src
│  │  │  │  ├── bt_nus
│  │  │  │  │  ├── bt_nus_service.cpp
│  │  │  │  │  │ bt_nus_service.h
│  │  ├── lock
│  │  │  │ sample.yaml
subsys
│  ├── bluetooth
│  │  ├── mesh
│  │  │  ├── vnd
│  │  │  │  ├── Kconfig
│  │  │  │  │ le_pair_resp.c
west.yml
zephyr
│  ├── doc
│  │  ├── releases
│  │  │  │ migration-guide-4.3.rst
│  ├── include
│  │  ├── zephyr
│  │  │  ├── bluetooth
│  │  │  │  │ conn.h
│  ├── subsys
│  │  ├── bluetooth
│  │  │  ├── host
│  │  │  │  ├── Kconfig
│  │  │  │  ├── shell
│  │  │  │  │  │ bt.c
│  │  │  │  │ smp.c
│  ├── tests
│  │  ├── bluetooth
│  │  │  ├── shell
│  │  │  │  ├── audio.conf
│  │  │  │  ├── log.conf
│  │  │  │  │ prj.conf

Outputs:

Toolchain

Version:
Build docker image:

Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped; ⚠️ Quarantine

  • ◻️ Toolchain
  • ◻️ Build twister
  • ◻️ Integration tests
    • ◻️ test-sdk-audio
    • ◻️ desktop52_verification
    • ◻️ test_ble_nrf_config
    • ◻️ test-fw-nrfconnect-ble_mesh
    • ◻️ test-fw-nrfconnect-ble_samples
    • ◻️ test-fw-nrfconnect-chip
    • ◻️ test-fw-nrfconnect-nfc
    • ◻️ test-fw-nrfconnect-nrf-iot_thingy91
    • ◻️ test-sdk-find-my
    • ◻️ test-low-level
    • ◻️ test-sdk-dfu
Disabled integration tests
    • test-fw-nrfconnect-nrf_lrcs_positioning
    • test-fw-nrfconnect-apps
    • test-fw-nrfconnect-fem
    • test-fw-nrfconnect-nrf-iot_libmodem-nrf
    • test-fw-nrfconnect-nrf-iot_lwm2m
    • test-fw-nrfconnect-nrf-iot_samples
    • test-fw-nrfconnect-nrf-iot_zephyr_lwm2m
    • test-fw-nrfconnect-nrf_crypto
    • test-fw-nrfconnect-ps-main
    • test-fw-nrfconnect-rpc
    • test-fw-nrfconnect-rs
    • test-fw-nrfconnect-tfm
    • test-fw-nrfconnect-thread-main
    • test-sdk-mcuboot
    • test-sdk-wifi
    • test-secdom-samples-public

Note: This message is automatically posted and updated by the CI

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

Copy link
Contributor

@PavelVPV PavelVPV left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think smp_bt_auth.c for sure should not use the deprecated API and should only be compiled with CONFIG_BT_APP_PASSKEY.

But also I think that since the LE Pairing Responder model is experimental, it is OK to change it is behavior and API without deprecation period. But we need to mention this change in the release notes.

Also, remember to update documentation of the model: https://github.com/nrfconnect/sdk-nrf/blob/main/doc/nrf/libraries/bluetooth/mesh/vnd/le_pair_resp.rst.

@m-alperen-sener m-alperen-sener force-pushed the deprace_bt_fixed_appkey branch from 2999999 to 0d6a557 Compare November 5, 2025 15:56
@m-alperen-sener m-alperen-sener requested review from a team as code owners November 5, 2025 15:56
@NordicBuilder NordicBuilder added doc-required PR must not be merged without tech writer approval. and removed changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. labels Nov 5, 2025
@NordicBuilder NordicBuilder requested review from a team November 5, 2025 15:56
Copy link
Contributor Author

@m-alperen-sener m-alperen-sener left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated the documentation and added release notes for DFU distributer sample and LE Pair Responder model.

Remove all dependency on deprecated FIXED_PASSKEY, solely it depends on APP_PASSKEY now.

Removed immediate invalidation of passkey.

Update the Documentation diagram.

added commit to update matter door lock sample.

Copy link
Contributor

@ArekBalysNordic ArekBalysNordic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some changes are required in the Matter Lock sample.

@m-alperen-sener m-alperen-sener force-pushed the deprace_bt_fixed_appkey branch from 0d6a557 to d30f085 Compare November 6, 2025 08:49
This function can be called from callbacks :c:member:`bt_conn_auth_info_cb.pairing_complete` and :c:member:`bt_conn_auth_info_cb.pairing_failed`.
See the :file:`samples/bluetooth/mesh/common/smp_bt_auth.c` file for the reference.
This model requires an application to only enable the display capability for the LE pairing by setting the :c:member:`bt_conn_auth_cb.pairing_display` callback. The application must also set the :c:member:`bt_conn_auth_cb.app_passkey` callback to use the passkey generated by LE Pairing Responder model.
After every pairing request, the application must invalidate the previously used passkey by calling the :c:func:`bt_mesh_le_pair_resp_passkey_invalidate` function or calling :c:func:`bt_mesh_le_pair_resp_passkey_set` with :ref:`BT_PASSKEY_RAND` value.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
After every pairing request, the application must invalidate the previously used passkey by calling the :c:func:`bt_mesh_le_pair_resp_passkey_invalidate` function or calling :c:func:`bt_mesh_le_pair_resp_passkey_set` with :ref:`BT_PASSKEY_RAND` value.
After every pairing request, the application must invalidate the previously used passkey by calling the :c:func:`bt_mesh_le_pair_resp_passkey_invalidate` function or calling :c:func:`bt_mesh_le_pair_resp_passkey_set` with the ``BT_PASSKEY_RAND`` value.

Any specific reason for using ref for a value?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps it should be :c:macro:BT_PASSKEY_RAND?

Copy link
Contributor Author

@m-alperen-sener m-alperen-sener Nov 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not able to check this locally, does :c:macro: works with zephyr defined ones? I mean can doc pick up from zephyr?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice, we can do that then 👍

@m-alperen-sener m-alperen-sener force-pushed the deprace_bt_fixed_appkey branch from d30f085 to 27124bd Compare November 6, 2025 13:49
@alxelax
Copy link
Contributor

alxelax commented Nov 7, 2025

Hi @m-alperen-sener, before merging could you check these things to be sure these changes still work:

  1. mesh le pairing system test (https://projecttools.nordicsemi.no/bitbucket/projects/NCS-TEST/repos/test-sdk-mesh/browse/tests/mesh/samples/le_pairing)
  2. nRF Mesh DFU mobile app manages with pairing (IOS)
  3. Device Manager mobile app manages with pairing (IOS)

mobile app is possible to check with mesh dfu distributor sample

Comment on lines 94 to 95
* The :kconfig:option:`CONFIG_BT_FIXED_PASSKEY` kconfig option has been deprecated, replace it with the :kconfig:option:`CONFIG_BT_APP_PASSKEY` kconfig option.
Now, if you want to use a fixed passkey for the Matter Lock NUS service, register the ``app_passkey`` callback in the ``bt_conn_auth_cb`` structure.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* The :kconfig:option:`CONFIG_BT_FIXED_PASSKEY` kconfig option has been deprecated, replace it with the :kconfig:option:`CONFIG_BT_APP_PASSKEY` kconfig option.
Now, if you want to use a fixed passkey for the Matter Lock NUS service, register the ``app_passkey`` callback in the ``bt_conn_auth_cb`` structure.
* The :kconfig:option:`CONFIG_BT_FIXED_PASSKEY` Kconfig option has been deprecated, replace it with the :kconfig:option:`CONFIG_BT_APP_PASSKEY` Kconfig option.
Now, if you want to use a fixed passkey for the Matter Lock NUS service, register the :c:member:`bt_conn_auth_cb.app_passkey` callback in the :c:struct:`bt_conn_auth_cb` structure.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@m-alperen-sener could you please add these changes to my PR, or add a new one with the changes?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@@ -166,6 +166,10 @@ Bluetooth Mesh
* Deprecated the :kconfig:option:`CONFIG_BT_MESH_NLC_PERF_CONF` and :kconfig:option:`CONFIG_BT_MESH_NLC_PERF_DEFAULT` Kconfig options.
Existing configurations continue to work but you should migrate to individual profile options.

* Update the LE Pairing Responder model:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Update the LE Pairing Responder model:
* Updated the LE Pairing Responder model:

@m-alperen-sener m-alperen-sener force-pushed the deprace_bt_fixed_appkey branch from bfe6ea8 to 215f1ea Compare November 7, 2025 13:29
Copy link
Contributor Author

@m-alperen-sener m-alperen-sener left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DOC fix
Rebased on sdk-nrf main

@m-alperen-sener
Copy link
Contributor Author

Hi @m-alperen-sener, before merging could you check these things to be sure these changes still work:

  1. mesh le pairing system test (https://projecttools.nordicsemi.no/bitbucket/projects/NCS-TEST/repos/test-sdk-mesh/browse/tests/mesh/samples/le_pairing)
  2. nRF Mesh DFU mobile app manages with pairing (IOS)
  3. Device Manager mobile app manages with pairing (IOS)

mobile app is possible to check with mesh dfu distributor sample

Tried the IOS app; it triggers pairing succesfully with le pair responder. And SMP is functional.

@@ -43,11 +43,24 @@ void bt_mesh_le_pair_resp_passkey_invalidate(void);
* By default, passkeys will be randomly generated on every new request. This function allows to use
* pre-defined passkey instead.
*
* @params passkey Passkey to use for the pairing, or @ref BT_PASSKEY_INVALID to use randomly
* @params passkey Passkey to use for the pairing, or @ref BT_PASSKEY_RAND to use randomly
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The doc build error is because of reference to this macro. The macro is defined in the Zephyr PR. This will work only after the Zephyr PR - https://github.com/nrfconnect/sdk-zephyr/pull/3466/files#diff-4538e90f4e61dd34802aa1c0a5382dc89d4df6032ec6a3dbbf4eef746ebdd488 is merged.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good to know, then I can request merge for zephyr PR in spite of error.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have removed @ref completely

@m-alperen-sener
Copy link
Contributor Author

Updated the image to fix doc fails, rebased to fix downstream failing tests.

@m-alperen-sener m-alperen-sener force-pushed the deprace_bt_fixed_appkey branch 4 times, most recently from 12fca63 to 0d56114 Compare November 13, 2025 13:26
@m-alperen-sener m-alperen-sener force-pushed the deprace_bt_fixed_appkey branch 2 times, most recently from 8308681 to 8ecddc4 Compare November 19, 2025 12:05
@m-alperen-sener m-alperen-sener force-pushed the deprace_bt_fixed_appkey branch 3 times, most recently from 810b80f to 1c0d944 Compare November 20, 2025 15:28
@@ -32,22 +32,35 @@ extern "C" {
_bt_mesh_le_pair_resp_op, NULL, NULL, \
&_bt_mesh_le_pair_resp_cb)

/* @brief Invalidate previously used passkey.
/** @brief Invalidate previously used passkey.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is wrong, the top line of a multiline comment should be empty e.g. /** then the text begins on the second line, will allow as this is not adding it just changing the indent but take note for future

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that was request from Carles I am confused.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://www.doxygen.nl/manual/docblocks.html

It sound like @brief is allowed to be in the first line, if it is a base text it should start on the second line. I have check other documentation and it is aligned with that.

m-alperen-sener and others added 4 commits November 21, 2025 12:30
Manifest update to depracate and replace BT_FIXED_PADDKEY

Signed-off-by: alperen sener <alperen.sener@nordicsemi.no>
BT_FIXED_PASSKEY is depracated so wee need to aling the le pair
responder model with the new Kconfig BT_APP_PASSKEY usage.

Adding bt_mesh_le_pair_resp_passkey_get to be able to retreive
the passkey set randomly or by app.

Signed-off-by: alperen sener <alperen.sener@nordicsemi.no>
BT_FIXED_PASSKEY is deprecated, thus we start using BT_APP_PASSKEY

Signed-off-by: alperen sener <alperen.sener@nordicsemi.no>
CONFIG_BT_FIXED_PASSKEY has been deprecated. We switched to
CONFIG_BT_APP_PASSKEY and added a migration guide entry.

Signed-off-by: Arkadiusz Balys <arkadiusz.balys@nordicsemi.no>
@NordicBuilder NordicBuilder removed the DNM label Nov 21, 2025
@rlubos rlubos merged commit 3bbf571 into nrfconnect:main Nov 21, 2025
20 of 21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc-required PR must not be merged without tech writer approval. manifest manifest-matter manifest-zephyr

Projects

None yet

Development

Successfully merging this pull request may close these issues.