1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#ifndef _LINUX_IN6_H
22#define _LINUX_IN6_H
23
24#include <linux/types.h>
25
26
27
28
29
30struct in6_addr
31{
32 union
33 {
34 __u8 u6_addr8[16];
35 __u16 u6_addr16[8];
36 __u32 u6_addr32[4];
37 } in6_u;
38#define s6_addr in6_u.u6_addr8
39#define s6_addr16 in6_u.u6_addr16
40#define s6_addr32 in6_u.u6_addr32
41};
42
43
44
45
46
47extern const struct in6_addr in6addr_any;
48#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
49extern const struct in6_addr in6addr_loopback;
50#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
51
52struct sockaddr_in6 {
53 unsigned short int sin6_family;
54 __u16 sin6_port;
55 __u32 sin6_flowinfo;
56 struct in6_addr sin6_addr;
57 __u32 sin6_scope_id;
58};
59
60struct ipv6_mreq {
61
62 struct in6_addr ipv6mr_multiaddr;
63
64
65 int ipv6mr_ifindex;
66};
67
68#define ipv6mr_acaddr ipv6mr_multiaddr
69
70struct in6_flowlabel_req
71{
72 struct in6_addr flr_dst;
73 __u32 flr_label;
74 __u8 flr_action;
75 __u8 flr_share;
76 __u16 flr_flags;
77 __u16 flr_expires;
78 __u16 flr_linger;
79 __u32 __flr_pad;
80
81};
82
83#define IPV6_FL_A_GET 0
84#define IPV6_FL_A_PUT 1
85#define IPV6_FL_A_RENEW 2
86
87#define IPV6_FL_F_CREATE 1
88#define IPV6_FL_F_EXCL 2
89
90#define IPV6_FL_S_NONE 0
91#define IPV6_FL_S_EXCL 1
92#define IPV6_FL_S_PROCESS 2
93#define IPV6_FL_S_USER 3
94#define IPV6_FL_S_ANY 255
95
96
97
98
99
100
101
102
103
104
105#define IPV6_FLOWINFO_FLOWLABEL 0x000fffff
106#define IPV6_FLOWINFO_PRIORITY 0x0ff00000
107
108
109#define IPV6_PRIORITY_UNCHARACTERIZED 0x0000
110#define IPV6_PRIORITY_FILLER 0x0100
111#define IPV6_PRIORITY_UNATTENDED 0x0200
112#define IPV6_PRIORITY_RESERVED1 0x0300
113#define IPV6_PRIORITY_BULK 0x0400
114#define IPV6_PRIORITY_RESERVED2 0x0500
115#define IPV6_PRIORITY_INTERACTIVE 0x0600
116#define IPV6_PRIORITY_CONTROL 0x0700
117#define IPV6_PRIORITY_8 0x0800
118#define IPV6_PRIORITY_9 0x0900
119#define IPV6_PRIORITY_10 0x0a00
120#define IPV6_PRIORITY_11 0x0b00
121#define IPV6_PRIORITY_12 0x0c00
122#define IPV6_PRIORITY_13 0x0d00
123#define IPV6_PRIORITY_14 0x0e00
124#define IPV6_PRIORITY_15 0x0f00
125
126
127
128
129#define IPPROTO_HOPOPTS 0
130#define IPPROTO_ROUTING 43
131#define IPPROTO_FRAGMENT 44
132#define IPPROTO_ICMPV6 58
133#define IPPROTO_NONE 59
134#define IPPROTO_DSTOPTS 60
135
136
137
138
139#define IPV6_TLV_PAD0 0
140#define IPV6_TLV_PADN 1
141#define IPV6_TLV_ROUTERALERT 5
142#define IPV6_TLV_JUMBO 194
143
144
145
146
147
148#define IPV6_ADDRFORM 1
149#define IPV6_PKTINFO 2
150#define IPV6_HOPOPTS 3
151#define IPV6_DSTOPTS 4
152#define IPV6_RTHDR 5
153#define IPV6_PKTOPTIONS 6
154#define IPV6_CHECKSUM 7
155#define IPV6_HOPLIMIT 8
156#define IPV6_NEXTHOP 9
157#define IPV6_AUTHHDR 10
158#define IPV6_FLOWINFO 11
159
160#define IPV6_UNICAST_HOPS 16
161#define IPV6_MULTICAST_IF 17
162#define IPV6_MULTICAST_HOPS 18
163#define IPV6_MULTICAST_LOOP 19
164#define IPV6_ADD_MEMBERSHIP 20
165#define IPV6_DROP_MEMBERSHIP 21
166#define IPV6_ROUTER_ALERT 22
167#define IPV6_MTU_DISCOVER 23
168#define IPV6_MTU 24
169#define IPV6_RECVERR 25
170#define IPV6_V6ONLY 26
171#define IPV6_JOIN_ANYCAST 27
172#define IPV6_LEAVE_ANYCAST 28
173
174
175#define IPV6_PMTUDISC_DONT 0
176#define IPV6_PMTUDISC_WANT 1
177#define IPV6_PMTUDISC_DO 2
178
179
180#define IPV6_FLOWLABEL_MGR 32
181#define IPV6_FLOWINFO_SEND 33
182
183#define IPV6_IPSEC_POLICY 34
184#define IPV6_XFRM_POLICY 35
185
186
187#endif
188