mrtstat
++mrtstat.mrts_mfc_lookups;
++mrtstat.mrts_mfc_misses;
mrtstat.mrts_no_route++;
mrtstat.mrts_upcalls++;
++mrtstat.mrts_upq_sockfull;
mrtstat.mrts_upq_ovflw++;
++mrtstat.mrts_cache_cleanups;
++mrtstat.mrts_wrong_if;
mrtstat.mrts_upcalls++;
++mrtstat.mrts_upq_sockfull;
struct mrtstat mrtstat;
mrtstat.mrts_bad_tunnel++;
mrtstat.mrts_pkt2large++;
mrtstat.mrts_q_overflow++;
mrtstat.mrts_drop_sel++;
mrtstat.mrts_upcalls++;
++mrtstat.mrts_upq_sockfull;
mrtstat.mrts_upcalls++;
++mrtstat.mrts_upq_sockfull;
struct mrtstat mrtstat;
kread(mstaddr, (char *)&mrtstat, sizeof(mrtstat));
mrtstat.mrts_no_route, plural(mrtstat.mrts_no_route));
mrtstat.mrts_upcalls, plural(mrtstat.mrts_upcalls));
mrtstat.mrts_bad_tunnel, plural(mrtstat.mrts_bad_tunnel));
mrtstat.mrts_cant_tunnel, plural(mrtstat.mrts_cant_tunnel));
mrtstat.mrts_wrong_if, plural(mrtstat.mrts_wrong_if));
mrtstat.mrts_upq_ovflw, plural(mrtstat.mrts_upq_ovflw));
mrtstat.mrts_upq_sockfull, plural(mrtstat.mrts_upq_sockfull));
mrtstat.mrts_cache_cleanups, plural(mrtstat.mrts_cache_cleanups));
mrtstat.mrts_drop_sel, plural(mrtstat.mrts_drop_sel));
mrtstat.mrts_q_overflow, plural(mrtstat.mrts_q_overflow));
mrtstat.mrts_pkt2large, plural(mrtstat.mrts_pkt2large));
#define p(f, m) printf(m, (unsigned long long)mrtstat.f, plural(mrtstat.f))
#define pes(f, m) printf(m, (unsigned long long)mrtstat.f, plurales(mrtstat.f))
struct mrt6stat mrtstat;
kread(mstaddr, (char *)&mrtstat, sizeof(mrtstat));