1630 case LA_2GHZ_LINK:
1631 (void) strlcpy(linkspeed, "2Gb", sizeof (linkspeed));
1632 port_info->pi_port_state |= FC_STATE_2GBIT_SPEED;
1633 break;
1634 case LA_4GHZ_LINK:
1635 (void) strlcpy(linkspeed, "4Gb", sizeof (linkspeed));
1636 port_info->pi_port_state |= FC_STATE_4GBIT_SPEED;
1637 break;
1638 case LA_8GHZ_LINK:
1639 (void) strlcpy(linkspeed, "8Gb", sizeof (linkspeed));
1640 port_info->pi_port_state |= FC_STATE_8GBIT_SPEED;
1641 break;
1642 case LA_10GHZ_LINK:
1643 (void) strlcpy(linkspeed, "10Gb", sizeof (linkspeed));
1644 port_info->pi_port_state |= FC_STATE_10GBIT_SPEED;
1645 break;
1646 case LA_16GHZ_LINK:
1647 (void) strlcpy(linkspeed, "16Gb", sizeof (linkspeed));
1648 port_info->pi_port_state |= FC_STATE_16GBIT_SPEED;
1649 break;
1650 default:
1651 (void) snprintf(linkspeed, sizeof (linkspeed),
1652 "unknown(0x%x)", hba->linkspeed);
1653 break;
1654 }
1655
1656 if (hba->sli_mode <= EMLXS_HBA_SLI3_MODE) {
1657 /* Adjusting port context for link up messages */
1658 vport = port;
1659 port = &PPORT;
1660 if (vport->vpi == 0) {
1661 EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_link_up_msg,
1662 "%s%s, initiator",
1663 linkspeed, topology);
1664 } else if (!(hba->flag & FC_NPIV_LINKUP)) {
1665 hba->flag |= FC_NPIV_LINKUP;
1666 EMLXS_MSGF(EMLXS_CONTEXT,
1667 &emlxs_npiv_link_up_msg,
1668 "%s%s, initiator", linkspeed, topology);
1669 }
1747 port_info->pi_s_id.priv_lilp_posit = 0;
1748 port_info->pi_hard_addr.hard_addr = cfg[CFG_ASSIGN_ALPA].current;
1749
1750 /* Initialize the RNID parameters */
1751 bzero(&port_info->pi_rnid_params, sizeof (port_info->pi_rnid_params));
1752
1753 (void) snprintf((char *)port_info->pi_rnid_params.params.global_id,
1754 (sizeof (port_info->pi_rnid_params.params.global_id)-1),
1755 "%01x%01x%02x%02x%02x%02x%02x%02x%02x", hba->wwpn.nameType,
1756 hba->wwpn.IEEEextMsn, hba->wwpn.IEEEextLsb, hba->wwpn.IEEE[0],
1757 hba->wwpn.IEEE[1], hba->wwpn.IEEE[2], hba->wwpn.IEEE[3],
1758 hba->wwpn.IEEE[4], hba->wwpn.IEEE[5]);
1759
1760 port_info->pi_rnid_params.params.unit_type = RNID_HBA;
1761 port_info->pi_rnid_params.params.port_id = port->did;
1762 port_info->pi_rnid_params.params.ip_version = RNID_IPV4;
1763
1764 /* Initialize the port attributes */
1765 bzero(&port_info->pi_attrs, sizeof (port_info->pi_attrs));
1766
1767 (void) strncpy(port_info->pi_attrs.manufacturer, "Emulex",
1768 (sizeof (port_info->pi_attrs.manufacturer)-1));
1769
1770 port_info->pi_rnid_params.status = FC_SUCCESS;
1771
1772 (void) strncpy(port_info->pi_attrs.serial_number, vpd->serial_num,
1773 (sizeof (port_info->pi_attrs.serial_number)-1));
1774
1775 (void) snprintf(port_info->pi_attrs.firmware_version,
1776 (sizeof (port_info->pi_attrs.firmware_version)-1), "%s (%s)",
1777 vpd->fw_version, vpd->fw_label);
1778
1779 #ifdef EMLXS_I386
1780 (void) snprintf(port_info->pi_attrs.option_rom_version,
1781 (sizeof (port_info->pi_attrs.option_rom_version)-1),
1782 "Boot:%s", vpd->boot_version);
1783 #else /* EMLXS_SPARC */
1784 (void) snprintf(port_info->pi_attrs.option_rom_version,
1785 (sizeof (port_info->pi_attrs.option_rom_version)-1),
1786 "Boot:%s Fcode:%s", vpd->boot_version, vpd->fcode_version);
1787 #endif /* EMLXS_I386 */
4308 *link_state = FC_STATE_ONLINE;
4309 }
4310
4311 /* Set the link speed */
4312 switch (hba->linkspeed) {
4313 case LA_2GHZ_LINK:
4314 *link_state |= FC_STATE_2GBIT_SPEED;
4315 break;
4316 case LA_4GHZ_LINK:
4317 *link_state |= FC_STATE_4GBIT_SPEED;
4318 break;
4319 case LA_8GHZ_LINK:
4320 *link_state |= FC_STATE_8GBIT_SPEED;
4321 break;
4322 case LA_10GHZ_LINK:
4323 *link_state |= FC_STATE_10GBIT_SPEED;
4324 break;
4325 case LA_16GHZ_LINK:
4326 *link_state |= FC_STATE_16GBIT_SPEED;
4327 break;
4328 case LA_1GHZ_LINK:
4329 default:
4330 *link_state |= FC_STATE_1GBIT_SPEED;
4331 break;
4332 }
4333 } else {
4334 *link_state = FC_STATE_OFFLINE;
4335 }
4336
4337 break;
4338 }
4339
4340
4341 case FC_PORT_ERR_STATS:
4342 case FC_PORT_RLS:
4343 {
4344 MAILBOXQ *mbq;
4345 MAILBOX *mb;
4346 fc_rls_acc_t *bp;
4347
|
1630 case LA_2GHZ_LINK:
1631 (void) strlcpy(linkspeed, "2Gb", sizeof (linkspeed));
1632 port_info->pi_port_state |= FC_STATE_2GBIT_SPEED;
1633 break;
1634 case LA_4GHZ_LINK:
1635 (void) strlcpy(linkspeed, "4Gb", sizeof (linkspeed));
1636 port_info->pi_port_state |= FC_STATE_4GBIT_SPEED;
1637 break;
1638 case LA_8GHZ_LINK:
1639 (void) strlcpy(linkspeed, "8Gb", sizeof (linkspeed));
1640 port_info->pi_port_state |= FC_STATE_8GBIT_SPEED;
1641 break;
1642 case LA_10GHZ_LINK:
1643 (void) strlcpy(linkspeed, "10Gb", sizeof (linkspeed));
1644 port_info->pi_port_state |= FC_STATE_10GBIT_SPEED;
1645 break;
1646 case LA_16GHZ_LINK:
1647 (void) strlcpy(linkspeed, "16Gb", sizeof (linkspeed));
1648 port_info->pi_port_state |= FC_STATE_16GBIT_SPEED;
1649 break;
1650 case LA_32GHZ_LINK:
1651 (void) strlcpy(linkspeed, "32Gb", sizeof (linkspeed));
1652 port_info->pi_port_state |= FC_STATE_32GBIT_SPEED;
1653 break;
1654 default:
1655 (void) snprintf(linkspeed, sizeof (linkspeed),
1656 "unknown(0x%x)", hba->linkspeed);
1657 break;
1658 }
1659
1660 if (hba->sli_mode <= EMLXS_HBA_SLI3_MODE) {
1661 /* Adjusting port context for link up messages */
1662 vport = port;
1663 port = &PPORT;
1664 if (vport->vpi == 0) {
1665 EMLXS_MSGF(EMLXS_CONTEXT, &emlxs_link_up_msg,
1666 "%s%s, initiator",
1667 linkspeed, topology);
1668 } else if (!(hba->flag & FC_NPIV_LINKUP)) {
1669 hba->flag |= FC_NPIV_LINKUP;
1670 EMLXS_MSGF(EMLXS_CONTEXT,
1671 &emlxs_npiv_link_up_msg,
1672 "%s%s, initiator", linkspeed, topology);
1673 }
1751 port_info->pi_s_id.priv_lilp_posit = 0;
1752 port_info->pi_hard_addr.hard_addr = cfg[CFG_ASSIGN_ALPA].current;
1753
1754 /* Initialize the RNID parameters */
1755 bzero(&port_info->pi_rnid_params, sizeof (port_info->pi_rnid_params));
1756
1757 (void) snprintf((char *)port_info->pi_rnid_params.params.global_id,
1758 (sizeof (port_info->pi_rnid_params.params.global_id)-1),
1759 "%01x%01x%02x%02x%02x%02x%02x%02x%02x", hba->wwpn.nameType,
1760 hba->wwpn.IEEEextMsn, hba->wwpn.IEEEextLsb, hba->wwpn.IEEE[0],
1761 hba->wwpn.IEEE[1], hba->wwpn.IEEE[2], hba->wwpn.IEEE[3],
1762 hba->wwpn.IEEE[4], hba->wwpn.IEEE[5]);
1763
1764 port_info->pi_rnid_params.params.unit_type = RNID_HBA;
1765 port_info->pi_rnid_params.params.port_id = port->did;
1766 port_info->pi_rnid_params.params.ip_version = RNID_IPV4;
1767
1768 /* Initialize the port attributes */
1769 bzero(&port_info->pi_attrs, sizeof (port_info->pi_attrs));
1770
1771 (void) strncpy(port_info->pi_attrs.manufacturer,
1772 hba->model_info.manufacturer,
1773 (sizeof (port_info->pi_attrs.manufacturer)-1));
1774
1775 port_info->pi_rnid_params.status = FC_SUCCESS;
1776
1777 (void) strncpy(port_info->pi_attrs.serial_number, vpd->serial_num,
1778 (sizeof (port_info->pi_attrs.serial_number)-1));
1779
1780 (void) snprintf(port_info->pi_attrs.firmware_version,
1781 (sizeof (port_info->pi_attrs.firmware_version)-1), "%s (%s)",
1782 vpd->fw_version, vpd->fw_label);
1783
1784 #ifdef EMLXS_I386
1785 (void) snprintf(port_info->pi_attrs.option_rom_version,
1786 (sizeof (port_info->pi_attrs.option_rom_version)-1),
1787 "Boot:%s", vpd->boot_version);
1788 #else /* EMLXS_SPARC */
1789 (void) snprintf(port_info->pi_attrs.option_rom_version,
1790 (sizeof (port_info->pi_attrs.option_rom_version)-1),
1791 "Boot:%s Fcode:%s", vpd->boot_version, vpd->fcode_version);
1792 #endif /* EMLXS_I386 */
4313 *link_state = FC_STATE_ONLINE;
4314 }
4315
4316 /* Set the link speed */
4317 switch (hba->linkspeed) {
4318 case LA_2GHZ_LINK:
4319 *link_state |= FC_STATE_2GBIT_SPEED;
4320 break;
4321 case LA_4GHZ_LINK:
4322 *link_state |= FC_STATE_4GBIT_SPEED;
4323 break;
4324 case LA_8GHZ_LINK:
4325 *link_state |= FC_STATE_8GBIT_SPEED;
4326 break;
4327 case LA_10GHZ_LINK:
4328 *link_state |= FC_STATE_10GBIT_SPEED;
4329 break;
4330 case LA_16GHZ_LINK:
4331 *link_state |= FC_STATE_16GBIT_SPEED;
4332 break;
4333 case LA_32GHZ_LINK:
4334 *link_state |= FC_STATE_32GBIT_SPEED;
4335 break;
4336 case LA_1GHZ_LINK:
4337 default:
4338 *link_state |= FC_STATE_1GBIT_SPEED;
4339 break;
4340 }
4341 } else {
4342 *link_state = FC_STATE_OFFLINE;
4343 }
4344
4345 break;
4346 }
4347
4348
4349 case FC_PORT_ERR_STATS:
4350 case FC_PORT_RLS:
4351 {
4352 MAILBOXQ *mbq;
4353 MAILBOX *mb;
4354 fc_rls_acc_t *bp;
4355
|