diff options
author | Thomas Graf <tgraf@suug.ch> | 2006-08-04 06:39:02 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 17:53:41 -0400 |
commit | 101367c2f8c464ea96643192673aa18d88e6336d (patch) | |
tree | bf129373fb6f9e168671f42bf597e5564cdfbd42 /include | |
parent | 14c0b97ddfc2944982d078b8e33b088840068976 (diff) |
[IPV6]: Policy Routing Rules
Adds support for policy routing rules including a new
local table for routes with a local destination.
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/rtnetlink.h | 2 | ||||
-rw-r--r-- | include/net/ip6_fib.h | 9 | ||||
-rw-r--r-- | include/net/ip6_route.h | 5 |
3 files changed, 15 insertions, 1 deletions
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index facd9ee37b76..bf353538ae93 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
@@ -889,6 +889,8 @@ enum rtnetlink_groups { | |||
889 | RTNLGRP_NOP4, | 889 | RTNLGRP_NOP4, |
890 | RTNLGRP_IPV6_PREFIX, | 890 | RTNLGRP_IPV6_PREFIX, |
891 | #define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX | 891 | #define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX |
892 | RTNLGRP_IPV6_RULE, | ||
893 | #define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE | ||
892 | __RTNLGRP_MAX | 894 | __RTNLGRP_MAX |
893 | }; | 895 | }; |
894 | #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) | 896 | #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) |
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index 818411519c89..7b47e8d5a765 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h | |||
@@ -155,7 +155,6 @@ struct fib6_table { | |||
155 | 155 | ||
156 | #define RT6_TABLE_UNSPEC RT_TABLE_UNSPEC | 156 | #define RT6_TABLE_UNSPEC RT_TABLE_UNSPEC |
157 | #define RT6_TABLE_MAIN RT_TABLE_MAIN | 157 | #define RT6_TABLE_MAIN RT_TABLE_MAIN |
158 | #define RT6_TABLE_LOCAL RT6_TABLE_MAIN | ||
159 | #define RT6_TABLE_DFLT RT6_TABLE_MAIN | 158 | #define RT6_TABLE_DFLT RT6_TABLE_MAIN |
160 | #define RT6_TABLE_INFO RT6_TABLE_MAIN | 159 | #define RT6_TABLE_INFO RT6_TABLE_MAIN |
161 | #define RT6_TABLE_PREFIX RT6_TABLE_MAIN | 160 | #define RT6_TABLE_PREFIX RT6_TABLE_MAIN |
@@ -163,9 +162,11 @@ struct fib6_table { | |||
163 | #ifdef CONFIG_IPV6_MULTIPLE_TABLES | 162 | #ifdef CONFIG_IPV6_MULTIPLE_TABLES |
164 | #define FIB6_TABLE_MIN 1 | 163 | #define FIB6_TABLE_MIN 1 |
165 | #define FIB6_TABLE_MAX RT_TABLE_MAX | 164 | #define FIB6_TABLE_MAX RT_TABLE_MAX |
165 | #define RT6_TABLE_LOCAL RT_TABLE_LOCAL | ||
166 | #else | 166 | #else |
167 | #define FIB6_TABLE_MIN RT_TABLE_MAIN | 167 | #define FIB6_TABLE_MIN RT_TABLE_MAIN |
168 | #define FIB6_TABLE_MAX FIB6_TABLE_MIN | 168 | #define FIB6_TABLE_MAX FIB6_TABLE_MIN |
169 | #define RT6_TABLE_LOCAL RT6_TABLE_MAIN | ||
169 | #endif | 170 | #endif |
170 | 171 | ||
171 | #define RT6_F_STRICT 1 | 172 | #define RT6_F_STRICT 1 |
@@ -221,5 +222,11 @@ extern void fib6_run_gc(unsigned long dummy); | |||
221 | extern void fib6_gc_cleanup(void); | 222 | extern void fib6_gc_cleanup(void); |
222 | 223 | ||
223 | extern void fib6_init(void); | 224 | extern void fib6_init(void); |
225 | |||
226 | extern void fib6_rules_init(void); | ||
227 | extern void fib6_rules_cleanup(void); | ||
228 | extern int fib6_rules_dump(struct sk_buff *, | ||
229 | struct netlink_callback *); | ||
230 | |||
224 | #endif | 231 | #endif |
225 | #endif | 232 | #endif |
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h index d49c8c90eb68..9bfa3cc6cedb 100644 --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h | |||
@@ -41,6 +41,11 @@ struct pol_chain { | |||
41 | 41 | ||
42 | extern struct rt6_info ip6_null_entry; | 42 | extern struct rt6_info ip6_null_entry; |
43 | 43 | ||
44 | #ifdef CONFIG_IPV6_MULTIPLE_TABLES | ||
45 | extern struct rt6_info ip6_prohibit_entry; | ||
46 | extern struct rt6_info ip6_blk_hole_entry; | ||
47 | #endif | ||
48 | |||
44 | extern int ip6_rt_gc_interval; | 49 | extern int ip6_rt_gc_interval; |
45 | 50 | ||
46 | extern void ip6_route_input(struct sk_buff *skb); | 51 | extern void ip6_route_input(struct sk_buff *skb); |