diff options
Diffstat (limited to 'include/linux/ipv6.h')
-rw-r--r-- | include/linux/ipv6.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index e0cc9a7db2b5..99e1ab7e3eec 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h | |||
@@ -21,6 +21,10 @@ struct in6_pktinfo { | |||
21 | int ipi6_ifindex; | 21 | int ipi6_ifindex; |
22 | }; | 22 | }; |
23 | 23 | ||
24 | struct ip6_mtuinfo { | ||
25 | struct sockaddr_in6 ip6m_addr; | ||
26 | __u32 ip6m_mtu; | ||
27 | }; | ||
24 | 28 | ||
25 | struct in6_ifreq { | 29 | struct in6_ifreq { |
26 | struct in6_addr ifr6_addr; | 30 | struct in6_addr ifr6_addr; |
@@ -250,9 +254,11 @@ struct inet6_skb_parm { | |||
250 | 254 | ||
251 | #define IP6SKB_XFRM_TRANSFORMED 1 | 255 | #define IP6SKB_XFRM_TRANSFORMED 1 |
252 | #define IP6SKB_FORWARDED 2 | 256 | #define IP6SKB_FORWARDED 2 |
257 | #define IP6SKB_REROUTED 4 | ||
253 | }; | 258 | }; |
254 | 259 | ||
255 | #define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb)) | 260 | #define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb)) |
261 | #define IP6CBMTU(skb) ((struct ip6_mtuinfo *)((skb)->cb)) | ||
256 | 262 | ||
257 | static inline int inet6_iif(const struct sk_buff *skb) | 263 | static inline int inet6_iif(const struct sk_buff *skb) |
258 | { | 264 | { |
@@ -334,21 +340,25 @@ struct ipv6_pinfo { | |||
334 | dstopts:1, | 340 | dstopts:1, |
335 | odstopts:1, | 341 | odstopts:1, |
336 | rxflow:1, | 342 | rxflow:1, |
337 | rxtclass:1; | 343 | rxtclass:1, |
344 | rxpmtu:1; | ||
338 | } bits; | 345 | } bits; |
339 | __u16 all; | 346 | __u16 all; |
340 | } rxopt; | 347 | } rxopt; |
341 | 348 | ||
342 | /* sockopt flags */ | 349 | /* sockopt flags */ |
343 | __u8 recverr:1, | 350 | __u16 recverr:1, |
344 | sndflow:1, | 351 | sndflow:1, |
345 | pmtudisc:2, | 352 | pmtudisc:2, |
346 | ipv6only:1, | 353 | ipv6only:1, |
347 | srcprefs:3; /* 001: prefer temporary address | 354 | srcprefs:3, /* 001: prefer temporary address |
348 | * 010: prefer public address | 355 | * 010: prefer public address |
349 | * 100: prefer care-of address | 356 | * 100: prefer care-of address |
350 | */ | 357 | */ |
358 | dontfrag:1; | ||
359 | __u8 min_hopcount; | ||
351 | __u8 tclass; | 360 | __u8 tclass; |
361 | __u8 padding; | ||
352 | 362 | ||
353 | __u32 dst_cookie; | 363 | __u32 dst_cookie; |
354 | 364 | ||
@@ -358,6 +368,7 @@ struct ipv6_pinfo { | |||
358 | 368 | ||
359 | struct ipv6_txoptions *opt; | 369 | struct ipv6_txoptions *opt; |
360 | struct sk_buff *pktoptions; | 370 | struct sk_buff *pktoptions; |
371 | struct sk_buff *rxpmtu; | ||
361 | struct { | 372 | struct { |
362 | struct ipv6_txoptions *opt; | 373 | struct ipv6_txoptions *opt; |
363 | u8 hop_limit; | 374 | u8 hop_limit; |
@@ -372,6 +383,7 @@ struct raw6_sock { | |||
372 | __u32 checksum; /* perform checksum */ | 383 | __u32 checksum; /* perform checksum */ |
373 | __u32 offset; /* checksum offset */ | 384 | __u32 offset; /* checksum offset */ |
374 | struct icmp6_filter filter; | 385 | struct icmp6_filter filter; |
386 | __u32 ip6mr_table; | ||
375 | /* ipv6_pinfo has to be the last member of raw6_sock, see inet6_sk_generic */ | 387 | /* ipv6_pinfo has to be the last member of raw6_sock, see inet6_sk_generic */ |
376 | struct ipv6_pinfo inet6; | 388 | struct ipv6_pinfo inet6; |
377 | }; | 389 | }; |