Skip to content

Conversation

@rlubos
Copy link
Contributor

@rlubos rlubos commented Dec 18, 2025

Fixes needed to be able to use AWS FOTA library in multi-interface environment.

  • AWS FOTA should operate on the same network interface as the regular MQTT connection for AWS IoT lib.
  • Forcing native TLS in Downloader library should also work when socket dispatcher is enabled.
  • Forcing native TLS in MQTT should also work if socket dispatcher is enabled (needs Zephyr changes).

@rlubos rlubos requested review from a team as code owners December 18, 2025 13:08
@NordicBuilder NordicBuilder added manifest changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. labels Dec 18, 2025
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Dec 18, 2025

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

Name Old Revision New Revision Diff
zephyr nrfconnect/sdk-zephyr@365da00 nrfconnect/sdk-zephyr#3656 nrfconnect/sdk-zephyr#3656/files

DNM label due to: 1 project with PR revision

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

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Dec 18, 2025

CI Information

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

Inputs:

Sources:

sdk-nrf: PR head: 912444875dfd6873b8cf6453c1967cdc8010a95d
zephyr: PR head: eb74396fbf2d22f16cc2e6d731d15a5c1c8e904d

more details

sdk-nrf:

PR head: 912444875dfd6873b8cf6453c1967cdc8010a95d
merge base: 69b449deef77c1c56510a8caada06b3e374e6668
target head (main): 69b449deef77c1c56510a8caada06b3e374e6668
Diff

zephyr:

PR head: eb74396fbf2d22f16cc2e6d731d15a5c1c8e904d
merge base: 46ce70cb5f92d3c4f390f6f6677ed46c612fd2fa
target head (main): a1d9a8db0ea4bbee2e69feec1140e6ce20e62f5e
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 (12)
include
│  ├── net
│  │  ├── aws_iot.h
│  │  ├── downloader.h
│  │  │ fota_download.h
subsys
│  ├── net
│  │  ├── lib
│  │  │  ├── aws_fota
│  │  │  │  ├── src
│  │  │  │  │  │ aws_fota.c
│  │  │  ├── downloader
│  │  │  │  ├── src
│  │  │  │  │  ├── dl_socket.c
│  │  │  │  │  ├── transports
│  │  │  │  │  │  ├── coap.c
│  │  │  │  │  │  │ http.c
│  │  │  ├── fota_download
│  │  │  │  ├── src
│  │  │  │  │  │ fota_download.c
west.yml
zephyr
│  ├── doc
│  │  ├── connectivity
│  │  │  ├── networking
│  │  │  │  ├── api
│  │  │  │  │  │ mqtt.rst
│  ├── include
│  │  ├── zephyr
│  │  │  ├── net
│  │  │  │  │ mqtt.h
│  ├── subsys
│  │  ├── net
│  │  │  ├── lib
│  │  │  │  ├── mqtt
│  │  │  │  │  │ mqtt_transport_socket_tls.c

Outputs:

Toolchain

Version: 400c6cb4ec
Build docker image: docker-dtr.nordicsemi.no/sw-production/ncs-build:400c6cb4ec_5ea73affbf

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

  • ◻️ Toolchain - Skipped: existing toolchain is used
  • ✅ Build twister
    • sdk-nrf test count: 782
    • sdk-zephyr test count: 707
  • ✅ Integration tests
    • ✅ test-fw-nrfconnect-chip
    • ✅ test-fw-nrfconnect-nfc
    • ✅ test-fw-nrfconnect-nrf-iot_cloud
    • ✅ test-fw-nrfconnect-nrf-iot_zephyr_lwm2m
    • ✅ test-fw-nrfconnect-nrf-iot_samples
    • ✅ test-fw-nrfconnect-nrf-iot_lwm2m
    • ✅ test-fw-nrfconnect-nrf-iot_thingy91
    • ✅ test-fw-nrfconnect-rs
    • ✅ test-fw-nrfconnect-fem
    • ✅ test-fw-nrfconnect-thread-main
    • ✅ test-sdk-find-my
    • ✅ test-fw-nrfconnect-nrf_lrcs_mosh
    • ✅ test-sdk-mcuboot
    • ✅ test-sdk-dfu
    • ⚠️ test-fw-nrfconnect-nrf_lrcs_mosh
    • ⚠️ test-fw-nrfconnect-nrf_lrcs_positioning
Disabled integration tests
    • desktop52_verification
    • test_ble_nrf_config
    • test-fw-nrfconnect-ble_mesh
    • test-fw-nrfconnect-ble_samples
    • test-fw-nrfconnect-nrf-iot_libmodem-nrf
    • test-fw-nrfconnect-nrf_crypto
    • test-fw-nrfconnect-ps-main
    • test-fw-nrfconnect-rpc
    • test-fw-nrfconnect-tfm
    • test-low-level
    • test-sdk-audio
    • test-sdk-wifi
    • test-secdom-samples-public

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

@rlubos rlubos force-pushed the fota-multi-interface-support branch from 298a475 to 82709df Compare December 18, 2025 13:14
@github-actions
Copy link

You can find the documentation preview for this PR here.

@GilDev
Copy link
Contributor

GilDev commented Dec 19, 2025

FOTA confirmed working on an nRF9160 running the aws_iot sample with a microchip,enc424j600 Ethernet controller.

Will test the native flags soon.

@rlubos rlubos force-pushed the fota-multi-interface-support branch from a5e450c to 0627933 Compare December 19, 2025 11:24
@GilDev
Copy link
Contributor

GilDev commented Dec 19, 2025

CONFIG_MQTT_HELPER_NATIVE_TLS confirmed working (as long as #26325 is merged).
CONFIG_FOTA_DOWNLOAD_NATIVE_TLS seems to work but I couldn’t test it all the way through as I encountered RAM usage limitations on my target.

Here’s the Discord conversation where all the debugging and testing took place.

@rlubos rlubos force-pushed the fota-multi-interface-support branch 2 times, most recently from 20dae52 to 6e40a2a Compare January 8, 2026 10:12
@rlubos
Copy link
Contributor Author

rlubos commented Jan 8, 2026

@nrfconnect/ncs-cia @nrfconnect/ncs-modem PTAL

rlubos added 6 commits January 9, 2026 16:35
Pull MQTT fix for forcing native TLS with socket dispatcher enabled.

Signed-off-by: Robert Lubos <[email protected]>
If socket dispatcher is enabled, we should use ZSOCK_TLS_NATIVE socket
option instead of modifying socket type, that way forcing native TLS
works also when there are both native and offloaded network interfaces
in the system (for example Ethernet and nRF modem).

Signed-off-by: Robert Lubos <[email protected]>
Allow the download library instance to be bound to a specific network
interface. This allows to use the library in multi-interface setup,
where for example it's needed to switch between native/offloaded network
interface.

Signed-off-by: Robert Lubos <[email protected]>
Allow to specify the interface name that the FOTA download library
should use.

Signed-off-by: Robert Lubos <[email protected]>
Ensure that the AWS FOTA library uses the same network interface for
download as it does for regular MQTT operations. This is especially
important in multi-interface scenarios, where the user may choose
specific network interface for AWS connections.

Signed-off-by: Robert Lubos <[email protected]>
Make it explicit that the interface name pointer should remain valid
throughout AWS connection lifetime.

Signed-off-by: Robert Lubos <[email protected]>
@rlubos rlubos force-pushed the fota-multi-interface-support branch from 6e40a2a to 9124448 Compare January 9, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. DNM manifest manifest-zephyr

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants