Lines Matching refs:pi

78 static boolean_t	phyint_repaired(struct phyint *pi);
1024 struct phyint *pi; in check_pg_crtt_improved() local
1033 for (pi = pg->pg_phyint; pi != NULL; pi = pi->pi_pgnext) { in check_pg_crtt_improved()
1034 if (!check_pii_crtt_improved(pi->pi_v4) || in check_pg_crtt_improved()
1035 !check_pii_crtt_improved(pi->pi_v6)) in check_pg_crtt_improved()
1127 struct phyint *pi; in incoming_mcast_reply() local
1174 pi = pii->pii_phyint; in incoming_mcast_reply()
1175 if (pi->pi_group == phyint_anongroup) { in incoming_mcast_reply()
1178 pi = pi->pi_group->pg_phyint; in incoming_mcast_reply()
1179 for (; pi != NULL; pi = pi->pi_pgnext) in incoming_mcast_reply()
1180 target_add(PHYINT_INSTANCE(pi, af), fromaddr, _B_FALSE); in incoming_mcast_reply()
1350 phyint_activate_another(struct phyint *pi) in phyint_activate_another() argument
1355 if (pi->pi_group == phyint_anongroup) in phyint_activate_another()
1358 for (pi2 = pi->pi_group->pg_phyint; pi2 != NULL; pi2 = pi2->pi_pgnext) { in phyint_activate_another()
1359 if (pi == pi2 || !phyint_is_functioning(pi2) || in phyint_activate_another()
1380 phyint_transition_to_running(struct phyint *pi) in phyint_transition_to_running() argument
1385 boolean_t onlining = (pi->pi_state == PI_OFFLINE); in phyint_transition_to_running()
1386 boolean_t initial = (pi->pi_state == PI_INIT); in phyint_transition_to_running()
1409 if (pi->pi_group != phyint_anongroup) { in phyint_transition_to_running()
1410 pi2 = pi->pi_group->pg_phyint; in phyint_transition_to_running()
1427 if (pi->pi_flags & IFF_STANDBY) { /* case 1 */ in phyint_transition_to_running()
1435 } else if (!initial && !GROUP_FAILED(pi->pi_group)) { /* case 3 */ in phyint_transition_to_running()
1438 (void) change_pif_flags(pi, set, clear); in phyint_transition_to_running()
1440 phyint_chstate(pi, PI_RUNNING); in phyint_transition_to_running()
1445 phyint_group_refresh_state(pi->pi_group); in phyint_transition_to_running()
1454 phyint_standby_refresh_inactive(struct phyint *pi) in phyint_standby_refresh_inactive() argument
1463 if (pi->pi_group == phyint_anongroup) { in phyint_standby_refresh_inactive()
1464 (void) change_pif_flags(pi, 0, IFF_INACTIVE); in phyint_standby_refresh_inactive()
1471 if (!phyint_is_functioning(pi)) in phyint_standby_refresh_inactive()
1474 for (pi2 = pi->pi_group->pg_phyint; pi2 != NULL; pi2 = pi2->pi_pgnext) { in phyint_standby_refresh_inactive()
1484 (void) change_pif_flags(pi, 0, IFF_INACTIVE); in phyint_standby_refresh_inactive()
1486 (void) change_pif_flags(pi, IFF_INACTIVE, 0); in phyint_standby_refresh_inactive()
1493 phyint_check_for_repair(struct phyint *pi) in phyint_check_for_repair() argument
1495 if (!phyint_repaired(pi)) in phyint_check_for_repair()
1498 if (pi->pi_group == phyint_anongroup) { in phyint_check_for_repair()
1499 logerr("IP interface repair detected on %s\n", pi->pi_name); in phyint_check_for_repair()
1502 pi->pi_name, pi->pi_group->pg_name); in phyint_check_for_repair()
1510 if (pi->pi_state == PI_OFFLINE) { in phyint_check_for_repair()
1511 (void) change_pif_flags(pi, 0, IFF_FAILED); in phyint_check_for_repair()
1515 phyint_transition_to_running(pi); /* calls phyint_chstate() */ in phyint_check_for_repair()
1525 struct phyint *pi = pii->pii_phyint; in phyint_inst_check_for_failure() local
1531 was_active = ((pi->pi_flags & IFF_INACTIVE) == 0); in phyint_inst_check_for_failure()
1533 (void) change_pif_flags(pi, IFF_FAILED, IFF_INACTIVE); in phyint_inst_check_for_failure()
1534 if (pi->pi_group == phyint_anongroup) { in phyint_inst_check_for_failure()
1539 " %s\n", pii->pii_name, pi->pi_group->pg_name); in phyint_inst_check_for_failure()
1547 phyint_activate_another(pi); in phyint_inst_check_for_failure()
1553 if (pi->pi_state != PI_OFFLINE) { in phyint_inst_check_for_failure()
1554 phyint_chstate(pi, PI_FAILED); in phyint_inst_check_for_failure()
1555 reset_crtt_all(pi); in phyint_inst_check_for_failure()
1560 pi2 = pi->pi_group->pg_phyint; in phyint_inst_check_for_failure()
1594 struct phyint *pi; in phyint_inst_timer() local
1619 pi = pii->pii_phyint; in phyint_inst_timer()
1620 if (pi->pi_state == PI_FAILED && LINK_UP(pi)) { in phyint_inst_timer()
1621 check_time = pi->pi_whenup[pi->pi_whendx] + MSEC_PERMIN; in phyint_inst_timer()
1625 phyint_check_for_repair(pi); in phyint_inst_timer()
1933 process_link_state_down(struct phyint *pi) in process_link_state_down() argument
1935 logerr("The link has gone down on %s\n", pi->pi_name); in process_link_state_down()
1942 if (PROBE_CAPABLE(pi->pi_v4)) in process_link_state_down()
1943 clear_pii_probe_stats(pi->pi_v4); in process_link_state_down()
1944 if (PROBE_CAPABLE(pi->pi_v6)) in process_link_state_down()
1945 clear_pii_probe_stats(pi->pi_v6); in process_link_state_down()
1951 if ((pi->pi_state == PI_RUNNING) || in process_link_state_down()
1952 (pi->pi_state != PI_FAILED && !GROUP_FAILED(pi->pi_group))) { in process_link_state_down()
1955 " checking for failure on %s\n", pi->pi_name); in process_link_state_down()
1958 if (pi->pi_v4 != NULL) in process_link_state_down()
1959 phyint_inst_check_for_failure(pi->pi_v4); in process_link_state_down()
1960 else if (pi->pi_v6 != NULL) in process_link_state_down()
1961 phyint_inst_check_for_failure(pi->pi_v6); in process_link_state_down()
1966 process_link_state_up(struct phyint *pi) in process_link_state_up() argument
1968 logerr("The link has come up on %s\n", pi->pi_name); in process_link_state_up()
1974 if (pi->pi_v4) in process_link_state_up()
1975 restart_timer(pi->pi_v4); in process_link_state_up()
1976 if (pi->pi_v6) in process_link_state_up()
1977 restart_timer(pi->pi_v6); in process_link_state_up()
1979 phyint_check_for_repair(pi); in process_link_state_up()
1981 pi->pi_whenup[pi->pi_whendx++] = getcurrenttime(); in process_link_state_up()
1982 if (pi->pi_whendx == LINK_UP_PERMIN) in process_link_state_up()
1983 pi->pi_whendx = 0; in process_link_state_up()
1992 struct phyint *pi; in process_link_state_changes() local
1996 for (pi = phyints; pi != NULL; pi = pi->pi_next) { in process_link_state_changes()
1997 boolean_t old_link_state_up = LINK_UP(pi); in process_link_state_changes()
2005 UPDATE_LINK_STATE(pi); in process_link_state_changes()
2007 if (LINK_DOWN(pi)) { in process_link_state_changes()
2012 process_link_state_down(pi); in process_link_state_changes()
2018 process_link_state_up(pi); in process_link_state_changes()
2024 reset_crtt_all(struct phyint *pi) in reset_crtt_all() argument
2029 pii = pi->pi_v4; in reset_crtt_all()
2038 pii = pi->pi_v6; in reset_crtt_all()
2146 struct phyint *pi; in failure_state() local
2154 pi = pii->pii_phyint; in failure_state()
2155 pg = pi->pi_group; in failure_state()
2157 if (LINK_UP(pi) && phyint_inst_probe_failure_state(pii, &pi_tff) == in failure_state()
2188 if (pi2 == pi) in failure_state()
2191 if (LINK_DOWN(pi)) { in failure_state()
2524 phyint_repaired(struct phyint *pi) in phyint_repaired() argument
2533 logdebug("phyint_repaired(%s)\n", pi->pi_name); in phyint_repaired()
2535 if (LINK_DOWN(pi)) in phyint_repaired()
2545 if (!PROBE_ENABLED(pi->pi_v4) && !PROBE_ENABLED(pi->pi_v6)) { in phyint_repaired()
2547 if ((pi->pi_whenup[pi->pi_whendx] == 0 || in phyint_repaired()
2548 (cur_time - pi->pi_whenup[pi->pi_whendx]) > MSEC_PERMIN)) { in phyint_repaired()
2549 pi->pi_lfmsg_printed = 0; in phyint_repaired()
2552 if (!pi->pi_lfmsg_printed) { in phyint_repaired()
2555 "stabilizes\n", pi->pi_name, LINK_UP_PERMIN); in phyint_repaired()
2556 pi->pi_lfmsg_printed = 1; in phyint_repaired()
2562 pii = pi->pi_v4; in phyint_repaired()
2572 pii = pi->pi_v6; in phyint_repaired()
2589 change_pif_flags(struct phyint *pi, uint64_t set, uint64_t clear) in change_pif_flags() argument
2597 pi->pi_name, set, clear); in change_pif_flags()
2600 if (pi->pi_v4 != NULL) in change_pif_flags()
2610 (void) strlcpy(lifr.lifr_name, pi->pi_name, sizeof (lifr.lifr_name)); in change_pif_flags()
2637 pi->pi_flags |= set; in change_pif_flags()
2638 pi->pi_flags &= ~clear; in change_pif_flags()
2640 if (pi->pi_v4 != NULL) in change_pif_flags()
2641 pi->pi_v4->pii_flags = pi->pi_flags; in change_pif_flags()
2643 if (pi->pi_v6 != NULL) in change_pif_flags()
2644 pi->pi_v6->pii_flags = pi->pi_flags; in change_pif_flags()