Re: [PATCH net] ipv6: no need to return rt->dst.error if it is not null entry.
From: Roopa Prabhu <hidden>
Date: 2017-07-23 04:54:39
On Fri, Jul 21, 2017 at 2:53 PM, Roopa Prabhu [off-list ref] wrote:
On Fri, Jul 21, 2017 at 11:42 AM, Cong Wang [off-list ref] wrote:quoted
On Thu, Jul 20, 2017 at 8:23 AM, Hangbin Liu [off-list ref] wrote:quoted
2017-07-20 23:06 GMT+08:00 Hangbin Liu [off-list ref]:quoted
quoted
+++ b/net/ipv6/route.c@@ -3637,12 +3637,6 @@ static int inet6_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr *nlh, dst = ip6_route_lookup(net, &fl6, 0); rt = container_of(dst, struct rt6_info, dst); - if (rt->dst.error) { - err = rt->dst.error; - ip6_rt_put(rt); - goto errout; - }hmm... or instead of remove this check, should we check all the entry? Like if ((rt->dst.error && rt != net->ipv6.ip6_null_entry && rt !=^^ mistake herequoted
net->ipv6.ip6_blk_hole_entry) || rt == net->ipv6.ip6_null_entry )Sorry, there should be no need to check ip6_null_entry since the error is already -ENETUNREACH. So how aboutHmm? All of these 3 entries have error set, right?? So we should only check dst.error...removing the check seems ok to me. We can also make the check conditional to fibmatch code only to eliminate any change in behavior introduced by fibmatch. ie if (fibmatch && rt->dst.error). Hangbin, can you also pls check that fibmatch works ok for such routes with your patch applied ?. ip netns exec client ip -6 route get fibmatch 2003::1 (with latest iproute2) thank you.
I tried this with your patch and this works for the fibmatch case as well.