in6.h
001:
002:
003:
004:
005:
006: <roque@di.fc.ul.pt>
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021: #ifndef _LINUX_IN6_H
022: #define _LINUX_IN6_H
023:
024: #include <linux/types.h>
025:
026:
027:
028:
029:
030: struct in6_addr {
031: union {
032: __u8 u6_addr8[16];
033: __be16 u6_addr16[8];
034: __be32 u6_addr32[4];
035: } in6_u;
036: #define s6_addr in6_u.u6_addr8
037: #define s6_addr16 in6_u.u6_addr16
038: #define s6_addr32 in6_u.u6_addr32
039: };
040:
041:
042:
043:
044:
045:
046: struct sockaddr_in6 {
047: unsigned short int sin6_family;
048: __be16 sin6_port;
049: __be32 sin6_flowinfo;
050: struct in6_addr sin6_addr;
051: __u32 sin6_scope_id;
052: };
053:
054: struct ipv6_mreq {
055:
056: struct in6_addr ipv6mr_multiaddr;
057:
058:
059: int ipv6mr_ifindex;
060: };
061:
062: #define ipv6mr_acaddr ipv6mr_multiaddr
063:
064: struct in6_flowlabel_req {
065: struct in6_addr flr_dst;
066: __be32 flr_label;
067: __u8 flr_action;
068: __u8 flr_share;
069: __u16 flr_flags;
070: __u16 flr_expires;
071: __u16 flr_linger;
072: __u32 __flr_pad;
073:
074: };
075:
076: #define IPV6_FL_A_GET 0
077: #define IPV6_FL_A_PUT 1
078: #define IPV6_FL_A_RENEW 2
079:
080: #define IPV6_FL_F_CREATE 1
081: #define IPV6_FL_F_EXCL 2
082:
083: #define IPV6_FL_S_NONE 0
084: #define IPV6_FL_S_EXCL 1
085: #define IPV6_FL_S_PROCESS 2
086: #define IPV6_FL_S_USER 3
087: #define IPV6_FL_S_ANY 255
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098: #define IPV6_FLOWINFO_FLOWLABEL 0x000fffff
099: #define IPV6_FLOWINFO_PRIORITY 0x0ff00000
100:
101:
102: #define IPV6_PRIORITY_UNCHARACTERIZED 0x0000
103: #define IPV6_PRIORITY_FILLER 0x0100
104: #define IPV6_PRIORITY_UNATTENDED 0x0200
105: #define IPV6_PRIORITY_RESERVED1 0x0300
106: #define IPV6_PRIORITY_BULK 0x0400
107: #define IPV6_PRIORITY_RESERVED2 0x0500
108: #define IPV6_PRIORITY_INTERACTIVE 0x0600
109: #define IPV6_PRIORITY_CONTROL 0x0700
110: #define IPV6_PRIORITY_8 0x0800
111: #define IPV6_PRIORITY_9 0x0900
112: #define IPV6_PRIORITY_10 0x0a00
113: #define IPV6_PRIORITY_11 0x0b00
114: #define IPV6_PRIORITY_12 0x0c00
115: #define IPV6_PRIORITY_13 0x0d00
116: #define IPV6_PRIORITY_14 0x0e00
117: #define IPV6_PRIORITY_15 0x0f00
118:
119:
120:
121:
122: #define IPPROTO_HOPOPTS 0
123: #define IPPROTO_ROUTING 43
124: #define IPPROTO_FRAGMENT 44
125: #define IPPROTO_ICMPV6 58
126: #define IPPROTO_NONE 59
127: #define IPPROTO_DSTOPTS 60
128: #define IPPROTO_MH 135
129:
130:
131:
132:
133: #define IPV6_TLV_PAD0 0
134: #define IPV6_TLV_PADN 1
135: #define IPV6_TLV_ROUTERALERT 5
136: #define IPV6_TLV_JUMBO 194
137: #define IPV6_TLV_HAO 201
138:
139:
140:
141:
142:
143: #define IPV6_ADDRFORM 1
144: #define IPV6_2292PKTINFO 2
145: #define IPV6_2292HOPOPTS 3
146: #define IPV6_2292DSTOPTS 4
147: #define IPV6_2292RTHDR 5
148: #define IPV6_2292PKTOPTIONS 6
149: #define IPV6_CHECKSUM 7
150: #define IPV6_2292HOPLIMIT 8
151: #define IPV6_NEXTHOP 9
152: #define IPV6_AUTHHDR 10
153: #define IPV6_FLOWINFO 11
154:
155: #define IPV6_UNICAST_HOPS 16
156: #define IPV6_MULTICAST_IF 17
157: #define IPV6_MULTICAST_HOPS 18
158: #define IPV6_MULTICAST_LOOP 19
159: #define IPV6_ADD_MEMBERSHIP 20
160: #define IPV6_DROP_MEMBERSHIP 21
161: #define IPV6_ROUTER_ALERT 22
162: #define IPV6_MTU_DISCOVER 23
163: #define IPV6_MTU 24
164: #define IPV6_RECVERR 25
165: #define IPV6_V6ONLY 26
166: #define IPV6_JOIN_ANYCAST 27
167: #define IPV6_LEAVE_ANYCAST 28
168:
169:
170: #define IPV6_PMTUDISC_DONT 0
171: #define IPV6_PMTUDISC_WANT 1
172: #define IPV6_PMTUDISC_DO 2
173: #define IPV6_PMTUDISC_PROBE 3
174:
175:
176: #define IPV6_FLOWLABEL_MGR 32
177: #define IPV6_FLOWINFO_SEND 33
178:
179: #define IPV6_IPSEC_POLICY 34
180: #define IPV6_XFRM_POLICY 35
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201: #define IPV6_RECVPKTINFO 49
202: #define IPV6_PKTINFO 50
203: #define IPV6_RECVHOPLIMIT 51
204: #define IPV6_HOPLIMIT 52
205: #define IPV6_RECVHOPOPTS 53
206: #define IPV6_HOPOPTS 54
207: #define IPV6_RTHDRDSTOPTS 55
208: #define IPV6_RECVRTHDR 56
209: #define IPV6_RTHDR 57
210: #define IPV6_RECVDSTOPTS 58
211: #define IPV6_DSTOPTS 59
212: #define IPV6_RECVPATHMTU 60
213: #define IPV6_PATHMTU 61
214: #define IPV6_DONTFRAG 62
215: #if 0
216: #define IPV6_USE_MIN_MTU 63
217: #endif
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232: #define IPV6_RECVTCLASS 66
233: #define IPV6_TCLASS 67
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246: #define IPV6_ADDR_PREFERENCES 72
247:
248: #define IPV6_PREFER_SRC_TMP 0x0001
249: #define IPV6_PREFER_SRC_PUBLIC 0x0002
250: #define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100
251: #define IPV6_PREFER_SRC_COA 0x0004
252: #define IPV6_PREFER_SRC_HOME 0x0400
253: #define IPV6_PREFER_SRC_CGA 0x0008
254: #define IPV6_PREFER_SRC_NONCGA 0x0800
255:
256:
257: #define IPV6_MINHOPCOUNT 73
258:
259: #define IPV6_ORIGDSTADDR 74
260: #define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR
261: #define IPV6_TRANSPARENT 75
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278: #endif
279:
© Andrew Scott 2006 -
2025,
All Rights Reserved