Skip to content

openthread-br: update to the 2026.09.0 release - #60

Open
LorbusChris wants to merge 2 commits into
project-chip:mainfrom
LorbusChris:openthread-br-2026.09.0
Open

openthread-br: update to the 2026.09.0 release#60
LorbusChris wants to merge 2 commits into
project-chip:mainfrom
LorbusChris:openthread-br-2026.09.0

Conversation

@LorbusChris

Copy link
Copy Markdown
Contributor

Update openthread-br from the 2026-05-22 snapshot to the v2026.09.0 release, and switch
the firewall to the new in-process nftables backend. Mirrors openwrt/packages#30427 for
this copy of the packaging (without the extra patch additions from #53 — the carried
patch set stays exactly what main has, refreshed on the new base).

Update commit:

  • The openthread-br-luci package is gone: upstream removed the in-tree LuCI app in this
    release ([openwrt] remove the in-tree LuCI app (proposed for openwrt/luci) openthread/ot-br-posix#3326); a maintained replacement is proposed as a
    proper LuCI app in luci-app-openthread: add new application openwrt/luci#8871 / luci-proto-openthread: add protocol support for the border router openwrt/luci#8942.
  • The openthread-br-avahi variant is gone too: this release removed the avahi mDNS
    backend outright (OTBR_MDNS=avahi is now a configure error; only mDNSResponder and
    the OT-internal mDNS remain), so the variant machinery goes and the package always
    builds against mDNSResponder.
  • Carried patches refreshed: 020 regenerates around the reworked options.cmake (its
    context line is now the OTBR_NFTABLES conditional), the ubus series 100–110
    regenerates on top of the memory-safety fixes merged upstream out of it
    ([ubus] fix two memory-safety issues openthread/ot-br-posix#3487); 030/040/050 apply unchanged. The full sequence applies
    without fuzz.
  • -DOTBR_SRP_ADVERTISING_PROXY=ON is dropped: since this release the OT core
    advertising proxy defaults on whenever an mDNS backend is selected, and forcing the
    otbr-side proxy alongside it is a CMake FATAL_ERROR. The advertising proxy function
    moves to the OT core implementation, which is the upstream default.
  • The new vendor/product-name requirement is already met here: OTBR_VENDOR_NAME is
    compiled in and the init script has always passed --model-name from board.json.

nftables commit:

  • The package has never had a Thread firewall (OT_FIREWALL produces ipset/ip6tables
    rules, disabled pending nftables support openthread/ot-br-posix#1675). This release delivers that
    issue: OTBR_NFTABLES=ON has otbr-agent install the Thread ingress filter and NAT44
    masquerade in-process, through nftables in an isolated table.
  • Adds kmod-nft-core/kmod-nft-nat (runtime nf_tables support — with the backend
    compiled in, a failed firewall install aborts the agent by design) plus
    libmnl/libnftnl.
  • Ships the /usr/share/otbr/nftables-backend marker the build writes (a debugging
    aid; nothing on the target reads it today).

PKG_MIRROR_HASH generated end-to-end by the git-with-metadata download in the OpenWrt
CI SDK image (x86_64 snapshot) and hash-check verified; compile test in the same SDK.

Written with AI assistance (Assisted-by trailers); I've reviewed and understand all of
it and will answer questions myself.

Move the pin from the 2026-05-22 snapshot to the v2026.09.0 release.

The openthread-br-luci package is gone: upstream removed the in-tree
LuCI app in this release (openthread/ot-br-posix#3326), so it cannot be
built from this source any more. A maintained replacement is proposed
as a proper LuCI app in openwrt/luci#8871.

The carried patches are refreshed on the new base: 020 regenerates
around the reworked options.cmake (the OT_FIREWALL line it used as
context is now the OTBR_NFTABLES conditional), and the ubus series
100-110 regenerates on top of the memory-safety fixes that were merged
upstream from it (openthread/ot-br-posix#3487). 030, 040 and 050 apply
unchanged; the whole sequence applies without fuzz.

The openthread-br-avahi variant is gone too: this release removed the
avahi mDNS backend outright (OTBR_MDNS=avahi is a configure error; only
mDNSResponder and the OT-internal mDNS remain), so the package loses
its variant machinery and always builds against mDNSResponder.

-DOTBR_SRP_ADVERTISING_PROXY=ON is dropped: since this release the OT
core advertising proxy defaults on whenever an mDNS backend is selected,
and forcing the otbr-side proxy on alongside it is a CMake FATAL_ERROR.
The advertising proxy function moves to the OT core implementation,
which is the upstream default.

The vendor/product name requirement this release introduces is already
met: OTBR_VENDOR_NAME is compiled in, and the init script has always
passed --model-name from board.json.

Assisted-by: AI
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
Firewall integration has been disabled here pending
openthread/ot-br-posix#1675; the 2026.09.0 release delivers it as an
in-process nftables backend. Enable it: otbr-agent now installs the
Thread ingress filter and the NAT44 masquerade itself, in an isolated
nftables table.

Add kmod-nft-core and kmod-nft-nat for the runtime nf_tables support
alongside the userspace libmnl/libnftnl: with the backend compiled in,
a failed firewall install aborts the agent rather than silently
forwarding unfiltered traffic. Also ship the marker file the build
writes, recording which backend owns the rules.

Mirrors openwrt/packages#30427.

Assisted-by: AI
Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
@LorbusChris
LorbusChris force-pushed the openthread-br-2026.09.0 branch from 7098e89 to 1166d75 Compare September 2, 2026 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant