MCPcopy Create free account
hub / github.com/F-Stack/f-stack / rt_stats

Function rt_stats

tools/netstat/route.c:707–754  ·  view source on GitHub ↗

* Print routing statistics */

Source from the content-addressed store, hash-verified

705 * Print routing statistics
706 */
707void
708rt_stats(void)
709{
710 struct rtstat rtstat;
711#ifndef FSTACK
712 u_long rtsaddr, rttaddr;
713 int rttrash;
714
715 if ((rtsaddr = nl[N_RTSTAT].n_value) == 0) {
716 xo_emit("{W:rtstat: symbol not in namelist}\n");
717 return;
718 }
719 if ((rttaddr = nl[N_RTTRASH].n_value) == 0) {
720 xo_emit("{W:rttrash: symbol not in namelist}\n");
721 return;
722 }
723 kread_counters(rtsaddr, (char *)&rtstat, sizeof (rtstat));
724 kread(rttaddr, (char *)&rttrash, sizeof (rttrash));
725#else
726 if (fetch_stats("net.rtstat", 0, &rtstat,
727 sizeof(rtstat), kread_counters) != 0)
728 return;
729#endif
730 xo_emit("{T:routing}:\n");
731
732#define p(f, m) if (rtstat.f || sflag <= 1) \
733 xo_emit(m, rtstat.f, plural(rtstat.f))
734
735 p(rts_badredirect, "\t{:bad-redirects/%ju} "
736 "{N:/bad routing redirect%s}\n");
737 p(rts_dynamic, "\t{:dynamically-created/%ju} "
738 "{N:/dynamically created route%s}\n");
739 p(rts_newgateway, "\t{:new-gateways/%ju} "
740 "{N:/new gateway%s due to redirects}\n");
741 p(rts_unreach, "\t{:unreachable-destination/%ju} "
742 "{N:/destination%s found unreachable}\n");
743 p(rts_wildcard, "\t{:wildcard-uses/%ju} "
744 "{N:/use%s of a wildcard route}\n");
745#undef p
746
747#ifndef FSTACK
748 if (rttrash || sflag <= 1)
749 xo_emit("\t{:unused-but-not-freed/%u} "
750 "{N:/route%s not in table but not freed}\n",
751 rttrash, plural(rttrash));
752#endif
753
754}

Callers 1

main.cFile · 0.85

Calls 5

xo_emitFunction · 0.85
kread_countersFunction · 0.85
fetch_statsFunction · 0.85
pluralFunction · 0.85
kreadFunction · 0.70

Tested by

no test coverage detected