Lines Matching refs:rtm
305 struct rt_msghdr *rtm;
336 for (next = buf; next < lim; next += rtm->rtm_msglen) {
337 rtm = (struct rt_msghdr *)next;
338 sa = (struct sockaddr *)(rtm + 1);
340 print_rtmsg(rtm, rtm->rtm_msglen);
341 if ((rtm->rtm_flags & flags) != flags)
343 if (!(rtm->rtm_flags & (RTF_GATEWAY | RTF_STATIC)) && !doall)
349 rtm->rtm_type = RTM_DELETE;
350 rtm->rtm_seq = seqno;
352 rlen = prog_write(sock, next, rtm->rtm_msglen);
359 if (rlen < (int)rtm->rtm_msglen) {
367 print_rtmsg(rtm, rlen);
1091 struct rt_msghdr *rtm;
1109 for (next = buf; next < lim; next += rtm->rtm_msglen) {
1110 rtm = (struct rt_msghdr *)next;
1111 print_rtmsg(rtm, rtm->rtm_msglen);
1202 #define rtm m_rtmsg.m_rtm
1203 rtm.rtm_type = cmd;
1204 rtm.rtm_flags = flags;
1205 rtm.rtm_version = RTM_VERSION;
1206 rtm.rtm_seq = ++seq;
1207 rtm.rtm_addrs = rtm_addrs;
1208 rtm.rtm_rmx = rt_metrics;
1209 rtm.rtm_inits = rtm_inits;
1222 rtm.rtm_msglen = l = cp - (char *)&m_rtmsg;
1226 print_rtmsg(&rtm, l);
1246 } while (l > 0 && (rtm.rtm_seq != seq || rtm.rtm_pid != pid));
1250 return print_getmsg(&rtm, l, soup);
1253 #undef rtm
1342 print_rtmsg(struct rt_msghdr *rtm, int msglen)
1357 if (rtm->rtm_version != RTM_VERSION) {
1359 rtm->rtm_version);
1362 if (msgtypes[rtm->rtm_type])
1363 (void)printf("%s: ", msgtypes[rtm->rtm_type]);
1365 (void)printf("#%d: ", rtm->rtm_type);
1366 (void)printf("len %d, ", rtm->rtm_msglen);
1367 switch (rtm->rtm_type) {
1369 ifm = (struct if_msghdr *)rtm;
1383 ifam = (struct ifa_msghdr *)rtm;
1403 ifan = (struct if_announcemsghdr *)rtm;
1470 ifan = (struct if_announcemsghdr *)rtm;
1492 rtm->rtm_pid, rtm->rtm_seq, rtm->rtm_errno);
1493 bprintf(stdout, rtm->rtm_flags, routeflags);
1494 pmsg_common(rtm);
1501 print_getmsg(struct rt_msghdr *rtm, int msglen, struct sou *soup)
1513 if (rtm->rtm_version != RTM_VERSION) {
1515 rtm->rtm_version);
1518 if (rtm->rtm_msglen > msglen) {
1520 rtm->rtm_msglen, msglen);
1522 if (rtm->rtm_errno) {
1524 strerror(rtm->rtm_errno), rtm->rtm_errno);
1527 cp = ((char *)(rtm + 1));
1528 if (rtm->rtm_addrs)
1530 if (i & rtm->rtm_addrs) {
1569 if (gate && rtm->rtm_flags & RTF_GATEWAY) {
1599 bprintf(stdout, rtm->rtm_flags, routeflags);
1602 #define lock(f) ((rtm->rtm_rmx.rmx_locks & __CONCAT(RTV_,f)) ? 'L' : ' ')
1608 printf("%8"PRId64"%c ", rtm->rtm_rmx.rmx_recvpipe, lock(RPIPE));
1609 printf("%8"PRId64"%c ", rtm->rtm_rmx.rmx_sendpipe, lock(SPIPE));
1610 printf("%8"PRId64"%c ", rtm->rtm_rmx.rmx_ssthresh, lock(SSTHRESH));
1611 printf("%8"PRId64"%c ", msec(rtm->rtm_rmx.rmx_rtt), lock(RTT));
1612 printf("%8"PRId64"%c ", msec(rtm->rtm_rmx.rmx_rttvar), lock(RTTVAR));
1613 printf("%8"PRId64"%c ", rtm->rtm_rmx.rmx_hopcount, lock(HOPCOUNT));
1614 printf("%8"PRId64"%c ", rtm->rtm_rmx.rmx_mtu, lock(MTU));
1615 if (rtm->rtm_rmx.rmx_expire)
1616 rtm->rtm_rmx.rmx_expire -= time(0);
1617 printf("%8"PRId64"%c\n", rtm->rtm_rmx.rmx_expire, lock(EXPIRE));
1624 return (rtm->rtm_addrs & RTF_GATEWAY) == 0;
1626 pmsg_common(rtm);
1627 else if (rtm->rtm_addrs &~ RTA_IGN) {
1629 bprintf(stdout, rtm->rtm_addrs, addrnames);
1638 pmsg_common(struct rt_msghdr *rtm)
1641 bprintf(stdout, rtm->rtm_rmx.rmx_locks, metricnames);
1643 bprintf(stdout, rtm->rtm_inits, metricnames);
1644 pmsg_addrs((char *)(rtm + 1), rtm->rtm_addrs);