Blame view
include/linux/in6.h
7.19 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
/* * Types and definitions for AF_INET6 * Linux INET6 implementation * * Authors: * Pedro Roque <roque@di.fc.ul.pt> * * Sources: * IPv6 Program Interfaces for BSD Systems * <draft-ietf-ipngwg-bsd-api-05.txt> * * Advanced Sockets API for IPv6 * <draft-stevens-advanced-api-00.txt> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #ifndef _LINUX_IN6_H #define _LINUX_IN6_H #include <linux/types.h> /* * IPv6 address structure */ |
d94d9fee9 net: cleanup incl... |
29 30 |
struct in6_addr { union { |
1da177e4c Linux-2.6.12-rc2 |
31 |
__u8 u6_addr8[16]; |
48818f822 [IPV6]: struct in... |
32 33 |
__be16 u6_addr16[8]; __be32 u6_addr32[4]; |
1da177e4c Linux-2.6.12-rc2 |
34 35 36 37 38 39 40 41 42 43 |
} in6_u; #define s6_addr in6_u.u6_addr8 #define s6_addr16 in6_u.u6_addr16 #define s6_addr32 in6_u.u6_addr32 }; /* IPv6 Wildcard Address (::) and Loopback Address (::1) defined in RFC2553 * NOTE: Be aware the IN6ADDR_* constants and in6addr_* externals are defined * in network byte order, not in host byte order as are the IPv4 equivalents */ |
25d00fddf headers_check fix... |
44 |
#ifdef __KERNEL__ |
1da177e4c Linux-2.6.12-rc2 |
45 46 |
extern const struct in6_addr in6addr_any; #define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } } |
1da177e4c Linux-2.6.12-rc2 |
47 48 |
extern const struct in6_addr in6addr_loopback; #define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } } |
f3ee4010e [IPV6]: Define co... |
49 50 51 52 53 54 55 |
extern const struct in6_addr in6addr_linklocal_allnodes; #define IN6ADDR_LINKLOCAL_ALLNODES_INIT \ { { { 0xff,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } } extern const struct in6_addr in6addr_linklocal_allrouters; #define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \ { { { 0xff,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2 } } } #endif |
1da177e4c Linux-2.6.12-rc2 |
56 57 58 |
struct sockaddr_in6 { unsigned short int sin6_family; /* AF_INET6 */ |
e2e38e819 [IPV6]: sin6_port... |
59 |
__be16 sin6_port; /* Transport layer port # */ |
90bcaf7b4 [IPV6]: flowlabel... |
60 |
__be32 sin6_flowinfo; /* IPv6 flow information */ |
1da177e4c Linux-2.6.12-rc2 |
61 62 63 64 65 66 67 68 69 70 71 72 73 |
struct in6_addr sin6_addr; /* IPv6 address */ __u32 sin6_scope_id; /* scope id (new in RFC2553) */ }; struct ipv6_mreq { /* IPv6 multicast address of group */ struct in6_addr ipv6mr_multiaddr; /* local IPv6 address of interface */ int ipv6mr_ifindex; }; #define ipv6mr_acaddr ipv6mr_multiaddr |
d94d9fee9 net: cleanup incl... |
74 |
struct in6_flowlabel_req { |
1da177e4c Linux-2.6.12-rc2 |
75 |
struct in6_addr flr_dst; |
90bcaf7b4 [IPV6]: flowlabel... |
76 |
__be32 flr_label; |
1da177e4c Linux-2.6.12-rc2 |
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
__u8 flr_action; __u8 flr_share; __u16 flr_flags; __u16 flr_expires; __u16 flr_linger; __u32 __flr_pad; /* Options in format of IPV6_PKTOPTIONS */ }; #define IPV6_FL_A_GET 0 #define IPV6_FL_A_PUT 1 #define IPV6_FL_A_RENEW 2 #define IPV6_FL_F_CREATE 1 #define IPV6_FL_F_EXCL 2 #define IPV6_FL_S_NONE 0 #define IPV6_FL_S_EXCL 1 #define IPV6_FL_S_PROCESS 2 #define IPV6_FL_S_USER 3 #define IPV6_FL_S_ANY 255 /* * Bitmask constant declarations to help applications select out the * flow label and priority fields. * * Note that this are in host byte order while the flowinfo field of * sockaddr_in6 is in network byte order. */ #define IPV6_FLOWINFO_FLOWLABEL 0x000fffff #define IPV6_FLOWINFO_PRIORITY 0x0ff00000 |
6070d81eb tree-wide: fix mi... |
110 |
/* These definitions are obsolete */ |
1da177e4c Linux-2.6.12-rc2 |
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
#define IPV6_PRIORITY_UNCHARACTERIZED 0x0000 #define IPV6_PRIORITY_FILLER 0x0100 #define IPV6_PRIORITY_UNATTENDED 0x0200 #define IPV6_PRIORITY_RESERVED1 0x0300 #define IPV6_PRIORITY_BULK 0x0400 #define IPV6_PRIORITY_RESERVED2 0x0500 #define IPV6_PRIORITY_INTERACTIVE 0x0600 #define IPV6_PRIORITY_CONTROL 0x0700 #define IPV6_PRIORITY_8 0x0800 #define IPV6_PRIORITY_9 0x0900 #define IPV6_PRIORITY_10 0x0a00 #define IPV6_PRIORITY_11 0x0b00 #define IPV6_PRIORITY_12 0x0c00 #define IPV6_PRIORITY_13 0x0d00 #define IPV6_PRIORITY_14 0x0e00 #define IPV6_PRIORITY_15 0x0f00 /* * IPV6 extension headers */ #define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */ #define IPPROTO_ROUTING 43 /* IPv6 routing header */ #define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */ #define IPPROTO_ICMPV6 58 /* ICMPv6 */ #define IPPROTO_NONE 59 /* IPv6 no next header */ #define IPPROTO_DSTOPTS 60 /* IPv6 destination options */ |
2b741653b [IPV6] MIP6: Add ... |
137 |
#define IPPROTO_MH 135 /* IPv6 mobility header */ |
1da177e4c Linux-2.6.12-rc2 |
138 139 140 141 142 143 144 145 |
/* * IPv6 TLV options. */ #define IPV6_TLV_PAD0 0 #define IPV6_TLV_PADN 1 #define IPV6_TLV_ROUTERALERT 5 #define IPV6_TLV_JUMBO 194 |
842426e71 [IPV6] MIP6: Add ... |
146 |
#define IPV6_TLV_HAO 201 /* home address option */ |
1da177e4c Linux-2.6.12-rc2 |
147 148 149 150 151 152 |
/* * IPV6 socket options */ #define IPV6_ADDRFORM 1 |
333fad536 [IPV6]: Support s... |
153 154 155 156 157 |
#define IPV6_2292PKTINFO 2 #define IPV6_2292HOPOPTS 3 #define IPV6_2292DSTOPTS 4 #define IPV6_2292RTHDR 5 #define IPV6_2292PKTOPTIONS 6 |
1da177e4c Linux-2.6.12-rc2 |
158 |
#define IPV6_CHECKSUM 7 |
333fad536 [IPV6]: Support s... |
159 |
#define IPV6_2292HOPLIMIT 8 |
1da177e4c Linux-2.6.12-rc2 |
160 |
#define IPV6_NEXTHOP 9 |
7fe40f73d [IPV6]: remove mo... |
161 |
#define IPV6_AUTHHDR 10 /* obsolete */ |
1da177e4c Linux-2.6.12-rc2 |
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
#define IPV6_FLOWINFO 11 #define IPV6_UNICAST_HOPS 16 #define IPV6_MULTICAST_IF 17 #define IPV6_MULTICAST_HOPS 18 #define IPV6_MULTICAST_LOOP 19 #define IPV6_ADD_MEMBERSHIP 20 #define IPV6_DROP_MEMBERSHIP 21 #define IPV6_ROUTER_ALERT 22 #define IPV6_MTU_DISCOVER 23 #define IPV6_MTU 24 #define IPV6_RECVERR 25 #define IPV6_V6ONLY 26 #define IPV6_JOIN_ANYCAST 27 #define IPV6_LEAVE_ANYCAST 28 /* IPV6_MTU_DISCOVER values */ #define IPV6_PMTUDISC_DONT 0 #define IPV6_PMTUDISC_WANT 1 #define IPV6_PMTUDISC_DO 2 |
628a5c561 [INET]: Add IP(V6... |
182 |
#define IPV6_PMTUDISC_PROBE 3 |
1da177e4c Linux-2.6.12-rc2 |
183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
/* Flowlabel */ #define IPV6_FLOWLABEL_MGR 32 #define IPV6_FLOWINFO_SEND 33 #define IPV6_IPSEC_POLICY 34 #define IPV6_XFRM_POLICY 35 /* * Multicast: * Following socket options are shared between IPv4 and IPv6. * * MCAST_JOIN_GROUP 42 * MCAST_BLOCK_SOURCE 43 * MCAST_UNBLOCK_SOURCE 44 * MCAST_LEAVE_GROUP 45 * MCAST_JOIN_SOURCE_GROUP 46 * MCAST_LEAVE_SOURCE_GROUP 47 * MCAST_MSFILTER 48 */ |
9928890c1 [IPV6]: rearrange... |
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 |
/* * Advanced API (RFC3542) (1) * * Note: IPV6_RECVRTHDRDSTOPTS does not exist. see net/ipv6/datagram.c. */ #define IPV6_RECVPKTINFO 49 #define IPV6_PKTINFO 50 #define IPV6_RECVHOPLIMIT 51 #define IPV6_HOPLIMIT 52 #define IPV6_RECVHOPOPTS 53 #define IPV6_HOPOPTS 54 #define IPV6_RTHDRDSTOPTS 55 #define IPV6_RECVRTHDR 56 #define IPV6_RTHDR 57 #define IPV6_RECVDSTOPTS 58 #define IPV6_DSTOPTS 59 |
9928890c1 [IPV6]: rearrange... |
220 221 222 |
#define IPV6_RECVPATHMTU 60 #define IPV6_PATHMTU 61 #define IPV6_DONTFRAG 62 |
793b14731 IPv6: data struct... |
223 |
#if 0 /* not yet */ |
9928890c1 [IPV6]: rearrange... |
224 |
#define IPV6_USE_MIN_MTU 63 |
333fad536 [IPV6]: Support s... |
225 |
#endif |
dd27466df [IPV6]: Note valu... |
226 227 |
/* |
b96e7ecbd [NETFILTER]: ip6_... |
228 |
* Netfilter (1) |
dd27466df [IPV6]: Note valu... |
229 230 231 232 233 234 235 236 237 238 239 |
* * Following socket options are used in ip6_tables; * see include/linux/netfilter_ipv6/ip6_tables.h. * * IP6T_SO_SET_REPLACE / IP6T_SO_GET_INFO 64 * IP6T_SO_SET_ADD_COUNTERS / IP6T_SO_GET_ENTRIES 65 */ /* * Advanced API (RFC3542) (2) */ |
333fad536 [IPV6]: Support s... |
240 241 |
#define IPV6_RECVTCLASS 66 #define IPV6_TCLASS 67 |
333fad536 [IPV6]: Support s... |
242 |
|
b96e7ecbd [NETFILTER]: ip6_... |
243 244 245 246 247 248 249 250 251 |
/* * Netfilter (2) * * Following socket options are used in ip6_tables; * see include/linux/netfilter_ipv6/ip6_tables.h. * * IP6T_SO_GET_REVISION_MATCH 68 * IP6T_SO_GET_REVISION_TARGET 69 */ |
7cbca67c0 [IPV6]: Support S... |
252 253 254 255 256 257 258 259 260 261 |
/* RFC5014: Source address selection */ #define IPV6_ADDR_PREFERENCES 72 #define IPV6_PREFER_SRC_TMP 0x0001 #define IPV6_PREFER_SRC_PUBLIC 0x0002 #define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100 #define IPV6_PREFER_SRC_COA 0x0004 #define IPV6_PREFER_SRC_HOME 0x0400 #define IPV6_PREFER_SRC_CGA 0x0008 #define IPV6_PREFER_SRC_NONCGA 0x0800 |
e802af9ca IPv6: Generic TTL... |
262 263 |
/* RFC5082: Generalized Ttl Security Mechanism */ #define IPV6_MINHOPCOUNT 73 |
6c4686228 tproxy: added tpr... |
264 265 266 |
#define IPV6_ORIGDSTADDR 74 #define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR #define IPV6_TRANSPARENT 75 |
12802d058 [IPV6]: Comment M... |
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 |
/* * Multicast Routing: * see include/linux/mroute6.h. * * MRT6_INIT 200 * MRT6_DONE 201 * MRT6_ADD_MIF 202 * MRT6_DEL_MIF 203 * MRT6_ADD_MFC 204 * MRT6_DEL_MFC 205 * MRT6_VERSION 206 * MRT6_ASSERT 207 * MRT6_PIM 208 * (reserved) 209 */ |
1da177e4c Linux-2.6.12-rc2 |
282 |
#endif |