Skip to content

luci-app-bird-babel: add new application - #9237

Draft
robertfoss wants to merge 1 commit into
openwrt:masterfrom
robertfoss:luci-app-bird-babel
Draft

robertfoss wants to merge 1 commit into
openwrt:masterfrom
robertfoss:luci-app-bird-babel

Conversation

@robertfoss

@robertfoss robertfoss commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Pull request details

Depends on: openwrt/packages#31257 (bird-babel-collector)

Description

New status page for the Babel protocol of BIRD (Status → Babel), with up to
24 hours of history from bird-babel-collector.

  • Cards: neighbours, current IPv4/IPv6 default route, route changes and
    neighbour losses in the last 24 h
  • Graph: the router's Babel interfaces, mesh APs and neighbours, coloured
    by link cost. A router hearing its own hellos (layer 2 loop) is shown as
    such, with how to fix it.
  • Neighbours: name, model, addresses, link cost, RTT, hello reception,
    routes and 99th percentiles
  • Charts: default route timeline, link cost (log scale) and RTT over up to 24 h. Drag across a chart (mouse or touch) to zoom all of them, click to
    zoom out.
  • Events and interfaces tables
  • ACL: read-only, the bird-babel ubus object and the bird-babel and
    system UCI configs

Screenshot

luci-app-bird-babel-screenshot

Maintainer (preferred)

@robertfoss


Tested on

OpenWrt version: OpenWrt SNAPSHOT r0-8ea847f (GL.iNet GL-BE9300, qualcommbe/ipq53xx)
LuCI version: LuCI Master (26.312.47156~4a3d16e)
Web browser(s): Firefox 158.0.1, Chrome 157.0.8103.50


Dependencies

openwrt/packages#31257

LLM use

Written with Claude as a coding assistant, for the code, commit message and this description.
I have reviewed all of it and run it on the device above.

Pings

cc @Noki @PolynomialDivision @pktpls

@openwrt openwrt Bot added the add package Introduces a new package Makefile build script label Nov 11, 2026
@robertfoss
robertfoss marked this pull request as draft November 11, 2026 19:45
@robertfoss
robertfoss force-pushed the luci-app-bird-babel branch 10 times, most recently from ca170fe to 46fbdec Compare November 12, 2026 13:01
@openwrt openwrt Bot added the not following guidelines Pull request does not follow formatting guidelines label Nov 13, 2026
Add a status page for the Babel protocol of BIRD, with up to 24 hours
of history from the bird-babel-collector package.

- Cards: neighbour count, current IPv4 and IPv6 default route and how
  long it has been selected, default route changes and neighbour losses
  in the last 24 hours
- Gateway route: the hops from this router to the node that originates
  the selected default route, as traced by the collector; until a trace
  of the current route is done, the next hop and the gateway from BIRD
  with the routers in between as ⋯, which tells when the trace runs.
  IPv6 is shown as well when its route differs from IPv4, or alone
  without IPv4.
- Graph: this router, its Babel interfaces, the mesh APs bridging them
  (from optional hints) and the neighbours heard on each, coloured by
  link cost. Networks joined at layer 2 outside the router, which makes
  it hear its own hellos, share a loop node that explains the problem
  and how to resolve it.
- Neighbours: name (marked when it is the last known one), vendor and
  model, addresses, link cost, RTT, hello reception, routes, 99th
  percentiles and a cost sparkline
- Default route timeline (selected, standby, none, not present, no data
  collected) of IPv4, or of IPv6 when there is only an IPv6 default
  route, and link cost and RTT charts with min, average, P99, max
  and last, over the history the collector has (at most 24 hours, no
  range buttons). Link cost is on a log scale, squashed above 512
  (dashed line) so a few very bad links leave room for the usable ones.
  Samples without usable neighbours are drawn as dots.
- Dragging across any of the time charts, with mouse, finger or pen,
  zooms all of them into that span, loaded at full resolution; a click
  or tap zooms back out. Vertical swipes still scroll the page.
- Event log and Babel interfaces table
- Live data every 5 s and history every 30 s, updating only what
  changed; the history refresh only asks for the data since the last
  one, with a full refresh (and new percentiles) every 5 minutes. When
  the router turns down a history query (it rate limits calls without a
  login) the page says so and retries. Times follow the configured clock
  hour cycle.
- ACL limited to reading the bird-babel ubus object (status, history,
  events) and the system UCI config

README.md explains how the view is built and why, and how to test and
translate it, for further development.

Signed-off-by: Robert Foss <rfoss@kernel.org>
@openwrt openwrt Bot removed the not following guidelines Pull request does not follow formatting guidelines label Nov 13, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

add package Introduces a new package Makefile build script

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants