>netif_set_addr( &xEMAC_if, &( xAppCfg.xETHCfg.xETHIP ), &(
xAppCfg.xETHCfg.xETHNetmask ), &( xAppCfg.xETHCfg.xETHGateway ));

>will really change the parameters "on the fly".

>It seems to work - but I want to be sure that this is an "allowed" and
correct way.

>I don't want to have some stuff stuck in memory or something like this
because it's not a clean way to do it like this.

 

When I started using LwIP port Analog Devices, I did a reset like you.

But then I made I own port and could use the netif functions.

It works for me (I don't remember exactly but we may have fixed a bug
and added missing netifapi functions back then)

 

>More detailed questions:

> If this is OK, what happens with actually open TCP connections

>(in best case the same as if I break this connection by switching of
the counterpart device - they will time out after a while)?

 

Active TCP connections will be closed immediately.

TCP listening on ANY address will continue to listen.

TCP listening on the old address should be closed (I never checked this
case)

 

>Do I need to call the netif_set_addr() in the same task where LwIP is
running,

 

Yes

 

>or is it allowed to call it also from another task (it will be ensured
that nothing else will call netif_set_addr from my side at the same
time)

 

You can just use netifapi_xxx functions which will do the job of
executing the netif_xxx functions in the tcpip thread for you.

 

Best regards.

 

-- 

Stephane Lesage

 

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

Reply via email to