Skip to content

v0.5.0

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Jul 19:32
dba51e3

Added

  • Topology clients labelled by hostname/IP, not MAC (#35). The topology view
    showed each associated client as a raw MAC, which is poor UX. GET /topology
    now enriches clients with their DHCP-assigned ip and hostname, resolved on
    the controller from dnsmasq's lease file (/tmp/dhcp.leases) — a member node
    is a bridged dumb AP and holds no leases, so resolution happens where the merged
    graph is served. The view labels a client by hostname, falling back to IP, then
    the MAC when neither resolved; the MAC and IP are kept on the node's data. A
    client with no lease (static, self-addressed, or transient) renders by MAC as
    before.
  • Any ethernet jack just works on a non-controller node (#42). A satellite's
    wan jack was a dead routed wan: only its lan jack(s) carried clients or extended
    the network, so plugging a computer — or another node — into the wan jack did
    nothing. On a non-controller node the network posture now folds every
    ethernet jack (incl. the wan jack, network.wan.device) into br-lan as a plain
    bridge relay port and stands the routed wan down, so any device works on any
    port with zero configuration. A controller keeps its wan jack as the routed
    internet uplink.
  • Dual-band / multi-band client AP (#36). A claimed home previously
    broadcast its client AP on a single radio (typically 5 GHz), so 2.4 GHz-only
    devices had no AP to join. ApplyProfile now authors the client AP across
    multiple bands: the primary omm_ap stays on the radio/band-resolved
    radio, and each band in the new ap_bands profile field ("2g"/"5g"/"6g")
    resolves to that node's matching radio, authored as omm_ap_<band> (e.g.
    omm_ap_2g, coexisting with omm_mesh on the same 2.4 GHz radio/channel).
    Empty ap_bands defaults to also broadcasting on 2.4 GHz, so every home gets a
    dual-band AP with no configuration; set a single band (e.g. ["5g"]) to opt
    out. Bands absent on a node are skipped (not fatal), and narrowing ap_bands
    prunes the now-stale omm_ap_<band> sections on re-apply.
  • Xiaomi AX3600 as a build/deploy target. build-devices.sh gains an
    ax3600 label and deploy.sh recognises it. The board is a Qualcomm IPQ8071A
    (qualcommax/ipq807x, Cortex-A53) — the same aarch64_cortex-a53 ISA group as
    the ZB8103AX, so the release feed's arm64 package already covered it; this just
    makes the local dev tooling first-class for it. Because two boards now share
    one ISA, deploy.sh disambiguates by board_name (xiaomi,ax3600) before
    falling back to uname -m. No profile changes were needed: the mesh radio is
    auto-selected by band, which picks the AX3600's 2.4 GHz radio (radio2).

Changed

  • Backhaul model: wired is primary, the mesh is a carrier-loss backup. The
    short-lived "batman-always-on, per-port enslavement" model (which routed a wired
    node over the wireless mesh and broke ethernet clients in a mixed
    wired+wireless bridge) is replaced by the failover model: every ethernet port is
    a plain br-lan relay, and the 802.11s mesh + batman-adv is authored as a
    standby that the daemon's carrier-toggle failover brings up only when the
    wired uplink loses carrier (and tears back down when the wire returns) — so the
    fast wire is always preferred and wired + mesh never bridge-loop. The uplink port
    to watch is auto-detected (the bridge port through which the node reaches its
    gateway, so any jack works) or set via uplink_port. Wired ports are enslaved to
    batman only via an explicit batman_ports; batman still forwards the mesh
    loop-free multi-hop when it activates. Restores internal/backhaul (the switch
    loop) and removes the per-port beacon classifier (PortScan / SniffOMMBeacon /
    Classify).
  • Network posture management now defaults ON (manage_network, opt-out).
    Making a wan jack usable as a client/backhaul port physically requires standing
    down its routed role first — a netdev cannot be both network.wan's device and
    a br-lan member, and a satellite that keeps its own DHCP/gateway becomes a
    rogue DHCP server on the home segment. That bridged dumb-AP posture used to sit
    behind manage_network=0, so #42 could not be delivered without it. The flag
    now defaults to 1: a non-controller stands down its routed wan and every
    ethernet jack joins the home L2, while a controller keeps the stock routed-wan
    gateway (never disrupted). Set manage_network=0 to opt out entirely on a
    device you hand-wire and do not want meshd to reconfigure.
  • Mesh-node network posture now bridges into the home (single gateway). A
    claimed satellite (manage_network=1) previously only stood down its
    authoritative DHCP, leaving its own routed/NAT'd wan up — so its bridged
    802.11s mesh was an island and mesh traffic could not reach the home WAN, which
    egresses only through the controller's gateway over the mesh. The Mesh-node
    posture now authors the same bridged shape as Guest: it folds every ethernet
    jack (incl. the wan jack) into br-lan as a plain relay, lan becomes a DHCP
    client, the routed wan/wan6 are disabled, and authoritative DHCP is stood
    down, so the node is a pure L2 bridge into the home and its default route points
    at the controller. The 802.11s mesh stays a carrier-loss backhaul standby (see
    the backhaul-model change above), so wired + mesh never bridge-loop. Verified
    end-to-end on hardware: reset → wired auto-onboard → mesh-node, pulling the real
    home profile.