David Ahern <dsahern@gmail.com> writes:
On 8/23/19 8:43 AM, Toke Høiland-Jørgensen wrote:
Hi David
Tom noticed[0] that on newer kernels, the Bird routing daemon rejects IPv6 routes received from the kernel if those routes were inserted with the old 'route' utility (i.e., when they're inserted through the ioctl interface).
We tracked it down to the routes having an rtm_type of RTN_UNKNOWN, and a bit of git archaeology points suggestively at this commit:
e8478e80e5a ("net/ipv6: Save route type in rt6_info")
The same setup works with older kernels, so this seems like it's a regression, the age of 'route' notwithstanding. Any good ideas for the proper way to fix this?
Should be fixed by:
commit c7036d97acd2527cef145b5ef9ad1a37ed21bbe6 Author: David Ahern <dsahern@gmail.com> Date: Wed Jun 19 10:50:24 2019 -0700
ipv6: Default fib6_type to RTN_UNICAST when not set
A user reported that routes are getting installed with type 0 (RTN_UNSPEC) where before the routes were RTN_UNICAST. One example is from accel-ppp which apparently still uses the ioctl interface and does not set rtmsg_type. Another is the netlink interface where ipv6 does not require rtm_type to be set (v4 does). Prior to the commit in the Fixes tag the ipv6 stack converted type 0 to RTN_UNICAST, so restore that behavior.
Fixes: e8478e80e5a7 ("net/ipv6: Save route type in rt6_info") Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Ah, great! Guess that hasn't made its way to the stable and distribution kernels yet. Thanks for the pointer! :) -Toke