Subject: HaLow REPEATER (MM8108 rel_1_17_8) — two open issues:
multi-VIF bring-up cycle + STA not following ECSA
Hi Morse Micro Support,
Opening a fresh case for two related but distinct issues we’re
seeing on the EKH01 REPEATER setup. Both are reproducible on
plain uci (no Python state machine required). mm_dumps for
both scenarios attached at the bottom.
=================================================================
ENVIRONMENT
Firmware : rel_1_17_8_2026_Mar_24
Morse Driver : 0-rel_1_17_8_2026_Mar_24
Dot11ah Driver : 0-rel_1_17_8_2026_Mar_24
morse_cli : rel_1_17_8_2026_Mar_24
Morsectrl : rel_1_17_8_2026_Mar_24
Hostapd : 2.12-morse_micro-rel_1_17_8_2026_Mar_24
WPA_Supplicant : 2.12-morse_micro-rel_1_17_8_2026_Mar_24
IW : 5.19
OpenWRT : Morse-2.11.12
Chip : MM8108B2
TOPOLOGY
.200 — HALOWLINK2 AP (g7-AP, CH_28, 8 MHz BW, SAE)
.202 — HALOWLINK2 AP (g7-AP, CH_28, 8 MHz BW, SAE)
.203 — EKH01 REPEATER (multi-VIF: STA on wlan0 backhaul +
AP on wlan1 fronthaul, same radio, both g7-AP)
=================================================================
ISSUE #1 — REPEATER multi-VIF: STA drops within ~30 ms of AP
enable, infinite cycle
REPRODUCER
Module reloaded with PS knobs off (this alone eliminates the
morse_cmd_set_ps [vif:1] failed -19 cascade, but the failure
below still stays):
rmmod morse
insmod /lib/modules/5.15.167/morse.ko
reattach_hw=0 enable_sgi_rc=1
enable_ps=0 enable_dynamic_ps_offload=0 enable_pre_assoc_ps=0
country=US
/etc/config/wireless (minimum needed):
wireless.radio0.type=‘morse’
wireless.radio0.band=‘s1g’
wireless.radio0.hwmode=‘11ah’
wireless.radio0.country=‘US’
wireless.radio0.channel=‘28’
wireless.radio0.htmode=‘HE8’
wireless.radio0.s1g_chanbw=‘8’
wireless.radio0.op_class=‘4’
wireless.repeater_uplink=wifi-iface
wireless.repeater_uplink.device=‘radio0’
wireless.repeater_uplink.mode=‘sta’
wireless.repeater_uplink.network=‘ahwlan’
wireless.repeater_uplink.ssid=‘g7-AP’
wireless.repeater_uplink.encryption=‘sae’
wireless.repeater_uplink.sae_pwe=‘2’
wireless.repeater_uplink.bssid=‘’
wireless.repeater_downlink=wifi-iface
wireless.repeater_downlink.device=‘radio0’
wireless.repeater_downlink.mode=‘ap’
wireless.repeater_downlink.network=‘lan’
wireless.repeater_downlink.ssid=‘g7-AP’
wireless.repeater_downlink.encryption=‘sae’
wireless.repeater_downlink.sae_pwe=‘2’
wireless.repeater_downlink.disabled=‘1’ ← starts disabled
Steps:
- wifi up → only STA iface comes up (AP disabled)
- STA associates to upstream cleanly (~3 s)
iw dev wlan0 link→ Connected to @ 5560 - uci set wireless.repeater_downlink.disabled=0
uci commit wireless
wifi reload
OBSERVED
Within ~30 ms of wifi reload returning:
• iw dev shows BOTH ifaces (wlan0 managed + wlan1 AP) but
the STA association is gone.
• wpa_supplicant_s1g (restarted by netifd during reload) retries
auth in a loop, all timeouts:
wlan1: authenticate with
wlan1: send auth to (try 1/3)
wlan1: send auth to (try 2/3)
wlan1: send auth to (try 3/3)
wlan1: authentication with timed out
The AP-side hostapd_s1g never receives these auth frames
(nothing in its log for this STA MAC during the window).
• Symmetric on the downlink AP: clients trying to associate
to the REPEATER’s AP get
wlan0: STA IEEE 802.11: did not acknowledge
authentication response
The AP sends the response; no ACK ever comes back.
• iw dev wlan_ap info shows type AP but no ssid/channel —
beacon parameters never got applied.
WORKAROUNDS WE’VE TRIED (none work)
• Bypass wifi reload — add the AP iface manually with
iw phy phyN interface add wlan_ap type __ap and start
hostapd_s1g on a hand-built conf.
→ hostapd starts, then fails:
nl80211: kernel reports: Match already configured
Failed to set beacon parameters
• start_disabled=1 on the downlink wifi-iface, enable it
after STA assoc via hostapd_cli_s1g -i wlan0 enable.
→ driver still rejects STA auth once the second vif exists.
QUESTIONS ON ISSUE #1
- Is multi-VIF STA+AP on a single radio supposed to work in
the plain “morse” backend without prplmesh?
Reading /lib/netifd/wireless/morse.sh,
for_each_interface "ap sta adhoc mesh none monitor"
processes AP first; I don’t see explicit STA-wait logic.
Is that intentional, and orchestrated by the prplmesh
agent when present? - Are there other module parameters or uci options to try?
(Tested: enable_ps=0, enable_dynamic_ps_offload=0,
enable_pre_assoc_ps=0, start_disabled=1, sae_pwe=2.) - Do you have a known-good /etc/config/wireless example for
concurrent STA+AP on MM8108 we could diff against ours?
=================================================================
ISSUE #2 — STA on EKH01 does NOT follow hostapd_cli_s1g
chan_switch (ECSA) — disconnects instead
Independent of the REPEATER — this reproduces with a plain
single-VIF STA on the same radio.
REPRODUCER
• AP : HALOWLINK2 on CH_28, g7-AP, SAE.
• STA : EKH01, single-VIF mode=sta, ssid=g7-AP, SAE,
associated to the AP. Verified with
iw dev wlan0 link → Connected @ 5560.
Then, on the AP:
hostapd_cli_s1g -i wlan0 chan_switch 10 905000
‘prim_bandwidth=2’ ‘sec_channel_offset=1’
‘center_freq1=908000’ ‘bandwidth=8’
Goal: in-band CSA from CH_28 (5560 MHz) to CH_12 (5180/5250 MHz),
8 MHz BW, 2 MHz primary, 10-beacon countdown.
AP SIDE — DID THE RIGHT THING
hostapd_s1g: CHAN_SWITCH EHT config 0x2 HE config 0x2 VHT config 0x1
hostapd_s1g: hostapd_fill_csa_settings : ECSA info op_bw=160,
prim_bw=2, vht=1, ht=1
hostapd_s1g: CTRL-EVENT-STARTED-CHANNEL-SWITCH freq=5180
ht_enabled=1 ch_offset=1 ch_width=160 MHz
cf1=5250 cf2=0
hostapd_s1g: AP-CSA-FINISHED s1g_freq=908000 dfs=0
ECSA IE looks valid (op_bw=160 mapped, prim_bw=2 — non-zero).
AP moved cleanly from CH_28 to CH_12.
STA SIDE — DID NOT FOLLOW
Immediately after the CSA:
(AP-side) hostapd_s1g: AP-STA-DISCONNECTED
(AP-side) hostapd_s1g: WDS-STA-INTERFACE-REMOVED
ifname=wlan0.sta1
The STA drops the association within ~4 s of the announcement,
enters link-loss debounce, runs a full scan, and reassociates —
either to the same AP on the new channel (after ~30 s), or to
a DIFFERENT AP that stayed on the original channel if one is
in range. Same outage cost as if the AP had been brought down
entirely.
Reproducible 100% of the time. We repeated it across two
different HALOWLINK2 APs, in each direction (CH_28→CH_12 and
CH_12→CH_28), same result.
QUESTIONS ON ISSUE #2
- Is there a known issue with morse.ko on the STA side
ignoring or mishandling the ECSA IE on rel_1_17_8? - Is there a wpa_supplicant_s1g option, iw command, or
module parameter to enable so the STA follows the
announcement? - Are the ECSA values we emit (op_bw=160 mapped, prim_bw=2)
the right shape for the STA driver to act on, or is the
5 GHz mapped op_bw=160 itself the problem?
=================================================================
ATTACHMENTS
Issue #1 (REPEATER multi-VIF failure cycle):
mm_dumps_203_REPEATER_2026-06-19.tar.gz ← REPEATER (STA+AP)
mm_dumps_202_AP_2026-06-19.tar.gz ← upstream AP
mm_dumps_201_AP_2026-06-19.tar.gz ← second AP for context
Issue #2 (STA not following ECSA chan_switch):
mm_dumps_203_REPEATER_csa-test.tar.gz ← STA side (disconnect + reassoc)
mm_dumps_202_AP_csa-test.tar.gz ← AP side (ECSA emit + finished)
All dumps captured without rebooting after the failure event,
default logging settings.
Happy to provide packet captures, kernel debug traces, or run
additional diagnostics.
mm_dumps_201_AP_2026-06-19.tar.gz (1.4 MB)
versions_201.txt (522 Bytes)
mm_dumps_203_REPEATER_csa-test.tar.gz (1.4 MB)
mm_dumps_203_REPEATER_channel-change.tar.gz (1.4 MB)
mm_dumps_203_REPEATER_2026-06-19.tar.gz (1.4 MB)
mm_dumps_202_AP_csa-test.tar.gz (289.7 KB)
mm_dumps_202_AP_channel-change.tar.gz (293.2 KB)
mm_dumps_202_AP_2026-06-19.tar.gz (297.5 KB)
Thanks,
Asaf