[Stgt-devel] [PATCH 15/20] iser rounding

FUJITA Tomonori fujita.tomonori
Thu Nov 15 03:20:52 CET 2007


On Tue, 16 Oct 2007 11:21:23 -0400
Pete Wyckoff <pw at osc.edu> wrote:

> RDMA data packets are not padded up to 4 byte boundaries, unlike TCP.
> Reasons for this can be found in doc/README.iser.
> 
> Signed-off-by: Pete Wyckoff <pw at osc.edu>
> ---
>  usr/iscsi/iscsid.c |   24 +++++++++++++++++-------
>  1 files changed, 17 insertions(+), 7 deletions(-)
> 
> diff --git a/usr/iscsi/iscsid.c b/usr/iscsi/iscsid.c
> index 8b7b48e..6d5471e 100644
> --- a/usr/iscsi/iscsid.c
> +++ b/usr/iscsi/iscsid.c
> @@ -1157,7 +1157,9 @@ static int iscsi_target_cmd_queue(struct iscsi_task *task)
>  			uint32_t len;
>  			void *buf;
>  
> -			len = roundup(task->read_len, 4);
> +			len = task->read_len;
> +			if (!conn->tp->rdma)
> +				len = roundup(len, 4);

I want to avoid doing something like this:

if (conn->tp->rdma)
	do iser
else
	do tcp


Can you add 'pad_len' to iscsi_transport struct and do something like:

len = roundup(task->read_len, conn->tp->pad_len);


tcp sets it to PAD_WORD_LEN and iser sets it to 1.



More information about the stgt mailing list