The Pedigree Project  0.1
Classes | Macros | Variables
ip.h File Reference
#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"
+ Include dependency graph for ip.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ip_pcb
 
struct  ip_globals
 

Macros

#define LWIP_IP_HDRINCL   NULL
 
#define LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX(p)   LWIP_ASSERT("p->ref == 1", (p)->ref == 1)
 
#define IP_PCB_ADDRHINT
 
#define IP_PCB
 
#define SOF_REUSEADDR   0x04U /* allow local address reuse */
 
#define SOF_KEEPALIVE   0x08U /* keep connections alive */
 
#define SOF_BROADCAST   0x20U /* permit to send and to receive broadcast messages (see IP_SOF_BROADCAST option) */
 
#define SOF_INHERITED   (SOF_REUSEADDR|SOF_KEEPALIVE)
 
#define ip_current_netif()   (ip_data.current_netif)
 
#define ip_current_input_netif()   (ip_data.current_input_netif)
 
#define ip_current_header_tot_len()   (ip_data.current_ip_header_tot_len)
 
#define ip_current_src_addr()   (&ip_data.current_iphdr_src)
 
#define ip_current_dest_addr()   (&ip_data.current_iphdr_dest)
 
#define ip_current_src_addr()   (&ip_data.current_iphdr_src)
 
#define ip_current_dest_addr()   (&ip_data.current_iphdr_dest)
 
#define ip_get_option(pcb, opt)   ((pcb)->so_options & (opt))
 
#define ip_set_option(pcb, opt)   ((pcb)->so_options |= (opt))
 
#define ip_reset_option(pcb, opt)   ((pcb)->so_options &= ~(opt))
 
#define ip_route_get_local_ip(src, dest, netif, ipaddr)
 

Variables

struct ip_globals ip_data
 

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 231 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 231 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 158 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 156 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 152 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 229 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 229 of file ip.h.

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

Gets an IP pcb option (SOF_* flags)

Definition at line 234 of file ip.h.

#define IP_PCB
Value:
/* ip addresses in network byte order */ \
ip_addr_t local_ip; \
ip_addr_t remote_ip; \
/* 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_ADDRHINT

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 95 of file ip.h.

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

Resets an IP pcb option (SOF_* flags)

Definition at line 238 of file ip.h.

#define ip_route_get_local_ip (   src,
  dest,
  netif,
  ipaddr 
)
Value:
do { \
(netif) = ip_route(src, dest); \
(ipaddr) = ip_netif_get_local_ip(netif, dest); \
}while(0)
Definition: netif.h:244

Definition at line 327 of file ip.h.

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

Sets an IP pcb option (SOF_* flags)

Definition at line 236 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 82 of file ip.h.