Mistake on this page?
Report an issue in GitHub or email us
Data Structures | Macros
ip.h File Reference

IP API. More...

#include "lwip/opt.h"
#include "lwip/def.h"
#include "lwip/pbuf.h"
#include "lwip/ip_addr.h"
#include "lwip/err.h"
#include "lwip/netif.h"
#include "lwip/ip4.h"
#include "lwip/ip6.h"
#include "lwip/prot/ip.h"

Go to the source code of this file.

Data Structures

struct  ip_pcb
 
struct  ip_globals
 Global variables of this module, kept in a struct for efficient access using base+index. More...
 

Macros

#define LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX(p)   LWIP_ASSERT("p->ref == 1", (p)->ref == 1)
 pbufs passed to IP must have a ref-count of 1 as their payload pointer gets altered as the packet is passed down the stack More...
 
#define IP_PCB
 This is the common part of all PCB types. More...
 
#define ip_current_netif()    (ip_data.current_netif)
 Get the interface that accepted the current packet. More...
 
#define ip_current_input_netif()   (ip_data.current_input_netif)
 Get the interface that received the current packet. More...
 
#define ip_current_header_tot_len()   (ip_data.current_ip_header_tot_len)
 Total header length of ip(6)_current_header() (i.e. More...
 
#define ip_current_src_addr()    (&ip_data.current_iphdr_src)
 Source IP address of current_header. More...
 
#define ip_current_dest_addr()   (&ip_data.current_iphdr_dest)
 Destination IP address of current_header. More...
 
#define ip_current_src_addr()    (&ip_data.current_iphdr_src)
 Source IP address of current_header. More...
 
#define ip_current_dest_addr()    (&ip_data.current_iphdr_dest)
 Destination IP address of current_header. More...
 
#define ip_get_option(pcb, opt)    ((pcb)->so_options & (opt))
 Gets an IP pcb option (SOF_* flags) More...
 
#define ip_set_option(pcb, opt)    ((pcb)->so_options = (u8_t)((pcb)->so_options | (opt)))
 Sets an IP pcb option (SOF_* flags) More...
 
#define ip_reset_option(pcb, opt)   ((pcb)->so_options = (u8_t)((pcb)->so_options & ~(opt)))
 Resets an IP pcb option (SOF_* flags) More...
 

Detailed Description

IP API.

Definition in file ip.h.

Macro Definition Documentation

#define ip_current_dest_addr ( )    (&ip_data.current_iphdr_dest)

Destination IP address of current_header.

Union destination address of current_header.

Definition at line 214 of file ip.h.

#define ip_current_dest_addr ( )    (&ip_data.current_iphdr_dest)

Destination IP address of current_header.

Union destination address of current_header.

Definition at line 214 of file ip.h.

#define ip_current_header_tot_len ( )    (ip_data.current_ip_header_tot_len)

Total header length of ip(6)_current_header() (i.e.

after this, the UDP/TCP header starts)

Definition at line 141 of file ip.h.

#define ip_current_input_netif ( )    (ip_data.current_input_netif)

Get the interface that received the current packet.

This function must only be called from a receive callback (udp_recv, raw_recv, tcp_accept). It will return NULL otherwise.

Definition at line 139 of file ip.h.

#define ip_current_netif ( )    (ip_data.current_netif)

Get the interface that accepted the current packet.

This may or may not be the receiving netif, depending on your netif/network setup. This function must only be called from a receive callback (udp_recv, raw_recv, tcp_accept). It will return NULL otherwise.

Definition at line 135 of file ip.h.

#define ip_current_src_addr ( )    (&ip_data.current_iphdr_src)

Source IP address of current_header.

Union source address of current_header.

Definition at line 212 of file ip.h.

#define ip_current_src_addr ( )    (&ip_data.current_iphdr_src)

Source IP address of current_header.

Union source address of current_header.

Definition at line 212 of file ip.h.

#define ip_get_option (   pcb,
  opt 
)    ((pcb)->so_options & (opt))

Gets an IP pcb option (SOF_* flags)

Definition at line 217 of file ip.h.

#define IP_PCB
Value:
/* ip addresses in network byte order */ \
ip_addr_t local_ip; \
ip_addr_t remote_ip; \
/* Bound netif index */ \
u8_t netif_idx; \
/* Socket options */ \
u8_t so_options; \
/* Type Of Service */ \
u8_t tos; \
/* Time To Live */ \
u8_t ttl \
/* link layer address resolution hint */ \
IP_PCB_NETIFHINT

This is the common part of all PCB types.

It needs to be at the beginning of a PCB type definition. It is located here so that changes to this common part are made in one location instead of having to change all PCB structs.

Definition at line 76 of file ip.h.

#define ip_reset_option (   pcb,
  opt 
)    ((pcb)->so_options = (u8_t)((pcb)->so_options & ~(opt)))

Resets an IP pcb option (SOF_* flags)

Definition at line 221 of file ip.h.

#define ip_set_option (   pcb,
  opt 
)    ((pcb)->so_options = (u8_t)((pcb)->so_options | (opt)))

Sets an IP pcb option (SOF_* flags)

Definition at line 219 of file ip.h.

#define LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX (   p)    LWIP_ASSERT("p->ref == 1", (p)->ref == 1)

pbufs passed to IP must have a ref-count of 1 as their payload pointer gets altered as the packet is passed down the stack

Definition at line 63 of file ip.h.

Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.