Lines Matching refs:tg
54 static void target_print(struct target *tg);
55 static void target_insert(struct phyint_instance *pii, struct target *tg);
60 static void reset_pii_probes(struct phyint_instance *pii, struct target *tg);
1621 struct target *tg; in phyint_inst_print() local
1641 for (tg = pii->pii_targets; tg != NULL; tg = tg->tg_next) in phyint_inst_print()
1642 target_print(tg); in phyint_inst_print()
2014 struct target *tg; in target_lookup() local
2024 for (tg = pii->pii_targets; tg != NULL; tg = tg->tg_next) { in target_lookup()
2025 if (IN6_ARE_ADDR_EQUAL(&tg->tg_address, &addr)) in target_lookup()
2028 return (tg); in target_lookup()
2036 target_next(struct target *tg) in target_next() argument
2038 struct phyint_instance *pii = tg->tg_phyint_inst; in target_next()
2039 struct target *marker = tg; in target_next()
2048 assert(pii->pii_targets == tg || tg->tg_prev != NULL); in target_next()
2057 tg = tg->tg_next; in target_next()
2058 if (tg == NULL) in target_next()
2059 tg = pii->pii_targets; in target_next()
2061 assert(TG_STATUS_VALID(tg->tg_status)); in target_next()
2063 switch (tg->tg_status) { in target_next()
2065 return (tg); in target_next()
2073 tg->tg_status = TG_ACTIVE; in target_next()
2075 return (tg); in target_next()
2081 if (tg->tg_latime + MIN_RECOVERY_TIME < now) { in target_next()
2085 tg->tg_status = TG_UNUSED; in target_next()
2091 if (tg->tg_latime + MIN_RECOVERY_TIME < now) { in target_next()
2095 tg->tg_status = TG_SLOW; in target_next()
2096 tg->tg_latime = now; in target_next()
2101 } while (tg != marker); in target_next()
2121 struct target *tg; in target_select_best() local
2130 for (tg = pii->pii_targets; tg != NULL; tg = tg->tg_next) { in target_select_best()
2131 assert(TG_STATUS_VALID(tg->tg_status)); in target_select_best()
2133 switch (tg->tg_status) { in target_select_best()
2135 return (tg); in target_select_best()
2138 if (tg->tg_latime + MIN_RECOVERY_TIME < now) { in target_select_best()
2139 slow_recovered = tg; in target_select_best()
2143 tg->tg_status = TG_UNUSED; in target_select_best()
2145 slow = tg; in target_select_best()
2150 if (tg->tg_latime + MIN_RECOVERY_TIME < now) { in target_select_best()
2151 dead_recovered = tg; in target_select_best()
2155 tg->tg_status = TG_SLOW; in target_select_best()
2156 tg->tg_latime = now; in target_select_best()
2158 dead = tg; in target_select_best()
2184 struct target *tg; in target_activate_all() local
2192 tg = target_select_best(pii); in target_activate_all()
2193 if (tg == NULL) { in target_activate_all()
2198 assert(TG_STATUS_VALID(tg->tg_status)); in target_activate_all()
2199 assert(tg->tg_status != TG_ACTIVE); in target_activate_all()
2200 tg->tg_status = TG_ACTIVE; in target_activate_all()
2203 pii->pii_target_next = tg; in target_activate_all()
2204 pii->pii_rtt_target_next = tg; in target_activate_all()
2212 struct target *tg; in target_first() local
2214 for (tg = pii->pii_targets; tg != NULL; tg = tg->tg_next) { in target_first()
2215 assert(TG_STATUS_VALID(tg->tg_status)); in target_first()
2216 if (tg->tg_status == TG_ACTIVE) in target_first()
2220 return (tg); in target_first()
2230 struct target *tg; in target_create() local
2285 tg = calloc(1, sizeof (struct target)); in target_create()
2286 if (tg == NULL) { in target_create()
2291 tg->tg_phyint_inst = pii; in target_create()
2292 tg->tg_address = addr; in target_create()
2293 tg->tg_in_use = 1; in target_create()
2294 tg->tg_rtt_sa = -1; in target_create()
2295 tg->tg_num_deferred = 0; in target_create()
2313 tg->tg_status = TG_UNUSED; in target_create()
2317 pii->pii_target_next = tg; in target_create()
2318 pii->pii_rtt_target_next = tg; in target_create()
2321 tg->tg_status = TG_ACTIVE; in target_create()
2324 target_insert(pii, tg); in target_create()
2350 struct target *tg; in target_add() local
2355 tg = target_lookup(pii, addr); in target_add()
2364 if (tg == NULL || (is_router && !pii->pii_targets_are_routers)) in target_add()
2367 tg->tg_in_use = 1; in target_add()
2375 target_insert(struct phyint_instance *pii, struct target *tg) in target_insert() argument
2377 tg->tg_next = pii->pii_targets; in target_insert()
2378 tg->tg_prev = NULL; in target_insert()
2379 if (tg->tg_next != NULL) in target_insert()
2380 tg->tg_next->tg_prev = tg; in target_insert()
2381 pii->pii_targets = tg; in target_insert()
2388 target_delete(struct target *tg) in target_delete() argument
2394 pii = tg->tg_phyint_inst; in target_delete()
2402 pr_addr(af, tg->tg_address, abuf, sizeof (abuf))); in target_delete()
2409 assert(pii->pii_targets == tg || tg->tg_prev != NULL); in target_delete()
2415 reset_pii_probes(pii, tg); in target_delete()
2421 if (tg->tg_prev == NULL) { in target_delete()
2422 pii->pii_targets = tg->tg_next; in target_delete()
2424 tg->tg_prev->tg_next = tg->tg_next; in target_delete()
2427 if (tg->tg_next != NULL) in target_delete()
2428 tg->tg_next->tg_prev = tg->tg_prev; in target_delete()
2430 tg->tg_next = NULL; in target_delete()
2431 tg->tg_prev = NULL; in target_delete()
2433 if (tg->tg_status == TG_ACTIVE) in target_delete()
2440 if (pii->pii_target_next == tg) in target_delete()
2443 if (pii->pii_rtt_target_next == tg) in target_delete()
2446 free(tg); in target_delete()
2550 reset_pii_probes(struct phyint_instance *pii, struct target *tg) in reset_pii_probes() argument
2555 if (pii->pii_probes[i].pr_target == tg) { in reset_pii_probes()
2577 target_print(struct target *tg) in target_print() argument
2585 af = tg->tg_phyint_inst->pii_af; in target_print()
2589 AF_STR(af), tg->tg_phyint_inst->pii_name, in target_print()
2590 pr_addr(af, tg->tg_address, abuf, sizeof (abuf)), in target_print()
2591 tg->tg_status, tg->tg_rtt_sa, tg->tg_rtt_sd, in target_print()
2592 tg->tg_crtt, tg->tg_in_use); in target_print()
2595 for (i = 0; i < tg->tg_num_deferred; i++) { in target_print()
2597 tg->tg_deferred[i]); in target_print()
2916 struct target *tg = pr->pr_target; in probe_state_event() local
2960 if (tg != NULL) in probe_state_event()
2961 addr2storage(pii->pii_af, &tg->tg_address, &ss); in probe_state_event()
2970 rttavg = (tg != NULL) ? (tg->tg_rtt_sa / 8) : 0; in probe_state_event()
2975 rttdev = (tg != NULL) ? (tg->tg_rtt_sd / 4) : 0; in probe_state_event()
3276 struct target *tg; in gettarginfo() local
3282 tg = pii->pii_target_next; in gettarginfo()
3284 if (tg->tg_status == TG_ACTIVE) { in gettarginfo()
3286 addr2storage(pii->pii_af, &tg->tg_address, in gettarginfo()
3289 if ((tg = tg->tg_next) == NULL) in gettarginfo()
3290 tg = pii->pii_targets; in gettarginfo()
3291 } while (tg != pii->pii_target_next); in gettarginfo()