ipv6: fix handling of blackhole and prohibit routes
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Wed, 5 Sep 2012 02:12:42 +0000 (02:12 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 5 Sep 2012 21:49:28 +0000 (17:49 -0400)
commitef2c7d7b59708d54213c7556a82d14de9a7e4475
treeffbcd9a25aeeef8e73faf8650605abb2dcdb6fb4
parentd6b6d987787876fd381bfeda310c6682d425c0a2
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>
include/net/ip6_fib.h
net/ipv6/route.c