lwIP 2.1.0 Lightweight IP stack

Macros
IPv6 only
Infrastructure » IP address handling

## Macros
#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_V6_VAL(ipaddr) (IP_GET_TYPE(&ipaddr) == IPADDR_TYPE_V6)
#define | IP_IS_V6(ipaddr) (((ipaddr) != NULL) && IP_IS_V6_VAL(*(ipaddr)))
#define | ip_2_ip6(ipaddr) (&((ipaddr)->u_addr.ip6))
#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_from_ip6(dest, src)
#define | ip_addr_copy_from_ip6_packed(dest, src)
#define | ip_addr_set_zero_ip6(ipaddr)
#define | IP6_ADDR_ANY (&ip6_addr_any)
#define | IP6_ADDR_ANY6 (ip_2_ip6(&ip6_addr_any))

## Detailed Description

## Macro Definition Documentation

## ◆ IP6_ADDR_ANY

#define IP6_ADDR_ANY (&ip6_addr_any)

IP6_ADDR_ANY can be used as a fixed ip_addr_t for the IPv6 wildcard address

## ◆ IP6_ADDR_ANY6

#define IP6_ADDR_ANY6 (ip_2_ip6(&ip6_addr_any))

IP6_ADDR_ANY6 can be used as a fixed ip6_addr_t for the IPv6 wildcard address

## ◆ ip_2_ip6

#define ip_2_ip6 | ( |  | ipaddr | ) | (&((ipaddr)->u_addr.ip6))

Convert generic ip address to specific protocol version

## ◆ IP_ADDR6

#define IP_ADDR6 | ( |  | ipaddr,
|  |  | i0,
|  |  | i1,
|  |  | i2,
|  |  | i3
| ) |  |

Value:
do { IP6_ADDR(ip_2_ip6(ipaddr),i0,i1,i2,i3); \
IP_SET_TYPE_VAL(*(ipaddr), IPADDR_TYPE_V6); } while(0)
IP6_ADDR
#define IP6_ADDR(ip6addr, idx0, idx1, idx2, idx3)
Definition: ip6_addr.h:75
IPADDR_TYPE_V6
Definition: ip_addr.h:58
ip_2_ip6
#define ip_2_ip6(ipaddr)
Definition: ip_addr.h:116

## ◆ IP_ADDR6_HOST

#define IP_ADDR6_HOST | ( |  | ipaddr,
|  |  | i0,
|  |  | i1,
|  |  | i2,
|  |  | i3
| ) |  | IP_ADDR6(ipaddr,PP_HTONL(i0),PP_HTONL(i1),PP_HTONL(i2),PP_HTONL(i3))

## ◆ ip_addr_copy_from_ip6

#define ip_addr_copy_from_ip6 | ( |  | dest,
|  |  | src
| ) |  |

Value:
do{ \
ip6_addr_copy(*ip_2_ip6(&(dest)), src); IP_SET_TYPE_VAL(dest, IPADDR_TYPE_V6); }while(0)
IPADDR_TYPE_V6
Definition: ip_addr.h:58
ip_2_ip6
#define ip_2_ip6(ipaddr)
Definition: ip_addr.h:116

## ◆ ip_addr_copy_from_ip6_packed

#define ip_addr_copy_from_ip6_packed | ( |  | dest,
|  |  | src
| ) |  |

Value:
do{ \
ip6_addr_copy_from_packed(*ip_2_ip6(&(dest)), src); IP_SET_TYPE_VAL(dest, IPADDR_TYPE_V6); }while(0)
IPADDR_TYPE_V6
Definition: ip_addr.h:58
ip_2_ip6
#define ip_2_ip6(ipaddr)
Definition: ip_addr.h:116

## ◆ ip_addr_set_zero_ip6

#define ip_addr_set_zero_ip6 | ( |  | ipaddr | ) |

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

## ◆ IP_IS_V6

#define IP_IS_V6 | ( |  | ipaddr | ) | (((ipaddr) != NULL) && IP_IS_V6_VAL(*(ipaddr)))

## ◆ IP_IS_V6_VAL

#define IP_IS_V6_VAL | ( |  | ipaddr | ) | (IP_GET_TYPE(&ipaddr) == IPADDR_TYPE_V6)

## ◆ IPADDR6_INIT

#define IPADDR6_INIT | ( |  | a,
|  |  | b,
|  |  | c,
|  |  | d
| ) |  | { { { { a, b, c, d } IPADDR6_ZONE_INIT } }, IPADDR_TYPE_V6 }

## ◆ IPADDR6_INIT_HOST

#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 }