I am trying to run LwIP on stm32f407 discovery (ethernet expansion / RMII) and my debug output of LwIP is showing:
netif_set_ipaddr: netif address being changed
netif: IP address of interface set to 192.168.1.4
netif: netmask of interface set to 255.255.255.0
netif: GW address of interface set to 0.0.0.0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=arp_timer arg=0
tcpip: etharp_tmr()
etharp_timer
sys_timeout: 0x20000bb8 msecs=5000 handler=arp_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
stmf calling h=ip_reass_timer arg=0
tcpip: ip_reass_tmr()
sys_timeout: 0x20000bcc msecs=1000 handler=ip_reass_timer arg=0
Could some please tell what is going on, why does sys_timeout runs and what ip_reass_tmr() is used for. What could be possible error generating this kind of output?
There's nothing(1) in your output that indicates there's anything wrong or any errors.
This is simply debug output, caused by you having defined , TIMERS_DEBUG
ETHARP_DEBUG
and possibly others from lwip/opt.h
, in addition to globally enabling debug printouts via LWIP_DEBUG
from lwip/debug.h
sys_timeout()
is a function for handling timers. A TCP/IP stack needs various timers, e.g. to timeout waiting for IP fragments, timeout ARP entries, transmit/re-transmit TCP segments and ACKs, etc.
ip_reass_tmr()
is called periodically to discard old IP fragments, where not all IP fragments are received (The timer is called periodically even if there's nothing to do - as long as you've enabled the IP_REASSEMBLY
option for the lwip stack).
(1) Except perhaps you've configured a default GW of 0.0.0.0 - which means your stack will only be able to communicate with devices on the local subnet, and not to any devices outside your 192.168.1.4/24 subnet.