Add logs for next hop of route table 48/193548/1
authorYu <jiung.yu@samsung.com>
Thu, 22 Nov 2018 01:29:05 +0000 (10:29 +0900)
committerYu <jiung.yu@samsung.com>
Thu, 22 Nov 2018 01:38:59 +0000 (10:38 +0900)
Change-Id: Id06a2d690e3b10d77b47bbc4c3c1f8b034dc2b89
Signed-off-by: Yu Jiung <jiung.yu@samsung.com>
src/inm-rtnl.c

index 2c25b7369c5ea0c599a4001436fbb7323a6f169c..a857d624ef5d5ff8004d652afc0c1b47a7c11520 100644 (file)
@@ -340,6 +340,31 @@ static void __neigh_foreach_cb(struct nl_object *obj, void *user_data)
        __INM_FUNC_EXIT__;
 }
 
+
+static void __print_next_hop_cb(struct rtnl_nexthop *nh, void *data)
+{
+       char buf[128] = {0,};
+       GString *rtnl_route_gs = (GString *)data;
+
+       if (!nh || !rtnl_route_gs)
+               return;
+
+       g_string_append_printf(rtnl_route_gs,
+                       "<ifindex:%d>",
+                       rtnl_route_nh_get_ifindex(nh));
+       g_string_append_printf(rtnl_route_gs,
+                       "<flags:%s>",
+                       rtnl_route_nh_flags2str(rtnl_route_nh_get_flags(nh), buf, sizeof(buf)));
+       g_string_append_printf(rtnl_route_gs,
+                       "<gateway:%s>",
+                       nl_addr2str(rtnl_route_nh_get_gateway(nh), buf, sizeof(buf)));
+}
+
+static void __print_next_hop(struct rtnl_route *route, GString *rtnl_route_gs)
+{
+       rtnl_route_foreach_nexthop(route, __print_next_hop_cb, rtnl_route_gs);
+}
+
 static inline void __parse_rtnl_route(struct rtnl_route *p_rtnl_route)
 {
        GString *rtnl_route_gs = NULL;
@@ -388,6 +413,8 @@ static inline void __parse_rtnl_route(struct rtnl_route *p_rtnl_route)
                        "<Rtnl route iif:%s>",
                        if_indextoname(rtnl_route_get_iif(p_rtnl_route), buf));
 
+       __print_next_hop(p_rtnl_route, rtnl_route_gs);
+
        log_str = g_string_free(rtnl_route_gs, FALSE);
        if (log_str) {
                PRINT_STR(log_str);