sim/netdev: eliminated RX data stream congestion in case of high TX network traffic.
In case of high TX network traffic, netdriver_loop() that reads data from netdev was invoked via up_idle() only after high TX network traffic had stopped. That resulted in massive delay and drop of TCP ACK packets and any other packets from netdev (tun/tap device).
This commit is contained in:
parent
09bf8a5f89
commit
019fc0ad78
@ -315,6 +315,12 @@ static int netdriver_txavail(FAR struct net_driver_s *dev)
|
|||||||
work_queue(LPWORK, &g_avail_work, netdriver_txavail_work, dev, 0);
|
work_queue(LPWORK, &g_avail_work, netdriver_txavail_work, dev, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check RX data availability and read the data from the network device now
|
||||||
|
* to prevent RX data stream congestion in case of high TX network traffic.
|
||||||
|
*/
|
||||||
|
|
||||||
|
netdriver_loop();
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user