/** * fc_lport_init() - Initialize the lport layer for a local port * @lport: The local port to initialize the exchange layer for */ int fc_lport_init(struct fc_lport *lport) { if (!lport->tt.lport_recv) lport->tt.lport_recv = fc_lport_recv_req; if (!lport->tt.lport_reset) lport->tt.lport_reset = fc_lport_reset; fc_host_port_type(lport->host) = FC_PORTTYPE_NPORT; fc_host_node_name(lport->host) = lport->wwnn; fc_host_port_name(lport->host) = lport->wwpn; fc_host_supported_classes(lport->host) = FC_COS_CLASS3; memset(fc_host_supported_fc4s(lport->host), 0, sizeof(fc_host_supported_fc4s(lport->host))); fc_host_supported_fc4s(lport->host)[2] = 1; fc_host_supported_fc4s(lport->host)[7] = 1; /* This value is also unchanging */ memset(fc_host_active_fc4s(lport->host), 0, sizeof(fc_host_active_fc4s(lport->host))); fc_host_active_fc4s(lport->host)[2] = 1; fc_host_active_fc4s(lport->host)[7] = 1; fc_host_maxframe_size(lport->host) = lport->mfs; fc_host_supported_speeds(lport->host) = 0; if (lport->link_supported_speeds & FC_PORTSPEED_1GBIT) fc_host_supported_speeds(lport->host) |= FC_PORTSPEED_1GBIT; if (lport->link_supported_speeds & FC_PORTSPEED_10GBIT) fc_host_supported_speeds(lport->host) |= FC_PORTSPEED_10GBIT; return 0; }
/* * csio_fchost_attr_init - Initialize FC transport attributes * @ln: Lnode. * */ void csio_fchost_attr_init(struct csio_lnode *ln) { struct Scsi_Host *shost = csio_ln_to_shost(ln); fc_host_node_name(shost) = wwn_to_u64(csio_ln_wwnn(ln)); fc_host_port_name(shost) = wwn_to_u64(csio_ln_wwpn(ln)); fc_host_supported_classes(shost) = FC_COS_CLASS3; fc_host_max_npiv_vports(shost) = (csio_lnode_to_hw(ln))->fres_info.max_vnps; fc_host_supported_speeds(shost) = FC_PORTSPEED_10GBIT | FC_PORTSPEED_1GBIT; fc_host_maxframe_size(shost) = ntohs(ln->ln_sparm.csp.sp_bb_data); memset(fc_host_supported_fc4s(shost), 0, sizeof(fc_host_supported_fc4s(shost))); fc_host_supported_fc4s(shost)[7] = 1; memset(fc_host_active_fc4s(shost), 0, sizeof(fc_host_active_fc4s(shost))); fc_host_active_fc4s(shost)[7] = 1; }