diff options
Diffstat (limited to 'include/linux/ipv6.h')
| -rw-r--r-- | include/linux/ipv6.h | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index 2faef339d8f2..ff560537dd61 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h | |||
| @@ -39,6 +39,7 @@ struct ipv6_devconf { | |||
| 39 | #endif | 39 | #endif |
| 40 | __s32 proxy_ndp; | 40 | __s32 proxy_ndp; |
| 41 | __s32 accept_source_route; | 41 | __s32 accept_source_route; |
| 42 | __s32 accept_ra_from_local; | ||
| 42 | #ifdef CONFIG_IPV6_OPTIMISTIC_DAD | 43 | #ifdef CONFIG_IPV6_OPTIMISTIC_DAD |
| 43 | __s32 optimistic_dad; | 44 | __s32 optimistic_dad; |
| 44 | #endif | 45 | #endif |
| @@ -193,12 +194,13 @@ struct ipv6_pinfo { | |||
| 193 | sndflow:1, | 194 | sndflow:1, |
| 194 | repflow:1, | 195 | repflow:1, |
| 195 | pmtudisc:3, | 196 | pmtudisc:3, |
| 196 | ipv6only:1, | 197 | padding:1, /* 1 bit hole */ |
| 197 | srcprefs:3, /* 001: prefer temporary address | 198 | srcprefs:3, /* 001: prefer temporary address |
| 198 | * 010: prefer public address | 199 | * 010: prefer public address |
| 199 | * 100: prefer care-of address | 200 | * 100: prefer care-of address |
| 200 | */ | 201 | */ |
| 201 | dontfrag:1; | 202 | dontfrag:1, |
| 203 | autoflowlabel:1; | ||
| 202 | __u8 min_hopcount; | 204 | __u8 min_hopcount; |
| 203 | __u8 tclass; | 205 | __u8 tclass; |
| 204 | __be32 rcv_flowinfo; | 206 | __be32 rcv_flowinfo; |
| @@ -256,16 +258,6 @@ static inline struct ipv6_pinfo * inet6_sk(const struct sock *__sk) | |||
| 256 | return inet_sk(__sk)->pinet6; | 258 | return inet_sk(__sk)->pinet6; |
| 257 | } | 259 | } |
| 258 | 260 | ||
| 259 | static inline struct request_sock *inet6_reqsk_alloc(struct request_sock_ops *ops) | ||
| 260 | { | ||
| 261 | struct request_sock *req = reqsk_alloc(ops); | ||
| 262 | |||
| 263 | if (req) | ||
| 264 | inet_rsk(req)->pktopts = NULL; | ||
| 265 | |||
| 266 | return req; | ||
| 267 | } | ||
| 268 | |||
| 269 | static inline struct raw6_sock *raw6_sk(const struct sock *sk) | 261 | static inline struct raw6_sock *raw6_sk(const struct sock *sk) |
| 270 | { | 262 | { |
| 271 | return (struct raw6_sock *)sk; | 263 | return (struct raw6_sock *)sk; |
| @@ -282,8 +274,8 @@ static inline void inet_sk_copy_descendant(struct sock *sk_to, | |||
| 282 | __inet_sk_copy_descendant(sk_to, sk_from, ancestor_size); | 274 | __inet_sk_copy_descendant(sk_to, sk_from, ancestor_size); |
| 283 | } | 275 | } |
| 284 | 276 | ||
| 285 | #define __ipv6_only_sock(sk) (inet6_sk(sk)->ipv6only) | 277 | #define __ipv6_only_sock(sk) (sk->sk_ipv6only) |
| 286 | #define ipv6_only_sock(sk) ((sk)->sk_family == PF_INET6 && __ipv6_only_sock(sk)) | 278 | #define ipv6_only_sock(sk) (__ipv6_only_sock(sk)) |
| 287 | #define ipv6_sk_rxinfo(sk) ((sk)->sk_family == PF_INET6 && \ | 279 | #define ipv6_sk_rxinfo(sk) ((sk)->sk_family == PF_INET6 && \ |
| 288 | inet6_sk(sk)->rxopt.bits.rxinfo) | 280 | inet6_sk(sk)->rxopt.bits.rxinfo) |
| 289 | 281 | ||
| @@ -296,8 +288,8 @@ static inline const struct in6_addr *inet6_rcv_saddr(const struct sock *sk) | |||
| 296 | 288 | ||
| 297 | static inline int inet_v6_ipv6only(const struct sock *sk) | 289 | static inline int inet_v6_ipv6only(const struct sock *sk) |
| 298 | { | 290 | { |
| 299 | return likely(sk->sk_state != TCP_TIME_WAIT) ? | 291 | /* ipv6only field is at same position for timewait and other sockets */ |
| 300 | ipv6_only_sock(sk) : inet_twsk(sk)->tw_ipv6only; | 292 | return ipv6_only_sock(sk); |
| 301 | } | 293 | } |
| 302 | #else | 294 | #else |
| 303 | #define __ipv6_only_sock(sk) 0 | 295 | #define __ipv6_only_sock(sk) 0 |
