Skip to content

Release: Harden thread safety, RF arbitration, TX backpressure, and memory footprint - #14

Merged
0ldev merged 17 commits into
mainfrom
develop
Oct 29, 2026
Merged

0ldev merged 17 commits into
mainfrom
develop

Conversation

@0ldev

@0ldev 0ldev commented Oct 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • Harden thread safety across callback setters, state mutators, forEachAp(), and worker teardown
  • Add cross-instance channel lock arbitration (_channelLockOwner) and peer lock checks in tick()
  • Tune hardware radio channel before CSA, Deauth, BTM, and KARMA bursts and switch KARMA to WIFI_IF_AP
  • Add _txRaw() driver backpressure handling (ESP_ERR_NO_MEM retry), tx_packets/tx_dropped counters, and FIFO injection queueing
  • Eliminate 2.5 KB stack allocation in PcapngFileLogger::writePacket(), raise HandshakeRecord buffer to 1024 B, and add zero-heap toHC22000() buffer overload
  • Pack Config, ApRecord, ApCacheEntry, and InjectFrame structs and expose compile-time capacity overrides

0ldev and others added 17 commits October 28, 2026 13:44
- Include esp_timer.h in politician_compat.h under ARDUINO
- Restore accurate WPS M1 callback docstring in Politician.h
- Clarify buffer lifetime and memcpy recommendation in EspNowRecord
- Update EspNowCapture platformio.ini to use symlink lib_deps
- Add EspNowCapture to build-examples CI matrix and pin action SHAs
- Document EspNowCapture in README examples table
…essure, and memory footprint

- Acquire recursive mutex across all callback setters, state mutators, and channel queries
- Release mutex before invoking user callback in forEachAp() to avoid re-entrant deadlocks
- Fix ringbuffer high-water mark calculation (uxItemsWaiting bytes used vs free)
- Add cross-instance channel lock arbitration (_channelLockOwner) and peer lock awareness in tick()
- Tune hardware radio channel before CSA, Deauth, BTM, and KARMA bursts and switch KARMA to WIFI_IF_AP
- Engage temporary channel lock on EAP-Identity and MSCHAPv2 Challenge frames during hopping
- Add _txRaw() helper with ESP_ERR_NO_MEM backoff retry, tx_packets/tx_dropped stats, and FIFO inject queue
- Eliminate 2.5 KB stack buffer in PcapngFileLogger::writePacket() and raise HandshakeRecord buffer to 1024 B
- Add zero-heap toHC22000() buffer overload, streaming CSV loggers, auto-flush toggle, and NVS cache spinlock
- Pack Config, ApRecord, ApCacheEntry, and InjectFrame structs and add compile-time capacity overrides
@0ldev
0ldev merged commit 9ef1d6e into main Oct 29, 2026
19 checks passed
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.

2 participants