lwIP 2.2.1
Lightweight IP stack
Loading...
Searching...
No Matches
ACD

Functions

err_t acd_add (struct netif *netif, struct acd *acd, acd_conflict_callback_t acd_conflict_callback)
void acd_remove (struct netif *netif, struct acd *acd)
err_t acd_start (struct netif *netif, struct acd *acd, ip4_addr_t ipaddr)
err_t acd_stop (struct acd *acd)
void acd_network_changed_link_down (struct netif *netif)
void acd_netif_ip_addr_changed (struct netif *netif, const ip_addr_t *old_addr, const ip_addr_t *new_addr)

Detailed Description

ACD related functions USAGE:

define LWIP_ACD 1 in your lwipopts.h Options: ACD_TMR_INTERVAL msecs, I recommend a value of 100. The value must divide 1000 with a remainder almost 0. Possible values are 1000, 500, 333, 250, 200, 166, 142, 125, 111, 100 ....

For fixed IP:

  • call acd_start after selecting an IP address. The caller will be informed on conflict status via the callback function.

With AUTOIP:

  • will be called from the autoip module. No extra's needed.

With DHCP:

  • enable LWIP_DHCP_DOES_ACD_CHECK. Then it will be called from the dhcp module. No extra's needed.

Function Documentation

◆ acd_add()

err_t acd_add ( struct netif * netif,
struct acd * acd,
acd_conflict_callback_t acd_conflict_callback )

Add ACD client to the client list and initialize callback function

Parameters
netifnetwork interface on which to start the acd client
acdacd module to be added to the list
acd_conflict_callbackcallback to be called when conflict information is available

◆ acd_netif_ip_addr_changed()

void acd_netif_ip_addr_changed ( struct netif * netif,
const ip_addr_t * old_addr,
const ip_addr_t * new_addr )

Inform the ACD modules of address changes

Parameters
netifnetwork interface on which the address is changing
old_addrold ip address
new_addrnew ip address

◆ acd_network_changed_link_down()

void acd_network_changed_link_down ( struct netif * netif)

Inform the ACD modules when the link goes down

Parameters
netifnetwork interface on which to inform the ACD clients

◆ acd_remove()

void acd_remove ( struct netif * netif,
struct acd * acd )

Remove ACD client from the client list

Parameters
netifnetwork interface from which to remove the acd client
acdacd module to be removed from the list

◆ acd_start()

err_t acd_start ( struct netif * netif,
struct acd * acd,
ip4_addr_t ipaddr )

Start ACD client

Parameters
netifnetwork interface on which to start the acd client
acdacd module to start
ipaddrip address to perform acd on

◆ acd_stop()

err_t acd_stop ( struct acd * acd)

Stop ACD client

Parameters
acdacd module to stop