Lines Matching refs:rtm
499 struct rt_msghdr *rtm; in flushroutes_fib() local
536 for (next = buf; next < lim; next += rtm->rtm_msglen) { in flushroutes_fib()
537 rtm = (struct rt_msghdr *)(void *)next; in flushroutes_fib()
539 print_rtmsg(rtm, rtm->rtm_msglen); in flushroutes_fib()
540 if ((rtm->rtm_flags & RTF_GATEWAY) == 0) in flushroutes_fib()
543 struct sockaddr *sa = (struct sockaddr *)(rtm + 1); in flushroutes_fib()
550 rtm->rtm_type = RTM_DELETE; in flushroutes_fib()
551 rtm->rtm_seq = seqno; in flushroutes_fib()
552 rlen = write(s, next, rtm->rtm_msglen); in flushroutes_fib()
555 if (rlen < (int)rtm->rtm_msglen) { in flushroutes_fib()
566 print_rtmsg(rtm, rlen); in flushroutes_fib()
568 struct sockaddr *sa = (struct sockaddr *)(rtm + 1); in flushroutes_fib()
570 printf("%-20.20s ", rtm->rtm_flags & RTF_HOST ? in flushroutes_fib()
1482 struct rt_msghdr *rtm; in interfaces() local
1505 for (next = buf; next < lim; next += rtm->rtm_msglen) { in interfaces()
1506 rtm = (struct rt_msghdr *)(void *)next; in interfaces()
1507 print_rtmsg(rtm, rtm->rtm_msglen); in interfaces()
1595 #define rtm m_rtmsg.m_rtm macro
1596 rtm.rtm_type = cmd;
1597 rtm.rtm_flags = flags;
1598 rtm.rtm_version = RTM_VERSION;
1599 rtm.rtm_seq = ++rtm_seq;
1600 rtm.rtm_addrs = rtm_addrs;
1601 rtm.rtm_rmx = rt_metrics;
1602 rtm.rtm_inits = rtm_inits;
1610 rtm.rtm_msglen = l = cp - (char *)&m_rtmsg;
1612 print_rtmsg(&rtm, l);
1647 (rtm.rtm_type != RTM_GET || rtm.rtm_seq != rtm_seq ||
1648 rtm.rtm_pid != pid));
1660 print_getmsg(&rtm, l, fib);
1662 #undef rtm
1707 print_rtmsg(struct rt_msghdr *rtm, size_t msglen) argument
1719 if (rtm->rtm_version != RTM_VERSION) {
1721 rtm->rtm_version);
1724 if (rtm->rtm_type < nitems(msgtypes))
1725 (void)printf("%s: ", msgtypes[rtm->rtm_type]);
1727 (void)printf("unknown type %d: ", rtm->rtm_type);
1728 (void)printf("len %d, ", rtm->rtm_msglen);
1737 switch (rtm->rtm_type) {
1740 ifm = (struct if_msghdr *)rtm;
1760 ifam = (struct ifa_msghdr *)rtm;
1769 ifmam = (struct ifma_msghdr *)rtm;
1775 ifan = (struct if_announcemsghdr *)rtm;
1793 if (rtm->rtm_type <= RTM_RESOLVE) {
1795 (long)rtm->rtm_pid, rtm->rtm_seq, rtm->rtm_errno);
1796 printb(rtm->rtm_flags, routeflags);
1797 pmsg_common(rtm, msglen);
1799 printf("type: %u, len: %zu\n", rtm->rtm_type, msglen);
1810 print_getmsg(struct rt_msghdr *rtm, int msglen, int fib) argument
1820 if (rtm->rtm_version != RTM_VERSION) {
1822 rtm->rtm_version);
1825 if (rtm->rtm_msglen > msglen) {
1827 rtm->rtm_msglen, msglen);
1830 if (rtm->rtm_errno) {
1831 errno = rtm->rtm_errno;
1835 cp = ((char *)(rtm + 1));
1837 if (rtm->rtm_addrs & (1 << i)) {
1841 if ((rtm->rtm_addrs & RTA_IFP) &&
1849 if (sp[RTAX_GATEWAY] && (rtm->rtm_flags & RTF_GATEWAY))
1858 printb(rtm->rtm_flags, routeflags);
1860 #define lock(f) ((rtm->rtm_rmx.rmx_locks & __CONCAT(RTV_,f)) ? 'L' : ' ')
1864 printf("%8lu%c ", rtm->rtm_rmx.rmx_recvpipe, lock(RPIPE));
1865 printf("%8lu%c ", rtm->rtm_rmx.rmx_sendpipe, lock(SPIPE));
1866 printf("%8lu%c ", rtm->rtm_rmx.rmx_ssthresh, lock(SSTHRESH));
1867 printf("%8lu%c ", msec(rtm->rtm_rmx.rmx_rtt), lock(RTT));
1868 printf("%8lu%c ", rtm->rtm_rmx.rmx_mtu, lock(MTU));
1869 printf("%8lu%c ", rtm->rtm_rmx.rmx_weight, lock(WEIGHT));
1870 if (rtm->rtm_rmx.rmx_expire > 0)
1874 printf("%8ld%c\n", (long)(rtm->rtm_rmx.rmx_expire - ts.tv_sec),
1880 pmsg_common(rtm, msglen);
1881 else if (rtm->rtm_addrs &~ RTA_IGN) {
1883 printb(rtm->rtm_addrs, addrnames);
1890 pmsg_common(struct rt_msghdr *rtm, size_t msglen) argument
1894 printb(rtm->rtm_rmx.rmx_locks, metricnames);
1896 printb(rtm->rtm_inits, metricnames);
1898 pmsg_addrs(((char *)(rtm + 1)), rtm->rtm_addrs,