Summary
The transmit path fragments oversized ESP-NOW payloads, but the receive path never reassembles them before dispatching to audio_pipe_receive().
Impact
Any fragmented encrypted audio packet will be delivered as individual fragments and fail decryption, so fragmentation is not actually functional end-to-end.
Evidence
- TX fragments in
main/espnow_comm.c:83-103
- RX dispatches raw frames directly in
main/espnow_comm.c:26-40
- Reassembly helper exists in
main/espnow_frag.c but is unused by firmware RX
Expected
recv_cb() should detect fragment headers, buffer fragments per message, reassemble them, and only then pass the reconstructed payload to pairing/audio handlers.
Notes
Right now the codebase has a one-way fragmentation feature: send support without receive support.
Summary
The transmit path fragments oversized ESP-NOW payloads, but the receive path never reassembles them before dispatching to
audio_pipe_receive().Impact
Any fragmented encrypted audio packet will be delivered as individual fragments and fail decryption, so fragmentation is not actually functional end-to-end.
Evidence
main/espnow_comm.c:83-103main/espnow_comm.c:26-40main/espnow_frag.cbut is unused by firmware RXExpected
recv_cb()should detect fragment headers, buffer fragments per message, reassemble them, and only then pass the reconstructed payload to pairing/audio handlers.Notes
Right now the codebase has a one-way fragmentation feature: send support without receive support.