Lines Matching defs:drp

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