Page MenuHomeFreeBSD

linuxulator: map IFF_LOWER_UP through NETLINK_ROUTE for Linux apps
ClosedPublic

Authored by dteske on Aug 10 2026, 10:25 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Sep 14, 9:50 PM
Unknown Object (File)
Fri, Sep 11, 2:23 AM
Unknown Object (File)
Thu, Sep 10, 8:50 PM
Unknown Object (File)
Thu, Sep 10, 8:26 PM
Unknown Object (File)
Tue, Sep 8, 3:55 AM
Unknown Object (File)
Sun, Sep 6, 3:54 PM
Unknown Object (File)
Sun, Sep 6, 6:22 AM
Unknown Object (File)
Sun, Sep 6, 3:03 AM
Subscribers

Details

Summary

rtnl_if_flags_to_linux() translated the usual IFF_* bits but dropped
FreeBSD's IFF_LOWER_UP (IFF_NETLINK_1). Chromium's AddressTrackerLinux
only treats a link as online when ifi_flags has UP|LOWER_UP|RUNNING; with
LOWER_UP missing, online_links stays empty, ConnectionType is
CONNECTION_NONE, and navigator.onLine is false even though TCP/HTTPS
work. Linux Chromium under the Linuxulator (e.g. www/linux-brave) then
shows a spurious Offline UI; sites that ignore navigator.onLine do not.
Native www/chromium is on a different notifier path.

Map IFF_LOWER_UP to Linux's IFF_LOWER_UP (1<<16) and define
LINUX_IFF_LOWER_UP alongside the existing LINUX_IFF_* constants.

PR: 297424

Test Plan
  • litmus (NETLINK_ROUTE + Chromium heuristic) before: OFFLINE
  • after rebuild+reload linux_common: LOWER_UP present, ONLINE
  • linux-brave: navigator.onLine true; Netflix Offline banner gone

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 75510
Build 72393: arc lint + arc unit

Event Timeline

sys/compat/linux/linux_netlink.c
346

do we need this comment? IFF_LOWER_UP -> LINUX_IFF_LOWER_UP seems sensible on its own.

This revision is now accepted and ready to land.Aug 11 2026, 5:14 PM