lwIP 2.1.2 Lightweight IP stack

Data Structures | Macros | Typedefs | Enumerations | Functions
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
struct | ip_addr

## Macros
#define | IPADDR4_INIT(u32val) { { { { u32val, 0ul, 0ul, 0ul } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_V4 }
#define | IPADDR4_INIT_BYTES(a, b, c, d) IPADDR4_INIT(PP_HTONL(LWIP_MAKEU32(a,b,c,d)))
#define | IPADDR6_INIT(a, b, c, d) { { { { a, b, c, d } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_V6 }
#define | IPADDR6_INIT_HOST(a, b, c, d) { { { { PP_HTONL(a), PP_HTONL(b), PP_HTONL(c), PP_HTONL(d) } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_V6 }
#define | IP_IS_ANY_TYPE_VAL(ipaddr) (IP_GET_TYPE(&ipaddr) == IPADDR_TYPE_ANY)
#define | IPADDR_ANY_TYPE_INIT { { { { 0ul, 0ul, 0ul, 0ul } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_ANY }
#define | IP_IS_V4_VAL(ipaddr) (IP_GET_TYPE(&ipaddr) == IPADDR_TYPE_V4)
#define | IP_IS_V6_VAL(ipaddr) (IP_GET_TYPE(&ipaddr) == IPADDR_TYPE_V6)
#define | IP_IS_V4(ipaddr) (((ipaddr) == NULL) || IP_IS_V4_VAL(*(ipaddr)))
#define | IP_IS_V6(ipaddr) (((ipaddr) != NULL) && IP_IS_V6_VAL(*(ipaddr)))
#define | ip_2_ip6(ipaddr) (&((ipaddr)->u_addr.ip6))
#define | ip_2_ip4(ipaddr) (&((ipaddr)->u_addr.ip4))
#define | IP_ADDR4(ipaddr, a, b, c, d)
#define | IP_ADDR6(ipaddr, i0, i1, i2, i3)
#define | IP_ADDR6_HOST(ipaddr, i0, i1, i2, i3) IP_ADDR6(ipaddr,PP_HTONL(i0),PP_HTONL(i1),PP_HTONL(i2),PP_HTONL(i3))
#define | ip_addr_copy(dest, src)
#define | ip_addr_copy_from_ip6(dest, src)
#define | ip_addr_copy_from_ip6_packed(dest, src)
#define | ip_addr_copy_from_ip4(dest, src)
#define | ip_addr_set_ip4_u32(ipaddr, val)
#define | ip_addr_set_ip4_u32_val(ipaddr, val)
#define | ip_addr_get_ip4_u32(ipaddr)
#define | ip_addr_set(dest, src)
#define | ip_addr_set_ipaddr(dest, src) ip_addr_set(dest, src)
#define | ip_addr_set_zero(ipaddr)
#define | ip_addr_set_zero_ip4(ipaddr)
#define | ip_addr_set_zero_ip6(ipaddr)
#define | ip_addr_set_any(is_ipv6, ipaddr)
#define | ip_addr_set_any_val(is_ipv6, ipaddr)
#define | ip_addr_set_loopback(is_ipv6, ipaddr)
#define | ip_addr_set_loopback_val(is_ipv6, ipaddr)
#define | ip_addr_set_hton(dest, src)
#define | ip_addr_get_network(target, host, netmask)
#define | ip_addr_netcmp(addr1, addr2, mask)
#define | ip_addr_cmp(addr1, addr2)
#define | ip_addr_cmp_zoneless(addr1, addr2)
#define | ip_addr_isany(ipaddr)
#define | ip_addr_isany_val(ipaddr)
#define | ip_addr_isbroadcast(ipaddr, netif)
#define | ip_addr_ismulticast(ipaddr)
#define | ip_addr_isloopback(ipaddr)
#define | ip_addr_islinklocal(ipaddr)
#define | IPADDR_STRLEN_MAX IP6ADDR_STRLEN_MAX
#define | ip4_2_ipv4_mapped_ipv6(ip6addr, ip4addr)
#define | unmap_ipv4_mapped_ipv6(ip4addr, ip6addr) (ip4addr)->addr = (ip6addr)->addr[3];
#define | IP_ADDR_ANY IP4_ADDR_ANY
#define | IP4_ADDR_ANY (&ip_addr_any)
#define | IP4_ADDR_ANY4 (ip_2_ip4(&ip_addr_any))
#define | IP_ADDR_BROADCAST (&ip_addr_broadcast)
#define | IP4_ADDR_BROADCAST (ip_2_ip4(&ip_addr_broadcast))
#define | IP6_ADDR_ANY (&ip6_addr_any)
#define | IP6_ADDR_ANY6 (ip_2_ip6(&ip6_addr_any))
#define | IP_ANY_TYPE (&ip_addr_any_type)

## Typedefs
typedef struct ip_addr | ip_addr_t

## Enumerations
enum | lwip_ip_addr_type { IPADDR_TYPE_V4 = 0U, IPADDR_TYPE_V6 = 6U, IPADDR_TYPE_ANY = 46U }

## Functions
char * | ipaddr_ntoa (const ip_addr_t *addr)
char * | ipaddr_ntoa_r (const ip_addr_t *addr, char *buf, int buflen)
int | ipaddr_aton (const char *cp, ip_addr_t *addr)

## Detailed Description

IP address API (common IPv4 and IPv6)

## Macro Definition Documentation

## ◆ ip_addr_set_zero_ip4

#define ip_addr_set_zero_ip4 | ( |  | ipaddr | ) |

Value:
do{ \
ip6_addr_set_zero(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V4); }while(0)
IPADDR_TYPE_V4
Definition: ip_addr.h:56
ip_2_ip6
#define ip_2_ip6(ipaddr)
Definition: ip_addr.h:116