github TheUnboundDeveloper/AM-Reaper v3.4.3-beta-RT-BE86U
Reaper v3.4.3-beta — RT-BE86U

pre-release5 hours ago

v3.4.3 — packets dropped at the Runner on IPv6 DNS-over-TLS, radios lost on a network restart

  • A packet with more than four fragments was dropped at the Runner (field, GT-BE98). The Runner's CPU
    transmit path takes at most four page fragments per non-GSO packet (RUNNER_MAX_SG_FRAGS); the closed
    bdmf refuses the rest and the prebuilt enet driver drops the packet, logging skb->nr_frags N exceed max_sg_array 4, and the retransmit carries the same fragments and is dropped again. stubby writes small TLS
    records to several upstreams from one thread, so once the upstream round trip is long - IPv6 DNS-over-TLS
    through a 6in4 tunnel, any broker - a packet collects 5-10 fragments. The kernel now linearizes a non-GSO
    packet with more than net.core.reaper_tx_sg_max (4; 0 = stock) fragments before the driver sees it;
    net.core.reaper_tx_sg_linearized counts how often. On an older image net.core.max_skb_frags=4 is a
    no-build workaround. Host test test_kernel_runner_sg_cap.py; reaper_verify section 28 checks the kernel
    that was built.
  • 5 GHz and 6 GHz radios dead after a network restart with Dynamic puncturing on.
    restart_net (an IPv6 or LAN change), allnet, net_and_phy and wps_enr tore the radios down without
    stopping the radio readers - rpunctd arms a 4 s measurement window on every Dynamic radio each tick,
    reaper_bwfloor and rchqd read every 15 s and 10 s - and never dropped wlready, so rpunctd's own guard was
    blind; the wl1 and wl2 dongle firmware trapped seven seconds in and stayed down until a power cycle while
    every client sat on 2.4 GHz. The readers now stop beside stop_acsd() in every teardown branch and in
    restart_wireless, an armed window is waited out, and each reader also pauses on its own while rc_service
    names a radio-stopping service. Confirmed on the owner box: two restart_net, radios up, no trap. A trapped
    dongle cannot be revived from userspace (dhd devreset re-downloads the firmware and it traps again), so
    prevention is the whole fix. Host test test_wl_readers_quiesce.py.
  • Diagnostics v1.3.38. Section 15 reports the Runner cap, max_skb_frags, the refused-packet lines (the
    syslog count anchored on the kernel's own line) and tx_dropped per port; section 5 counts DNS-over-TLS
    upstreams by family; section 7 names a radio that is on but whose driver has no adapter; 19b counts dongle
    traps, lists the crash dumps by name and prints the restart that preceded each; the dmesg summary no longer
    masks "exceed" as "N". Host test test_diag_sanitizer.py.

Images & checksums (RT-BE86U)

Two flashable images: + AI Advisor (default) and Standard (noMCP, all AI components compiled out entirely). Flash the *_nand_squashfs.pkgtb via Administration > Firmware Upgrade.

This is a beta release. Its filename carries _BETA and the router reports the same string on the dashboard and the About page, so you can always tell which channel a flashed image came from. Stable releases carry no marker.

Variant File SHA-256
+ AI Advisor RT-BE86U_3006_102.8_Reaper_v3.4.3_BETA_nand_squashfs.pkgtb 7725116b3f9f366f978d22ee151fec3d4874c0c1a4644577abb2d99094af2a68
Standard RT-BE86U_3006_102.8_Reaper_v3.4.3_BETA_noMCP_nand_squashfs.pkgtb 23245a14617d78b3650edc6ce968af8b2fb78a928252cbb805e8a0af5ac17f38

Verify a download against the attached SHA256SUMS-RT-BE86U-Reaper_v3.4.3.txt.


Corresponding source & reproducibility

The RT-BE86U image for v3.4.3-beta is built from this repository at tag v3.4.3-beta-RT-BE86U: the pinned Asuswrt-Merlin base (3006.102.8-beta2, a7ebfa133a) plus the complete patch series. The tag freezes the exact source that produced it.

The auto-attached Source code (zip/tar.gz) asset below is this repository at tag v3.4.3-beta-RT-BE86U (patches + docs).

Don't miss a new AM-Reaper release

NewReleases is sending notifications on new releases.