On Mon, 7 Mar 2016 11:10:32 +0100 Nikolay Aleksandrov <niko...@cumulusnetworks.com> wrote:
> rem = RTA_PAYLOAD(attr); > for (i = RTA_DATA(attr); RTA_OK(i, rem); i = RTA_NEXT(i, rem)) { > port_ifindex = RTA_DATA(i); > - fprintf(f, "%s ", ll_index_to_name(*port_ifindex)); > + if (show_stats) { > + struct rtattr *tb[MDBA_ROUTER_PATTR_MAX + 1]; > + > + parse_rtattr(tb, MDBA_ROUTER_PATTR_MAX, > + MDB_RTR_RTA(RTA_DATA(i)), > + RTA_PAYLOAD(i) - > + RTA_ALIGN(sizeof(*port_ifindex))); > + > + fprintf(f, "router ports on %s: %s", > + ll_index_to_name(brifidx), > + ll_index_to_name(*port_ifindex)); > + if (tb[MDBA_ROUTER_PATTR_TIMER]) { > + struct timeval tv; > + __u32 tval; > + > + tval = rta_getattr_u32( > + tb[MDBA_ROUTER_PATTR_TIMER]); > + __jiffies_to_tv(&tv, tval); > + fprintf(f, " %4i.%.2i", > + (int)tv.tv_sec, (int)tv.tv_usec/10000); > + } You are having to cut lines short here to fit 80 characters, maybe good time to make statistics a helper function.