]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: use rt6_info members when dst is set in rt6_fill_node
authorXin Long <lucien.xin@gmail.com>
Tue, 11 Sep 2018 06:33:58 +0000 (14:33 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Sep 2018 15:20:37 +0000 (08:20 -0700)
commit25589c9054c3e2650f1ec5f38bfff1969f7ed022
treef42039479dc10c3ec52bf33de8b864a3e3454593
parent0ffa395cb1b5a5a05d94f1e671f8cd9618b894c3
ipv6: use rt6_info members when dst is set in rt6_fill_node

In inet6_rtm_getroute, since Commit 87bd20a7a731 ("net/ipv6: separate
handling of FIB entries from dst based routes"), it has used rt->from
to dump route info instead of rt.

However for some route like cache, some of its information like flags
or gateway is not the same as that of the 'from' one. It caused 'ip
route get' to dump the wrong route information.

In Jianlin's testing, the output information even lost the expiration
time for a pmtu route cache due to the wrong fib6_flags.

So change to use rt6_info members for dst addr, src addr, flags and
gateway when it tries to dump a route entry without fibmatch set.

v1->v2:
  - not use rt6i_prefsrc.
  - also fix the gw dump issue.

Fixes: 87bd20a7a731 ("net/ipv6: separate handling of FIB entries from dst based routes")
Reported-by: Jianlin Shi <jishi@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c