Lines Matching refs:gwi

405 eibnx_is_gw_dead(eibnx_gw_info_t *gwi)
411 mutex_enter(&gwi->gw_adv_lock);
412 if ((cur_lbolt - gwi->gw_adv_last_lbolt) > gwi->gw_adv_timeout_ticks) {
413 gwi->gw_adv_flag = ENX_GW_DEAD;
414 mutex_exit(&gwi->gw_adv_lock);
417 mutex_exit(&gwi->gw_adv_lock);
423 eibnx_gw_is_alive(eibnx_gw_info_t *gwi)
430 mutex_enter(&gwi->gw_adv_lock);
431 gwi->gw_adv_last_lbolt = ddi_get_lbolt64();
432 if (gwi->gw_adv_flag == ENX_GW_DEAD) {
433 gwi->gw_adv_flag = ENX_GW_ALIVE;
435 mutex_exit(&gwi->gw_adv_lock);
439 eibnx_gw_is_aware(eibnx_thr_info_t *info, eibnx_gw_info_t *gwi,
456 mutex_enter(&gwi->gw_adv_lock);
457 gwi->gw_adv_last_lbolt = ddi_get_lbolt64();
458 if (gwi->gw_adv_flag != ENX_GW_AWARE) {
461 gwi->gw_adv_flag = ENX_GW_AWARE;
462 mutex_exit(&gwi->gw_adv_lock);
470 eib_gwi.gi_system_guid = gwi->gw_system_guid;
471 eib_gwi.gi_guid = gwi->gw_guid;
472 eib_gwi.gi_sn_prefix = gwi->gw_addr.ga_gid.gid_prefix;
473 eib_gwi.gi_adv_period = gwi->gw_adv_period;
474 eib_gwi.gi_ka_period = gwi->gw_ka_period;
475 eib_gwi.gi_vnic_ka_period = gwi->gw_vnic_ka_period;
476 eib_gwi.gi_ctrl_qpn = gwi->gw_ctrl_qpn;
477 eib_gwi.gi_lid = gwi->gw_lid;
478 eib_gwi.gi_portid = gwi->gw_portid;
479 eib_gwi.gi_num_net_vnics = gwi->gw_num_net_vnics;
480 eib_gwi.gi_flag_available = gwi->gw_flag_available;
481 eib_gwi.gi_is_host_adm_vnics = gwi->gw_is_host_adm_vnics;
482 eib_gwi.gi_sl = gwi->gw_sl;
483 eib_gwi.gi_n_rss_qpn = gwi->gw_n_rss_qpn;
484 bcopy(gwi->gw_system_name, eib_gwi.gi_system_name,
486 bcopy(gwi->gw_port_name, eib_gwi.gi_port_name,
488 bcopy(gwi->gw_vendor_id, eib_gwi.gi_vendor_id,
494 eibnx_handle_gw_rebirth(info, gwi->gw_portid);
666 eibnx_gw_info_t *gwi;
705 gwi = &msg.u.gm_info;
714 orig_gwi = eibnx_find_gw_in_gwlist(info, gwi);
716 if (gwi->gw_flag_available == 0) {
717 gwi->gw_state = ENX_GW_STATE_UNAVAILABLE;
718 gwi->gw_adv_flag = ENX_GW_ALIVE;
719 (void) eibnx_add_gw_to_gwlist(info, gwi, wc, pkt);
720 } else if (gwi->gw_flag_ucast_advt == 0) {
721 gwi->gw_state = ENX_GW_STATE_AVAILABLE;
722 gwi->gw_adv_flag = ENX_GW_ALIVE;
723 (void) eibnx_add_gw_to_gwlist(info, gwi, wc, pkt);
725 gwi->gw_state = ENX_GW_STATE_READY_TO_LOGIN;
726 gwi->gw_adv_flag = ENX_GW_AWARE;
727 if ((new_gwi = eibnx_add_gw_to_gwlist(info, gwi,
734 if (gwi->gw_flag_available == 0) {
735 gwi->gw_state = ENX_GW_STATE_UNAVAILABLE;
736 eibnx_replace_gw_in_gwlist(info, orig_gwi, gwi,
740 } else if (gwi->gw_flag_ucast_advt == 0) {
742 gwi->gw_state = ENX_GW_STATE_AVAILABLE;
744 gwi->gw_state = orig_gw_state;
746 eibnx_replace_gw_in_gwlist(info, orig_gwi, gwi,
751 gwi->gw_state = ENX_GW_STATE_READY_TO_LOGIN;
752 eibnx_replace_gw_in_gwlist(info, orig_gwi, gwi,