From: David Ahern <dsah...@gmail.com>

Export print_rt_flags and print_rta_if for use by the nexthop
command.

Change print_rta_gateway to take the family versus rtmsg struct and
export for use by the nexthop command.

Signed-off-by: David Ahern <dsah...@gmail.com>
---
 ip/ip_common.h |  5 ++++-
 ip/iproute.c   | 17 ++++++++---------
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/ip/ip_common.h b/ip/ip_common.h
index df279e4f7b9a..3e8183e2c48c 100644
--- a/ip/ip_common.h
+++ b/ip/ip_common.h
@@ -156,5 +156,8 @@ int name_is_vrf(const char *name);
 #endif
 
 void print_num(FILE *fp, unsigned int width, uint64_t count);
-
+void print_rt_flags(FILE *fp, unsigned int flags);
+void print_rta_if(FILE *fp, const struct rtattr *rta, const char *prefix);
+void print_rta_gateway(FILE *fp, unsigned char family,
+                      const struct rtattr *rta);
 #endif /* _IP_COMMON_H_ */
diff --git a/ip/iproute.c b/ip/iproute.c
index 440b1fc8b413..1c443265d479 100644
--- a/ip/iproute.c
+++ b/ip/iproute.c
@@ -349,7 +349,7 @@ static void print_rtax_features(FILE *fp, unsigned int 
features)
                            "features", "%#llx ", of);
 }
 
-static void print_rt_flags(FILE *fp, unsigned int flags)
+void print_rt_flags(FILE *fp, unsigned int flags)
 {
        open_json_array(PRINT_JSON,
                        is_json_context() ?  "flags" : "");
@@ -394,8 +394,7 @@ static void print_rt_pref(FILE *fp, unsigned int pref)
        }
 }
 
-static void print_rta_if(FILE *fp, const struct rtattr *rta,
-                       const char *prefix)
+void print_rta_if(FILE *fp, const struct rtattr *rta, const char *prefix)
 {
        const char *ifname = ll_index_to_name(rta_getattr_u32(rta));
 
@@ -532,17 +531,16 @@ static void print_rta_newdst(FILE *fp, const struct rtmsg 
*r,
        }
 }
 
-static void print_rta_gateway(FILE *fp, const struct rtmsg *r,
-                             const struct rtattr *rta)
+void print_rta_gateway(FILE *fp, unsigned char family, const struct rtattr 
*rta)
 {
-       const char *gateway = format_host_rta(r->rtm_family, rta);
+       const char *gateway = format_host_rta(family, rta);
 
        if (is_json_context())
                print_string(PRINT_JSON, "gateway", NULL, gateway);
        else {
                fprintf(fp, "via ");
                print_color_string(PRINT_FP,
-                                  ifa_family_color(r->rtm_family),
+                                  ifa_family_color(family),
                                   NULL, "%s ", gateway);
        }
 }
@@ -679,7 +677,8 @@ static void print_rta_multipath(FILE *fp, const struct 
rtmsg *r,
                        if (tb[RTA_NEWDST])
                                print_rta_newdst(fp, r, tb[RTA_NEWDST]);
                        if (tb[RTA_GATEWAY])
-                               print_rta_gateway(fp, r, tb[RTA_GATEWAY]);
+                               print_rta_gateway(fp, r->rtm_family,
+                                                 tb[RTA_GATEWAY]);
                        if (tb[RTA_VIA])
                                print_rta_via(fp, tb[RTA_VIA]);
                        if (tb[RTA_FLOW])
@@ -822,7 +821,7 @@ int print_route(struct nlmsghdr *n, void *arg)
        }
 
        if (tb[RTA_GATEWAY] && filter.rvia.bitlen != host_len)
-               print_rta_gateway(fp, r, tb[RTA_GATEWAY]);
+               print_rta_gateway(fp, r->rtm_family, tb[RTA_GATEWAY]);
 
        if (tb[RTA_VIA])
                print_rta_via(fp, tb[RTA_VIA]);
-- 
2.11.0

Reply via email to