INET Framework for OMNeT++/OMNEST
ip6.h File Reference

Classes

struct  inet::in6_addr
 
struct  inet::ip6_hdr
 
struct  inet::ip6_ext
 
struct  inet::ip6_hbh
 
struct  inet::ip6_dest
 
struct  inet::ip6_opt
 
struct  inet::ip6_opt_jumbo
 
struct  inet::ip6_opt_nsap
 
struct  inet::ip6_opt_tunnel
 
struct  inet::ip6_opt_router
 
struct  inet::ip6_rthdr
 
struct  inet::ip6_rthdr0
 
struct  inet::ip6_frag
 

Namespaces

 inet
 Copyright (c) 2005 Jan Ringo�, www.ringos.cz.
 

Macros

#define __PACKED__   __attribute__((packed))
 
#define ip6_vfc   ip6_ctlun.ip6_un2_vfc
 
#define ip6_flow   ip6_ctlun.ip6_un1.ip6_un1_flow
 
#define ip6_plen   ip6_ctlun.ip6_un1.ip6_un1_plen
 
#define ip6_nxt   ip6_ctlun.ip6_un1.ip6_un1_nxt
 
#define ip6_hlim   ip6_ctlun.ip6_un1.ip6_un1_hlim
 
#define ip6_hops   ip6_ctlun.ip6_un1.ip6_un1_hlim
 
#define IPV6_VERSION   0x60
 
#define IPV6_VERSION_MASK   0xf0
 
#define IPV6_FLOWINFO_MASK   0x0fffffff /* flow info (28 bits) */
 
#define IPV6_FLOWLABEL_MASK   0x000fffff /* flow label (20 bits) */
 
#define IP6TOS_CE   0x01 /* congestion experienced */
 
#define IP6TOS_ECT   0x02 /* ECN-capable transport */
 
#define IP6OPT_PAD1   0x00 /* 00 0 00000 */
 
#define IP6OPT_PADN   0x01 /* 00 0 00001 */
 
#define IP6OPT_JUMBO   0xC2 /* 11 0 00010 = 194 */
 
#define IP6OPT_NSAP_ADDR   0xC3 /* 11 0 00011 */
 
#define IP6OPT_TUNNEL_LIMIT   0x04 /* 00 0 00100 */
 
#define IP6OPT_RTALERT   0x05 /* 00 0 00101 (KAME definition) */
 
#define IP6OPT_ROUTER_ALERT   0x05 /* 00 0 00101 (RFC3542, recommended) */
 
#define IP6OPT_RTALERT_LEN   4
 
#define IP6OPT_RTALERT_MLD   0 /* Datagram contains an MLD message */
 
#define IP6OPT_RTALERT_RSVP   1 /* Datagram contains an RSVP message */
 
#define IP6OPT_RTALERT_ACTNET   2 /* contains an Active Networks msg */
 
#define IP6OPT_MINLEN   2
 
#define IP6OPT_EID   0x8a /* 10 0 01010 */
 
#define IP6OPT_TYPE(o)   ((o) & 0xC0)
 
#define IP6OPT_TYPE_SKIP   0x00
 
#define IP6OPT_TYPE_DISCARD   0x40
 
#define IP6OPT_TYPE_FORCEICMP   0x80
 
#define IP6OPT_TYPE_ICMP   0xC0
 
#define IP6OPT_MUTABLE   0x20
 
#define IP6OPT_JUMBO_LEN   6
 
#define IP6_ALERT_MLD   0x0000
 
#define IP6_ALERT_RSVP   0x0001
 
#define IP6_ALERT_AN   0x0002
 
#define IP6F_OFF_MASK   0xfff8 /* mask out offset from _offlg */
 
#define IP6F_RESERVED_MASK   0x0006 /* reserved bits in ip6f_offlg */
 
#define IP6F_MORE_FRAG   0x0001 /* more-fragments flag */
 
#define IPV6_MAXHLIM   255 /* maximum hoplimit */
 
#define IPV6_DEFHLIM   64 /* default hlim */
 
#define IPV6_FRAGTTL   120 /* ttl for fragment packets, in slowtimo tick */
 
#define IPV6_HLIMDEC   1 /* subtracted when forwarding */
 
#define IPV6_MMTU   1280 /* minimal MTU and reassembly. 1024 + 256 */
 
#define IPV6_MAXPACKET   65535 /* ip6 max packet size without Jumbo payload*/
 
#define IPV6_MAXOPTHDR   2048 /* max option header size, 256 64-bit words */
 

Typedefs

typedef uint8_t inet::u_int8_t
 
typedef uint16_t inet::u_int16_t
 
typedef uint32_t inet::u_int32_t
 
typedef uint8_t inet::__uint8_t
 
typedef uint16_t inet::__uint16_t
 
typedef uint32_t inet::__uint32_t
 

Variables

struct inet::ip6_hdr inet::__PACKED__
 

Macro Definition Documentation

◆ __PACKED__

#define __PACKED__   __attribute__((packed))

◆ IP6_ALERT_AN

#define IP6_ALERT_AN   0x0002

◆ IP6_ALERT_MLD

#define IP6_ALERT_MLD   0x0000

◆ IP6_ALERT_RSVP

#define IP6_ALERT_RSVP   0x0001

◆ ip6_flow

#define ip6_flow   ip6_ctlun.ip6_un1.ip6_un1_flow

◆ ip6_hlim

#define ip6_hlim   ip6_ctlun.ip6_un1.ip6_un1_hlim

◆ ip6_hops

#define ip6_hops   ip6_ctlun.ip6_un1.ip6_un1_hlim

◆ ip6_nxt

#define ip6_nxt   ip6_ctlun.ip6_un1.ip6_un1_nxt

◆ ip6_plen

#define ip6_plen   ip6_ctlun.ip6_un1.ip6_un1_plen

◆ ip6_vfc

#define ip6_vfc   ip6_ctlun.ip6_un2_vfc

◆ IP6F_MORE_FRAG

#define IP6F_MORE_FRAG   0x0001 /* more-fragments flag */

◆ IP6F_OFF_MASK

#define IP6F_OFF_MASK   0xfff8 /* mask out offset from _offlg */

◆ IP6F_RESERVED_MASK

#define IP6F_RESERVED_MASK   0x0006 /* reserved bits in ip6f_offlg */

◆ IP6OPT_EID

#define IP6OPT_EID   0x8a /* 10 0 01010 */

◆ IP6OPT_JUMBO

#define IP6OPT_JUMBO   0xC2 /* 11 0 00010 = 194 */

◆ IP6OPT_JUMBO_LEN

#define IP6OPT_JUMBO_LEN   6

◆ IP6OPT_MINLEN

#define IP6OPT_MINLEN   2

◆ IP6OPT_MUTABLE

#define IP6OPT_MUTABLE   0x20

◆ IP6OPT_NSAP_ADDR

#define IP6OPT_NSAP_ADDR   0xC3 /* 11 0 00011 */

◆ IP6OPT_PAD1

#define IP6OPT_PAD1   0x00 /* 00 0 00000 */

◆ IP6OPT_PADN

#define IP6OPT_PADN   0x01 /* 00 0 00001 */

◆ IP6OPT_ROUTER_ALERT

#define IP6OPT_ROUTER_ALERT   0x05 /* 00 0 00101 (RFC3542, recommended) */

◆ IP6OPT_RTALERT

#define IP6OPT_RTALERT   0x05 /* 00 0 00101 (KAME definition) */

◆ IP6OPT_RTALERT_ACTNET

#define IP6OPT_RTALERT_ACTNET   2 /* contains an Active Networks msg */

◆ IP6OPT_RTALERT_LEN

#define IP6OPT_RTALERT_LEN   4

◆ IP6OPT_RTALERT_MLD

#define IP6OPT_RTALERT_MLD   0 /* Datagram contains an MLD message */

◆ IP6OPT_RTALERT_RSVP

#define IP6OPT_RTALERT_RSVP   1 /* Datagram contains an RSVP message */

◆ IP6OPT_TUNNEL_LIMIT

#define IP6OPT_TUNNEL_LIMIT   0x04 /* 00 0 00100 */

◆ IP6OPT_TYPE

#define IP6OPT_TYPE (   o)    ((o) & 0xC0)

◆ IP6OPT_TYPE_DISCARD

#define IP6OPT_TYPE_DISCARD   0x40

◆ IP6OPT_TYPE_FORCEICMP

#define IP6OPT_TYPE_FORCEICMP   0x80

◆ IP6OPT_TYPE_ICMP

#define IP6OPT_TYPE_ICMP   0xC0

◆ IP6OPT_TYPE_SKIP

#define IP6OPT_TYPE_SKIP   0x00

◆ IP6TOS_CE

#define IP6TOS_CE   0x01 /* congestion experienced */

◆ IP6TOS_ECT

#define IP6TOS_ECT   0x02 /* ECN-capable transport */

◆ IPV6_DEFHLIM

#define IPV6_DEFHLIM   64 /* default hlim */

◆ IPV6_FLOWINFO_MASK

#define IPV6_FLOWINFO_MASK   0x0fffffff /* flow info (28 bits) */

◆ IPV6_FLOWLABEL_MASK

#define IPV6_FLOWLABEL_MASK   0x000fffff /* flow label (20 bits) */

◆ IPV6_FRAGTTL

#define IPV6_FRAGTTL   120 /* ttl for fragment packets, in slowtimo tick */

◆ IPV6_HLIMDEC

#define IPV6_HLIMDEC   1 /* subtracted when forwarding */

◆ IPV6_MAXHLIM

#define IPV6_MAXHLIM   255 /* maximum hoplimit */

◆ IPV6_MAXOPTHDR

#define IPV6_MAXOPTHDR   2048 /* max option header size, 256 64-bit words */

◆ IPV6_MAXPACKET

#define IPV6_MAXPACKET   65535 /* ip6 max packet size without Jumbo payload*/

◆ IPV6_MMTU

#define IPV6_MMTU   1280 /* minimal MTU and reassembly. 1024 + 256 */

◆ IPV6_VERSION

#define IPV6_VERSION   0x60

◆ IPV6_VERSION_MASK

#define IPV6_VERSION_MASK   0xf0