diff --git a/openthread_border_router/CHANGELOG.md b/openthread_border_router/CHANGELOG.md index 4c5090a1c..a454e2f0f 100644 --- a/openthread_border_router/CHANGELOG.md +++ b/openthread_border_router/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 3.2.0 + +- Bump to OTBR POSIX version 337711e7 (tag v2026.08.0) + - Improved startup robustness: multicast router setup is retried on transient errors + - Various fixes and stability improvements in OpenThread +- Bump beta to OTBR POSIX version fd872ab9 (tag v2026.09.0) + - Thread 1.4 Credentials Sharing (ePSKc): share Thread network credentials with other devices directly from the Web UI + - Web UI: QR codes are now generated locally instead of using a remote service + - Upstream DNS resolution for Thread devices is now fixed in OpenThread itself (the workaround from 3.1.2 remains in place for stable) + - Various fixes and stability improvements in OpenThread and OTBR + - On OpenThread reset (e.g. when forming or joining a network through the OpenThread Web UI), the app runtime configuration (TREL, NAT64, mDNS, TX power) is now re-applied cleanly on every start + ## 3.1.2 - Fix upstream DNS/DNS64 resolution for Thread devices by not binding the upstream DNS resolver socket to the infra interface (fixes #3947, regression since 2.12.0) diff --git a/openthread_border_router/Dockerfile b/openthread_border_router/Dockerfile index d41777e9c..66740c678 100644 --- a/openthread_border_router/Dockerfile +++ b/openthread_border_router/Dockerfile @@ -81,6 +81,7 @@ RUN \ -DOT_THREAD_VERSION=1.4 \ -DOT_PROJECT_CONFIG="/usr/src/ot-br-posix/third_party/openthread/repo/openthread-core-ha-config-posix.h" \ -DOT_RCP_RESTORATION_MAX_COUNT=2 \ + -DOTBR_PLATFORM_RESET_EXIT=ON \ && ninja \ && ninja install diff --git a/openthread_border_router/build.yaml b/openthread_border_router/build.yaml index c51ded6a4..3f51fdbcc 100644 --- a/openthread_border_router/build.yaml +++ b/openthread_border_router/build.yaml @@ -3,7 +3,7 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base-debian:trixie amd64: ghcr.io/home-assistant/amd64-base-debian:trixie args: - OTBR_BETA_VERSION: d83ddc62ecbb3d8a766ce3f1c58d6362d793d70b - OTBR_VERSION: ec16e396382b4559e70a2c6fdeecb7d596a5e915 + OTBR_BETA_VERSION: fd872ab9d4afdfaf034b3b1154fed08b8b6d1e43 + OTBR_VERSION: 337711e7038d0b9c8fb46a1ce888ce7f9c4c0c35 UNIVERSAL_SILABS_FLASHER_VERSION: 0.1.2 SERIALX_VERSION: 1.8.0 diff --git a/openthread_border_router/config.yaml b/openthread_border_router/config.yaml index 3bf4813e9..5c3bd647f 100644 --- a/openthread_border_router/config.yaml +++ b/openthread_border_router/config.yaml @@ -1,5 +1,5 @@ --- -version: 3.1.2 +version: 3.2.0 breaking_versions: [3.0.0] slug: openthread_border_router name: OpenThread Border Router diff --git a/openthread_border_router/openthread-core-ha-config-posix.h b/openthread_border_router/openthread-core-ha-config-posix.h index 2fd96b1f8..4e676f0be 100644 --- a/openthread_border_router/openthread-core-ha-config-posix.h +++ b/openthread_border_router/openthread-core-ha-config-posix.h @@ -94,6 +94,12 @@ * queries out the physical interface, breaking upstream DNS/DNS64 for * Thread devices. Disable the bind so queries follow the host routing * table (see home-assistant/addons#3947). + * + * OpenThread 82eb4863a (openthread/openthread#13545, included in OTBR + * v2026.09.0 and later) fixes this upstream: resolv.conf nameservers are no + * longer bound to the infra interface, and this option only governs + * RDNSS-discovered servers. Keep the define until the stable build has + * picked up that fix, then drop it. */ #define OPENTHREAD_POSIX_CONFIG_UPSTREAM_DNS_BIND_TO_INFRA_NETIF 0 diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-configure/dependencies.d/otbr-agent b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-configure/dependencies.d/otbr-agent deleted file mode 100644 index e69de29bb..000000000 diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-configure/type b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-configure/type deleted file mode 100644 index bdd22a185..000000000 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-configure/type +++ /dev/null @@ -1 +0,0 @@ -oneshot diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-configure/up b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-configure/up deleted file mode 100755 index 073717792..000000000 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-configure/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/scripts/otbr-agent-configure.sh diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-rest-discovery/dependencies.d/otbr-agent-configure b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent-rest-discovery/dependencies.d/otbr-agent-configure deleted file mode 100644 index e69de29bb..000000000 diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/data/check b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/data/check index 8722f197b..d9aaaeb9e 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/data/check +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/data/check @@ -7,3 +7,9 @@ test -S /run/openthread-wpan0.sock # Check REST API port is open mapfile -t < /tmp/otbr-agent-rest-api nc -z "${MAPFILE[@]}" + +# Apply runtime configuration (TREL, NAT64, mDNS, TX power) before reporting +# the service as ready. Running this here (rather than as a oneshot) ensures the +# configuration is re-applied whenever s6 restarts otbr-agent, e.g. after a +# platform reset. +/etc/s6-overlay/scripts/otbr-agent-configure.sh diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish index 5c1039bee..2aea76f0d 100755 --- a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish +++ b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-agent/finish @@ -13,6 +13,8 @@ fi if test "$e" -ne 0; then bashio::log.warning "otbr-agent exited with code $e (by signal $2)." else + # A clean exit also happens on platform reset (e.g. reset/factoryreset), + # in which case s6 restarts the service. bashio::log.info "otbr-agent exited with code $e (by signal $2)." fi diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/dependencies.d/otbr-agent-configure b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/otbr-web/dependencies.d/otbr-agent-configure deleted file mode 100644 index e69de29bb..000000000 diff --git a/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/otbr-agent-configure b/openthread_border_router/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/otbr-agent-configure deleted file mode 100644 index e69de29bb..000000000