Lines Matching refs:iid

926 ctl_isc_announce_iid(struct ctl_port *port, int iid)  in ctl_isc_announce_iid()  argument
937 i = sizeof(msg->iid); in ctl_isc_announce_iid()
939 if (port->wwpn_iid[iid].name) in ctl_isc_announce_iid()
940 l = strlen(port->wwpn_iid[iid].name) + 1; in ctl_isc_announce_iid()
947 bzero(&msg->iid, sizeof(msg->iid)); in ctl_isc_announce_iid()
950 msg->hdr.nexus.initid = iid; in ctl_isc_announce_iid()
951 msg->iid.in_use = port->wwpn_iid[iid].in_use; in ctl_isc_announce_iid()
952 msg->iid.name_len = l; in ctl_isc_announce_iid()
953 msg->iid.wwpn = port->wwpn_iid[iid].wwpn; in ctl_isc_announce_iid()
954 if (port->wwpn_iid[iid].name) in ctl_isc_announce_iid()
955 strlcpy(msg->iid.data, port->wwpn_iid[iid].name, l); in ctl_isc_announce_iid()
957 ctl_ha_msg_send(CTL_HA_CHAN_CTL, &msg->iid, i, M_NOWAIT); in ctl_isc_announce_iid()
1073 uint32_t iid; in ctl_isc_ua() local
1092 iid = ctl_get_initindex(&msg->hdr.nexus); in ctl_isc_ua()
1095 ctl_est_ua_all(lun, iid, msg->ua.ua_type); in ctl_isc_ua()
1097 ctl_clr_ua_all(lun, iid, msg->ua.ua_type); in ctl_isc_ua()
1100 ctl_est_ua(lun, iid, msg->ua.ua_type); in ctl_isc_ua()
1102 ctl_clr_ua(lun, iid, msg->ua.ua_type); in ctl_isc_ua()
1327 int i, iid; in ctl_isc_iid_sync() local
1335 i = msg->iid.name_len; in ctl_isc_iid_sync()
1349 iid = msg->hdr.nexus.initid; in ctl_isc_iid_sync()
1350 if (port->wwpn_iid[iid].in_use != 0 && in ctl_isc_iid_sync()
1351 msg->iid.in_use == 0) in ctl_isc_iid_sync()
1352 ctl_i_t_nexus_loss(softc, iid, CTL_UA_POWERON); in ctl_isc_iid_sync()
1353 port->wwpn_iid[iid].in_use = msg->iid.in_use; in ctl_isc_iid_sync()
1354 port->wwpn_iid[iid].wwpn = msg->iid.wwpn; in ctl_isc_iid_sync()
1355 free(port->wwpn_iid[iid].name, M_CTL); in ctl_isc_iid_sync()
1356 if (msg->iid.name_len) { in ctl_isc_iid_sync()
1357 port->wwpn_iid[iid].name = strndup(&msg->iid.data[0], in ctl_isc_iid_sync()
1358 msg->iid.name_len, M_CTL); in ctl_isc_iid_sync()
1360 port->wwpn_iid[iid].name = NULL; in ctl_isc_iid_sync()
2118 ctl_remove_initiator(struct ctl_port *port, int iid) in ctl_remove_initiator() argument
2125 if (iid > CTL_MAX_INIT_PER_PORT) { in ctl_remove_initiator()
2127 __func__, iid, CTL_MAX_INIT_PER_PORT); in ctl_remove_initiator()
2132 last = (--port->wwpn_iid[iid].in_use == 0); in ctl_remove_initiator()
2133 port->wwpn_iid[iid].last_use = time_uptime; in ctl_remove_initiator()
2136 ctl_i_t_nexus_loss(softc, iid, CTL_UA_POWERON); in ctl_remove_initiator()
2137 ctl_isc_announce_iid(port, iid); in ctl_remove_initiator()
2147 ctl_add_initiator(struct ctl_port *port, int iid, uint64_t wwpn, char *name) in ctl_add_initiator() argument
2155 if (iid >= CTL_MAX_INIT_PER_PORT) { in ctl_add_initiator()
2157 __func__, wwpn, iid, CTL_MAX_INIT_PER_PORT); in ctl_add_initiator()
2164 if (iid < 0 && (wwpn != 0 || name != NULL)) { in ctl_add_initiator()
2167 iid = i; in ctl_add_initiator()
2172 iid = i; in ctl_add_initiator()
2178 if (iid < 0) { in ctl_add_initiator()
2183 iid = i; in ctl_add_initiator()
2189 if (iid < 0) { in ctl_add_initiator()
2200 iid = best; in ctl_add_initiator()
2203 if (iid < 0) { in ctl_add_initiator()
2209 if (port->wwpn_iid[iid].in_use > 0 && (wwpn != 0 || name != NULL)) { in ctl_add_initiator()
2213 if (wwpn != 0 && wwpn == port->wwpn_iid[iid].wwpn) { in ctl_add_initiator()
2217 iid, (uintmax_t)wwpn); in ctl_add_initiator()
2221 if (name != NULL && port->wwpn_iid[iid].name != NULL && in ctl_add_initiator()
2222 strcmp(name, port->wwpn_iid[iid].name) == 0) { in ctl_add_initiator()
2226 iid, name); in ctl_add_initiator()
2238 __func__, port->targ_port, iid, wwpn, name, in ctl_add_initiator()
2239 (uintmax_t)port->wwpn_iid[iid].wwpn, in ctl_add_initiator()
2240 port->wwpn_iid[iid].name); in ctl_add_initiator()
2243 free(port->wwpn_iid[iid].name, M_CTL); in ctl_add_initiator()
2244 port->wwpn_iid[iid].name = name; in ctl_add_initiator()
2245 port->wwpn_iid[iid].wwpn = wwpn; in ctl_add_initiator()
2246 port->wwpn_iid[iid].in_use++; in ctl_add_initiator()
2248 ctl_isc_announce_iid(port, iid); in ctl_add_initiator()
2250 return (iid); in ctl_add_initiator()
2254 ctl_create_iid(struct ctl_port *port, int iid, uint8_t *buf) in ctl_create_iid() argument
2263 if (port->wwpn_iid[iid].wwpn == 0) in ctl_create_iid()
2267 scsi_u64to8b(port->wwpn_iid[iid].wwpn, id->n_port_name); in ctl_create_iid()
2274 if (port->wwpn_iid[iid].name == NULL) in ctl_create_iid()
2279 len = strlcpy(id->iscsi_name, port->wwpn_iid[iid].name, 252) + 1; in ctl_create_iid()
2288 if (port->wwpn_iid[iid].wwpn == 0) in ctl_create_iid()
2292 scsi_u64to8b(port->wwpn_iid[iid].wwpn, id->sas_address); in ctl_create_iid()
2301 scsi_ulto2b(iid, id->scsi_addr); in ctl_create_iid()