Lines Matching defs:nc
55 struct nvmf_capsule nc;
81 #define TASSOC(nc) ((struct nvmf_tcp_association *)(na))
82 #define TCAP(nc) ((struct nvmf_tcp_capsule *)(nc))
83 #define CTCAP(nc) ((const struct nvmf_tcp_capsule *)(nc))
373 struct nvmf_capsule *nc;
378 nc = nvmf_allocate_command(&qp->qp, &cmd->ccsqe);
379 if (nc == NULL)
382 tc = TCAP(nc);
394 struct nvmf_capsule *nc;
399 nc = nvmf_allocate_response(&qp->qp, &rsp->rccqe);
400 if (nc == NULL)
403 nc->nc_sqhd_valid = true;
404 tc = TCAP(nc);
637 struct nvmf_capsule *nc;
642 nc = nvmf_allocate_response(&qp->qp, &cqe);
643 if (nc == NULL) {
647 nc->nc_sqhd_valid = false;
649 tc = TCAP(nc);
1123 nvmf_free_capsule(&tc->nc);
1171 struct nvmf_tcp_capsule *nc;
1173 nc = calloc(1, sizeof(*nc));
1174 return (&nc->nc);
1178 tcp_free_capsule(struct nvmf_capsule *nc)
1180 struct nvmf_tcp_capsule *tc = TCAP(nc);
1189 tcp_transmit_command(struct nvmf_capsule *nc)
1191 struct nvmf_tcp_qpair *qp = TQP(nc->nc_qpair);
1192 struct nvmf_tcp_capsule *tc = TCAP(nc);
1199 if (nc->nc_data_len != 0 && nc->nc_send_data &&
1200 nc->nc_data_len <= qp->max_icd)
1205 cmd.ccsqe = nc->nc_sqe;
1211 sgl->length = htole32(nc->nc_data_len);
1222 nc->nc_data : NULL, use_icd ? nc->nc_data_len : 0);
1230 if (nc->nc_data_len != 0 && !use_icd)
1231 tc->cb = tcp_alloc_command_buffer(qp, nc->nc_data, 0,
1232 nc->nc_data_len, cmd.ccsqe.cid, 0, !nc->nc_send_data);
1238 tcp_transmit_response(struct nvmf_capsule *nc)
1240 struct nvmf_tcp_qpair *qp = TQP(nc->nc_qpair);
1245 rsp.rccqe = nc->nc_cqe;
1251 tcp_transmit_capsule(struct nvmf_capsule *nc)
1253 if (nc->nc_qe_len == sizeof(struct nvme_command))
1254 return (tcp_transmit_command(nc));
1256 return (tcp_transmit_response(nc));
1273 *ncp = &tc->nc;
1278 tcp_validate_command_capsule(const struct nvmf_capsule *nc)
1280 const struct nvmf_tcp_capsule *tc = CTCAP(nc);
1285 sgl = &nc->nc_sqe.sgl;
1313 tcp_capsule_data_len(const struct nvmf_capsule *nc)
1315 assert(nc->nc_qe_len == sizeof(struct nvme_command));
1316 return (le32toh(nc->nc_sqe.sgl.length));
1337 tcp_receive_r2t_data(const struct nvmf_capsule *nc, uint32_t data_offset,
1340 struct nvmf_tcp_qpair *qp = TQP(nc->nc_qpair);
1351 error = tcp_send_r2t(qp, nc->nc_sqe.cid, ttag, data_offset, len);
1356 nc->nc_sqe.cid, ttag, true);
1369 tcp_receive_icd_data(const struct nvmf_capsule *nc, uint32_t data_offset,
1372 const struct nvmf_tcp_capsule *tc = CTCAP(nc);
1381 tcp_receive_controller_data(const struct nvmf_capsule *nc, uint32_t data_offset,
1384 struct nvmf_association *na = nc->nc_qpair->nq_association;
1388 if (nc->nc_qe_len != sizeof(struct nvme_command) || !na->na_controller)
1391 sgl = &nc->nc_sqe.sgl;
1397 return (tcp_receive_icd_data(nc, data_offset, buf, len));
1399 return (tcp_receive_r2t_data(nc, data_offset, buf, len));
1425 tcp_send_controller_data(const struct nvmf_capsule *nc, const void *buf,
1428 struct nvmf_association *na = nc->nc_qpair->nq_association;
1429 struct nvmf_tcp_qpair *qp = TQP(nc->nc_qpair);
1437 if (nc->nc_qe_len != sizeof(struct nvme_command) || !na->na_controller)
1440 sgl = &nc->nc_sqe.sgl;
1443 nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
1448 nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
1469 error = tcp_send_c2h_pdu(qp, nc->nc_sqe.cid, data_offset,
1472 nvmf_send_generic_error(nc,
1481 nvmf_send_success(nc);