lwIP 2.2.1 Lightweight IP stack

Modules | Macros
NETIF
lwIP » Options (lwipopts.h)

## Modules
| Loopback interface

## Macros
#define | LWIP_SINGLE_NETIF 0
#define | LWIP_NETIF_HOSTNAME 0
#define | LWIP_NETIF_API 0
#define | LWIP_NETIF_STATUS_CALLBACK 0
#define | LWIP_NETIF_EXT_STATUS_CALLBACK 0
#define | LWIP_NETIF_LINK_CALLBACK 0
#define | LWIP_NETIF_REMOVE_CALLBACK 0
#define | LWIP_NETIF_HWADDRHINT 0
#define | LWIP_NETIF_TX_SINGLE_PBUF 0
#define | LWIP_NUM_NETIF_CLIENT_DATA 0

## Detailed Description

## Macro Definition Documentation

## ◆ LWIP_NETIF_API

#define LWIP_NETIF_API 0

LWIP_NETIF_API==1: Support netif api (in netifapi.c)

## ◆ LWIP_NETIF_EXT_STATUS_CALLBACK

#define LWIP_NETIF_EXT_STATUS_CALLBACK 0

LWIP_NETIF_EXT_STATUS_CALLBACK==1: Support an extended callback function for several netif related event that supports multiple subscribers.

See also
  netif_ext_status_callback

## ◆ LWIP_NETIF_HOSTNAME

#define LWIP_NETIF_HOSTNAME 0

LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname field.

## ◆ LWIP_NETIF_HWADDRHINT

#define LWIP_NETIF_HWADDRHINT 0

LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g. table indices) in struct netif. TCP and UDP can make use of this to prevent scanning the ARP table for every sent packet. While this is faster for big ARP tables or many concurrent connections, it might be counterproductive if you have a tiny ARP table or if there never are concurrent connections.

## ◆ LWIP_NETIF_LINK_CALLBACK

#define LWIP_NETIF_LINK_CALLBACK 0

LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface whenever the link changes (i.e., link down)

## ◆ LWIP_NETIF_REMOVE_CALLBACK

#define LWIP_NETIF_REMOVE_CALLBACK 0

LWIP_NETIF_REMOVE_CALLBACK==1: Support a callback function that is called when a netif has been removed

## ◆ LWIP_NETIF_STATUS_CALLBACK

#define LWIP_NETIF_STATUS_CALLBACK 0

LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface changes its up/down status (i.e., due to DHCP IP acquisition)

## ◆ LWIP_NETIF_TX_SINGLE_PBUF

#define LWIP_NETIF_TX_SINGLE_PBUF 0

LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data to be sent into one single pbuf. This is for compatibility with DMA-enabled MACs that do not support scatter-gather. Beware that this might involve CPU-memcpy before transmitting that would not be needed without this flag! Use this only if you need to!

ATTENTION: a driver should NOT rely on getting single pbufs but check TX pbufs for being in one piece. If not, pbuf_clone can be used to get a single pbuf: if (p->next != NULL) { struct pbuf *q = pbuf_clone(PBUF_RAW, PBUF_RAM, p); if (q == NULL) { return ERR_MEM; } p = q; ATTENTION: do NOT free the old 'p' as the ref belongs to the caller! }

## ◆ LWIP_NUM_NETIF_CLIENT_DATA

#define LWIP_NUM_NETIF_CLIENT_DATA 0

LWIP_NUM_NETIF_CLIENT_DATA: Number of clients that may store data in client_data member array of struct netif (max. 256).

## ◆ LWIP_SINGLE_NETIF

#define LWIP_SINGLE_NETIF 0

LWIP_SINGLE_NETIF==1: use a single netif only. This is the common case for small real-life targets. Some code like routing etc. can be left out.