Lines Matching refs:drp
298 struct dr *drp; in set_supplier() local
310 for (drp = drs; drp < &drs[max_ads]; drp++) { in set_supplier()
311 drp->dr_recv_pref = DEF_PREFERENCELEVEL; in set_supplier()
312 drp->dr_life = 0; in set_supplier()
354 struct dr *drp; in rdisc_age() local
368 for (drp = drs; drp < &drs[max_ads]; drp++) { in rdisc_age()
369 if (drp->dr_ts == 0) in rdisc_age()
378 if (drp->dr_gate == bad_gate) { in rdisc_age()
379 sec = (now.tv_sec - drp->dr_life + in rdisc_age()
381 if (drp->dr_ts > sec) { in rdisc_age()
383 naddr_ntoa(drp->dr_gate), in rdisc_age()
384 drp->dr_ifp->int_name); in rdisc_age()
385 drp->dr_ts = sec; in rdisc_age()
456 struct dr *drp; in if_bad_rdisc() local
458 for (drp = drs; drp < &drs[max_ads]; drp++) { in if_bad_rdisc()
459 if (drp->dr_ifp != ifp) in if_bad_rdisc()
461 (void) memset(drp, 0, sizeof (*drp)); in if_bad_rdisc()
475 struct dr *drp; in if_rewire_rdisc() local
477 for (drp = drs; drp < &drs[max_ads]; drp++) { in if_rewire_rdisc()
478 if (drp->dr_ifp != oldifp) in if_rewire_rdisc()
480 drp->dr_ifp = newifp; in if_rewire_rdisc()
481 drp->dr_pref += (newifp->int_metric - oldifp->int_metric); in if_rewire_rdisc()
482 drp->dr_flags |= DR_CHANGED; in if_rewire_rdisc()
510 del_rdisc(struct dr *drp) in del_rdisc() argument
518 del_redirects(gate = drp->dr_gate, 0); in del_rdisc()
519 drp->dr_ts = 0; in del_rdisc()
520 drp->dr_life = 0; in del_rdisc()
527 if ((rt->rt_spares[i].rts_gate == drp->dr_gate) && in del_rdisc()
537 "through %s in table", naddr_ntoa(drp->dr_gate)); in del_rdisc()
542 ifp = drp->dr_ifp; in del_rdisc()
543 for (drp = drs; drp < &drs[max_ads]; drp++) { in del_rdisc()
544 if (drp->dr_ts != 0 && drp->dr_ifp == ifp) in del_rdisc()
576 struct dr *drp, *new_drp; in rdisc_sort() local
633 for (drp = drs; drp < &drs[max_ads]; drp++) { in rdisc_sort()
634 if (drp->dr_ts == 0) in rdisc_sort()
636 ifp = drp->dr_ifp; in rdisc_sort()
639 if (drp->dr_ts + drp->dr_life <= now.tv_sec) { in rdisc_sort()
640 del_rdisc(drp); in rdisc_sort()
644 LIM_SEC(rdisc_timer, drp->dr_ts+drp->dr_life); in rdisc_sort()
650 drp->dr_pref = PREF(drp->dr_recv_pref, ifp); in rdisc_sort()
659 (!((new_st ^ drp->dr_ifp->int_state) & IS_SICK) && in rdisc_sort()
660 (new_pref < drp->dr_pref || in rdisc_sort()
661 (new_pref == drp->dr_pref && (drp == cur_drp || in rdisc_sort()
663 new_drp->dr_life > drp->dr_life))))) || in rdisc_sort()
665 !(drp->dr_ifp->int_state & IS_SICK))) { in rdisc_sort()
666 new_drp = drp; in rdisc_sort()
667 new_st = drp->dr_ifp->int_state; in rdisc_sort()
668 new_pref = drp->dr_pref; in rdisc_sort()
768 for (drp = drs; drp < &drs[max_ads]; drp++) { in rdisc_sort()
772 if (drp->dr_ts == 0) in rdisc_sort()
775 if (drp->dr_pref != cur_drp->dr_pref && in rdisc_sort()
776 ((drp->dr_flags & DR_CHANGED) == 0)) in rdisc_sort()
798 drp->dr_gate) && in rdisc_sort()
812 drp->dr_flags &= ~DR_CHANGED; in rdisc_sort()
814 if (drp->dr_pref != cur_drp->dr_pref) { in rdisc_sort()
850 new.rts_ifp = drp->dr_ifp; in rdisc_sort()
851 new.rts_gate = drp->dr_gate; in rdisc_sort()
852 new.rts_router = drp->dr_gate; in rdisc_sort()
858 naddr_ntoa(drp->dr_gate), in rdisc_sort()
859 drp->dr_ifp->int_name); in rdisc_sort()
882 struct dr *drp, *new_drp; in parse_ad() local
915 for (new_drp = NULL, drp = drs; drp < &drs[max_ads]; drp++) { in parse_ad()
917 if ((drp->dr_gate == gate) && (drp->dr_ifp == ifp)) { in parse_ad()
918 new_drp = drp; in parse_ad()
919 drp->dr_flags |= DR_CHANGED; in parse_ad()
926 if (drp->dr_ts == 0) { in parse_ad()
927 new_drp = drp; /* use unused entry */ in parse_ad()
932 (drp->dr_ifp->int_state & IS_SICK)) || in parse_ad()
933 (pref > drp->dr_pref && in parse_ad()
934 !((ifp->int_state ^ drp->dr_ifp->int_state) & in parse_ad()
936 new_drp = drp; in parse_ad()
941 (drp->dr_ifp->int_state & IS_SICK)) || in parse_ad()
942 (new_drp->dr_pref > drp->dr_pref && in parse_ad()
944 drp->dr_ifp->int_state) & IS_SICK))) in parse_ad()
945 new_drp = drp; in parse_ad()
1398 struct dr *drp; in rdisc_dump() local
1400 for (drp = drs; drp < &drs[max_ads]; drp++) in rdisc_dump()
1401 if (drp->dr_ts != 0) in rdisc_dump()
1402 trace_dr(drp); in rdisc_dump()
1438 struct dr *drp; in process_d_mib_sock() local
1456 for (drp = drs; drp < &drs[max_ads]; drp++) { in process_d_mib_sock()
1457 if (drp->dr_ts != 0) { in process_d_mib_sock()
1469 for (drp = drs; drp < &drs[max_ads]; drp++) { in process_d_mib_sock()
1470 if (drp->dr_ts != 0) { in process_d_mib_sock()
1474 drp->dr_ifp->int_phys->phyi_index; in process_d_mib_sock()
1475 def_router.defr_life = drp->dr_life; in process_d_mib_sock()
1476 def_router.defr_addr.s_addr = drp->dr_gate; in process_d_mib_sock()
1477 def_router.defr_pref = drp->dr_pref; in process_d_mib_sock()