![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Rtos API example
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 netif * | netif_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 netif * | netif_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 netif * | netif_list |
The list of network interfaces. | |
struct netif * | netif_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) |
typedef err_t(* netif_init_fn)(struct netif *netif) |
typedef err_t(* netif_input_fn)(struct pbuf *p, struct netif *inp) |
typedef err_t(* netif_linkoutput_fn)(struct netif *netif, struct pbuf *p) |
typedef err_t(* netif_mld_mac_filter_fn)(struct netif *netif, const ip6_addr_t *group, enum netif_mac_filter_action action) |
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:
-
netif The netif which shall send a packet p The packet to send (p->payload points to IP header) ipaddr The IP address to which the packet shall be sent
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:
-
netif The netif which shall send a packet p The packet to send (p->payload points to IP header) ipaddr The IPv6 address to which the packet shall be sent
typedef void(* netif_status_callback_fn)(struct netif *netif) |
Enumeration Type Documentation
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:
-
netif the netif to check ip6addr the 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
struct netif* netif_default |
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.
Generated on Sun Jul 17 2022 08:25:35 by
![doxygen](doxygen.png)