ipv6.h
001: #ifndef _IPV6_H
002: #define _IPV6_H
003:
004: #include <linux/types.h>
005: #include <linux/in6.h>
006: #include <asm/byteorder.h>
007:
008:
009:
010: #define IPV6_MIN_MTU 1280
011:
012:
013:
014:
015:
016:
017:
018:
019: struct in6_pktinfo {
020: struct in6_addr ipi6_addr;
021: int ipi6_ifindex;
022: };
023:
024: struct ip6_mtuinfo {
025: struct sockaddr_in6 ip6m_addr;
026: __u32 ip6m_mtu;
027: };
028:
029: struct in6_ifreq {
030: struct in6_addr ifr6_addr;
031: __u32 ifr6_prefixlen;
032: int ifr6_ifindex;
033: };
034:
035: #define IPV6_SRCRT_STRICT 0x01
036: #define IPV6_SRCRT_TYPE_0 0
037: #define IPV6_SRCRT_TYPE_2 2
038:
039:
040:
041:
042: struct ipv6_rt_hdr {
043: __u8 nexthdr;
044: __u8 hdrlen;
045: __u8 type;
046: __u8 segments_left;
047:
048:
049:
050:
051:
052: };
053:
054:
055: struct ipv6_opt_hdr {
056: __u8 nexthdr;
057: __u8 hdrlen;
058:
059:
060:
061: } __attribute__((packed));
062:
063: #define ipv6_destopt_hdr ipv6_opt_hdr
064: #define ipv6_hopopt_hdr ipv6_opt_hdr
065:
066:
067:
068:
069:
070:
071: struct rt0_hdr {
072: struct ipv6_rt_hdr rt_hdr;
073: __u32 reserved;
074: struct in6_addr addr[0];
075:
076: #define rt0_type rt_hdr.type
077: };
078:
079:
080:
081:
082:
083: struct rt2_hdr {
084: struct ipv6_rt_hdr rt_hdr;
085: __u32 reserved;
086: struct in6_addr addr;
087:
088: #define rt2_type rt_hdr.type
089: };
090:
091:
092:
093:
094:
095: struct ipv6_destopt_hao {
096: __u8 type;
097: __u8 length;
098: struct in6_addr addr;
099: } __attribute__((packed));
100:
101:
102:
103:
104:
105:
106:
107:
108: struct ipv6hdr {
109: #if defined(__LITTLE_ENDIAN_BITFIELD)
110: __u8 priority:4,
111: version:4;
112: #elif defined(__BIG_ENDIAN_BITFIELD)
113: __u8 version:4,
114: priority:4;
115: #else
116: #error "Please fix <asm/byteorder.h>"
117: #endif
118: __u8 flow_lbl[3];
119:
120: __be16 payload_len;
121: __u8 nexthdr;
122: __u8 hop_limit;
123:
124: struct in6_addr saddr;
125: struct in6_addr daddr;
126: };
127:
128:
129:
130: enum {
131: DEVCONF_FORWARDING = 0,
132: DEVCONF_HOPLIMIT,
133: DEVCONF_MTU6,
134: DEVCONF_ACCEPT_RA,
135: DEVCONF_ACCEPT_REDIRECTS,
136: DEVCONF_AUTOCONF,
137: DEVCONF_DAD_TRANSMITS,
138: DEVCONF_RTR_SOLICITS,
139: DEVCONF_RTR_SOLICIT_INTERVAL,
140: DEVCONF_RTR_SOLICIT_DELAY,
141: DEVCONF_USE_TEMPADDR,
142: DEVCONF_TEMP_VALID_LFT,
143: DEVCONF_TEMP_PREFERED_LFT,
144: DEVCONF_REGEN_MAX_RETRY,
145: DEVCONF_MAX_DESYNC_FACTOR,
146: DEVCONF_MAX_ADDRESSES,
147: DEVCONF_FORCE_MLD_VERSION,
148: DEVCONF_ACCEPT_RA_DEFRTR,
149: DEVCONF_ACCEPT_RA_PINFO,
150: DEVCONF_ACCEPT_RA_RTR_PREF,
151: DEVCONF_RTR_PROBE_INTERVAL,
152: DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN,
153: DEVCONF_PROXY_NDP,
154: DEVCONF_OPTIMISTIC_DAD,
155: DEVCONF_ACCEPT_SOURCE_ROUTE,
156: DEVCONF_MC_FORWARDING,
157: DEVCONF_DISABLE_IPV6,
158: DEVCONF_ACCEPT_DAD,
159: DEVCONF_FORCE_TLLAO,
160: DEVCONF_MAX
161: };
162:
163:
164: #endif
165:
© Andrew Scott 2006 -
2025,
All Rights Reserved