SiliconLabs / wfx-fullMAC-driver

Silicon Laboratories WFx Wi-Fi Full-MAC driver
23 stars 9 forks source link

sl_wfx_send_ethernet_frame: Don't transmit zero-length payload, it causes firmware crash #18

Open elrafoon opened 11 months ago

elrafoon commented 11 months ago

It seems WF200 firmware does not like SL_WFX_SEND_FRAME_REQ_ID messages with zero-length payload. It is also explicitly written in the documentation of sl_wfx_send_frame_req_body_t. But the loop in sl_wfx_tx_process() can produce such messages, triggering the firmware exception.

When using ThreadX + NetXDuo + WF200 this can be triggered by:

ping -6 -s 1450 fdfe::1000:b63a:31ff:fed3:2cd2

This patch prevents the crash by skipping zero-length-payload tx frames.

elrafoon commented 11 months ago

You can see the whole discussion here: https://community.silabs.com/s/question/0D58Y0000B2A71FSQS/firmware-exception-4-under-high-outgoing-udp-traffic?language=en_US&t=1701215882662