Subject: Re: iscsi : numerical negotiation wording is ambiguous

From: "Julian Satran" <[email-masked]>
Date: Thu, 27 Sep 2001 11:55:23 +0300

Santosh,

I understood what you wording means but I am not sure that we want all the
side-effects.
The negotiation as defined  now allows both parties requester or responder
to state their wishes and the LAW
insatiate the result in both.

Your wording means that the responder selects the value according to the
rule. What if the responder is either a rogue or
just a simple minded target.  Let me give an example:

I am building a simple minded target that has an 8K buffer and says  always
(has it wired) DataPDULength=8192
in its first Login response (that is his buffer).

If an initiator sends him as a "offer" or as a "responder" 16192 then with
the current wording things are fine and both will
have settled to 8192.

If the initiator sends an offer of 4096 and the target gives his (only
thing he knows) 8192 it is still fine - both select 4096.

With your wording some of the negotiations will fail since you assume that
the rule should be expressed in building the answer and not in selecting
the result.

In the end in both case you have to do selections at both target and
initiator but the current rule enables simple-minded prewired messages
while your does not (the responder message defines the selection and the
offerer has to check it).

Sorry for this long message for such a simple question.

Julo

                    Santosh Rao                                                                  
                    <santoshr@cup.       To:     [email-masked]                                 
                    hp.com>              cc:                                                     
                    Sent by:             Subject:     Re: iscsi : numerical negotiation wording  
                    owner-ips@ece.        is ambiguous                                           
                    cmu.edu                                                                      

                    26-09-01 23:16                                                               
                    Please respond                                                               
                    to Santosh Rao                                                               

Julian,

What is the responding party supposed to offer ? Is it supposed to
determine the result of the
negotiation (higher or lower value, as the case may be) and send that as
its response ?

Or, is it supposed to send in its numerical value and the initiator picks
the higher or lower of
the 2 ?

This does'nt come across clear enough in the definition and is open to
mis-interpretation. Please
see the suggested re-word in its place.

Thanks,
Santosh

Julian Satran wrote:

> Santosh,
>
> I am missing something. The rule states what value both parties should
have
> after both have seen the two values.
> Obviously we assume that no error occurs and the responder value is seen
y
> the offering party or the negotiation fails.
>
> What exactly is ambiguous about it?
>
> Julo
>
>
>                     Santosh Rao
>                     <santoshr@cup.       To:     [email-masked] (ips)
>                     hp.com>              cc:
>                     Sent by:             Subject:     iscsi : numerical
negotiation wording is
>                     owner-ips@ece.        ambiguous
>                     cmu.edu
>
>
>                     26-09-01 19:59
>                     Please respond
>                     to Santosh Rao
>
>
>
> Julian & All,
>
> The definition of numerical negotiation in Section 2.2.4 of Rev 7.97
> reads :
>
> "In numerical negotiations, the offering and responding party state
>  a numerical value. The result of the negotiation is key dependent;
>  frequently the lower or the higher of the two values is used."
>
> The above definition is ambiguous, since it does not specify whether it
is
> the originator or the responder that computes the result of the
> negotiation.
>
> i.e. Is it the responsibility of the target to pick the higher or lower
of
> the 2 values and respond with the result of the negotiation ?
>
> OR :
> Is it the originator that has to pick the result of the negotiation
> based on the key it sent and the key it got back ?
>
> I would suggest that the wording be clarified to indicate that the
> responder picks the result of the negotiation and sends this result back
> in its response for this key.
>
> Perhaps, some re-wording along the following lines may be in order :
>
> "In numerical negotiations, the offering party states a numerical
>  value, and the responding party states the result (operational value)
>  after the negotiation.  The result of the negotiation is key
>  dependent; responder determines it based on the lower or the higher
>  of the two values - offering party's value, and what the responder
>  can support."
>
> Comments ?
>
> Regards,
> Santosh
>
> --
> #################################
> Santosh Rao
> Software Design Engineer,
> HP, Cupertino.
> email : [email-masked]
> Phone : 408-447-3751
> #################################

#### santoshr.vcf has been removed from this note on September 27 2001 by
Julian Satran

---

From: Santosh Rao <[email-masked]>
Date: Thu, 27 Sep 2001 09:27:39 -0700

Hi Julian,

I think a number of developers [like Matthew B stated it] would be
thinking it is the alternate method that is to be used. The reason being
that mass storage negotiation [FC PLOGI, FC PRLI, SCSI Mode Select, etc]
expect the responder to return the result of the negotiation and
the initiator only parses the response to determine if the result of the
negotiation is acceptable to it.

The above approach is a familiar one for most mass storage folks,
involves 
less code [only 1 side doing the determination of the result], is a
simpler method, allows less room for error and eases debugging.

I request that the above proposal be considered and the wording
of the negotiation tightened to allow no room for any
mis-interpretation.

Thanks,
Santosh

-- 
##################################
Santosh Rao
Software Design Engineer,
HP-UX iSCSI Driver Team,
Hewlett Packard, Cupertino.
email : [email-masked]
Phone : 408-447-3751
##################################

---

From: Santosh Rao <[email-masked]>
Date: Fri, 28 Sep 2001 14:15:09 -0700

Julian & All,

I request the group to take a close look at this negotiation process
again and [re-]evaluate the alternative being proposed.

Further, it appears that the login stage negotiation  is also following
the same algorithm as the login key negotiation, wherein originator &
responder offer their respective values and both sides need to determine
the result of the negotiation. i.e. both initiator and target need to
compare their NSG with the other party's NSG and pick the lower of the
2.

I suggest that both the login key negotiation and the login stage
negotiation follow the policy that the originator offers a value and the
responder picks the result of the negotiation based on (the offered
value & its own value). The value picked by the responder is sent back
to the originator.

This model has the following advantages :

1) Only one side picks the result of the negotiaton. Hence, the 2 sides
cannot go out of sync on the value picked.

2) The originator knows the negotiated result at the the responder since
the responder sends back the result of the negotiation.

3) This model is easier to debug because of (1) & (2).

4) Less code since only 1 party (responder) needs to perform the
computation to pick the result of the negotiation.

5) This scheme leaves less room for interop problems and
mis-interpretation since it is the more familiar negotiation technique
that is in use in most other mass storage protocols. (ex : FC PLOGI, FC
PRLI, etc). From a first reading of the current negotiation scheme, it
is'nt readily apparent that the currently defined model is different
from the above and requires both sides to be picking the result of the
negotiation, instead of just the responder.

Comments ?

Thanks,
Santosh