wifi stall fix

This commit is contained in:
liquidraver committed 2026-10-22 15:49:51 +02:00
1 parent 54d708401e
commit d2f65687ef
3 files changed
+6 -1

No files matched your search

+1 -1
View File
@@ -1405,5 +1405,5 @@ Timeouts and deadlines that are watchdogs in everything but name:
| CAD timeout | `Dispatcher::checkSend()` | 4 s (~20 retry attempts) → `ERR_EVENT_CAD_TIMEOUT` + `recoverRxState()`, rather than falling through to TX. See [5.2.2](#522-cad-timeout-recovery). |
| Chip-side TX timeout | SX126x `SetTx` deadline (`patch 0003`, "Scale the chip-side Tx timeout from airtime instead of a fixed 10 s"; airtime +25% +500 ms, floored at 10 s, clamped 262143 ms); LR2021 `TIMEOUT` IRQ handler | The chip stops the transmission when this fires, so a fixed value is a truncation, not a safeguard — at SF12/BW62.5 the old flat 10 s cut every packet from 76 bytes up. |
| Serial partial-frame resync | `ZephyrCompanionUSB.cpp` (`USB_FRAME_TIMEOUT_MS`) | 2 s. Parser-level only — deliberately **not** a session or idle timeout; an idle-but-connected companion sits in `RX_IDLE` indefinitely. |
| TCP send timeout | `TcpCompanionTransport.c` | Native Linux and WiFi companions. A peer that can't accept a frame in the window is wedged → close it, rather than hang the whole queue. |
| TCP send timeout | `TcpCompanionTransport.c` (`TX_SEND_TIMEOUT_SEC`, `SO_SNDTIMEO`) | 2 s per send. Native Linux and WiFi companions. A peer that can't accept a frame in the window is wedged → close it, rather than hang the whole queue. Needs `CONFIG_NET_CONTEXT_SNDTIMEO`, which `ZEPHCORE_TRANSPORT_TCP` selects; before 1.18.1 it was off, the option silently failed and sends waited up to 10 s per attempt (`NET_SOCKET_MAX_SEND_WAIT`). |
| Bounded RXTO wait | `patches/zephyr/0010-uarte-pm-suspend-bounded-rxto-wait.patch` | `uarte_pm_suspend()` busy-waits for RXTO with no timeout upstream. Landing in the STOPRX race with bytes in flight spins forever on the main thread and wedges the entire mesh (observed: RAK3401 1W repeater on 1.16.6, CLI answering only `-> busy`). Backstop for the GPS UART PM path in [7.3](#73-gps-adaptersgps). |
@@ -24,6 +24,10 @@ becomes 5).
## Other changes
- **WiFi companions no longer freeze when the app stops reading.** If an app connected over WiFi
stopped reading (for example in the middle of a contact sync), the node could stop answering on
USB, Bluetooth and WiFi, and stay stuck as long as that connection stayed open. The node now
drops such a connection after 2 seconds, and the app can reconnect.
- **`set leds.hb off` and `hb` now also stop the message blink.** Before, a node with the heartbeat
LED off still flashed on every DM and channel message. `set leds on` with `set leds.hb off` now keeps
a T1000-E dark in use while it still blinks three times when you switch it off with the buzzer muted;
+1
View File
@@ -461,6 +461,7 @@ menu "Companion TCP Transport"
config ZEPHCORE_TRANSPORT_TCP
bool "Companion over a TCP socket"
default n
select NET_CONTEXT_SNDTIMEO
help
Serve the companion protocol over TCP (TcpCompanionTransport), as one
more interface in the MultiSerialInterface beside BLE and USB: the