Blame view
include/linux/ipv6.h
11.8 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 |
#ifndef _IPV6_H #define _IPV6_H |
5c6aa2bad headers_check fix... |
3 |
#include <linux/types.h> |
1da177e4c Linux-2.6.12-rc2 |
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <linux/in6.h> #include <asm/byteorder.h> /* The latest drafts declared increase in minimal mtu up to 1280. */ #define IPV6_MIN_MTU 1280 /* * Advanced API * source interface/address selection, source routing, etc... * *under construction* */ struct in6_pktinfo { struct in6_addr ipi6_addr; int ipi6_ifindex; }; |
793b14731 IPv6: data struct... |
22 23 24 25 |
struct ip6_mtuinfo { struct sockaddr_in6 ip6m_addr; __u32 ip6m_mtu; }; |
1da177e4c Linux-2.6.12-rc2 |
26 27 28 29 30 31 |
struct in6_ifreq { struct in6_addr ifr6_addr; __u32 ifr6_prefixlen; int ifr6_ifindex; }; |
bb4dbf9e6 [IPV6]: Do not se... |
32 33 |
#define IPV6_SRCRT_STRICT 0x01 /* Deprecated; will be removed */ #define IPV6_SRCRT_TYPE_0 0 /* Deprecated; will be removed */ |
642ec62ee [IPV6] MIP6: Add ... |
34 |
#define IPV6_SRCRT_TYPE_2 2 /* IPv6 type 2 Routing Header */ |
1da177e4c Linux-2.6.12-rc2 |
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
/* * routing header */ struct ipv6_rt_hdr { __u8 nexthdr; __u8 hdrlen; __u8 type; __u8 segments_left; /* * type specific data * variable length field */ }; struct ipv6_opt_hdr { __u8 nexthdr; __u8 hdrlen; /* * TLV encoded option data follows. */ |
09cd2b99c header: fix broke... |
58 |
} __attribute__((packed)); /* required for some archs */ |
1da177e4c Linux-2.6.12-rc2 |
59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
#define ipv6_destopt_hdr ipv6_opt_hdr #define ipv6_hopopt_hdr ipv6_opt_hdr #ifdef __KERNEL__ #define ipv6_optlen(p) (((p)->hdrlen+1) << 3) #endif /* * routing header type 0 (used in cmsghdr struct) */ struct rt0_hdr { struct ipv6_rt_hdr rt_hdr; |
e6df439b8 [IPV6]: Bring Typ... |
73 |
__u32 reserved; |
1da177e4c Linux-2.6.12-rc2 |
74 75 76 77 |
struct in6_addr addr[0]; #define rt0_type rt_hdr.type }; |
642ec62ee [IPV6] MIP6: Add ... |
78 79 80 81 82 83 84 85 86 87 88 |
/* * routing header type 2 */ struct rt2_hdr { struct ipv6_rt_hdr rt_hdr; __u32 reserved; struct in6_addr addr; #define rt2_type rt_hdr.type }; |
842426e71 [IPV6] MIP6: Add ... |
89 90 91 92 93 94 95 96 |
/* * home address option in destination options header */ struct ipv6_destopt_hao { __u8 type; __u8 length; struct in6_addr addr; |
09cd2b99c header: fix broke... |
97 |
} __attribute__((packed)); |
842426e71 [IPV6] MIP6: Add ... |
98 |
|
1da177e4c Linux-2.6.12-rc2 |
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
/* * IPv6 fixed header * * BEWARE, it is incorrect. The first 4 bits of flow_lbl * are glued to priority now, forming "class". */ struct ipv6hdr { #if defined(__LITTLE_ENDIAN_BITFIELD) __u8 priority:4, version:4; #elif defined(__BIG_ENDIAN_BITFIELD) __u8 version:4, priority:4; #else #error "Please fix <asm/byteorder.h>" #endif __u8 flow_lbl[3]; |
43505077d [IPV6]: IPv6 head... |
117 |
__be16 payload_len; |
1da177e4c Linux-2.6.12-rc2 |
118 119 120 121 122 123 |
__u8 nexthdr; __u8 hop_limit; struct in6_addr saddr; struct in6_addr daddr; }; |
ebb36a978 ipv6: __KERNEL__ ... |
124 |
#ifdef __KERNEL__ |
1da177e4c Linux-2.6.12-rc2 |
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
/* * This structure contains configuration options per IPv6 link. */ struct ipv6_devconf { __s32 forwarding; __s32 hop_limit; __s32 mtu6; __s32 accept_ra; __s32 accept_redirects; __s32 autoconf; __s32 dad_transmits; __s32 rtr_solicits; __s32 rtr_solicit_interval; __s32 rtr_solicit_delay; __s32 force_mld_version; #ifdef CONFIG_IPV6_PRIVACY __s32 use_tempaddr; __s32 temp_valid_lft; __s32 temp_prefered_lft; __s32 regen_max_retry; __s32 max_desync_factor; #endif __s32 max_addresses; |
65f5c7c11 [IPV6]: ROUTE: Ad... |
148 |
__s32 accept_ra_defrtr; |
c4fd30eb1 [IPV6]: ADDRCONF:... |
149 |
__s32 accept_ra_pinfo; |
930d6ff2e [IPV6]: ROUTE: Ad... |
150 151 |
#ifdef CONFIG_IPV6_ROUTER_PREF __s32 accept_ra_rtr_pref; |
52e163563 [IPV6]: ROUTE: Ad... |
152 |
__s32 rtr_probe_interval; |
09c884d4c [IPV6]: ROUTE: Ad... |
153 154 155 |
#ifdef CONFIG_IPV6_ROUTE_INFO __s32 accept_ra_rt_info_max_plen; #endif |
930d6ff2e [IPV6]: ROUTE: Ad... |
156 |
#endif |
fbea49e1e [IPV6] NDISC: Add... |
157 |
__s32 proxy_ndp; |
0bcbc9262 [IPV6]: Disallow ... |
158 |
__s32 accept_source_route; |
95c385b4d [IPV6] ADDRCONF: ... |
159 160 161 |
#ifdef CONFIG_IPV6_OPTIMISTIC_DAD __s32 optimistic_dad; #endif |
7bc570c8b [IPV6] MROUTE: Su... |
162 163 164 |
#ifdef CONFIG_IPV6_MROUTE __s32 mc_forwarding; #endif |
778d80be5 ipv6: Add disable... |
165 |
__s32 disable_ipv6; |
1b34be74c ipv6 addrconf: ad... |
166 |
__s32 accept_dad; |
f7734fdf6 make TLLAO option... |
167 |
__s32 force_tllao; |
1da177e4c Linux-2.6.12-rc2 |
168 169 |
void *sysctl; }; |
56d417b12 IPv6: Add 'autoco... |
170 171 172 173 174 175 |
struct ipv6_params { __s32 disable_ipv6; __s32 autoconf; }; extern struct ipv6_params ipv6_defaults; |
ebb36a978 ipv6: __KERNEL__ ... |
176 |
#endif |
1da177e4c Linux-2.6.12-rc2 |
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 |
/* index values for the variables in ipv6_devconf */ enum { DEVCONF_FORWARDING = 0, DEVCONF_HOPLIMIT, DEVCONF_MTU6, DEVCONF_ACCEPT_RA, DEVCONF_ACCEPT_REDIRECTS, DEVCONF_AUTOCONF, DEVCONF_DAD_TRANSMITS, DEVCONF_RTR_SOLICITS, DEVCONF_RTR_SOLICIT_INTERVAL, DEVCONF_RTR_SOLICIT_DELAY, DEVCONF_USE_TEMPADDR, DEVCONF_TEMP_VALID_LFT, DEVCONF_TEMP_PREFERED_LFT, DEVCONF_REGEN_MAX_RETRY, DEVCONF_MAX_DESYNC_FACTOR, DEVCONF_MAX_ADDRESSES, DEVCONF_FORCE_MLD_VERSION, |
65f5c7c11 [IPV6]: ROUTE: Ad... |
197 |
DEVCONF_ACCEPT_RA_DEFRTR, |
c4fd30eb1 [IPV6]: ADDRCONF:... |
198 |
DEVCONF_ACCEPT_RA_PINFO, |
930d6ff2e [IPV6]: ROUTE: Ad... |
199 |
DEVCONF_ACCEPT_RA_RTR_PREF, |
52e163563 [IPV6]: ROUTE: Ad... |
200 |
DEVCONF_RTR_PROBE_INTERVAL, |
09c884d4c [IPV6]: ROUTE: Ad... |
201 |
DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, |
fbea49e1e [IPV6] NDISC: Add... |
202 |
DEVCONF_PROXY_NDP, |
95c385b4d [IPV6] ADDRCONF: ... |
203 |
DEVCONF_OPTIMISTIC_DAD, |
4540250be [IPV6] ADDRCONF: ... |
204 |
DEVCONF_ACCEPT_SOURCE_ROUTE, |
7bc570c8b [IPV6] MROUTE: Su... |
205 |
DEVCONF_MC_FORWARDING, |
778d80be5 ipv6: Add disable... |
206 |
DEVCONF_DISABLE_IPV6, |
1b34be74c ipv6 addrconf: ad... |
207 |
DEVCONF_ACCEPT_DAD, |
e0e6f55d2 ipv6: Fix the siz... |
208 |
DEVCONF_FORCE_TLLAO, |
1da177e4c Linux-2.6.12-rc2 |
209 210 211 212 |
DEVCONF_MAX }; #ifdef __KERNEL__ |
1da177e4c Linux-2.6.12-rc2 |
213 |
#include <linux/icmpv6.h> |
1da177e4c Linux-2.6.12-rc2 |
214 215 |
#include <linux/tcp.h> #include <linux/udp.h> |
14c850212 [INET_SOCK]: Move... |
216 |
#include <net/inet_sock.h> |
0660e03f6 [SK_BUFF]: Introd... |
217 218 219 220 |
static inline struct ipv6hdr *ipv6_hdr(const struct sk_buff *skb) { return (struct ipv6hdr *)skb_network_header(skb); } |
39b89160d [SK_BUFF]: Introd... |
221 222 |
static inline struct ipv6hdr *ipipv6_hdr(const struct sk_buff *skb) { |
9c70220b7 [SK_BUFF]: Introd... |
223 |
return (struct ipv6hdr *)skb_transport_header(skb); |
39b89160d [SK_BUFF]: Introd... |
224 |
} |
1da177e4c Linux-2.6.12-rc2 |
225 226 227 228 229 230 231 232 233 234 235 236 |
/* This structure contains results of exthdrs parsing as offsets from skb->nh. */ struct inet6_skb_parm { int iif; __u16 ra; __u16 hop; __u16 dst0; __u16 srcrt; __u16 dst1; |
333fad536 [IPV6]: Support s... |
237 |
__u16 lastopt; |
e7c38157c ipv6: Make IP6CB(... |
238 |
__u16 nhoff; |
3e3850e98 [NETFILTER]: Fix ... |
239 |
__u16 flags; |
59fbb3a61 [IPV6] MIP6: Load... |
240 |
#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
8dd7368dd [IPV6]: Put dstha... |
241 242 |
__u16 dsthao; #endif |
3e3850e98 [NETFILTER]: Fix ... |
243 244 |
#define IP6SKB_XFRM_TRANSFORMED 1 |
7bc570c8b [IPV6] MROUTE: Su... |
245 |
#define IP6SKB_FORWARDED 2 |
9c6eb28ac netfilter: ipv6: ... |
246 |
#define IP6SKB_REROUTED 4 |
1da177e4c Linux-2.6.12-rc2 |
247 248 249 |
}; #define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb)) |
4b340ae20 IPv6: Complete IP... |
250 |
#define IP6CBMTU(skb) ((struct ip6_mtuinfo *)((skb)->cb)) |
1da177e4c Linux-2.6.12-rc2 |
251 |
|
505cbfc57 [IPV6]: Generalis... |
252 253 254 255 |
static inline int inet6_iif(const struct sk_buff *skb) { return IP6CB(skb)->iif; } |
ca304b610 [IPV6]: Introduce... |
256 |
struct inet6_request_sock { |
2e6599cb8 [NET] Generalise ... |
257 258 259 260 261 |
struct in6_addr loc_addr; struct in6_addr rmt_addr; struct sk_buff *pktopts; int iif; }; |
ca304b610 [IPV6]: Introduce... |
262 263 264 265 |
struct tcp6_request_sock { struct tcp_request_sock tcp6rsk_tcp; struct inet6_request_sock tcp6rsk_inet6; }; |
2e6599cb8 [NET] Generalise ... |
266 |
|
20283d84c [IPV6]: Remove ci... |
267 268 269 |
struct ipv6_mc_socklist; struct ipv6_ac_socklist; struct ipv6_fl_socklist; |
1da177e4c Linux-2.6.12-rc2 |
270 271 272 273 274 275 276 277 278 279 280 281 |
/** * struct ipv6_pinfo - ipv6 private area * * In the struct sock hierarchy (tcp6_sock, upd6_sock, etc) * this _must_ be the last member, so that inet6_sk_generic * is able to calculate its offset from the base struct sock * by using the struct proto->slab_obj_size member. -acme */ struct ipv6_pinfo { struct in6_addr saddr; struct in6_addr rcv_saddr; struct in6_addr daddr; |
b24a2516d ipv6: Add IPV6_PK... |
282 |
struct in6_pktinfo sticky_pktinfo; |
1da177e4c Linux-2.6.12-rc2 |
283 |
struct in6_addr *daddr_cache; |
8e1ef0a95 [IPV6]: Cache sou... |
284 285 286 |
#ifdef CONFIG_IPV6_SUBTREES struct in6_addr *saddr_cache; #endif |
1da177e4c Linux-2.6.12-rc2 |
287 |
|
90bcaf7b4 [IPV6]: flowlabel... |
288 |
__be32 flow_label; |
1da177e4c Linux-2.6.12-rc2 |
289 |
__u32 frag_size; |
1d5d236d3 [IPV6]: Use bitfi... |
290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 |
/* * Packed in 16bits. * Omit one shift by by putting the signed field at MSB. */ #if defined(__BIG_ENDIAN_BITFIELD) __s16 hop_limit:9; __u16 __unused_1:7; #else __u16 __unused_1:7; __s16 hop_limit:9; #endif #if defined(__BIG_ENDIAN_BITFIELD) /* Packed in 16bits. */ __s16 mcast_hops:9; __u16 __unused_2:6, mc_loop:1; #else __u16 mc_loop:1, __unused_2:6; __s16 mcast_hops:9; #endif |
1da177e4c Linux-2.6.12-rc2 |
313 314 315 316 317 |
int mcast_oif; /* pktoption flags */ union { struct { |
4c752098f [IPV6]: Make IPV6... |
318 319 |
__u16 srcrt:1, osrcrt:1, |
1da177e4c Linux-2.6.12-rc2 |
320 |
rxinfo:1, |
333fad536 [IPV6]: Support s... |
321 |
rxoinfo:1, |
1da177e4c Linux-2.6.12-rc2 |
322 |
rxhlim:1, |
333fad536 [IPV6]: Support s... |
323 |
rxohlim:1, |
1da177e4c Linux-2.6.12-rc2 |
324 |
hopopts:1, |
333fad536 [IPV6]: Support s... |
325 |
ohopopts:1, |
1da177e4c Linux-2.6.12-rc2 |
326 |
dstopts:1, |
333fad536 [IPV6]: Support s... |
327 |
odstopts:1, |
41a1f8ea4 [IPV6]: Support I... |
328 |
rxflow:1, |
793b14731 IPv6: data struct... |
329 |
rxtclass:1, |
6c4686228 tproxy: added tpr... |
330 331 332 |
rxpmtu:1, rxorigdstaddr:1; /* 2 bits hole */ |
1da177e4c Linux-2.6.12-rc2 |
333 |
} bits; |
333fad536 [IPV6]: Support s... |
334 |
__u16 all; |
1da177e4c Linux-2.6.12-rc2 |
335 336 337 |
} rxopt; /* sockopt flags */ |
793b14731 IPv6: data struct... |
338 |
__u16 recverr:1, |
1da177e4c Linux-2.6.12-rc2 |
339 340 |
sndflow:1, pmtudisc:2, |
7cbca67c0 [IPV6]: Support S... |
341 |
ipv6only:1, |
793b14731 IPv6: data struct... |
342 |
srcprefs:3, /* 001: prefer temporary address |
7cbca67c0 [IPV6]: Support S... |
343 344 345 |
* 010: prefer public address * 100: prefer care-of address */ |
793b14731 IPv6: data struct... |
346 |
dontfrag:1; |
e802af9ca IPv6: Generic TTL... |
347 |
__u8 min_hopcount; |
41a1f8ea4 [IPV6]: Support I... |
348 |
__u8 tclass; |
793b14731 IPv6: data struct... |
349 |
__u8 padding; |
1da177e4c Linux-2.6.12-rc2 |
350 351 |
__u32 dst_cookie; |
456b61bca ipv6: mcast: RCU ... |
352 |
struct ipv6_mc_socklist __rcu *ipv6_mc_list; |
1da177e4c Linux-2.6.12-rc2 |
353 354 355 356 357 |
struct ipv6_ac_socklist *ipv6_ac_list; struct ipv6_fl_socklist *ipv6_fl_list; struct ipv6_txoptions *opt; struct sk_buff *pktoptions; |
4b340ae20 IPv6: Complete IP... |
358 |
struct sk_buff *rxpmtu; |
1da177e4c Linux-2.6.12-rc2 |
359 360 |
struct { struct ipv6_txoptions *opt; |
472547458 [IPV6]: Convert c... |
361 362 |
u8 hop_limit; u8 tclass; |
1da177e4c Linux-2.6.12-rc2 |
363 364 365 366 367 368 369 370 371 372 |
} cork; }; /* WARNING: don't change the layout of the members in {raw,udp,tcp}6_sock! */ struct raw6_sock { /* inet_sock has to be the first member of raw6_sock */ struct inet_sock inet; __u32 checksum; /* perform checksum */ __u32 offset; /* checksum offset */ struct icmp6_filter filter; |
d1db275dd ipv6: ip6mr: supp... |
373 |
__u32 ip6mr_table; |
1da177e4c Linux-2.6.12-rc2 |
374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 |
/* ipv6_pinfo has to be the last member of raw6_sock, see inet6_sk_generic */ struct ipv6_pinfo inet6; }; struct udp6_sock { struct udp_sock udp; /* ipv6_pinfo has to be the last member of udp6_sock, see inet6_sk_generic */ struct ipv6_pinfo inet6; }; struct tcp6_sock { struct tcp_sock tcp; /* ipv6_pinfo has to be the last member of tcp6_sock, see inet6_sk_generic */ struct ipv6_pinfo inet6; }; |
b9750ce13 [IPV6]: Generalis... |
389 |
extern int inet6_sk_rebuild_header(struct sock *sk); |
1da177e4c Linux-2.6.12-rc2 |
390 391 392 393 394 |
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) static inline struct ipv6_pinfo * inet6_sk(const struct sock *__sk) { return inet_sk(__sk)->pinet6; } |
ca304b610 [IPV6]: Introduce... |
395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 |
static inline struct inet6_request_sock * inet6_rsk(const struct request_sock *rsk) { return (struct inet6_request_sock *)(((u8 *)rsk) + inet_rsk(rsk)->inet6_rsk_offset); } static inline u32 inet6_rsk_offset(struct request_sock *rsk) { return rsk->rsk_ops->obj_size - sizeof(struct inet6_request_sock); } static inline struct request_sock *inet6_reqsk_alloc(struct request_sock_ops *ops) { struct request_sock *req = reqsk_alloc(ops); |
ce4a7d0d4 inet{6}_request_s... |
410 |
if (req != NULL) { |
ca304b610 [IPV6]: Introduce... |
411 |
inet_rsk(req)->inet6_rsk_offset = inet6_rsk_offset(req); |
ce4a7d0d4 inet{6}_request_s... |
412 413 |
inet6_rsk(req)->pktopts = NULL; } |
ca304b610 [IPV6]: Introduce... |
414 415 416 |
return req; } |
1da177e4c Linux-2.6.12-rc2 |
417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 |
static inline struct raw6_sock *raw6_sk(const struct sock *sk) { return (struct raw6_sock *)sk; } static inline void inet_sk_copy_descendant(struct sock *sk_to, const struct sock *sk_from) { int ancestor_size = sizeof(struct inet_sock); if (sk_from->sk_family == PF_INET6) ancestor_size += sizeof(struct ipv6_pinfo); __inet_sk_copy_descendant(sk_to, sk_from, ancestor_size); } #define __ipv6_only_sock(sk) (inet6_sk(sk)->ipv6only) #define ipv6_only_sock(sk) ((sk)->sk_family == PF_INET6 && __ipv6_only_sock(sk)) |
8feaf0c0a [INET]: Generalis... |
435 |
|
0fa1a53e1 [IPV6]: Introduce... |
436 437 438 439 |
struct inet6_timewait_sock { struct in6_addr tw_v6_daddr; struct in6_addr tw_v6_rcv_saddr; }; |
8feaf0c0a [INET]: Generalis... |
440 |
struct tcp6_timewait_sock { |
0fa1a53e1 [IPV6]: Introduce... |
441 442 |
struct tcp_timewait_sock tcp6tw_tcp; struct inet6_timewait_sock tcp6tw_inet6; |
8feaf0c0a [INET]: Generalis... |
443 |
}; |
0fa1a53e1 [IPV6]: Introduce... |
444 445 |
static inline u16 inet6_tw_offset(const struct proto *prot) { |
6d6ee43e0 [TWSK]: Introduce... |
446 447 |
return prot->twsk_prot->twsk_obj_size - sizeof(struct inet6_timewait_sock); |
0fa1a53e1 [IPV6]: Introduce... |
448 449 450 |
} static inline struct inet6_timewait_sock *inet6_twsk(const struct sock *sk) |
8feaf0c0a [INET]: Generalis... |
451 |
{ |
0fa1a53e1 [IPV6]: Introduce... |
452 453 |
return (struct inet6_timewait_sock *)(((u8 *)sk) + inet_twsk(sk)->tw_ipv6_offset); |
8feaf0c0a [INET]: Generalis... |
454 |
} |
0fa1a53e1 [IPV6]: Introduce... |
455 |
static inline struct in6_addr *__inet6_rcv_saddr(const struct sock *sk) |
8feaf0c0a [INET]: Generalis... |
456 457 |
{ return likely(sk->sk_state != TCP_TIME_WAIT) ? |
0fa1a53e1 [IPV6]: Introduce... |
458 |
&inet6_sk(sk)->rcv_saddr : &inet6_twsk(sk)->tw_v6_rcv_saddr; |
8feaf0c0a [INET]: Generalis... |
459 |
} |
0fa1a53e1 [IPV6]: Introduce... |
460 |
static inline struct in6_addr *inet6_rcv_saddr(const struct sock *sk) |
8feaf0c0a [INET]: Generalis... |
461 |
{ |
0fa1a53e1 [IPV6]: Introduce... |
462 |
return sk->sk_family == AF_INET6 ? __inet6_rcv_saddr(sk) : NULL; |
8feaf0c0a [INET]: Generalis... |
463 |
} |
463c84b97 [NET]: Introduce ... |
464 |
static inline int inet_v6_ipv6only(const struct sock *sk) |
8feaf0c0a [INET]: Generalis... |
465 466 |
{ return likely(sk->sk_state != TCP_TIME_WAIT) ? |
3f421baa4 [NET]: Just move ... |
467 |
ipv6_only_sock(sk) : inet_twsk(sk)->tw_ipv6only; |
8feaf0c0a [INET]: Generalis... |
468 |
} |
1da177e4c Linux-2.6.12-rc2 |
469 470 471 472 473 474 475 476 |
#else #define __ipv6_only_sock(sk) 0 #define ipv6_only_sock(sk) 0 static inline struct ipv6_pinfo * inet6_sk(const struct sock *__sk) { return NULL; } |
ca304b610 [IPV6]: Introduce... |
477 478 479 480 481 |
static inline struct inet6_request_sock * inet6_rsk(const struct request_sock *rsk) { return NULL; } |
1da177e4c Linux-2.6.12-rc2 |
482 483 484 485 |
static inline struct raw6_sock *raw6_sk(const struct sock *sk) { return NULL; } |
0fa1a53e1 [IPV6]: Introduce... |
486 487 |
#define __inet6_rcv_saddr(__sk) NULL #define inet6_rcv_saddr(__sk) NULL |
8feaf0c0a [INET]: Generalis... |
488 |
#define tcp_twsk_ipv6only(__sk) 0 |
463c84b97 [NET]: Introduce ... |
489 |
#define inet_v6_ipv6only(__sk) 0 |
8feaf0c0a [INET]: Generalis... |
490 |
#endif /* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */ |
1da177e4c Linux-2.6.12-rc2 |
491 |
|
d86e0dac2 [NETNS]: Tcp-v6 s... |
492 |
#define INET6_MATCH(__sk, __net, __hash, __saddr, __daddr, __ports, __dif)\ |
3b1e0a655 [NET] NETNS: Omit... |
493 |
(((__sk)->sk_hash == (__hash)) && sock_net((__sk)) == (__net) && \ |
c720c7e83 inet: rename some... |
494 |
((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \ |
8feaf0c0a [INET]: Generalis... |
495 496 497 498 |
((__sk)->sk_family == AF_INET6) && \ ipv6_addr_equal(&inet6_sk(__sk)->daddr, (__saddr)) && \ ipv6_addr_equal(&inet6_sk(__sk)->rcv_saddr, (__daddr)) && \ (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) |
1da177e4c Linux-2.6.12-rc2 |
499 |
|
d86e0dac2 [NETNS]: Tcp-v6 s... |
500 |
#define INET6_TW_MATCH(__sk, __net, __hash, __saddr, __daddr, __ports, __dif) \ |
3b1e0a655 [NET] NETNS: Omit... |
501 |
(((__sk)->sk_hash == (__hash)) && sock_net((__sk)) == (__net) && \ |
535174efb [IPV6]: Introduce... |
502 503 504 505 506 |
(*((__portpair *)&(inet_twsk(__sk)->tw_dport)) == (__ports)) && \ ((__sk)->sk_family == PF_INET6) && \ (ipv6_addr_equal(&inet6_twsk(__sk)->tw_v6_daddr, (__saddr))) && \ (ipv6_addr_equal(&inet6_twsk(__sk)->tw_v6_rcv_saddr, (__daddr))) && \ (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) |
8feaf0c0a [INET]: Generalis... |
507 508 509 |
#endif /* __KERNEL__ */ #endif /* _IPV6_H */ |