Lines Matching refs:nc

53 	struct nvmf_capsule nc;
79 #define TASSOC(nc) ((struct nvmf_tcp_association *)(na))
80 #define TCAP(nc) ((struct nvmf_tcp_capsule *)(nc))
81 #define CTCAP(nc) ((const struct nvmf_tcp_capsule *)(nc))
371 struct nvmf_capsule *nc;
376 nc = nvmf_allocate_command(&qp->qp, &cmd->ccsqe);
377 if (nc == NULL)
380 tc = TCAP(nc);
392 struct nvmf_capsule *nc;
397 nc = nvmf_allocate_response(&qp->qp, &rsp->rccqe);
398 if (nc == NULL)
401 nc->nc_sqhd_valid = true;
402 tc = TCAP(nc);
635 struct nvmf_capsule *nc;
640 nc = nvmf_allocate_response(&qp->qp, &cqe);
641 if (nc == NULL) {
645 nc->nc_sqhd_valid = false;
647 tc = TCAP(nc);
1113 nvmf_free_capsule(&tc->nc);
1145 struct nvmf_tcp_capsule *nc;
1147 nc = calloc(1, sizeof(*nc));
1148 return (&nc->nc);
1152 tcp_free_capsule(struct nvmf_capsule *nc)
1154 struct nvmf_tcp_capsule *tc = TCAP(nc);
1163 tcp_transmit_command(struct nvmf_capsule *nc)
1165 struct nvmf_tcp_qpair *qp = TQP(nc->nc_qpair);
1166 struct nvmf_tcp_capsule *tc = TCAP(nc);
1173 if (nc->nc_data_len != 0 && nc->nc_send_data &&
1174 nc->nc_data_len <= qp->max_icd)
1179 cmd.ccsqe = nc->nc_sqe;
1185 sgl->length = htole32(nc->nc_data_len);
1196 nc->nc_data : NULL, use_icd ? nc->nc_data_len : 0);
1204 if (nc->nc_data_len != 0 && !use_icd)
1205 tc->cb = tcp_alloc_command_buffer(qp, nc->nc_data, 0,
1206 nc->nc_data_len, cmd.ccsqe.cid, 0, !nc->nc_send_data);
1212 tcp_transmit_response(struct nvmf_capsule *nc)
1214 struct nvmf_tcp_qpair *qp = TQP(nc->nc_qpair);
1219 rsp.rccqe = nc->nc_cqe;
1225 tcp_transmit_capsule(struct nvmf_capsule *nc)
1227 if (nc->nc_qe_len == sizeof(struct nvme_command))
1228 return (tcp_transmit_command(nc));
1230 return (tcp_transmit_response(nc));
1247 *ncp = &tc->nc;
1252 tcp_validate_command_capsule(const struct nvmf_capsule *nc)
1254 const struct nvmf_tcp_capsule *tc = CTCAP(nc);
1259 sgl = &nc->nc_sqe.sgl;
1287 tcp_capsule_data_len(const struct nvmf_capsule *nc)
1289 assert(nc->nc_qe_len == sizeof(struct nvme_command));
1290 return (le32toh(nc->nc_sqe.sgl.length));
1311 tcp_receive_r2t_data(const struct nvmf_capsule *nc, uint32_t data_offset,
1314 struct nvmf_tcp_qpair *qp = TQP(nc->nc_qpair);
1325 error = tcp_send_r2t(qp, nc->nc_sqe.cid, ttag, data_offset, len);
1330 nc->nc_sqe.cid, ttag, true);
1343 tcp_receive_icd_data(const struct nvmf_capsule *nc, uint32_t data_offset,
1346 const struct nvmf_tcp_capsule *tc = CTCAP(nc);
1355 tcp_receive_controller_data(const struct nvmf_capsule *nc, uint32_t data_offset,
1358 struct nvmf_association *na = nc->nc_qpair->nq_association;
1362 if (nc->nc_qe_len != sizeof(struct nvme_command) || !na->na_controller)
1365 sgl = &nc->nc_sqe.sgl;
1371 return (tcp_receive_icd_data(nc, data_offset, buf, len));
1373 return (tcp_receive_r2t_data(nc, data_offset, buf, len));
1399 tcp_send_controller_data(const struct nvmf_capsule *nc, const void *buf,
1402 struct nvmf_association *na = nc->nc_qpair->nq_association;
1403 struct nvmf_tcp_qpair *qp = TQP(nc->nc_qpair);
1411 if (nc->nc_qe_len != sizeof(struct nvme_command) || !na->na_controller)
1414 sgl = &nc->nc_sqe.sgl;
1417 nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
1422 nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
1443 error = tcp_send_c2h_pdu(qp, nc->nc_sqe.cid, data_offset,
1446 nvmf_send_generic_error(nc,
1455 nvmf_send_success(nc);