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 <dsah...@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 <dsah...@gmail.com> Signed-off-by: David S. Miller <da...@davemloft.net>