Skip to content

silabs-multiprotocol: Document otbr_firewall requirement on HAOS 18+ - #4931

Merged
agners merged 1 commit into
home-assistant:masterfrom
Kleimre:silabs-multiprotocol-haos18-firewall-note
Nov 9, 2026
Merged

agners merged 1 commit into
home-assistant:masterfrom
Kleimre:silabs-multiprotocol-haos18-firewall-note

Conversation

@Kleimre

@Kleimre Kleimre commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Proposed change

Document that on Home Assistant OS 18 and later the otbr_firewall option must stay enabled.

With otbr_firewall: false, the otbr-agent start script runs ip6tables-legacy -P FORWARD ACCEPT (a shim for HAOS 9.3 and earlier). The HAOS 18 kernel no longer provides the legacy IPv6 filter table, so the command fails with ip6tables v1.8.7 (legacy): can't initialize ip6tables table 'filter': Table does not exist, the script aborts before exec otbr-agent, and the service loops with otbr-agent exited with code 3. Thread stops working while Zigbee keeps running, and the app still reports started. The firewall-enabled path only uses the nftables-backed ip6tables and works.

Since the app image is frozen, this adds a warning to DOCS.md (under the options table) and to the 2.4.6 CHANGELOG entry instead of changing the script.

Reproduced on Home Assistant OS 18.4 (generic x86-64, kernel 6.18.58) with a Sonoff Zigbee 3.0 USB Dongle Plus V2 running Multi-PAN RCP firmware. Setting otbr_firewall: true and restarting the app restored Thread immediately.

Type of change

  • Documentation

Checklist

  • The code change is tested and works locally.
  • There is no commented out code in this PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PtV5t6nUjRWVJ3bwaLMf9r

Summary by CodeRabbit

  • Documentation
    • Added guidance for Home Assistant OS 18 and later to keep the OpenThread Border Router firewall enabled. Disabling it can stop Thread from working; re-enable it and restart the app to recover.

With otbr_firewall disabled, the otbr-agent start script runs
`ip6tables-legacy -P FORWARD ACCEPT`. Home Assistant OS 18 ships a kernel
without the legacy IPv6 filter table, so the command fails, the script
aborts before starting otbr-agent and the app loops on
"otbr-agent exited with code 3". Thread stops working while Zigbee keeps
running. The firewall-enabled path uses only nftables-backed ip6tables and
works.

The app image is frozen, so document the requirement in DOCS.md and the
CHANGELOG instead of changing the script.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PtV5t6nUjRWVJ3bwaLMf9r

@home-assistant home-assistant Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hi @Kleimre

It seems you haven't yet signed a CLA. Please do so here.

Once you do that we will be able to review and accept this pull request.

Thanks!

@home-assistant
home-assistant Bot marked this pull request as draft November 8, 2026 21:46
@home-assistant

home-assistant Bot commented Nov 8, 2026

Copy link
Copy Markdown

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@coderabbitai

coderabbitai Bot commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review.

Walkthrough

The 2.4.6 changelog and configuration documentation warn that disabling otbr_firewall on Home Assistant OS 18 and later disrupts Thread. The documentation advises keeping the option enabled and describes recovery by re-enabling it and restarting the app.

Changes: OTBR firewall documentation

Layer / File(s) Summary
Document the firewall warning
silabs-multiprotocol/CHANGELOG.md, silabs-multiprotocol/DOCS.md
The changelog and configuration docs describe the effect of disabling otbr_firewall on Home Assistant OS 18 and later. They advise keeping it enabled and document recovery steps.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other · Severity of issue fixed: Medium

Suggested reviewers: agners

Merge Risk: Minimal · up to 48e4c

The warning documents how to restore Thread. The CLA check reports a missing contributor signature.

Pre-merge checks: Passed 4

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title names the main change: documenting that otbr_firewall must stay enabled on Home Assistant OS 18 and later. The raw summary shows the CHANGELOG.md and DOCS.md edits, which match this title. T…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the main change: documenting that otbr_firewall must stay enabled on Home Assistant OS 18 and later. The raw summary shows the CHANGELOG.md and DOCS.md edits, which match this title. The title is specific and no file-list noise is present. Its wording is close to the PR objectives, but the check does not require any particular phrasing.

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d03f509e-edff-40e2-ae0f-632658fcaf57
Commits

Reviewing files that changed from the base of the PR and between 0155117 and 48e4cd6.

Files selected for processing: 2

  • silabs-multiprotocol/CHANGELOG.md
  • silabs-multiprotocol/DOCS.md

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.

@Kleimre
Kleimre marked this pull request as ready for review November 8, 2026 21:55
@puddly

puddly commented Nov 8, 2026 •

Copy link
Copy Markdown
Member

The Multiprotocol app has been deprecated for more than two years now (#3833). An active repair is currently raised in Home Assistant when it is installed and we're in the slow process of removing it entirely.

New contributions for the upkeep of the app aren't something we're expecting given its active deprecation. I strongly recommend you migrate to separate adapters for Zigbee and Thread (or use an external border router).

@agners agners left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

New contributions for the upkeep of the app aren't something we're expecting given its active deprecation. I strongly recommend you migrate to separate adapters for Zigbee and Thread (or use an external border router).

💯

That said, the warning can be also a starting point what needs fixing if anyone is forking this 😅 . LGTM, thanks!

@agners
agners merged commit 2d421c4 into home-assistant:master Nov 9, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants