ReactOS 0.4.16-dev-258-g81860b4
ip6.h File Reference
#include "lwip/arch.h"
#include "lwip/ip6_addr.h"
Include dependency graph for ip6.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ip6_addr_packed
 
struct  ip6_hdr
 
struct  ip6_opt_hdr
 
struct  ip6_hbh_hdr
 
struct  ip6_dest_hdr
 
struct  ip6_rout_hdr
 
struct  ip6_frag_hdr
 

Macros

#define IP6_MIN_MTU_LENGTH   1280
 
#define IP6_HLEN   40
 
#define IP6_NEXTH_HOPBYHOP   0
 
#define IP6_NEXTH_TCP   6
 
#define IP6_NEXTH_UDP   17
 
#define IP6_NEXTH_ENCAPS   41
 
#define IP6_NEXTH_ROUTING   43
 
#define IP6_NEXTH_FRAGMENT   44
 
#define IP6_NEXTH_ICMP6   58
 
#define IP6_NEXTH_NONE   59
 
#define IP6_NEXTH_DESTOPTS   60
 
#define IP6_NEXTH_UDPLITE   136
 
#define IP6H_V(hdr)   ((lwip_ntohl((hdr)->_v_tc_fl) >> 28) & 0x0f)
 
#define IP6H_TC(hdr)   ((lwip_ntohl((hdr)->_v_tc_fl) >> 20) & 0xff)
 
#define IP6H_FL(hdr)   (lwip_ntohl((hdr)->_v_tc_fl) & 0x000fffff)
 
#define IP6H_PLEN(hdr)   (lwip_ntohs((hdr)->_plen))
 
#define IP6H_NEXTH(hdr)   ((hdr)->_nexth)
 
#define IP6H_NEXTH_P(hdr)   ((u8_t *)(hdr) + 6)
 
#define IP6H_HOPLIM(hdr)   ((hdr)->_hoplim)
 
#define IP6H_VTCFL_SET(hdr, v, tc, fl)   (hdr)->_v_tc_fl = (lwip_htonl((((u32_t)(v)) << 28) | (((u32_t)(tc)) << 20) | (fl)))
 
#define IP6H_PLEN_SET(hdr, plen)   (hdr)->_plen = lwip_htons(plen)
 
#define IP6H_NEXTH_SET(hdr, nexth)   (hdr)->_nexth = (nexth)
 
#define IP6H_HOPLIM_SET(hdr, hl)   (hdr)->_hoplim = (u8_t)(hl)
 
#define IP6_PAD1_OPTION   0
 
#define IP6_PADN_OPTION   1
 
#define IP6_ROUTER_ALERT_OPTION   5
 
#define IP6_JUMBO_OPTION   194
 
#define IP6_HOME_ADDRESS_OPTION   201
 
#define IP6_ROUTER_ALERT_DLEN   2
 
#define IP6_ROUTER_ALERT_VALUE_MLD   0
 
#define IP6_OPT_HLEN   2
 
#define IP6_OPT_TYPE_ACTION(hdr)   ((((hdr)->_opt_type) >> 6) & 0x3)
 
#define IP6_OPT_TYPE_CHANGE(hdr)   ((((hdr)->_opt_type) >> 5) & 0x1)
 
#define IP6_OPT_TYPE(hdr)   ((hdr)->_opt_type)
 
#define IP6_OPT_DLEN(hdr)   ((hdr)->_opt_dlen)
 
#define IP6_HBH_HLEN   2
 
#define IP6_HBH_NEXTH(hdr)   ((hdr)->_nexth)
 
#define IP6_DEST_HLEN   2
 
#define IP6_DEST_NEXTH(hdr)   ((hdr)->_nexth)
 
#define IP6_ROUT_TYPE2   2
 
#define IP6_ROUT_RPL   3
 
#define IP6_ROUT_NEXTH(hdr)   ((hdr)->_nexth)
 
#define IP6_ROUT_TYPE(hdr)   ((hdr)->_routing_type)
 
#define IP6_ROUT_SEG_LEFT(hdr)   ((hdr)->_segments_left)
 
#define IP6_FRAG_HLEN   8
 
#define IP6_FRAG_OFFSET_MASK   0xfff8
 
#define IP6_FRAG_MORE_FLAG   0x0001
 
#define IP6_FRAG_NEXTH(hdr)   ((hdr)->_nexth)
 
#define IP6_FRAG_MBIT(hdr)   (lwip_ntohs((hdr)->_fragment_offset) & 0x1)
 
#define IP6_FRAG_ID(hdr)   (lwip_ntohl((hdr)->_identification))
 

Typedefs

typedef typedefPACK_STRUCT_END struct ip6_addr_packed ip6_addr_p_t
 

Variables

PACK_STRUCT_BEGIN struct ip6_addr_packed PACK_STRUCT_STRUCT
 

Detailed Description

IPv6 protocol definitions

Definition in file ip6.h.

Macro Definition Documentation

◆ IP6_DEST_HLEN

#define IP6_DEST_HLEN   2

Definition at line 160 of file ip6.h.

◆ IP6_DEST_NEXTH

#define IP6_DEST_NEXTH (   hdr)    ((hdr)->_nexth)

Definition at line 176 of file ip6.h.

◆ IP6_FRAG_HLEN

#define IP6_FRAG_HLEN   8

Definition at line 205 of file ip6.h.

◆ IP6_FRAG_ID

#define IP6_FRAG_ID (   hdr)    (lwip_ntohl((hdr)->_identification))

Definition at line 229 of file ip6.h.

◆ IP6_FRAG_MBIT

#define IP6_FRAG_MBIT (   hdr)    (lwip_ntohs((hdr)->_fragment_offset) & 0x1)

Definition at line 228 of file ip6.h.

◆ IP6_FRAG_MORE_FLAG

#define IP6_FRAG_MORE_FLAG   0x0001

Definition at line 207 of file ip6.h.

◆ IP6_FRAG_NEXTH

#define IP6_FRAG_NEXTH (   hdr)    ((hdr)->_nexth)

Definition at line 227 of file ip6.h.

◆ IP6_FRAG_OFFSET_MASK

#define IP6_FRAG_OFFSET_MASK   0xfff8

Definition at line 206 of file ip6.h.

◆ IP6_HBH_HLEN

#define IP6_HBH_HLEN   2

Definition at line 141 of file ip6.h.

◆ IP6_HBH_NEXTH

#define IP6_HBH_NEXTH (   hdr)    ((hdr)->_nexth)

Definition at line 157 of file ip6.h.

◆ IP6_HLEN

#define IP6_HLEN   40

Definition at line 64 of file ip6.h.

◆ IP6_HOME_ADDRESS_OPTION

#define IP6_HOME_ADDRESS_OPTION   201

Definition at line 116 of file ip6.h.

◆ IP6_JUMBO_OPTION

#define IP6_JUMBO_OPTION   194

Definition at line 115 of file ip6.h.

◆ IP6_MIN_MTU_LENGTH

#define IP6_MIN_MTU_LENGTH   1280

Definition at line 47 of file ip6.h.

◆ IP6_NEXTH_DESTOPTS

#define IP6_NEXTH_DESTOPTS   60

Definition at line 74 of file ip6.h.

◆ IP6_NEXTH_ENCAPS

#define IP6_NEXTH_ENCAPS   41

Definition at line 69 of file ip6.h.

◆ IP6_NEXTH_FRAGMENT

#define IP6_NEXTH_FRAGMENT   44

Definition at line 71 of file ip6.h.

◆ IP6_NEXTH_HOPBYHOP

#define IP6_NEXTH_HOPBYHOP   0

Definition at line 66 of file ip6.h.

◆ IP6_NEXTH_ICMP6

#define IP6_NEXTH_ICMP6   58

Definition at line 72 of file ip6.h.

◆ IP6_NEXTH_NONE

#define IP6_NEXTH_NONE   59

Definition at line 73 of file ip6.h.

◆ IP6_NEXTH_ROUTING

#define IP6_NEXTH_ROUTING   43

Definition at line 70 of file ip6.h.

◆ IP6_NEXTH_TCP

#define IP6_NEXTH_TCP   6

Definition at line 67 of file ip6.h.

◆ IP6_NEXTH_UDP

#define IP6_NEXTH_UDP   17

Definition at line 68 of file ip6.h.

◆ IP6_NEXTH_UDPLITE

#define IP6_NEXTH_UDPLITE   136

Definition at line 75 of file ip6.h.

◆ IP6_OPT_DLEN

#define IP6_OPT_DLEN (   hdr)    ((hdr)->_opt_dlen)

Definition at line 138 of file ip6.h.

◆ IP6_OPT_HLEN

#define IP6_OPT_HLEN   2

Definition at line 134 of file ip6.h.

◆ IP6_OPT_TYPE

#define IP6_OPT_TYPE (   hdr)    ((hdr)->_opt_type)

Definition at line 137 of file ip6.h.

◆ IP6_OPT_TYPE_ACTION

#define IP6_OPT_TYPE_ACTION (   hdr)    ((((hdr)->_opt_type) >> 6) & 0x3)

Definition at line 135 of file ip6.h.

◆ IP6_OPT_TYPE_CHANGE

#define IP6_OPT_TYPE_CHANGE (   hdr)    ((((hdr)->_opt_type) >> 5) & 0x1)

Definition at line 136 of file ip6.h.

◆ IP6_PAD1_OPTION

#define IP6_PAD1_OPTION   0

Definition at line 112 of file ip6.h.

◆ IP6_PADN_OPTION

#define IP6_PADN_OPTION   1

Definition at line 113 of file ip6.h.

◆ IP6_ROUT_NEXTH

#define IP6_ROUT_NEXTH (   hdr)    ((hdr)->_nexth)

Definition at line 200 of file ip6.h.

◆ IP6_ROUT_RPL

#define IP6_ROUT_RPL   3

Definition at line 180 of file ip6.h.

◆ IP6_ROUT_SEG_LEFT

#define IP6_ROUT_SEG_LEFT (   hdr)    ((hdr)->_segments_left)

Definition at line 202 of file ip6.h.

◆ IP6_ROUT_TYPE

#define IP6_ROUT_TYPE (   hdr)    ((hdr)->_routing_type)

Definition at line 201 of file ip6.h.

◆ IP6_ROUT_TYPE2

#define IP6_ROUT_TYPE2   2

Definition at line 179 of file ip6.h.

◆ IP6_ROUTER_ALERT_DLEN

#define IP6_ROUTER_ALERT_DLEN   2

Definition at line 117 of file ip6.h.

◆ IP6_ROUTER_ALERT_OPTION

#define IP6_ROUTER_ALERT_OPTION   5

Definition at line 114 of file ip6.h.

◆ IP6_ROUTER_ALERT_VALUE_MLD

#define IP6_ROUTER_ALERT_VALUE_MLD   0

Definition at line 118 of file ip6.h.

◆ IP6H_FL

#define IP6H_FL (   hdr)    (lwip_ntohl((hdr)->_v_tc_fl) & 0x000fffff)

Definition at line 101 of file ip6.h.

◆ IP6H_HOPLIM

#define IP6H_HOPLIM (   hdr)    ((hdr)->_hoplim)

Definition at line 105 of file ip6.h.

◆ IP6H_HOPLIM_SET

#define IP6H_HOPLIM_SET (   hdr,
  hl 
)    (hdr)->_hoplim = (u8_t)(hl)

Definition at line 109 of file ip6.h.

◆ IP6H_NEXTH

#define IP6H_NEXTH (   hdr)    ((hdr)->_nexth)

Definition at line 103 of file ip6.h.

◆ IP6H_NEXTH_P

#define IP6H_NEXTH_P (   hdr)    ((u8_t *)(hdr) + 6)

Definition at line 104 of file ip6.h.

◆ IP6H_NEXTH_SET

#define IP6H_NEXTH_SET (   hdr,
  nexth 
)    (hdr)->_nexth = (nexth)

Definition at line 108 of file ip6.h.

◆ IP6H_PLEN

#define IP6H_PLEN (   hdr)    (lwip_ntohs((hdr)->_plen))

Definition at line 102 of file ip6.h.

◆ IP6H_PLEN_SET

#define IP6H_PLEN_SET (   hdr,
  plen 
)    (hdr)->_plen = lwip_htons(plen)

Definition at line 107 of file ip6.h.

◆ IP6H_TC

#define IP6H_TC (   hdr)    ((lwip_ntohl((hdr)->_v_tc_fl) >> 20) & 0xff)

Definition at line 100 of file ip6.h.

◆ IP6H_V

#define IP6H_V (   hdr)    ((lwip_ntohl((hdr)->_v_tc_fl) >> 28) & 0x0f)

Definition at line 99 of file ip6.h.

◆ IP6H_VTCFL_SET

#define IP6H_VTCFL_SET (   hdr,
  v,
  tc,
  fl 
)    (hdr)->_v_tc_fl = (lwip_htonl((((u32_t)(v)) << 28) | (((u32_t)(tc)) << 20) | (fl)))

Definition at line 106 of file ip6.h.

Typedef Documentation

◆ ip6_addr_p_t

typedef typedefPACK_STRUCT_END struct ip6_addr_packed ip6_addr_p_t

Definition at line 62 of file ip6.h.

Variable Documentation

◆ PACK_STRUCT_STRUCT