From: David Ahern <[email protected]>
Date: Mon, 26 Feb 2018 13:20:27 -0700
> +static void ip6_rt_init_dst(struct rt6_info *rt, struct rt6_info *ort)
> +{
> + if (ort->rt6i_flags & RTF_REJECT) {
> + ip6_rt_init_dst_reject(rt, ort);
> + return;
> + }
> +
> + rt->dst.error = 0;
> + rt->dst.output = ip6_output;
> +
> +...
>
> So for reject routes we have the above helper which is basically a code
> move from ip6_route_info_create.
>
> For non-reject routes dst.error is 0 which is the rest of ip6_rt_init_dst.
My bad, thanks for explaining things to me. The flag bit test above
completely escaped my eyes for some reason. :)