Lines Matching +full:use +full:- +full:rtm
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
6 * Redistribution and use in source and binary forms, with or without
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
40 printf("-- CONDITION FAILED, rtm dump --\n\n");\
51 printf("-- CONDITION FAILED, rtm hexdump--\n\n");\
109 if (b & (1 << (i-1))) { in _printb()
126 return (int)(pbuf - buf); in _printb()
148 rem_len -= one_len; \
201 switch (sa->sa_family) { in sa_print()
204 inet_ntop(AF_INET, &sin->sin_addr, abuf, sizeof(abuf)); in sa_print()
205 printf(" af=inet len=%d addr=%s", sa->sa_len, abuf); in sa_print()
209 inet_ntop(AF_INET6, &sin6->sin6_addr, abuf, sizeof(abuf)); in sa_print()
210 int scope_id = sin6->sin6_scope_id; in sa_print()
211 printf(" af=inet6 len=%d addr=%s", sa->sa_len, abuf); in sa_print()
220 int sdl_index = sdl->sdl_index; in sa_print()
224 printf(" af=link len=%d sdl_index=%d if_name=%s", sdl->sdl_len, sdl_index, ifbuf); in sa_print()
226 if (sdl->sdl_nlen) { in sa_print()
228 memcpy(_ifname, sdl->sdl_data, sdl->sdl_nlen); in sa_print()
229 _ifname[sdl->sdl_nlen] = '\0'; in sa_print()
232 if (sdl->sdl_alen) { in sa_print()
235 for (int i = 0; i < sdl->sdl_alen; i++) { in sa_print()
236 if (i + 1 < sdl->sdl_alen) in sa_print()
244 printf(" af=%d len=%d", sa->sa_family, sa->sa_len); in sa_print()
248 sa_print_hd(hdbuf, sizeof(hdbuf), ((char *)sa), sa->sa_len); in sa_print()
262 rtsock_print_rtm(struct rt_msghdr *rtm) in rtsock_print_rtm() argument
271 printf("Got message of size %hu on %s\n", rtm->rtm_msglen, buf); in rtsock_print_rtm()
274 rtsock_print_rtm_flags(flags_buf, sizeof(flags_buf), rtm->rtm_flags); in rtsock_print_rtm()
276 printf("%s: len %hu, pid: %d, seq %d, errno %d, flags: %s\n", msgtypes[rtm->rtm_type], in rtsock_print_rtm()
277 rtm->rtm_msglen, rtm->rtm_pid, rtm->rtm_seq, rtm->rtm_errno, flags_buf); in rtsock_print_rtm()
279 if (rtm->rtm_inits > 0) { in rtsock_print_rtm()
280 _printb(flags_buf, sizeof(flags_buf), rtm->rtm_inits, metricnames); in rtsock_print_rtm()
282 if (rtm->rtm_inits & RTV_MTU) in rtsock_print_rtm()
283 printf("mtu: %lu\n", rtm->rtm_rmx.rmx_mtu); in rtsock_print_rtm()
284 if (rtm->rtm_inits & RTV_EXPIRE) { in rtsock_print_rtm()
288 (int)(rtm->rtm_rmx.rmx_expire - tv.tv_sec), rtm->rtm_rmx.rmx_expire); in rtsock_print_rtm()
292 _printb(flags_buf, sizeof(flags_buf), rtm->rtm_addrs, addrnames); in rtsock_print_rtm()
293 printf("sockaddrs: 0x%X %s\n", rtm->rtm_addrs, flags_buf); in rtsock_print_rtm()
295 char *ptr = (char *)(rtm + 1); in rtsock_print_rtm()
297 if (rtm->rtm_addrs & (1 << i)) { in rtsock_print_rtm()
302 ptr += ALIGN(((struct sockaddr *)ptr)->sa_len); in rtsock_print_rtm()
320 printf("Got message of size %hu on %s\n", ifam->ifam_msglen, buf); in rtsock_print_ifa()
323 _printb(flags_buf, sizeof(flags_buf), ifam->ifam_flags, routeflags); in rtsock_print_ifa()
325 printf("%s: len %hu, ifindex: %d, flags: %s\n", msgtypes[ifam->ifam_type], in rtsock_print_ifa()
326 ifam->ifam_msglen, ifam->ifam_index, flags_buf); in rtsock_print_ifa()
328 _printb(flags_buf, sizeof(flags_buf), ifam->ifam_addrs, addrnames); in rtsock_print_ifa()
329 printf("sockaddrs: 0x%X %s\n", ifam->ifam_addrs, flags_buf); in rtsock_print_ifa()
333 if (ifam->ifam_addrs & (1 << i)) { in rtsock_print_ifa()
338 ptr += ALIGN(((struct sockaddr *)ptr)->sa_len); in rtsock_print_ifa()
347 rtsock_print_message_hd(struct rt_msghdr *rtm) in rtsock_print_message_hd() argument
358 rtsock_print_cmdtype(rtm->rtm_type), in rtsock_print_message_hd()
359 rtm->rtm_msglen, buf); in rtsock_print_message_hd()
361 sa_print_hd(dumpbuf, sizeof(dumpbuf), (char *)rtm, rtm->rtm_msglen); in rtsock_print_message_hd()
366 rtsock_print_message(struct rt_msghdr *rtm) in rtsock_print_message() argument
369 switch (rtm->rtm_type) { in rtsock_print_message()
374 rtsock_print_rtm(rtm); in rtsock_print_message()
378 rtsock_print_ifa((struct ifa_msghdr *)rtm); in rtsock_print_message()
381 printf("unknown rt message type %X\n", rtm->rtm_type); in rtsock_print_message()
404 snprintf(cmdbuf, sizeof(cmdbuf), "/usr/bin/netstat -%srnW", key); in rtsock_print_table()
407 snprintf(cmdbuf, sizeof(cmdbuf), "/usr/bin/netstat -%sonW", key); in rtsock_print_table()