Lines Matching full:to

17  *  targets to perform FC-NVME LS requests or transmit
25 * to the LLDD to perform a NVME-FC LS request and obtain
27 * Used by nvme-fc transport (host) to send LS's such as
30 * Used by the nvmet-fc transport (controller) to send
33 * Values set by the requestor prior to calling the LLDD ls_req entrypoint:
34 * @rqstaddr: pointer to request buffer
37 * @rspaddr: pointer to response buffer
40 * @timeout: Maximum amount of time, in seconds, to wait for the LS response.
41 * If timeout exceeded, LLDD to abort LS exchange and complete
43 * @private: pointer to memory allocated alongside the ls request structure
44 * that is specifically for the LLDD to use while processing the
45 * request. The length of the buffer corresponds to the
48 * @done: The callback routine the LLDD is to invoke upon completion of
49 * the LS request. req argument is the pointer to the original LS
70 * struct nvmefc_ls_rsp - Structure passed from the transport to the LLDD
71 * to request the transmit the NVME-FC LS response to a
73 * and is given to the transport via the xxx_rcv_ls_req()
76 * received and which the response is to be sent for.
77 * Used by the LLDD to pass the nvmet-fc transport (controller)
80 * Used by the LLDD to pass the nvme-fc transport (host)
85 * from the FC link. The address of the structure is passed to the nvmet-fc
88 * The address of the structure is to be passed back to the LLDD
89 * when the response is to be transmit. The LLDD will use the address to
90 * map back to the LLDD exchange structure which maintains information such
93 * address of the structure back to the transport LS rsp done() routine,
95 * the done() routine, no further access to the structure will be made by
103 * transport layer will fully set the fields in order to specify the
105 * to be called upon completion of the transmit. The transport layer
108 * Values set by the transport layer prior to calling the LLDD xmt_ls_rsp
110 * @rspbuf: pointer to the LS response buffer
113 * @done: The callback routine the LLDD is to invoke upon completion of
114 * transmitting the LS response. req argument is the pointer to
116 * @nvme_fc_private: pointer to an internal transport-specific structure
118 * not to access this pointer.
126 void *nvme_fc_private; /* LLDD is not to access !! */
149 * @dev_loss_tmo: maximum delay for reconnects to an association on
154 * be set to 0.
173 * to LLDD in order to perform a NVME FCP IO operation.
175 * Values set by the NVME-FC layer prior to calling the LLDD fcp_io
177 * @cmdaddr: pointer to the FCP CMD IU buffer
178 * @rspaddr: pointer to the FCP RSP IU buffer
183 * @payload_length: Length of DATA_IN or DATA_OUT payload data to transfer
188 * @done: The callback routine the LLDD is to invoke upon completion of
189 * the FCP operation. req argument is the pointer to the original
191 * @private: pointer to memory allocated alongside the FCP operation
192 * request structure that is specifically for the LLDD to use
194 * corresponds to the fcprqst_priv_sz value specified in the
199 * Must be set prior to calling the done() callback.
254 * a LLDD to reference a local NVME host port.
259 * port_info struct supplied to the registration call.
264 * @private: pointer to memory allocated alongside the local port
265 * structure that is specifically for the LLDD to use.
266 * The length of the buffer corresponds to the local_priv_sz
269 * @dev_loss_tmo: maximum delay for reconnects to an association on
270 * this device. To modify, lldd must call
274 * may reference fields directly to change them. Initialized by the
275 * port_info struct supplied to the registration call.
277 * be set to 0.
297 * a LLDD to reference a remote NVME subsystem port.
302 * port_info struct supplied to the registration call.
307 * @localport: pointer to the NVME-FC local host port the subsystem is
308 * connected to.
309 * @private: pointer to memory allocated alongside the remote port
310 * structure that is specifically for the LLDD to use.
311 * The length of the buffer corresponds to the remote_priv_sz
316 * state. LLDD may reference fields directly to change them. Initialized by
317 * the port_info struct supplied to the registration call.
319 * be set to 0.
351 * teardown to inform the LLDD that the localport has been deleted.
357 * teardown to inform the LLDD that the remoteport has been deleted.
361 * created such that they can be affinitized to cpus/cores. This
362 * callback into the LLDD to notify that a controller queue is being
363 * created. The LLDD may choose to allocate an associated hw queue
365 * LLDD specifies a handle that will be given back to it for any
366 * command that is posted to the controller queue. The handle can
367 * be used by the LLDD to map quickly to the proper hw queue for
368 * command execution. The mask of cpu's that will map to this queue
370 * queue id and/or cpu masks to ensure proper affinitization of the
371 * controller queue to the hw queue.
381 * @poll_queue: Called to poll for the completion of an io on a blk queue.
384 * @ls_req: Called to issue a FC-NVME FC-4 LS service request.
386 * the request payload and where to place the response payload. The
387 * LLDD is to allocate an exchange, issue the LS request, obtain the
389 * structure (argument to done is the ls request structure itself).
392 * @fcp_io: called to issue a FC-NVME I/O request. The I/O may be for
396 * and the buffer to place the FC-NVME RSP IU into. The LLDD will
399 * request structure (argument to done is the fcp request structure
403 * @ls_abort: called to request the LLDD to abort the indicated ls request.
409 * @fcp_abort: called to request the LLDD to abort the indicated fcp request.
415 * @xmt_ls_rsp: Called to transmit the response to a FC-NVME FC-4 LS service.
420 * payload. The LLDD is to transmit the response (or return a
423 * (argument to done is the address of the nvmefc_ls_rsp structure
444 * Value is Mandatory. Typical value is 0xFFFFFFFF to split across
447 * @local_priv_sz: The LLDD sets this field to the amount of additional
448 * memory that it would like fc nvme layer to allocate on the LLDD's
452 * Value is Mandatory. Allowed to be zero.
454 * @remote_priv_sz: The LLDD sets this field to the amount of additional
455 * memory that it would like fc nvme layer to allocate on the LLDD's
459 * Value is Mandatory. Allowed to be zero.
461 * @lsrqst_priv_sz: The LLDD sets this field to the amount of additional
462 * memory that it would like fc nvme layer to allocate on the LLDD's
466 * Value is Mandatory. Allowed to be zero.
468 * @fcprqst_priv_sz: The LLDD sets this field to the amount of additional
469 * memory that it would like fc nvme layer to allocate on the LLDD's
473 * Value is Mandatory. Allowed to be zero.
540 * Routine called to pass a NVME-FC LS request, received by the lldd,
541 * to the nvme-fc transport.
548 * Note: if the LLDD receives and ABTS for the LS prior to the transport
549 * calling the ops->xmt_ls_rsp() routine to transmit a response, the LLDD
555 * Note: if an RCV LS was successfully posted to the transport and the
558 * afterward to cleanup the outstanding lsrsp structure. The LLDD should
560 * to allow the lsrsp structure to be released.
568 * Routine called to get the appid field associated with request by the lldd
570 * If the return value is NULL : the user/libvirt has not set the appid to VM
573 * @req: IO request from nvme fc to driver
596 * be set to 0.
605 /* Operations that NVME-FC layer may request the LLDD to perform for FCP */
607 NVMET_FCOP_READDATA = 1, /* xmt data to initiator */
609 NVMET_FCOP_READDATA_RSP = 3, /* xmt data to initiator and send
617 * layer to represent the exchange context and
618 * the specific FC-NVME IU operation(s) to perform
621 * Structure used between LLDD and nvmet-fc layer to represent the exchange
626 * from the FC link. The address of the structure is passed to the nvmet-fc
628 * will be passed back to the LLDD for the data operations and transmit of
629 * the response. The LLDD is to use the address to map back to the LLDD
633 * operation, the address of the structure will be passed back to the FCP
634 * op done() routine, allowing the nvmet-fc layer to release dma resources.
644 * layer will fully set the fields in order to specify the scattergather
645 * list, the transfer length, as well as the done routine to be called
649 * Values set by the NVMET-FC layer prior to calling the LLDD fcp_op
651 * @op: Indicates the FCP IU operation to perform (see NVMET_FCOP_xxx)
654 * that the operation is to use.
655 * @offset: Indicates the DATA_OUT/DATA_IN payload offset to be tranferred.
657 * @timeout: amount of time, in seconds, to wait for a response from the NVME
663 * that is to be transferred.
665 * @ba_rjt: Contains the BA_RJT payload that is to be transferred.
671 * @rspaddr: pointer to the FCP RSP IU buffer to be transmit
677 * @done: The callback routine the LLDD is to invoke upon completion of
678 * the operation. req argument is the pointer to the original
680 * @nvmet_fc_private: pointer to an internal NVMET-FC layer structure used
681 * as part of the NVMET-FC processing. The LLDD is not to
685 * Must be set prior to calling the done() callback.
688 * be set to 0. Should equal transfer_length on success.
707 void *nvmet_fc_private; /* LLDD is not to access !! */
720 * sequence transmit must not allow RSP sequence to be sent.
727 * a LLDD to reference a local NVME subsystem port.
732 * port_info struct supplied to the registration call.
736 * @private: pointer to memory allocated alongside the local port
737 * structure that is specifically for the LLDD to use.
738 * The length of the buffer corresponds to the target_priv_sz
743 * may reference fields directly to change them. Initialized by the
744 * port_info struct supplied to the registration call.
746 * be set to 0.
775 * teardown to inform the LLDD that the targetport has been deleted.
778 * @xmt_ls_rsp: Called to transmit the response to a FC-NVME FC-4 LS service.
783 * payload. The LLDD is to transmit the response (or return a
786 * (argument to done is the address of the nvmefc_ls_rsp structure
795 * to the block layer.
798 * @fcp_op: Called to perform a data transfer or transmit a response.
802 * structure shall indicate the operation for the LLDD to perform
803 * relative to the io.
804 * NVMET_FCOP_READDATA operation: the LLDD is to send the
805 * payload data (described by sglist) to the host in 1 or
809 * NVMET_FCOP_WRITEDATA operation: the LLDD is to receive the
811 * more FC sequences (preferrably 1). The LLDD is to generate
812 * the XFER_RDY IU(s) corresponding to the data being requested.
815 * NVMET_FCOP_READDATA_RSP operation: the LLDD is to send the
816 * payload data (described by sglist) to the host in 1 or
818 * payload data transmission, the LLDD is to set the
820 * consider the operation complete. On error, the LLDD is to not
822 * successfully, the LLDD is to update the nvmefc_tgt_fcp_req
825 * If FCP_CONF is supported, the LLDD is to await FCP_CONF
826 * reception to confirm the RSP reception by the host. The LLDD
830 * LLDD is to set the nvmefc_tgt_fcp_req fcp_error field and
832 * NVMET_FCOP_RSP: the LLDD is to transmit the FCP_RSP iu payload
834 * supported, the LLDD is to await FCP_CONF reception to confirm
839 * LLDD is to set the nvmefc_tgt_fcp_req fcp_error field and
841 * Upon completing the indicated operation, the LLDD is to set the
847 * transport calls the fcp_req_release() callback to return ownership
848 * of the exchange structure back to the LLDD so that it may be used
852 * thread and before returning to the LLDD, the fcp operation to
854 * call again. If fields in the fcp request are to be accessed post
855 * the done call, the LLDD should save their values prior to calling
861 * @fcp_abort: Called by the transport to abort an active command.
863 * or may have an active WRITEDATA operation pending. The LLDD is to
865 * callback. The ABTS does not need to be complete on the command.
868 * outstanding operation (if there was one) to complete, then will
869 * call the fcp_req_release() callback to return the command's
870 * exchange context back to the LLDD.
873 * @fcp_req_release: Called by the transport to return a nvmefc_tgt_fcp_req
874 * to the LLDD after all operations on the fcp operation are complete.
875 * This may be due to the command completing or upon completion of
879 * @defer_rcv: Called by the transport to signal the LLLD that it has
881 * is now free to re-use the rcv buffer associated with the
885 * @discovery_event: Called by the transport to generate an RSCN
886 * change notifications to NVME initiators. The RSCN notifications
887 * should cause the initiator to rescan the discovery controller
890 * @ls_req: Called to issue a FC-NVME FC-4 LS service request.
892 * the request payload and where to place the response payload.
893 * The targetport that is to issue the LS request is identified by
894 * the targetport argument. The remote port that is to receive the
896 * transport is only allowed to issue FC-NVME LS's on behalf of an
900 * was delivered to the transport. The transport will save the
903 * nvmet_fc_invalidate_host() routine to remove any references to
905 * The LLDD is to allocate an exchange, issue the LS request, obtain
907 * request structure (argument to done is the ls request structure
911 * @ls_abort: called to request the LLDD to abort the indicated ls request.
917 * @host_release: called to inform the LLDD that the request to invalidate
920 * further references to hosthandle.
923 * @host_traddr: called by the transport to retrieve the node name and
940 * Value is Mandatory. Typical value is 0xFFFFFFFF to split across
943 * @target_features: The LLDD sets bits in this field to correspond to
945 * Refer to the NVMET_FCTGTFEAT_xxx values.
946 * Value is Mandatory. Allowed to be zero.
948 * @target_priv_sz: The LLDD sets this field to the amount of additional
949 * memory that it would like fc nvme layer to allocate on the LLDD's
953 * Value is Mandatory. Allowed to be zero.
955 * @lsrqst_priv_sz: The LLDD sets this field to the amount of additional
956 * memory that it would like nvmet-fc layer to allocate on the LLDD's
960 * Value is Mandatory. Allowed to be zero.
1004 * Routine called to pass a NVME-FC LS request, received by the lldd,
1005 * to the nvmet-fc transport.
1012 * Note: if the LLDD receives and ABTS for the LS prior to the transport
1013 * calling the ops->xmt_ls_rsp() routine to transmit a response, the LLDD
1019 * Note: if an RCV LS was successfully posted to the transport and the
1022 * afterward to cleanup the outstanding lsrsp structure. The LLDD should
1024 * to allow the lsrsp structure to be released.
1033 * connectivity to a NVME-FC host port which there had been active
1035 * hosthandle. The hosthandle is given to the nvmet-fc transport
1036 * when a NVME LS was received, typically to create a new association.
1044 * part of sending LS's to terminate the association. The LLDD
1065 * add a define, visible to the compiler, that indicates support