On 01/21/2015 03:14 PM, Or Gerlitz wrote:
> On Wed, Jan 21, 2015 at 8:41 PM, Mike Christie <[email protected]
> <mailto:[email protected]>> wrote:
>
> On 1/21/15, 8:19 AM, Or Gerlitz wrote:
>
> Hi Mike,
>
> Long time.. hope you are all well after EOY holidays and with
> energy to
> for the MCS debates @ LSF...
>
>
> Hey,
>
> Hope you are doing well too.
>
> So back in upstream commit
> ea05be3ff043efd44256283d968fa1__bb9a371568
> "iscsi tools: set non negotiated params early" we are
> doing set_param towards the kernel/transport before sending the
> login
> request.
>
> Running with latest upstream (commit
> 76a441ba0dc0071a19daeac456aa89__8889437efd) we did dump of all
> set_params
> done towards iser and I see that Max Recv DSL and friends are
> set after
> sending the login, in both discovery and normal sessions (see
> below), is
> that a bug? aren't they declarative?
>
>
> Most of them being set are not declarative.
>
> If we have ImmediateData=yes, but the target has ImmediateData=No,
> then we end up turning off ImmediateData. MaxBurstLength uses the
> min of what each side can support.
>
> Is the only one currently being set at that time that is declarative
> MRDSL (TPGT we will not count because we can sometimes get a
> different TGPT than what discovery told us). The thing about MRDSL
> is that we have our own MaxXmitDataSegmentLength setting. It is not
> a iscsi RFC setting. It is just a initiator side limit that we take
> into account when setting the final MRDSL. See
> usr/login.c:get_op_params___text_keys().
>
> Do you need the values earlier? Is it just MRSDL? We can pass that
> earlier, but then if we find out it is larger than
> MaxRecvDataSegmentLength we can update the value by calling set
> param again. We could also just turn that off for iser if it causes
> problems.
>
>
> What we need in iser is an early (== between bind and sending login) set
> param call to tell us the MRSDL for the initiator which is to be assumed
> by the target side. We need not worry if the value advertized before the
> login nego is larger vs. the max DSL which is going to be used by the
> target. We need all that when running discovery over iser but if it
> makes things simpler, we can have it for Normal sessions too. Any chance
> you can suggest quick user-space patch or you want us to dig there...
>
It sounds like you just need something like the attached patch. Let me
know if I am misunderstanding you.
--
You received this message because you are subscribed to the Google Groups
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
diff --git a/usr/initiator_common.c b/usr/initiator_common.c
index eb03b23..650bbcc 100644
--- a/usr/initiator_common.c
+++ b/usr/initiator_common.c
@@ -457,7 +457,7 @@ int iscsi_session_set_neg_params(struct iscsi_conn *conn)
return 0;
}
-#define MAX_SESSION_PARAMS 20
+#define MAX_SESSION_PARAMS 21
int iscsi_session_set_params(struct iscsi_conn *conn)
{
@@ -569,6 +569,11 @@ int iscsi_session_set_params(struct iscsi_conn *conn)
.value = &session->type,
.type = ISCSI_INT,
.conn_only = 0,
+ }, {
+ .param = ISCSI_PARAM_MAX_RECV_DLENGTH,
+ .value = &conn->max_recv_dlength,
+ .type = ISCSI_INT,
+ .conn_only = 0,
},
};