Lines Matching refs:rtm
450 if_copyrt(struct dhcpcd_ctx *ctx, struct rt *rt, struct rt_msghdr *rtm) in if_copyrt() argument
455 cp = (char *)(void *)(rtm + 1); in if_copyrt()
459 if (~rtm->rtm_addrs & (RTA_DST | RTA_GATEWAY)) in if_copyrt()
462 if (rtm->rtm_flags & RTF_CLONED) in if_copyrt()
466 if (rtm->rtm_flags & RTF_LOCAL) in if_copyrt()
470 if (rtm->rtm_flags & RTF_BROADCAST) in if_copyrt()
474 get_addrs(rtm->rtm_addrs, cp, rti_info); in if_copyrt()
476 rt->flags = (unsigned int)rtm->rtm_flags; in if_copyrt()
478 if (rtm->rtm_addrs & RTA_NETMASK) in if_copyrt()
485 if (rtm->rtm_inits & RTV_MTU) in if_copyrt()
486 rt->mtu = (unsigned int)rtm->rtm_rmx.rmx_mtu; in if_copyrt()
488 if (rtm->rtm_index) in if_copyrt()
489 rt->iface = if_findindex(ctx->ifaces, rtm->rtm_index); in if_copyrt()
490 else if (rtm->rtm_addrs & RTA_IFP) { in if_copyrt()
500 !(~rtm->rtm_flags & (RTF_HOST | RTF_GATEWAY))) in if_copyrt()
521 struct rtm in if_route() struct
525 } rtm; in if_route() local
526 char *bp = rtm.buffer; in if_route()
569 memset(&rtm, 0, sizeof(rtm)); in if_route()
570 rtm.hdr.rtm_version = RTM_VERSION; in if_route()
571 rtm.hdr.rtm_seq = 1; in if_route()
572 rtm.hdr.rtm_type = cmd; in if_route()
573 rtm.hdr.rtm_addrs = RTA_DST; in if_route()
575 rtm.hdr.rtm_addrs |= RTA_GATEWAY; in if_route()
576 rtm.hdr.rtm_flags = RTF_UP; in if_route()
579 rtm.hdr.rtm_flags |= RTF_PINNED; in if_route()
583 rtm.hdr.rtm_addrs |= RTA_IFA | RTA_IFP; in if_route()
593 rtm.hdr.rtm_flags |= RTF_STATIC; in if_route()
596 rtm.hdr.rtm_flags |= RTF_CLONING; in if_route()
599 rtm.hdr.rtm_priority = RTP_CONNECTED; in if_route()
613 rtm.hdr.rtm_flags |= RTF_CLONING; in if_route()
614 rtm.hdr.rtm_addrs |= RTA_NETMASK; in if_route()
616 rtm.hdr.rtm_flags |= RTF_HOST; in if_route()
621 rtm.hdr.rtm_flags |= RTF_HOST | RTF_GATEWAY; in if_route()
624 rtm.hdr.rtm_addrs &= ~(RTA_IFA | RTA_IFP); in if_route()
626 rtm.hdr.rtm_addrs |= RTA_NETMASK; in if_route()
627 if (rtm.hdr.rtm_flags & RTF_STATIC) in if_route()
628 rtm.hdr.rtm_flags |= RTF_GATEWAY; in if_route()
631 !(rtm.hdr.rtm_flags & RTF_GATEWAY)) in if_route()
632 rtm.hdr.rtm_addrs |= RTA_IFA | RTA_IFP; in if_route()
635 if (rtm.hdr.rtm_addrs & RTA_GATEWAY) { in if_route()
637 if ((rtm.hdr.rtm_flags & (RTF_HOST | RTF_CLONING) && in if_route()
639 if ((rtm.hdr.rtm_flags & RTF_HOST && in if_route()
642 !(rtm.hdr.rtm_flags & RTF_STATIC)) in if_route()
650 if (rtm.hdr.rtm_addrs & RTA_NETMASK) in if_route()
654 (rtm.hdr.rtm_addrs & (RTA_IFP | RTA_IFA))) in if_route()
656 rtm.hdr.rtm_index = (unsigned short)rt->iface->index; in if_route()
657 if (rtm.hdr.rtm_addrs & RTA_IFP) { in if_route()
662 if (rtm.hdr.rtm_addrs & RTA_IFA) in if_route()
666 rtm.hdr.rtm_inits |= RTV_MTU; in if_route()
667 rtm.hdr.rtm_rmx.rmx_mtu = rt->mtu; in if_route()
674 rtm.hdr.rtm_msglen = (unsigned short)(bp - (char *)&rtm); in if_route()
676 &rtm, rtm.hdr.rtm_msglen) == -1 ? -1 : 0; in if_route()
682 struct rt_msghdr *rtm; in if_initrt() local
707 for (p = buf; p < end; p += rtm->rtm_msglen) { in if_initrt()
708 rtm = (struct rt_msghdr *)(void *)p; in if_initrt()
709 if (if_copyrt(ifp->ctx, &rt, rtm) == 0) in if_initrt()
828 if_copyrt6(struct dhcpcd_ctx *ctx, struct rt6 *rt, struct rt_msghdr *rtm) in if_copyrt6() argument
833 cp = (char *)(void *)(rtm + 1); in if_copyrt6()
837 if (~rtm->rtm_addrs & (RTA_DST | RTA_GATEWAY)) in if_copyrt6()
840 if (rtm->rtm_flags & (RTF_CLONED | RTF_HOST)) in if_copyrt6()
843 if (rtm->rtm_flags & RTF_HOST) in if_copyrt6()
847 if (rtm->rtm_flags & RTF_LOCAL) in if_copyrt6()
851 get_addrs(rtm->rtm_addrs, cp, rti_info); in if_copyrt6()
853 rt->flags = (unsigned int)rtm->rtm_flags; in if_copyrt6()
855 if (rtm->rtm_addrs & RTA_NETMASK) { in if_copyrt6()
904 if (rtm->rtm_inits & RTV_MTU) in if_copyrt6()
905 rt->mtu = (unsigned int)rtm->rtm_rmx.rmx_mtu; in if_copyrt6()
907 if (rtm->rtm_index) in if_copyrt6()
908 rt->iface = if_findindex(ctx->ifaces, rtm->rtm_index); in if_copyrt6()
909 else if (rtm->rtm_addrs & RTA_IFP) { in if_copyrt6()
918 !(~rtm->rtm_flags & (RTF_HOST | RTF_GATEWAY))) in if_copyrt6()
937 struct rtm in if_route6() struct
941 } rtm; in if_route6() local
942 char *bp = rtm.buffer; in if_route6()
961 memset(&rtm, 0, sizeof(rtm)); in if_route6()
962 rtm.hdr.rtm_version = RTM_VERSION; in if_route6()
963 rtm.hdr.rtm_seq = 1; in if_route6()
964 rtm.hdr.rtm_type = cmd; in if_route6()
965 rtm.hdr.rtm_flags = RTF_UP | (int)rt->flags; in if_route6()
967 if (rtm.hdr.rtm_type != RTM_ADD) in if_route6()
968 rtm.hdr.rtm_flags |= RTF_PINNED; in if_route6()
970 rtm.hdr.rtm_addrs = RTA_DST | RTA_NETMASK; in if_route6()
974 rtm.hdr.rtm_flags |= RTF_CLONING; in if_route6()
977 rtm.hdr.rtm_priority = RTP_CONNECTED; in if_route6()
980 rtm.hdr.rtm_flags |= RTF_GATEWAY | RTF_STATIC; in if_route6()
983 rtm.hdr.rtm_addrs |= RTA_GATEWAY; in if_route6()
984 if (cmd == RTM_ADD && !(rtm.hdr.rtm_flags & RTF_REJECT)) in if_route6()
985 rtm.hdr.rtm_addrs |= RTA_IFP | RTA_IFA; in if_route6()
988 if (rtm.hdr.rtm_addrs & RTA_GATEWAY) { in if_route6()
997 if (rtm.hdr.rtm_addrs & RTA_NETMASK) in if_route6()
1001 (rtm.hdr.rtm_addrs & (RTA_IFP | RTA_IFA))) in if_route6()
1003 rtm.hdr.rtm_index = (unsigned short)rt->iface->index; in if_route6()
1004 if (rtm.hdr.rtm_addrs & RTA_IFP) { in if_route6()
1009 if (rtm.hdr.rtm_addrs & RTA_IFA) { in if_route6()
1019 rtm.hdr.rtm_inits |= RTV_MTU; in if_route6()
1020 rtm.hdr.rtm_rmx.rmx_mtu = rt->mtu; in if_route6()
1027 rtm.hdr.rtm_msglen = (unsigned short)(bp - (char *)&rtm); in if_route6()
1029 &rtm, rtm.hdr.rtm_msglen) == -1 ? -1 : 0; in if_route6()
1035 struct rt_msghdr *rtm; in if_initrt6() local
1060 for (p = buf; p < end; p += rtm->rtm_msglen) { in if_initrt6()
1061 rtm = (struct rt_msghdr *)(void *)p; in if_initrt6()
1062 if (if_copyrt6(ifp->ctx, &rt, rtm) == 0) in if_initrt6()
1129 struct rt_msghdr *rtm; in if_managelink() local
1154 for (p = msg; p < e; p += rtm->rtm_msglen) { in if_managelink()
1155 rtm = (struct rt_msghdr *)(void *)p; in if_managelink()
1157 if (rtm->rtm_pid == getpid()) in if_managelink()
1159 switch(rtm->rtm_type) { in if_managelink()
1204 cp = (char *)(void *)(rtm + 1); in if_managelink()
1209 if (if_copyrt(ctx, &rt, rtm) == 0) in if_managelink()
1210 ipv4_handlert(ctx, rtm->rtm_type, &rt); in if_managelink()
1215 if (~rtm->rtm_addrs & (RTA_DST | RTA_GATEWAY)) in if_managelink()
1224 if (rtm->rtm_flags & (RTF_HOST)) { in if_managelink()
1225 get_addrs(rtm->rtm_addrs, cp, rti_info); in if_managelink()
1236 rtm->rtm_type != RTM_DELETE && in if_managelink()
1242 if (if_copyrt6(ctx, &rt6, rtm) == 0) in if_managelink()
1243 ipv6_handlert(ctx, rtm->rtm_type, &rt6); in if_managelink()
1264 if (rtm->rtm_type != RTM_CHGADDR) in if_managelink()
1267 if (rtm->rtm_type != RTM_NEWADDR) in if_managelink()
1282 if (rtm->rtm_type == RTM_NEWADDR) { in if_managelink()
1288 ipv4_handleifa(ctx, rtm->rtm_type, in if_managelink()
1303 if (rtm->rtm_type == RTM_NEWADDR) { in if_managelink()
1309 ipv6_handleifa(ctx, rtm->rtm_type, NULL, in if_managelink()