ip route: print RTA_CACHEINFO if it exists

RTA_CACHEINFO can be sent for non-cloned routes. If the attribute is
present print it. Allows route dumps to print expires times for example
which can exist on FIB entries.

Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
David Ahern 2018-05-30 08:30:09 -07:00
parent 45c0dd7286
commit 9107c425ac
1 changed files with 5 additions and 8 deletions

View File

@ -899,17 +899,14 @@ int print_route(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
rta_getattr_u32(tb[RTA_UID])); rta_getattr_u32(tb[RTA_UID]));
if (r->rtm_family == AF_INET) { if (r->rtm_family == AF_INET) {
if (r->rtm_flags & RTM_F_CLONED) { if (r->rtm_flags & RTM_F_CLONED)
print_cache_flags(fp, r->rtm_flags); print_cache_flags(fp, r->rtm_flags);
if (tb[RTA_CACHEINFO]) if (tb[RTA_CACHEINFO])
print_rta_cacheinfo(fp, RTA_DATA(tb[RTA_CACHEINFO])); print_rta_cacheinfo(fp, RTA_DATA(tb[RTA_CACHEINFO]));
}
} else if (r->rtm_family == AF_INET6) { } else if (r->rtm_family == AF_INET6) {
if (r->rtm_flags & RTM_F_CLONED) { if (tb[RTA_CACHEINFO])
if (tb[RTA_CACHEINFO]) print_rta_cacheinfo(fp, RTA_DATA(tb[RTA_CACHEINFO]));
print_rta_cacheinfo(fp, RTA_DATA(tb[RTA_CACHEINFO]));
}
} }
if (tb[RTA_METRICS]) if (tb[RTA_METRICS])