[SCSI] libfc, tcm_fc: add ddp_targ() to libfc function template to supprot FCoE DDP in target mode
The fcoe driver can implement ddp_targ() similarly to ddp_setup() when fcoe stack works with existing target frame, e.g., tcm, where the ddp_targ() would eventually point to the underlying hardware driver's implementation of ndo_fcoe_ddp_targ() through net_device_ops. This new API sets up DDP context for target appropriately by setting required bits for DDP context. Signed-off-by: Yi Zou <yi.zou@intel.com> Signed-off-by: Kiran Patil <kiran.patil@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
Родитель
480584818a
Коммит
33dc362b7f
|
@ -266,8 +266,9 @@ int ft_write_pending(struct se_cmd *se_cmd)
|
|||
cmd->sg_cnt =
|
||||
T_TASK(se_cmd)->t_tasks_sg_chained_no;
|
||||
}
|
||||
if (cmd->sg && lport->tt.ddp_setup(lport, ep->xid,
|
||||
cmd->sg, cmd->sg_cnt))
|
||||
if (cmd->sg && lport->tt.ddp_target(lport, ep->xid,
|
||||
cmd->sg,
|
||||
cmd->sg_cnt))
|
||||
cmd->was_ddp_setup = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -510,6 +510,14 @@ struct libfc_function_template {
|
|||
* STATUS: OPTIONAL
|
||||
*/
|
||||
int (*ddp_done)(struct fc_lport *, u16);
|
||||
/*
|
||||
* Sets up the DDP context for a given exchange id on the given
|
||||
* scatterlist if LLD supports DDP for FCoE target.
|
||||
*
|
||||
* STATUS: OPTIONAL
|
||||
*/
|
||||
int (*ddp_target)(struct fc_lport *, u16, struct scatterlist *,
|
||||
unsigned int);
|
||||
/*
|
||||
* Allow LLD to fill its own Link Error Status Block
|
||||
*
|
||||
|
|
Загрузка…
Ссылка в новой задаче