Dimax wrote:
> I continue working on STM32 Ethernet driver. I'd like to understand
> the right implementation of the netif_linkoutput.
> 
> 1. What should driver do if it has no free DMA descriptors to post
> output packet? Should it try to wait some time? If yes what is a
> reasonable wait time?

Yes, it should wait until a packet is sent and there is a free descriptor. This 
is not optimal regarding CPU usage, of course, since RX is also blocked in this 
case, but that's the way it is, currently :-(
You can also wait for the TX-ISR to wait you up instead of waiting activeliy. 
In this case, another thread can run until a packet is sent.

> 2. As far as I can see linkoutput is called from tcpip_thread context
> (in case of OS usage). Should it be reenterable? I do not think so but

No. It is only called from tcpip_thread. As it should not call back into the 
stack, it cannot be reentered.

> want to make sure as in original implementation there is a semaphore
> taken at the beginning and given at the end.

I don't know where the idea came from, but that sempaphore is not necessary.


Simon

_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to