Skip to content

docs: update readme#3

Merged
francoriba merged 2 commits into
mainfrom
staging
May 17, 2026
Merged

docs: update readme#3
francoriba merged 2 commits into
mainfrom
staging

Conversation

@francoriba

Copy link
Copy Markdown
Collaborator

No description provided.

Signed-off-by: Franco <franco.riba@mi.unc.edu.ar>
Signed-off-by: Franco <franco.riba@mi.unc.edu.ar>
@francoriba
francoriba merged commit d8be0aa into main May 17, 2026
6 checks passed
francoriba added a commit that referenced this pull request May 23, 2026
…er diag

Root cause from CI run 25950833509: br-lan was created by lime-config on
the second Belkin RT3200 but stayed IFF_DOWN for the whole 180 s window
that find_lan_interface waits. configure_fixed_ip then bailed out with
"No suitable network interface found for fixed IP" because eth0 is
correctly skipped as a DSA conduit and br-lan was deemed "not ready".

Net effect was that the node finished its boot subprocess with an empty
ssh_ip and conftest_mesh reported "Nodes not reachable via SSH after
180 s" -- the same failure pattern reported for openwrt_one in pair #1
and rt3200_3 in pair #3.

Changes:
- find_lan_interface now accepts br-lan as soon as /sys/class/net/br-lan
  exists (no IFF_UP gate). The bridge is nudged administratively up on
  every poll and the existing watchdog keeps the fixed IP migrated.
- _wait_br_lan_up uses the same lenient check; bumped from 30 s to 90 s.
- override_primary_mac staggers by a deterministic per-place hash
  (0..12 s) before wifi/network restart so two identical Belkin RT3200
  do not collide on the mesh radio (rt3200_2=12 s, rt3200_3=7 s).
- _start_ip_watchdog forces ip link set br-lan up on every iteration so
  the fixed IP follows br-lan even when netifd briefly leaves it DOWN.
- _dump_convergence_diagnostics tags each line with CONVDIAG[<place>] so
  the parent's tail -1 log polling cannot lose them, and persists the
  dump to /tmp/lime-debug-<place>.log on the DUT.
- conftest_mesh: call _dump_boot_log also when ok=true but ssh_ip is
  empty (previously the dump was lost in that path). Bumped
  BOOT_LOG_TAIL_CHARS 3000 -> 12000 so the full diag fits.
francoriba added a commit that referenced this pull request May 23, 2026
…aseline

The override_primary_mac chain introduced 12 commits since the working
state of run 25364365026 (May 5, commit 7da9ee7). Each fix uncovered
a new failure: MAC override broke br-lan IP, CONVDIAG broke pexpect,
DSA bridge attach broke serial buffer, watchdog one-liner re-broke
pexpect.

Restore tests/lime_helpers.py, tests/conftest_mesh.py and
tests/mesh_boot_node.py to 7da9ee7. test-firmware, test-mesh-qemu and
test-mesh on the bananapi+belkin+openwrt_one chain were all green at
that commit.

The same-model MAC collision (two Belkin RT3200) remains untested; it
needs to be addressed in lime-packages uci-defaults, not in test glue.
Pair #3 will be restored to bananapi_bpi-r4+belkin_rt3200_3 in
pi-lime-packages to avoid exercising the collision in CI.
francoriba added a commit that referenced this pull request May 23, 2026
…llision

Two Belkin RT3200s (pair #3) share the same DTS-default eth0 MAC when
booted in initramfs mode.  LibreMesh derives the mesh identity from
the primary MAC, so identical MACs produce a collision that makes the
nodes invisible to each other in batman-adv.

Add override_primary_mac() which injects a per-place unique locally-
administered MAC on eth0, re-runs lime-config, restarts wifi + network,
and sleeps 45 s for convergence.  Called from mesh_boot_node before
ensure_batman_mesh() so every mesh node gets a unique identity.
francoriba added a commit that referenced this pull request May 23, 2026
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