diff options
author | Nicolas Dichtel <nicolas.dichtel@6wind.com> | 2012-09-04 22:12:42 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-09-05 17:49:28 -0400 |
commit | ef2c7d7b59708d54213c7556a82d14de9a7e4475 (patch) | |
tree | ffbcd9a25aeeef8e73faf8650605abb2dcdb6fb4 /include/net/ip6_fib.h | |
parent | d6b6d987787876fd381bfeda310c6682d425c0a2 (diff) |
ipv6: fix handling of blackhole and prohibit routes
When adding a blackhole or a prohibit route, they were handling like classic
routes. Moreover, it was only possible to add this kind of routes by specifying
an interface.
Bug already reported here:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=498498
Before the patch:
$ ip route add blackhole 2001::1/128
RTNETLINK answers: No such device
$ ip route add blackhole 2001::1/128 dev eth0
$ ip -6 route | grep 2001
2001::1 dev eth0 metric 1024
After:
$ ip route add blackhole 2001::1/128
$ ip -6 route | grep 2001
blackhole 2001::1 dev lo metric 1024 error -22
v2: wrong patch
v3: add a field fc_type in struct fib6_config to store RTN_* type
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/ip6_fib.h')
-rw-r--r-- | include/net/ip6_fib.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index 0fedbd8d747a..cd64cf35a49f 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h | |||
@@ -37,6 +37,7 @@ struct fib6_config { | |||
37 | int fc_ifindex; | 37 | int fc_ifindex; |
38 | u32 fc_flags; | 38 | u32 fc_flags; |
39 | u32 fc_protocol; | 39 | u32 fc_protocol; |
40 | u32 fc_type; /* only 8 bits are used */ | ||
40 | 41 | ||
41 | struct in6_addr fc_dst; | 42 | struct in6_addr fc_dst; |
42 | struct in6_addr fc_src; | 43 | struct in6_addr fc_src; |