Embed: (wiki syntax)

« Back to documentation index

Network interface (NETIF)

Network interface (NETIF)
[Callback-style APIs]

Modules

 IPv4 address handling
 IPv6 address handling
 Client data handling
 

Store data (void*) on a netif for application usage.


 Flags
 MIB2 statistics

Functions

struct netifnetif_add (struct netif *netif,#if LWIP_IPV4 const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw,#endifvoid *state, netif_init_fn init, netif_input_fn input)
 Add a network interface to the list of lwIP netifs.
void netif_remove (struct netif *netif)
 Remove a network interface from the list of lwIP netifs.
struct netifnetif_find (const char *name)
 Find a network interface by searching for its name.
void netif_set_default (struct netif *netif)
 Set a network interface as the default network interface (used to output all packets for which no specific route is found)
void netif_set_up (struct netif *netif)
 Bring an interface up, available for processing traffic.
void netif_set_down (struct netif *netif)
 Bring an interface down, disabling any traffic processing.
void netif_set_status_callback (struct netif *netif, netif_status_callback_fn status_callback)
 Set callback to be called when interface is brought up/down or address is changed while up.
void netif_set_remove_callback (struct netif *netif, netif_status_callback_fn remove_callback)
 Set callback to be called when the interface has been removed.
void netif_set_link_up (struct netif *netif)
 Called by a driver when its link goes up.
void netif_set_link_down (struct netif *netif)
 Called by a driver when its link goes down.
void netif_set_link_callback (struct netif *netif, netif_status_callback_fn link_callback)
 Set callback to be called when link is brought up/down.
err_t netif_loop_output (struct netif *netif, struct pbuf *p)
 Send an IP packet to be received on the same netif (loopif-like).

Function Documentation

struct netif* netif_add ( struct netif netif,
#if LWIP_IPV4 const ip4_addr_t ipaddr,
const ip4_addr_t netmask,
const ip4_addr_t gw,
#endif void *  state,
netif_init_fn  init,
netif_input_fn  input 
) [read]

Add a network interface to the list of lwIP netifs.

Parameters:
netifa pre-allocated netif structure
ipaddrIP address for the new netif
netmasknetwork mask for the new netif
gwdefault gateway IP address for the new netif
stateopaque data passed to the new netif
initcallback function that initializes the interface
inputcallback function that is called to pass ingress packets up in the protocol layer stack.
It is recommended to use a function that passes the input directly to the stack (netif_input(), NO_SYS=1 mode) or via sending a message to TCPIP thread (tcpip_input(), NO_SYS=0 mode).
These functions use netif flags NETIF_FLAG_ETHARP and NETIF_FLAG_ETHERNET to decide whether to forward to ethernet_input() or ip_input(). In other words, the functions only work when the netif driver is implemented correctly!
Most members of struct netif should be be initialized by the netif init function = netif driver (init parameter of this function).
IPv6: Don't forget to call netif_create_ip6_linklocal_address() after setting the MAC address in struct netif.hwaddr (IPv6 requires a link-local address).
Returns:
netif, or NULL if failed.

Definition at line 241 of file lwip_netif.c.

struct netif* netif_find ( const char *  name ) [read]

Find a network interface by searching for its name.

Parameters:
namethe name of the netif (like netif->name) plus concatenated number in ascii representation (e.g. 'en0')

Definition at line 476 of file lwip_netif.c.

err_t netif_loop_output ( struct netif netif,
struct pbuf p 
)

Send an IP packet to be received on the same netif (loopif-like).

The pbuf is simply copied and handed back to netif->input. In multithreaded mode, this is done directly since netif->input must put the packet on a queue. In callback mode, the packet is put on an internal queue and is fed to netif->input by netif_poll().

Parameters:
netifthe lwip network interface structure
pthe (IP) packet to 'send'
Returns:
ERR_OK if the packet has been sent ERR_MEM if the pbuf used to copy the packet couldn't be allocated

Definition at line 802 of file lwip_netif.c.

void netif_remove ( struct netif netif )

Remove a network interface from the list of lwIP netifs.

Parameters:
netifthe network interface to remove

Definition at line 381 of file lwip_netif.c.

void netif_set_default ( struct netif netif )

Set a network interface as the default network interface (used to output all packets for which no specific route is found)

Parameters:
netifthe default network interface

Definition at line 608 of file lwip_netif.c.

void netif_set_down ( struct netif netif )

Bring an interface down, disabling any traffic processing.

Definition at line 686 of file lwip_netif.c.

void netif_set_link_callback ( struct netif netif,
netif_status_callback_fn  link_callback 
)

Set callback to be called when link is brought up/down.

Definition at line 778 of file lwip_netif.c.

void netif_set_link_down ( struct netif netif )

Called by a driver when its link goes down.

Definition at line 764 of file lwip_netif.c.

void netif_set_link_up ( struct netif netif )

Called by a driver when its link goes up.

Definition at line 739 of file lwip_netif.c.

void netif_set_remove_callback ( struct netif netif,
netif_status_callback_fn  remove_callback 
)

Set callback to be called when the interface has been removed.

Definition at line 726 of file lwip_netif.c.

void netif_set_status_callback ( struct netif netif,
netif_status_callback_fn  status_callback 
)

Set callback to be called when interface is brought up/down or address is changed while up.

Definition at line 712 of file lwip_netif.c.

void netif_set_up ( struct netif netif )

Bring an interface up, available for processing traffic.

Definition at line 628 of file lwip_netif.c.