Rtos API example

Embed: (wiki syntax)

« Back to documentation index

netif.h File Reference

netif.h File Reference

netif API (to be used from TCPIP thread) More...

Go to the source code of this file.

Data Structures

struct  netif
 Generic data structure used for all lwIP network interfaces. More...

Typedefs

typedef err_t(* netif_init_fn )(struct netif *netif)
 Function prototype for netif init functions.
typedef err_t(* netif_input_fn )(struct pbuf *p, struct netif *inp)
 Function prototype for netif->input functions.
typedef err_t(* netif_output_fn )(struct netif *netif, struct pbuf *p, const ip4_addr_t *ipaddr)
 Function prototype for netif->output functions.
typedef err_t(* netif_output_ip6_fn )(struct netif *netif, struct pbuf *p, const ip6_addr_t *ipaddr)
 Function prototype for netif->output_ip6 functions.
typedef err_t(* netif_linkoutput_fn )(struct netif *netif, struct pbuf *p)
 Function prototype for netif->linkoutput functions.
typedef void(* netif_status_callback_fn )(struct netif *netif)
 Function prototype for netif status- or link-callback functions.
typedef err_t(* netif_igmp_mac_filter_fn )(struct netif *netif, const ip4_addr_t *group, enum netif_mac_filter_action action)
 Function prototype for netif igmp_mac_filter functions.
typedef err_t(* netif_mld_mac_filter_fn )(struct netif *netif, const ip6_addr_t *group, enum netif_mac_filter_action action)
 Function prototype for netif mld_mac_filter functions.

Enumerations

enum  netif_mac_filter_action { NETIF_DEL_MAC_FILTER = 0, NETIF_ADD_MAC_FILTER = 1 }
 

MAC Filter Actions, these are passed to a netif's igmp_mac_filter or mld_mac_filter callback function.

More...

Functions

u8_t netif_alloc_client_data_id (void)
 Allocate an index to store data in client_data member of struct netif.
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_set_addr (struct netif *netif, const ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw)
 Change IP address configuration for a network interface (including netmask and default gateway).
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_ipaddr (struct netif *netif, const ip4_addr_t *ipaddr)
 Change the IP address of a network interface.
void netif_set_netmask (struct netif *netif, const ip4_addr_t *netmask)
 Change the netmask of a network interface.
void netif_set_gw (struct netif *netif, const ip4_addr_t *gw)
 Change the default gateway for a network interface.
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).
void netif_poll (struct netif *netif)
 Call netif_poll() in the main loop of your application.
void netif_poll_all (void)
 Calls netif_poll() for every netif on the netif_list.
err_t netif_input (struct pbuf *p, struct netif *inp)
 Forwards a received packet for input processing with ethernet_input() or ip_input() depending on netif flags.
void netif_ip6_addr_set (struct netif *netif, s8_t addr_idx, const ip6_addr_t *addr6)
 Change an IPv6 address of a network interface.
void netif_ip6_addr_set_state (struct netif *netif, s8_t addr_idx, u8_t state)
 Change the state of an IPv6 address of a network interface (INVALID, TEMPTATIVE, PREFERRED, DEPRECATED, where TEMPTATIVE includes the number of checks done, see ip6_addr.h)
s8_t netif_get_ip6_addr_match (struct netif *netif, const ip6_addr_t *ip6addr)
 Checks if a specific local address is present on the netif and returns its index.
void netif_create_ip6_linklocal_address (struct netif *netif, u8_t from_mac_48bit)
 Create a link-local IPv6 address on a netif (stored in slot 0)
err_t netif_add_ip6_address (struct netif *netif, const ip6_addr_t *ip6addr, s8_t *chosen_idx)
 This function allows for the easy addition of a new IPv6 address to an interface.

Variables

struct netifnetif_list
 The list of network interfaces.
struct netifnetif_default
 The default network interface.

Detailed Description

netif API (to be used from TCPIP thread)

Definition in file netif.h.


Typedef Documentation

typedef err_t(* netif_igmp_mac_filter_fn)(struct netif *netif, const ip4_addr_t *group, enum netif_mac_filter_action action)

Function prototype for netif igmp_mac_filter functions.

Definition at line 201 of file netif.h.

typedef err_t(* netif_init_fn)(struct netif *netif)

Function prototype for netif init functions.

Set up flags and output/linkoutput callback functions in this function.

Parameters:
netifThe netif to initialize

Definition at line 155 of file netif.h.

typedef err_t(* netif_input_fn)(struct pbuf *p, struct netif *inp)

Function prototype for netif->input functions.

This function is saved as 'input' callback function in the netif struct. Call it when a packet has been received.

Parameters:
pThe received packet, copied into a pbuf
inpThe netif which received the packet

Definition at line 162 of file netif.h.

typedef err_t(* netif_linkoutput_fn)(struct netif *netif, struct pbuf *p)

Function prototype for netif->linkoutput functions.

Only used for ethernet netifs. This function is called by ARP when a packet shall be sent.

Parameters:
netifThe netif which shall send a packet
pThe packet to send (raw ethernet packet)

Definition at line 196 of file netif.h.

typedef err_t(* netif_mld_mac_filter_fn)(struct netif *netif, const ip6_addr_t *group, enum netif_mac_filter_action action)

Function prototype for netif mld_mac_filter functions.

Definition at line 206 of file netif.h.

typedef err_t(* netif_output_fn)(struct netif *netif, struct pbuf *p, const ip4_addr_t *ipaddr)

Function prototype for netif->output functions.

Called by lwIP when a packet shall be sent. For ethernet netif, set this to 'etharp_output' and set 'linkoutput'.

Parameters:
netifThe netif which shall send a packet
pThe packet to send (p->payload points to IP header)
ipaddrThe IP address to which the packet shall be sent

Definition at line 173 of file netif.h.

typedef err_t(* netif_output_ip6_fn)(struct netif *netif, struct pbuf *p, const ip6_addr_t *ipaddr)

Function prototype for netif->output_ip6 functions.

Called by lwIP when a packet shall be sent. For ethernet netif, set this to 'ethip6_output' and set 'linkoutput'.

Parameters:
netifThe netif which shall send a packet
pThe packet to send (p->payload points to IP header)
ipaddrThe IPv6 address to which the packet shall be sent

Definition at line 186 of file netif.h.

typedef void(* netif_status_callback_fn)(struct netif *netif)

Function prototype for netif status- or link-callback functions.

Definition at line 198 of file netif.h.


Enumeration Type Documentation

MAC Filter Actions, these are passed to a netif's igmp_mac_filter or mld_mac_filter callback function.

Enumerator:
NETIF_DEL_MAC_FILTER 

Delete a filter entry.

NETIF_ADD_MAC_FILTER 

Add a filter entry.

Definition at line 143 of file netif.h.


Function Documentation

s8_t netif_get_ip6_addr_match ( struct netif netif,
const ip6_addr_t ip6addr 
)

Checks if a specific local address is present on the netif and returns its index.

Depending on its state, it may or may not be assigned to the interface (as per RFC terminology).

Parameters:
netifthe netif to check
ip6addrthe IPv6 address to find
Returns:
>= 0: address found, this is its index -1: address not found on this netif

Definition at line 1153 of file lwip_netif.c.

void netif_poll ( struct netif netif )

Call netif_poll() in the main loop of your application.

This is to prevent reentering non-reentrant functions like tcp_input(). Packets passed to netif_loop_output() are put on a list that is passed to netif->input() by netif_poll().

Definition at line 909 of file lwip_netif.c.

void netif_poll_all ( void   )

Calls netif_poll() for every netif on the netif_list.

Definition at line 975 of file lwip_netif.c.


Variable Documentation

The default network interface.

Definition at line 105 of file lwip_netif.c.

struct netif* netif_list

The list of network interfaces.

Definition at line 104 of file lwip_netif.c.