aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorBrian Haley <brian.haley@hp.com>2010-04-23 07:26:07 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-24 02:35:28 -0400
commit793b14731686595a741d9f47726ad8b9a235385a (patch)
tree915755840b09ed25911bfbc965bc5e186d05383d /include/linux
parent3a737028630bb3c2b9efc38b9ddef2e09b06b808 (diff)
IPv6: data structure changes for new socket options
Add underlying data structure changes and basic setsockopt() and getsockopt() support for IPV6_RECVPATHMTU, IPV6_PATHMTU, and IPV6_DONTFRAG. IPV6_PATHMTU is actually fully functional at this point. Signed-off-by: Brian Haley <brian.haley@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/in6.h2
-rw-r--r--include/linux/ipv6.h13
2 files changed, 11 insertions, 4 deletions
diff --git a/include/linux/in6.h b/include/linux/in6.h
index 9b90cb296eb1..c4bf46f764bf 100644
--- a/include/linux/in6.h
+++ b/include/linux/in6.h
@@ -221,10 +221,10 @@ struct in6_flowlabel_req {
221#define IPV6_RTHDR 57 221#define IPV6_RTHDR 57
222#define IPV6_RECVDSTOPTS 58 222#define IPV6_RECVDSTOPTS 58
223#define IPV6_DSTOPTS 59 223#define IPV6_DSTOPTS 59
224#if 0 /* not yet */
225#define IPV6_RECVPATHMTU 60 224#define IPV6_RECVPATHMTU 60
226#define IPV6_PATHMTU 61 225#define IPV6_PATHMTU 61
227#define IPV6_DONTFRAG 62 226#define IPV6_DONTFRAG 62
227#if 0 /* not yet */
228#define IPV6_USE_MIN_MTU 63 228#define IPV6_USE_MIN_MTU 63
229#endif 229#endif
230 230
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index 1bdbebf08d16..1976942cf6f9 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
24struct ip6_mtuinfo {
25 struct sockaddr_in6 ip6m_addr;
26 __u32 ip6m_mtu;
27};
24 28
25struct in6_ifreq { 29struct in6_ifreq {
26 struct in6_addr ifr6_addr; 30 struct in6_addr ifr6_addr;
@@ -334,22 +338,25 @@ struct ipv6_pinfo {
334 dstopts:1, 338 dstopts:1,
335 odstopts:1, 339 odstopts:1,
336 rxflow:1, 340 rxflow:1,
337 rxtclass:1; 341 rxtclass:1,
342 rxpmtu:1;
338 } bits; 343 } bits;
339 __u16 all; 344 __u16 all;
340 } rxopt; 345 } rxopt;
341 346
342 /* sockopt flags */ 347 /* sockopt flags */
343 __u8 recverr:1, 348 __u16 recverr:1,
344 sndflow:1, 349 sndflow:1,
345 pmtudisc:2, 350 pmtudisc:2,
346 ipv6only:1, 351 ipv6only:1,
347 srcprefs:3; /* 001: prefer temporary address 352 srcprefs:3, /* 001: prefer temporary address
348 * 010: prefer public address 353 * 010: prefer public address
349 * 100: prefer care-of address 354 * 100: prefer care-of address
350 */ 355 */
356 dontfrag:1;
351 __u8 min_hopcount; 357 __u8 min_hopcount;
352 __u8 tclass; 358 __u8 tclass;
359 __u8 padding;
353 360
354 __u32 dst_cookie; 361 __u32 dst_cookie;
355 362