Lines Matching refs:rt

161 	struct rtentry *rt = (struct rtentry *)treenodes;
162 struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)(void *)rt_key(rt);
165 uint32_t flags = rt->rt_flags;
169 RT_LOCK_ASSERT_HELD(rt);
172 rt_str(rt, dbuf, sizeof (dbuf), gbuf, sizeof (gbuf));
182 if ((rt->rt_flags & RTF_DYNAMIC) &&
190 rt->rt_flags |= RTF_MULTICAST;
192 if (!(rt->rt_flags & (RTF_HOST | RTF_CLONING | RTF_MULTICAST)))
193 rt->rt_flags |= RTF_PRCLONING;
209 if (rt->rt_flags & RTF_HOST) {
210 IFA_LOCK_SPIN(rt->rt_ifa);
211 if (IN6_ARE_ADDR_EQUAL(&satosin6(rt->rt_ifa->ifa_addr)->
213 rt->rt_flags |= RTF_LOCAL;
215 IFA_UNLOCK(rt->rt_ifa);
218 if (!rt->rt_rmx.rmx_mtu && !(rt->rt_rmx.rmx_locks & RTV_MTU) &&
219 rt->rt_ifp)
220 rt->rt_rmx.rmx_mtu = rt->rt_ifp->if_mtu;
223 if (ret == NULL && (rt->rt_flags & RTF_HOST)) {
231 RTF_CLONING | RTF_PRCLONING, sin6_get_ifscope(rt_key(rt)));
249 (rt->rt_ifp != NULL) ?
250 rt->rt_ifp->if_xname : "",
251 rt->rt_flags, RTF_BITS,
273 } else if (ret == NULL && (rt->rt_flags & RTF_CLONING)) {
288 RTF_CLONING | RTF_PRCLONING, sin6_get_ifscope(rt_key(rt)));
295 rt2->rt_ifp == rt->rt_ifp) {
303 if (ret != NULL && (rt->rt_flags & RTF_DYNAMIC))
310 if (flags != rt->rt_flags) {
313 dbuf, gbuf, (rt->rt_ifp != NULL) ?
314 rt->rt_ifp->if_xname : "", flags, RTF_BITS,
315 rt->rt_flags, RTF_BITS);
319 (rt->rt_ifp != NULL) ? rt->rt_ifp->if_xname : "",
320 rt->rt_flags, RTF_BITS);
325 (rt->rt_ifp != NULL) ? rt->rt_ifp->if_xname : "",
326 rt->rt_flags, RTF_BITS);
341 struct rtentry *rt = (struct rtentry *)rn;
343 RT_LOCK(rt);
344 if (rt->rt_flags & RTF_DYNAMIC)
349 rt_str(rt, dbuf, sizeof (dbuf), gbuf, sizeof (gbuf));
352 (rt->rt_ifp != NULL) ? rt->rt_ifp->if_xname : "",
353 rt->rt_flags, RTF_BITS);
355 RT_UNLOCK(rt);
366 struct rtentry *rt = (struct rtentry *)rn;
368 RT_LOCK_ASSERT_HELD(rt);
371 if (rt->rt_refcnt == 0) {
375 rt_str(rt, dbuf, sizeof (dbuf), gbuf, sizeof (gbuf));
378 (rt->rt_ifp != NULL) ? rt->rt_ifp->if_xname : "",
379 rt->rt_flags, RTF_BITS);
387 if (rt->rt_flags & RTPRF_OURS) {
388 rt->rt_flags &= ~RTPRF_OURS;
389 rt_setexpire(rt, 0);
449 struct rtentry *rt = (struct rtentry *)rn;
453 RT_LOCK_ASSERT_HELD(rt);
455 if (!(rt->rt_flags & RTF_UP))
458 if ((rt->rt_flags & (RTF_LLINFO | RTF_HOST)) != RTF_HOST)
461 if (rt->rt_flags & RTPRF_OURS)
464 if (!(rt->rt_flags & (RTF_WASCLONED | RTF_DYNAMIC)))
468 rt_str(rt, dbuf, sizeof (dbuf), gbuf, sizeof (gbuf));
475 if ((rt->rt_flags & RTF_DELCLONE) || rtq_reallyold == 0) {
481 (rt->rt_ifp != NULL) ? rt->rt_ifp->if_xname : "",
482 rt->rt_flags, RTF_BITS);
493 RT_UNLOCK(rt);
494 err = rtrequest_locked(RTM_DELETE, rt_key(rt),
495 rt->rt_gateway, rt_mask(rt), rt->rt_flags, &rt);
498 RT_LOCK(rt);
499 RT_REMREF_LOCKED(rt);
501 RT_LOCK(rt);
503 rt_str(rt, dbuf, sizeof (dbuf),
507 dbuf, gbuf, (rt->rt_ifp != NULL) ?
508 rt->rt_ifp->if_xname : "", rt->rt_flags,
515 rt->rt_flags |= RTPRF_OURS;
516 rt_setexpire(rt, timenow + rtq_reallyold);
521 (rt->rt_ifp != NULL) ? rt->rt_ifp->if_xname : "",
522 rt->rt_flags, RTF_BITS, rt->rt_expire - timenow);
550 struct rtentry *rt = (struct rtentry *)rn;
558 RT_LOCK(rt);
559 if (rt->rt_flags & RTPRF_OURS) {
563 rt_str(rt, dbuf, sizeof (dbuf), gbuf, sizeof (gbuf));
566 VERIFY(rt->rt_expire == 0 || rt->rt_rmx.rmx_expire != 0);
567 VERIFY(rt->rt_expire != 0 || rt->rt_rmx.rmx_expire == 0);
568 if (ap->draining || rt->rt_expire <= timenow ||
569 ((rt->rt_flags & RTF_DYNAMIC) && ip6_maxdynroutes >= 0 &&
571 if (rt->rt_refcnt > 0) {
574 rt, rt->rt_refcnt);
580 __func__, dbuf, gbuf, (rt->rt_ifp != NULL) ?
581 rt->rt_ifp->if_xname : "", rt->rt_flags,
584 RT_ADDREF_LOCKED(rt); /* for us to free below */
588 * can no longer refer to 'rt' upon returning
594 RT_UNLOCK(rt);
595 err = rtrequest_locked(RTM_DELETE, rt_key(rt),
596 rt->rt_gateway, rt_mask(rt), rt->rt_flags, NULL);
598 RT_LOCK(rt);
600 rt_str(rt, dbuf, sizeof (dbuf),
604 dbuf, gbuf, (rt->rt_ifp != NULL) ?
605 rt->rt_ifp->if_xname : "", rt->rt_flags,
607 RT_UNLOCK(rt);
611 rtfree_locked(rt);
613 uint64_t expire = (rt->rt_expire - timenow);
616 rt_setexpire(rt, timenow + rtq_reallyold);
622 (rt->rt_ifp != NULL) ?
623 rt->rt_ifp->if_xname : "",
624 rt->rt_flags, RTF_BITS,
625 (rt->rt_expire - timenow), expire);
628 ap->nextstop = lmin(ap->nextstop, rt->rt_expire);
629 RT_UNLOCK(rt);
632 RT_UNLOCK(rt);