Microchip® Advanced Software Framework

ip_addr.h File Reference
#include "lwip/opt.h"
#include "lwip/def.h"
#include "lwip/ip4_addr.h"
#include "lwip/ip6_addr.h"

Data Structures

union  ipX_addr_t
 

Macros

#define ip6_2_ip(ip6addr)   ((ip_addr_t*)(ip6addr))
 
#define ip6_2_ipX(ip6addr)   ((ipX_addr_t*)ip6addr)
 
#define ip_2_ip6(ipaddr)   ((ip6_addr_t*)(ipaddr))
 These functions only exist for type-safe conversion from ip_addr_t to ip6_addr_t and back. More...
 
#define ip_2_ipX(ipaddr)   ((ipX_addr_t*)ipaddr)
 
#define ipX_2_ip(ipaddr)   (&((ipaddr)->ip4))
 
#define ipX_2_ip6(ip6addr)   (&((ip6addr)->ip6))
 
#define ipX_addr_cmp(is_ipv6, addr1, addr2)
 
#define ipX_addr_copy(is_ipv6, dest, src)
 
#define ipX_addr_debug_print(is_ipv6, debug, ipaddr)
 
#define ipX_addr_isany(is_ipv6, ipaddr)
 
#define ipX_addr_ismulticast(is_ipv6, ipaddr)
 
#define ipX_addr_set(is_ipv6, dest, src)
 
#define ipX_addr_set_any(is_ipv6, ipaddr)
 
#define ipX_addr_set_hton(is_ipv6, dest, src)
 
#define ipX_addr_set_ipaddr(is_ipv6, dest, src)
 
#define ipX_addr_set_loopback(is_ipv6, ipaddr)
 
#define ipX_addr_set_zero(is_ipv6, ipaddr)
 

#define ip6_2_ip (   ip6addr)    ((ip_addr_t*)(ip6addr))
#define ip6_2_ipX (   ip6addr)    ((ipX_addr_t*)ip6addr)
#define ip_2_ip6 (   ipaddr)    ((ip6_addr_t*)(ipaddr))

These functions only exist for type-safe conversion from ip_addr_t to ip6_addr_t and back.

#define ip_2_ipX (   ipaddr)    ((ipX_addr_t*)ipaddr)
#define ipX_2_ip6 (   ip6addr)    (&((ip6addr)->ip6))
#define ipX_addr_cmp (   is_ipv6,
  addr1,
  addr2 
)
Value:
((is_ipv6) ? \
ip6_addr_cmp(ipX_2_ip6(addr1), ipX_2_ip6(addr2)) : \
ip_addr_cmp(ipX_2_ip(addr1), ipX_2_ip(addr2)))
#define ip_addr_cmp(addr1, addr2)
Definition: ip4_addr.h:198
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ip6_addr_cmp(addr1, addr2)
Definition: ip6_addr.h:157
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69

Referenced by raw_input(), tcp_bind(), tcp_connect(), tcp_input(), tcp_listen_with_backlog(), tcp_pcb_purge(), udp_bind(), and udp_input().

#define ipX_addr_copy (   is_ipv6,
  dest,
  src 
)
Value:
do{if(is_ipv6){ \
ip6_addr_copy((dest).ip6, (src).ip6); }else{ \
ip_addr_copy((dest).ip4, (src).ip4); }}while(0)
#define ip_addr_copy(dest, src)
Copy IP address - faster than ip_addr_set: no NULL check.
Definition: ip4_addr.h:162
#define ip6_addr_copy(dest, src)
Copy IPv6 address - faster than ip6_addr_set: no NULL check.
Definition: ip6_addr.h:116

Referenced by lwip_netconn_do_getaddr(), recv_raw(), tcp_connect(), tcp_listen_input(), tcp_listen_with_backlog(), tcp_output_segment(), and udp_connect().

#define ipX_addr_debug_print (   is_ipv6,
  debug,
  ipaddr 
)
Value:
do { if(is_ipv6) { \
ip6_addr_debug_print(debug, ipX_2_ip6(ipaddr)); } else { \
ip_addr_debug_print(debug, ipX_2_ip(ipaddr)); }}while(0)
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ip6_addr_debug_print(debug, ipaddr)
Definition: ip6_addr.h:263
#define ip_addr_debug_print(debug, ipaddr)
Definition: ip4_addr.h:212
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69

Referenced by lwip_accept(), lwip_bind(), lwip_connect(), lwip_getaddrname(), lwip_recvfrom(), lwip_sendto(), raw_sendto(), tcp_keepalive(), tcp_slowtmr(), tcp_zero_window_probe(), udp_bind(), udp_connect(), and udp_input().

#define ipX_addr_isany (   is_ipv6,
  ipaddr 
)
Value:
((is_ipv6) ? \
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ip_addr_isany(addr1)
Definition: ip4_addr.h:200
#define ip6_addr_isany(ip6addr)
Definition: ip6_addr.h:164
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69

Referenced by lwip_netconn_do_send(), raw_input(), raw_sendto(), tcp_bind(), tcp_connect(), tcp_input(), tcp_listen_dual_with_backlog(), tcp_output_segment(), tcp_pcb_purge(), udp_bind(), and udp_input().

#define ipX_addr_ismulticast (   is_ipv6,
  ipaddr 
)
Value:
((is_ipv6) ? \
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ip6_addr_ismulticast(ip6addr)
Definition: ip6_addr.h:183
#define ip_addr_ismulticast(addr1)
Definition: ip4_addr.h:208
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69

Referenced by tcp_input().

#define ipX_addr_set (   is_ipv6,
  dest,
  src 
)
Value:
do{if(is_ipv6){ \
ip6_addr_set(ipX_2_ip6(dest), ipX_2_ip6(src)); }else{ \
ip_addr_set(ipX_2_ip(dest), ipX_2_ip(src)); }}while(0)
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ip6_addr_set(dest, src)
Safely copy one IPv6 address to another (src may be NULL)
Definition: ip6_addr.h:121
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69
#define ip_addr_set(dest, src)
Safely copy one IP address to another (src may be NULL)
Definition: ip4_addr.h:164

Referenced by recv_udp(), tcp_bind(), and tcp_connect().

#define ipX_addr_set_any (   is_ipv6,
  ipaddr 
)
Value:
do{if(is_ipv6){ \
ip6_addr_set_any(ipX_2_ip6(ipaddr)); }else{ \
ip_addr_set_any(ipX_2_ip(ipaddr)); }}while(0)
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ip6_addr_set_any(ip6addr)
Set address to ipv6 'any' (no need for htonl())
Definition: ip6_addr.h:133
#define ip_addr_set_any(ipaddr)
Set address to IPADDR_ANY (no need for htonl())
Definition: ip4_addr.h:170
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69

Referenced by lwip_sendto(), netbuf_new(), netconn_recv(), udp_connect(), and udp_disconnect().

#define ipX_addr_set_hton (   is_ipv6,
  dest,
  src 
)
Value:
do{if(is_ipv6){ \
ip6_addr_set_hton(ipX_2_ip6(ipaddr), (src)) ;}else{ \
ip_addr_set_hton(ipX_2_ip(ipaddr), (src));}}while(0)
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ip_addr_set_hton(dest, src)
Safely copy one IP address to another and change byte order from host- to network-order.
Definition: ip4_addr.h:175
#define ip6_addr_set_hton(dest, src)
Safely copy one IPv6 address to another and change byte order from host- to network-order.
Definition: ip6_addr.h:141
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69
#define ipX_addr_set_ipaddr (   is_ipv6,
  dest,
  src 
)
Value:
do{if(is_ipv6){ \
ip6_addr_set(ipX_2_ip6(dest), ip_2_ip6(src)); }else{ \
ip_addr_set(ipX_2_ip(dest), src); }}while(0)
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ip6_addr_set(dest, src)
Safely copy one IPv6 address to another (src may be NULL)
Definition: ip6_addr.h:121
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69
#define ip_2_ip6(ipaddr)
These functions only exist for type-safe conversion from ip_addr_t to ip6_addr_t and back...
Definition: ip_addr.h:64
#define ip_addr_set(dest, src)
Safely copy one IP address to another (src may be NULL)
Definition: ip4_addr.h:164

Referenced by netconn_sendto(), raw_bind(), raw_connect(), recv_udp(), udp_bind(), and udp_connect().

#define ipX_addr_set_loopback (   is_ipv6,
  ipaddr 
)
Value:
do{if(is_ipv6){ \
ip_addr_set_loopback(ipX_2_ip(ipaddr)); }}while(0)
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ip_addr_set_loopback(ipaddr)
Set address to loopback address.
Definition: ip4_addr.h:172
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69
#define ip6_addr_set_loopback(ip6addr)
Set address to ipv6 loopback address.
Definition: ip6_addr.h:135
#define ipX_addr_set_zero (   is_ipv6,
  ipaddr 
)
Value:
do{if(is_ipv6){ \
ip6_addr_set_zero(ipX_2_ip6(ipaddr)); }else{ \
ip_addr_set_zero(ipX_2_ip(ipaddr)); }}while(0)
#define ip6_addr_set_zero(ip6addr)
Set complete address to zero.
Definition: ip6_addr.h:127
#define ipX_2_ip(ipaddr)
Definition: ip_addr.h:70
#define ipX_2_ip6(ip6addr)
Definition: ip_addr.h:69
#define ip_addr_set_zero(ipaddr)
Set complete address to zero.
Definition: ip4_addr.h:168