Home | History | Annotate | Download | only in net

Lines Matching defs:rtm

216 	struct rt_xmsghdr rtm;
232 offsetof(struct rt_xmsghdr, rtm_type) + sizeof(rtm.rtm_type))
236 sizeof(rtm.rtm_type), &rtm.rtm_type);
237 if (rtm.rtm_type >= sizeof(rop->rocb_msgfilter) * CHAR_BIT)
239 /* If the rtm type is filtered out, return a positive. */
241 !(rop->rocb_msgfilter & RTMSGFILTER(rtm.rtm_type)))
244 if (rop->rocb_missfilterlen != 0 && rtm.rtm_type == RTM_MISS) {
252 if (m->m_pkthdr.len < sizeof(rtm) + _SA_MINSIZE)
254 m_copydata(m, sizeof(rtm) + offsetof(struct sockaddr, sa_len),
258 m->m_pkthdr.len < sizeof(rtm) + ss.ss_len)
261 m_copydata(m, sizeof(rtm), ss.ss_len, &ss);
591 struct rt_xmsghdr *rtm, struct rt_xmsghdr **new_rtm)
595 if (rtm->rtm_addrs & (RTA_IFP | RTA_IFA)) {
625 rtm->rtm_index = ifp->if_index;
627 error = rt_msg2(rtm->rtm_type, info, NULL, NULL, &len);
630 if (len > rtm->rtm_msglen) {
631 struct rt_xmsghdr *old_rtm = rtm;
636 rtm = *new_rtm;
638 (void)rt_msg2(rtmrtm, NULL, 0);
639 rtm->rtm_flags = rt->rt_flags;
640 rtm_setmetrics(rt, rtm);
641 rtm->rtm_addrs = info->rti_addrs;
652 struct rt_xmsghdr *rtm = NULL;
673 if (len < sizeof(*rtm)) {
682 R_Malloc(rtm, struct rt_xmsghdr *, len);
683 if (rtm == NULL) {
687 m_copydata(m, 0, len, rtm);
688 if (rtm->rtm_version != RTM_XVERSION) {
692 rtm->rtm_pid = curproc->p_pid;
694 info.rti_addrs = rtm->rtm_addrs;
695 if (rt_xaddrs(rtm->rtm_type, (const char *)(rtm + 1), len + (char *)rtm,
699 info.rti_flags = rtm->rtm_flags;
721 0, rtm, NULL, NULL) != 0)
748 switch (rtm->rtm_type) {
792 error = lla_rt_output(rtm->rtm_type, rtm->rtm_flags,
793 rtm->rtm_rmx.rmx_expire, &info, sdl_index);
798 error = rtrequest1(rtm->rtm_type, &info, &saved_nrt);
800 _rt_setmetrics(rtm->rtm_inits, rtm, saved_nrt);
810 (rtm->rtm_flags & RTF_LLDATA) != 0) {
813 error = lla_rt_output(rtm->rtm_type, rtm->rtm_flags,
814 rtm->rtm_rmx.rmx_expire, &info, sdlp->sdl_index);
815 rtm->rtm_flags &= ~RTF_UP;
819 error = rtrequest1(rtm->rtm_type, &info, &saved_nrt);
829 error = route_output_report(rt, &info, rtm, &new_rtm);
833 old_rtm = rtm;
834 rtm = new_rtm;
849 if (rtm->rtm_type != RTM_GET) {/* XXX: too grotty */
868 if (((rtm->rtm_flags & RTF_LLDATA) != 0 ||
869 (rtm->rtm_flags & RTF_UP) == 0) &&
870 rtm->rtm_type == RTM_GET &&
876 error = route_output_report(rt, &info, rtm, &new_rtm);
880 old_rtm = rtm;
881 rtm = new_rtm;
883 rtm->rtm_flags |= RTF_LLDATA;
884 rtm->rtm_flags &= ~RTF_CONNECTED;
885 rtm->rtm_flags |= (ll_flags & LLE_STATIC) ? RTF_STATIC : 0;
889 switch (rtm->rtm_type) {
895 error = route_output_report(rt, &info, rtm, &new_rtm);
899 old_rtm = rtm;
900 rtm = new_rtm;
930 error = rt_update(rt, &info, rtm);
938 error = rt_update(rt, &info, rtm);
944 rt->rt_rmx.rmx_locks &= ~(rtm->rtm_inits);
946 (rtm->rtm_inits & rtm->rtm_rmx.rmx_locks);
956 if (rtm) {
958 rtm->rtm_errno = error;
960 rtm->rtm_flags |= RTF_DONE;
993 if (rtm)
994 Free(rtm);
1001 if (rtm) {
1002 m_copyback(m, 0, rtm->rtm_msglen, rtm);
1003 if (m->m_pkthdr.len < rtm->rtm_msglen) {
1006 } else if (m->m_pkthdr.len > rtm->rtm_msglen)
1007 m_adj(m, rtm->rtm_msglen - m->m_pkthdr.len);
1008 Free(rtm);
1210 printf("%s: unsupported RTM type %d\n", __func__, type);
1225 printf("%s: unsupported RTM type RTM_OOIFINFO\n",
1236 printf("%s: unsupported RTM type RTM_OIFINFO\n",
1258 struct rt_xmsghdr *rtm;
1288 rtm = mtod(m, struct rt_xmsghdr *);
1307 rtm->rtm_msglen = len;
1308 rtm->rtm_version = RTM_XVERSION;
1309 rtm->rtm_type = type;
1384 struct rt_xmsghdr *rtm = (struct rt_xmsghdr *)cp0;
1386 rtm->rtm_version = RTM_XVERSION;
1387 rtm->rtm_type = type;
1388 rtm->rtm_msglen = len;
1405 struct rt_xmsghdr rtm;
1413 memset(&rtm, 0, sizeof(rtm));
1414 rtm.rtm_pid = curproc->p_pid;
1415 rtm.rtm_flags = RTF_DONE | flags;
1416 rtm.rtm_errno = error;
1417 m = COMPATNAME(rt_msg1)(type, &info, &rtm, sizeof(rtm));
1470 struct rt_xmsghdr rtm;
1547 memset(&rtm, 0, sizeof(rtm));
1548 rtm.rtm_pid = curproc->p_pid;
1549 rtm.rtm_index = ifp->if_index;
1550 rtm.rtm_flags |= rt->rt_flags;
1551 rtm.rtm_errno = error;
1552 m = COMPATNAME(rt_msg1)(cmd, &info, &rtm, sizeof(rtm));
1799 .dom_mowner = MOWNER_INIT("route", "rtm"),