nuttx/arch/sim
Zhe Weng cb25a9dee3 arch/sim: change g_avail_work and g_recv_work to array in netdriver
Share one worker between multiple simulated network devices may work most of the time, but sometimes breaks the tx pipeline when sending packets on more than one interface at the same time, and leaves some packets unprocessed in network stack, delayed until next transmit on the network interface. The rx process is likely delayed in packet processing under similar situation, so keep g_avail_work and g_recv_work the same number as interfaces.

dev0 tx1 avail              tx1 done
        v                      v
work dev0 tx1 -> dev0 tx1 -> empty -> dev1 tx2 -> dev1 tx3 -> empty
                    ^                    ^           ^          ^
dev1     tx2 avail (failed to queue)  tx3 avail   tx2 done   tx3 done

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2022-10-18 11:16:33 +08:00
..
include arch/sim: fix visual studio Linker Tools Error LNK2019 2022-08-24 21:59:07 +08:00
src arch/sim: change g_avail_work and g_recv_work to array in netdriver 2022-10-18 11:16:33 +08:00
Kconfig arch/sim: support multiple tapdev for sim 2022-10-12 01:57:21 +08:00