Lines Matching refs:rti_info

350 		info.rti_info[RTAX_DST] = NULL;
355 info.rti_info[RTAX_DST] = NULL;
360 info.rti_info[RTAX_DST] = NULL;
380 info.rti_info[RTAX_DST] = NULL;
387 info.rti_info[RTAX_DST] = NULL;
390 if (info.rti_info[RTAX_DST] == NULL || (info.rti_info[RTAX_DST]->sa_family >= AF_MAX) ||
391 (info.rti_info[RTAX_GATEWAY] != NULL && (info.rti_info[RTAX_GATEWAY]->sa_family >= AF_MAX))) {
395 if (info.rti_info[RTAX_DST]->sa_family == AF_INET && info.rti_info[RTAX_DST]->sa_len != sizeof (dst_in)) {
397 if (info.rti_info[RTAX_DST]->sa_len < offsetof(struct sockaddr_in, sin_zero))
402 dst_in.sin_port = SIN(info.rti_info[RTAX_DST])->sin_port;
403 dst_in.sin_addr = SIN(info.rti_info[RTAX_DST])->sin_addr;
404 info.rti_info[RTAX_DST] = (struct sockaddr *)&dst_in;
405 dst_sa_family = info.rti_info[RTAX_DST]->sa_family;
408 if (info.rti_info[RTAX_GATEWAY] != NULL &&
409 info.rti_info[RTAX_GATEWAY]->sa_family == AF_INET && info.rti_info[RTAX_GATEWAY]->sa_len != sizeof (gate_in)) {
411 if (info.rti_info[RTAX_GATEWAY]->sa_len < offsetof(struct sockaddr_in, sin_zero))
416 gate_in.sin_port = SIN(info.rti_info[RTAX_GATEWAY])->sin_port;
417 gate_in.sin_addr = SIN(info.rti_info[RTAX_GATEWAY])->sin_addr;
418 info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&gate_in;
421 if (info.rti_info[RTAX_GENMASK]) {
423 t = rn_addmask((caddr_t)info.rti_info[RTAX_GENMASK], 0, 1);
424 if (t && Bcmp(info.rti_info[RTAX_GENMASK], t->rn_key, *(u_char *)info.rti_info[RTAX_GENMASK]) == 0)
425 info.rti_info[RTAX_GENMASK] = (struct sockaddr *)(t->rn_key);
434 if (info.rti_info[RTAX_DST]->sa_family != AF_INET && info.rti_info[RTAX_DST]->sa_family != AF_INET6)
452 if (info.rti_info[RTAX_DST]->sa_family == AF_INET)
453 sin_set_ifscope(info.rti_info[RTAX_DST], IFSCOPE_NONE);
454 if (info.rti_info[RTAX_GATEWAY] != NULL && info.rti_info[RTAX_GATEWAY]->sa_family == AF_INET)
455 sin_set_ifscope(info.rti_info[RTAX_GATEWAY], IFSCOPE_NONE);
460 if (info.rti_info[RTAX_GATEWAY] == NULL)
478 if (check_routeselfref && (info.rti_info[RTAX_DST] && info.rti_info[RTAX_DST]->sa_family == AF_INET) &&
479 (info.rti_info[RTAX_NETMASK] && satosinaddr(info.rti_info[RTAX_NETMASK]) == INADDR_BROADCAST) &&
480 (info.rti_info[RTAX_GATEWAY] && satosinaddr(info.rti_info[RTAX_DST]) == satosinaddr(info.rti_info[RTAX_GATEWAY]))) {
482 (ntohl(satosinaddr(info.rti_info[RTAX_GATEWAY])>>24))&0xff,
483 (ntohl(satosinaddr(info.rti_info[RTAX_GATEWAY])>>16))&0xff,
484 (ntohl(satosinaddr(info.rti_info[RTAX_GATEWAY])>>8))&0xff,
485 (ntohl(satosinaddr(info.rti_info[RTAX_GATEWAY])))&0xff);
491 error = rtrequest_scoped_locked(RTM_ADD, info.rti_info[RTAX_DST], info.rti_info[RTAX_GATEWAY],
492 info.rti_info[RTAX_NETMASK], rtm->rtm_flags, &saved_nrt, ifscope);
524 rt_setif(saved_nrt, info.rti_info[RTAX_IFP], info.rti_info[RTAX_IFA], info.rti_info[RTAX_GATEWAY],
532 saved_nrt->rt_genmask = info.rti_info[RTAX_GENMASK];
539 error = rtrequest_scoped_locked(RTM_DELETE, info.rti_info[RTAX_DST],
540 info.rti_info[RTAX_GATEWAY], info.rti_info[RTAX_NETMASK], rtm->rtm_flags, &saved_nrt, ifscope);
551 if ((rnh = rt_tables[info.rti_info[RTAX_DST]->sa_family]) == NULL)
558 rt = rt_lookup(TRUE, info.rti_info[RTAX_DST], info.rti_info[RTAX_NETMASK], rnh, ifscope);
575 info.rti_info[RTAX_DST] = rt_key(rt);
576 dst_sa_family = info.rti_info[RTAX_DST]->sa_family;
577 info.rti_info[RTAX_GATEWAY] = rt->rt_gateway;
578 info.rti_info[RTAX_NETMASK] = rt_mask(rt);
579 info.rti_info[RTAX_GENMASK] = rt->rt_genmask;
585 info.rti_info[RTAX_IFP] = ifa2->ifa_addr;
588 info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr;
591 info.rti_info[RTAX_IFP] = NULL;
592 info.rti_info[RTAX_IFA] = NULL;
630 if (info.rti_info[RTAX_GATEWAY] && (error = rt_setgate(rt,
631 rt_key(rt), info.rti_info[RTAX_GATEWAY]))) {
643 if ((rt->rt_flags & RTF_GATEWAY) && !info.rti_info[RTAX_GATEWAY])
644 info.rti_info[RTAX_GATEWAY] = rt->rt_gateway;
652 rt_setif(rt, info.rti_info[RTAX_IFP], info.rti_info[RTAX_IFA], info.rti_info[RTAX_GATEWAY],
661 rt->rt_ifa->ifa_rtrequest(RTM_ADD, rt, info.rti_info[RTAX_GATEWAY]);
663 if (info.rti_info[RTAX_GENMASK])
664 rt->rt_genmask = info.rti_info[RTAX_GENMASK];
822 * Set route's interface given info.rti_info[RTAX_IFP], info.rti_info[RTAX_IFA], and gateway.
982 bzero(rtinfo->rti_info, sizeof(rtinfo->rti_info));
1002 rtinfo->rti_info[i] = &sa_zero;
1007 rtinfo->rti_info[i] = sa;
1060 if ((sa = rtinfo->rti_info[i]) == NULL)
1066 if ((hint = rtinfo->rti_info[RTAX_DST]) == NULL)
1067 hint = rtinfo->rti_info[RTAX_IFA];
1143 if ((sa = rtinfo->rti_info[i]) == 0)
1149 if ((hint = rtinfo->rti_info[RTAX_DST]) == NULL)
1150 hint = rtinfo->rti_info[RTAX_IFA];
1207 struct sockaddr *sa = rtinfo->rti_info[RTAX_DST];
1289 info.rti_info[RTAX_IFA] = sa = ifa->ifa_addr;
1296 info.rti_info[RTAX_IFP] = ifp->if_lladdr->ifa_addr;
1297 info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
1298 info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr;
1320 info.rti_info[RTAX_NETMASK] = rt_mask(rt);
1321 info.rti_info[RTAX_DST] = sa = rt_key(rt);
1322 info.rti_info[RTAX_GATEWAY] = rt->rt_gateway;
1357 info.rti_info[RTAX_IFA] = ifma->ifma_addr;
1358 info.rti_info[RTAX_IFP] = ifp->if_lladdr->ifa_addr; /* lladdr doesn't need lock */
1364 info.rti_info[RTAX_GATEWAY] = (ifma->ifma_ll != NULL) ? ifma->ifma_ll->ifma_addr : NULL;
1396 info.rti_info[RTAX_DST] = rt_key(rt);
1397 info.rti_info[RTAX_GATEWAY] = rt->rt_gateway;
1398 info.rti_info[RTAX_NETMASK] = rt_mask(rt);
1399 info.rti_info[RTAX_GENMASK] = rt->rt_genmask;
1462 info.rti_info[RTAX_DST] = rt_key(rt);
1463 info.rti_info[RTAX_GATEWAY] = rt->rt_gateway;
1464 info.rti_info[RTAX_NETMASK] = rt_mask(rt);
1465 info.rti_info[RTAX_GENMASK] = rt->rt_genmask;
1539 info.rti_info[RTAX_IFP] = ifa->ifa_addr;
1553 info.rti_info[RTAX_IFP] = ifa->ifa_addr;
1555 info.rti_info[RTAX_IFP] = NULL;
1574 info.rti_info[RTAX_IFA] = ifa->ifa_addr;
1575 info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
1576 info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr;
1605 info.rti_info[RTAX_IFA] = info.rti_info[RTAX_NETMASK] =
1606 info.rti_info[RTAX_BRD] = NULL;
1668 info.rti_info[RTAX_IFP] = ifa->ifa_addr;
1682 info.rti_info[RTAX_IFP] = ifa->ifa_addr;
1684 info.rti_info[RTAX_IFP] = NULL;
1708 info.rti_info[RTAX_IFA] = ifa->ifa_addr;
1709 info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
1710 info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr;
1755 info.rti_info[RTAX_IFA] = ifma->ifma_addr;
1763 info.rti_info[RTAX_IFP] = ifa0->ifa_addr;
1765 info.rti_info[RTAX_GATEWAY] = ifma->ifma_ll->ifma_addr;
1797 info.rti_info[RTAX_IFA] = info.rti_info[RTAX_NETMASK] =
1798 info.rti_info[RTAX_BRD] = NULL;