Skip to content
  • Xin Long's avatar
    ipv6: use rt6_info members when dst is set in rt6_fill_node · 22d0bd82
    Xin Long authored
    In inet6_rtm_getroute, since Commit 93531c67 ("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: 93531c67
    
     ("net/ipv6: separate handling of FIB entries from dst based routes")
    Reported-by: default avatarJianlin Shi <jishi@redhat.com>
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    22d0bd82