Chen wrote:
What is the difference between
netif->input and ethernet_input? Both
seems to work --- in fact, Atmel was using ethernet_input in their port
of lwIP for a long time and the example seems to work OK.
netif->input is the function passed to netif_add. For NO_SYS==1,
there is no difference: you will pass ethernet_input to netif_add.
However, for NO_SYS==0, you will pass tcpip_input to netif_add, which
means there's a thread change into the tcpip_thread before calling
ethernet_input. Without this, there can be multiple threads active in
the core code, which is bound to lead to problems sooner or later.
Simon
|