Lines Matching refs:iid

949 ctl_isc_announce_iid(struct ctl_port *port, int iid)
960 i = sizeof(msg->iid);
962 if (port->wwpn_iid[iid].name)
963 l = strlen(port->wwpn_iid[iid].name) + 1;
970 bzero(&msg->iid, sizeof(msg->iid));
973 msg->hdr.nexus.initid = iid;
974 msg->iid.in_use = port->wwpn_iid[iid].in_use;
975 msg->iid.name_len = l;
976 msg->iid.wwpn = port->wwpn_iid[iid].wwpn;
977 if (port->wwpn_iid[iid].name)
978 strlcpy(msg->iid.data, port->wwpn_iid[iid].name, l);
980 ctl_ha_msg_send(CTL_HA_CHAN_CTL, &msg->iid, i, M_NOWAIT);
1095 uint32_t iid = ctl_get_initindex(&msg->hdr.nexus);
1109 ctl_est_ua_all(lun, iid, msg->ua.ua_type);
1111 ctl_clr_ua_all(lun, iid, msg->ua.ua_type);
1114 ctl_est_ua(lun, iid, msg->ua.ua_type);
1116 ctl_clr_ua(lun, iid, msg->ua.ua_type);
1311 int iid;
1319 iid = msg->hdr.nexus.initid;
1320 if (port->wwpn_iid[iid].in_use != 0 &&
1321 msg->iid.in_use == 0)
1322 ctl_i_t_nexus_loss(softc, iid, CTL_UA_POWERON);
1323 port->wwpn_iid[iid].in_use = msg->iid.in_use;
1324 port->wwpn_iid[iid].wwpn = msg->iid.wwpn;
1325 free(port->wwpn_iid[iid].name, M_CTL);
1326 if (msg->iid.name_len) {
1327 port->wwpn_iid[iid].name = strndup(&msg->iid.data[0],
1328 msg->iid.name_len, M_CTL);
1330 port->wwpn_iid[iid].name = NULL;
2060 ctl_remove_initiator(struct ctl_port *port, int iid)
2067 if (iid > CTL_MAX_INIT_PER_PORT) {
2069 __func__, iid, CTL_MAX_INIT_PER_PORT);
2074 last = (--port->wwpn_iid[iid].in_use == 0);
2075 port->wwpn_iid[iid].last_use = time_uptime;
2078 ctl_i_t_nexus_loss(softc, iid, CTL_UA_POWERON);
2079 ctl_isc_announce_iid(port, iid);
2086 * Returns iid for success, < 0 for failure.
2089 ctl_add_initiator(struct ctl_port *port, int iid, uint64_t wwpn, char *name)
2097 if (iid >= CTL_MAX_INIT_PER_PORT) {
2099 __func__, wwpn, iid, CTL_MAX_INIT_PER_PORT);
2106 if (iid < 0 && (wwpn != 0 || name != NULL)) {
2109 iid = i;
2114 iid = i;
2120 if (iid < 0) {
2125 iid = i;
2131 if (iid < 0) {
2142 iid = best;
2145 if (iid < 0) {
2151 if (port->wwpn_iid[iid].in_use > 0 && (wwpn != 0 || name != NULL)) {
2155 if (wwpn != 0 && wwpn == port->wwpn_iid[iid].wwpn) {
2157 printf("%s: port %d iid %u WWPN %#jx arrived"
2159 iid, (uintmax_t)wwpn);
2163 if (name != NULL && port->wwpn_iid[iid].name != NULL &&
2164 strcmp(name, port->wwpn_iid[iid].name) == 0) {
2166 printf("%s: port %d iid %u name '%s' arrived"
2168 iid, name);
2178 printf("%s: port %d iid %u WWPN %#jx '%s' arrived,"
2180 __func__, port->targ_port, iid, wwpn, name,
2181 (uintmax_t)port->wwpn_iid[iid].wwpn,
2182 port->wwpn_iid[iid].name);
2185 free(port->wwpn_iid[iid].name, M_CTL);
2186 port->wwpn_iid[iid].name = name;
2187 port->wwpn_iid[iid].wwpn = wwpn;
2188 port->wwpn_iid[iid].in_use++;
2190 ctl_isc_announce_iid(port, iid);
2192 return (iid);
2196 ctl_create_iid(struct ctl_port *port, int iid, uint8_t *buf)
2205 if (port->wwpn_iid[iid].wwpn == 0)
2209 scsi_u64to8b(port->wwpn_iid[iid].wwpn, id->n_port_name);
2216 if (port->wwpn_iid[iid].name == NULL)
2221 len = strlcpy(id->iscsi_name, port->wwpn_iid[iid].name, 252) + 1;
2230 if (port->wwpn_iid[iid].wwpn == 0)
2234 scsi_u64to8b(port->wwpn_iid[iid].wwpn, id->sas_address);
2243 scsi_ulto2b(iid, id->scsi_addr);
2972 printf(" LUN %ju port %d iid %d key "
2993 printf(" iid %u use %d WWPN %#jx '%s'\n",