aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/ip6_route.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/ip6_route.h')
-rw-r--r--include/net/ip6_route.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h
index 0e1b8aebaff8..68f67836e146 100644
--- a/include/net/ip6_route.h
+++ b/include/net/ip6_route.h
@@ -37,6 +37,24 @@ struct route_info {
37#define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010 37#define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010
38#define RT6_LOOKUP_F_SRCPREF_COA 0x00000020 38#define RT6_LOOKUP_F_SRCPREF_COA 0x00000020
39 39
40/*
41 * rt6_srcprefs2flags() and rt6_flags2srcprefs() translate
42 * between IPV6_ADDR_PREFERENCES socket option values
43 * IPV6_PREFER_SRC_TMP = 0x1
44 * IPV6_PREFER_SRC_PUBLIC = 0x2
45 * IPV6_PREFER_SRC_COA = 0x4
46 * and above RT6_LOOKUP_F_SRCPREF_xxx flags.
47 */
48static inline int rt6_srcprefs2flags(unsigned int srcprefs)
49{
50 /* No need to bitmask because srcprefs have only 3 bits. */
51 return srcprefs << 3;
52}
53
54static inline unsigned int rt6_flags2srcprefs(int flags)
55{
56 return (flags >> 3) & 7;
57}
40 58
41extern void ip6_route_input(struct sk_buff *skb); 59extern void ip6_route_input(struct sk_buff *skb);
42 60
@@ -103,8 +121,7 @@ extern void rt6_pmtu_discovery(struct in6_addr *daddr,
103 121
104struct netlink_callback; 122struct netlink_callback;
105 123
106struct rt6_rtnl_dump_arg 124struct rt6_rtnl_dump_arg {
107{
108 struct sk_buff *skb; 125 struct sk_buff *skb;
109 struct netlink_callback *cb; 126 struct netlink_callback *cb;
110 struct net *net; 127 struct net *net;