Lines Matching full:to
16 * targets to perform FC-NVME LS requests or transmit
24 * to the LLDD to perform a NVME-FC LS request and obtain
26 * Used by nvme-fc transport (host) to send LS's such as
29 * Used by the nvmet-fc transport (controller) to send
32 * Values set by the requestor prior to calling the LLDD ls_req entrypoint:
33 * @rqstaddr: pointer to request buffer
36 * @rspaddr: pointer to response buffer
39 * @timeout: Maximum amount of time, in seconds, to wait for the LS response.
40 * If timeout exceeded, LLDD to abort LS exchange and complete
42 * @private: pointer to memory allocated alongside the ls request structure
43 * that is specifically for the LLDD to use while processing the
44 * request. The length of the buffer corresponds to the
47 * @done: The callback routine the LLDD is to invoke upon completion of
48 * the LS request. req argument is the pointer to the original LS
69 * struct nvmefc_ls_rsp - Structure passed from the transport to the LLDD
70 * to request the transmit the NVME-FC LS response to a
72 * and is given to the transport via the xxx_rcv_ls_req()
75 * received and which the response is to be sent for.
76 * Used by the LLDD to pass the nvmet-fc transport (controller)
79 * Used by the LLDD to pass the nvme-fc transport (host)
84 * from the FC link. The address of the structure is passed to the nvmet-fc
87 * The address of the structure is to be passed back to the LLDD
88 * when the response is to be transmit. The LLDD will use the address to
89 * map back to the LLDD exchange structure which maintains information such
92 * address of the structure back to the transport LS rsp done() routine,
94 * the done() routine, no further access to the structure will be made by
102 * transport layer will fully set the fields in order to specify the
104 * to be called upon completion of the transmit. The transport layer
107 * Values set by the transport layer prior to calling the LLDD xmt_ls_rsp
109 * @rspbuf: pointer to the LS response buffer
112 * @done: The callback routine the LLDD is to invoke upon completion of
113 * transmitting the LS response. req argument is the pointer to
115 * @nvme_fc_private: pointer to an internal transport-specific structure
117 * not to access this pointer.
125 void *nvme_fc_private; /* LLDD is not to access !! */
148 * @dev_loss_tmo: maximum delay for reconnects to an association on
153 * be set to 0.
172 * to LLDD in order to perform a NVME FCP IO operation.
174 * Values set by the NVME-FC layer prior to calling the LLDD fcp_io
176 * @cmdaddr: pointer to the FCP CMD IU buffer
177 * @rspaddr: pointer to the FCP RSP IU buffer
182 * @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
198 * Must be set prior to calling the done() callback.
253 * a LLDD to reference a local NVME host port.
258 * port_info struct supplied to the registration call.
263 * @private: pointer to memory allocated alongside the local port
264 * structure that is specifically for the LLDD to use.
265 * The length of the buffer corresponds to the local_priv_sz
268 * @dev_loss_tmo: maximum delay for reconnects to an association on
269 * this device. To modify, lldd must call
273 * may reference fields directly to change them. Initialized by the
274 * port_info struct supplied to the registration call.
276 * be set to 0.
296 * a LLDD to reference a remote NVME subsystem port.
301 * port_info struct supplied to the registration call.
306 * @localport: pointer to the NVME-FC local host port the subsystem is
307 * connected to.
308 * @private: pointer to memory allocated alongside the remote port
309 * structure that is specifically for the LLDD to use.
310 * The length of the buffer corresponds to the remote_priv_sz
315 * state. LLDD may reference fields directly to change them. Initialized by
316 * the port_info struct supplied to the registration call.
318 * be set to 0.
350 * teardown to inform the LLDD that the localport has been deleted.
356 * teardown to inform the LLDD that the remoteport has been deleted.
360 * created such that they can be affinitized to cpus/cores. This
361 * callback into the LLDD to notify that a controller queue is being
362 * created. The LLDD may choose to allocate an associated hw queue
364 * LLDD specifies a handle that will be given back to it for any
365 * command that is posted to the controller queue. The handle can
366 * be used by the LLDD to map quickly to the proper hw queue for
367 * command execution. The mask of cpu's that will map to this queue
369 * queue id and/or cpu masks to ensure proper affinitization of the
370 * controller queue to the hw queue.
380 * @poll_queue: Called to poll for the completion of an io on a blk queue.
383 * @ls_req: Called to issue a FC-NVME FC-4 LS service request.
385 * the request payload and where to place the response payload. The
386 * LLDD is to allocate an exchange, issue the LS request, obtain the
388 * structure (argument to done is the ls request structure itself).
391 * @fcp_io: called to issue a FC-NVME I/O request. The I/O may be for
395 * and the buffer to place the FC-NVME RSP IU into. The LLDD will
398 * request structure (argument to done is the fcp request structure
402 * @ls_abort: called to request the LLDD to abort the indicated ls request.
408 * @fcp_abort: called to request the LLDD to abort the indicated fcp request.
414 * @xmt_ls_rsp: Called to transmit the response to a FC-NVME FC-4 LS service.
419 * payload. The LLDD is to transmit the response (or return a
422 * (argument to done is the address of the nvmefc_ls_rsp structure
443 * Value is Mandatory. Typical value is 0xFFFFFFFF to split across
446 * @local_priv_sz: The LLDD sets this field to the amount of additional
447 * memory that it would like fc nvme layer to allocate on the LLDD's
451 * Value is Mandatory. Allowed to be zero.
453 * @remote_priv_sz: The LLDD sets this field to the amount of additional
454 * memory that it would like fc nvme layer to allocate on the LLDD's
458 * Value is Mandatory. Allowed to be zero.
460 * @lsrqst_priv_sz: The LLDD sets this field to the amount of additional
461 * memory that it would like fc nvme layer to allocate on the LLDD's
465 * Value is Mandatory. Allowed to be zero.
467 * @fcprqst_priv_sz: The LLDD sets this field to the amount of additional
468 * memory that it would like fc nvme layer to allocate on the LLDD's
472 * Value is Mandatory. Allowed to be zero.
537 * Routine called to pass a NVME-FC LS request, received by the lldd,
538 * to the nvme-fc transport.
545 * Note: if the LLDD receives and ABTS for the LS prior to the transport
546 * calling the ops->xmt_ls_rsp() routine to transmit a response, the LLDD
552 * Note: if an RCV LS was successfully posted to the transport and the
555 * afterward to cleanup the outstanding lsrsp structure. The LLDD should
557 * to allow the lsrsp structure to be released.
584 * be set to 0.
593 /* Operations that NVME-FC layer may request the LLDD to perform for FCP */
595 NVMET_FCOP_READDATA = 1, /* xmt data to initiator */
597 NVMET_FCOP_READDATA_RSP = 3, /* xmt data to initiator and send
605 * layer to represent the exchange context and
606 * the specific FC-NVME IU operation(s) to perform
609 * Structure used between LLDD and nvmet-fc layer to represent the exchange
614 * from the FC link. The address of the structure is passed to the nvmet-fc
616 * will be passed back to the LLDD for the data operations and transmit of
617 * the response. The LLDD is to use the address to map back to the LLDD
621 * operation, the address of the structure will be passed back to the FCP
622 * op done() routine, allowing the nvmet-fc layer to release dma resources.
632 * layer will fully set the fields in order to specify the scattergather
633 * list, the transfer length, as well as the done routine to be called
637 * Values set by the NVMET-FC layer prior to calling the LLDD fcp_op
639 * @op: Indicates the FCP IU operation to perform (see NVMET_FCOP_xxx)
642 * that the operation is to use.
643 * @offset: Indicates the DATA_OUT/DATA_IN payload offset to be tranferred.
645 * @timeout: amount of time, in seconds, to wait for a response from the NVME
651 * that is to be transferred.
653 * @ba_rjt: Contains the BA_RJT payload that is to be transferred.
659 * @rspaddr: pointer to the FCP RSP IU buffer to be transmit
665 * @done: The callback routine the LLDD is to invoke upon completion of
666 * the operation. req argument is the pointer to the original
668 * @nvmet_fc_private: pointer to an internal NVMET-FC layer structure used
669 * as part of the NVMET-FC processing. The LLDD is not to
673 * Must be set prior to calling the done() callback.
676 * be set to 0. Should equal transfer_length on success.
695 void *nvmet_fc_private; /* LLDD is not to access !! */
708 * sequence transmit must not allow RSP sequence to be sent.
715 * a LLDD to reference a local NVME subsystem port.
720 * port_info struct supplied to the registration call.
724 * @private: pointer to memory allocated alongside the local port
725 * structure that is specifically for the LLDD to use.
726 * The length of the buffer corresponds to the target_priv_sz
731 * may reference fields directly to change them. Initialized by the
732 * port_info struct supplied to the registration call.
734 * be set to 0.
763 * teardown to inform the LLDD that the targetport has been deleted.
766 * @xmt_ls_rsp: Called to transmit the response to a FC-NVME FC-4 LS service.
771 * payload. The LLDD is to transmit the response (or return a
774 * (argument to done is the address of the nvmefc_ls_rsp structure
782 * @fcp_op: Called to perform a data transfer or transmit a response.
786 * structure shall indicate the operation for the LLDD to perform
787 * relative to the io.
788 * NVMET_FCOP_READDATA operation: the LLDD is to send the
789 * payload data (described by sglist) to the host in 1 or
793 * NVMET_FCOP_WRITEDATA operation: the LLDD is to receive the
795 * more FC sequences (preferrably 1). The LLDD is to generate
796 * the XFER_RDY IU(s) corresponding to the data being requested.
799 * NVMET_FCOP_READDATA_RSP operation: the LLDD is to send the
800 * payload data (described by sglist) to the host in 1 or
802 * payload data transmission, the LLDD is to set the
804 * consider the operation complete. On error, the LLDD is to not
806 * successfully, the LLDD is to update the nvmefc_tgt_fcp_req
809 * If FCP_CONF is supported, the LLDD is to await FCP_CONF
810 * reception to confirm the RSP reception by the host. The LLDD
814 * LLDD is to set the nvmefc_tgt_fcp_req fcp_error field and
816 * NVMET_FCOP_RSP: the LLDD is to transmit the FCP_RSP iu payload
818 * supported, the LLDD is to await FCP_CONF reception to confirm
823 * LLDD is to set the nvmefc_tgt_fcp_req fcp_error field and
825 * Upon completing the indicated operation, the LLDD is to set the
831 * transport calls the fcp_req_release() callback to return ownership
832 * of the exchange structure back to the LLDD so that it may be used
836 * thread and before returning to the LLDD, the fcp operation to
838 * call again. If fields in the fcp request are to be accessed post
839 * the done call, the LLDD should save their values prior to calling
845 * @fcp_abort: Called by the transport to abort an active command.
847 * or may have an active WRITEDATA operation pending. The LLDD is to
849 * callback. The ABTS does not need to be complete on the command.
852 * outstanding operation (if there was one) to complete, then will
853 * call the fcp_req_release() callback to return the command's
854 * exchange context back to the LLDD.
857 * @fcp_req_release: Called by the transport to return a nvmefc_tgt_fcp_req
858 * to the LLDD after all operations on the fcp operation are complete.
859 * This may be due to the command completing or upon completion of
863 * @defer_rcv: Called by the transport to signal the LLLD that it has
865 * is now free to re-use the rcv buffer associated with the
869 * @discovery_event: Called by the transport to generate an RSCN
870 * change notifications to NVME initiators. The RSCN notifications
871 * should cause the initiator to rescan the discovery controller
874 * @ls_req: Called to issue a FC-NVME FC-4 LS service request.
876 * the request payload and where to place the response payload.
877 * The targetport that is to issue the LS request is identified by
878 * the targetport argument. The remote port that is to receive the
880 * transport is only allowed to issue FC-NVME LS's on behalf of an
884 * was delivered to the transport. The transport will save the
887 * nvmet_fc_invalidate_host() routine to remove any references to
889 * The LLDD is to allocate an exchange, issue the LS request, obtain
891 * request structure (argument to done is the ls request structure
895 * @ls_abort: called to request the LLDD to abort the indicated ls request.
901 * @host_release: called to inform the LLDD that the request to invalidate
904 * further references to hosthandle.
921 * Value is Mandatory. Typical value is 0xFFFFFFFF to split across
924 * @target_features: The LLDD sets bits in this field to correspond to
926 * Refer to the NVMET_FCTGTFEAT_xxx values.
927 * Value is Mandatory. Allowed to be zero.
929 * @target_priv_sz: The LLDD sets this field to the amount of additional
930 * memory that it would like fc nvme layer to allocate on the LLDD's
934 * Value is Mandatory. Allowed to be zero.
936 * @lsrqst_priv_sz: The LLDD sets this field to the amount of additional
937 * memory that it would like nvmet-fc layer to allocate on the LLDD's
941 * Value is Mandatory. Allowed to be zero.
984 * Routine called to pass a NVME-FC LS request, received by the lldd,
985 * to the nvmet-fc transport.
992 * Note: if the LLDD receives and ABTS for the LS prior to the transport
993 * calling the ops->xmt_ls_rsp() routine to transmit a response, the LLDD
999 * Note: if an RCV LS was successfully posted to the transport and the
1002 * afterward to cleanup the outstanding lsrsp structure. The LLDD should
1004 * to allow the lsrsp structure to be released.
1013 * connectivity to a NVME-FC host port which there had been active
1015 * hosthandle. The hosthandle is given to the nvmet-fc transport
1016 * when a NVME LS was received, typically to create a new association.
1024 * part of sending LS's to terminate the association. The LLDD