|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: iSCSI: Questions regarding text parameter 'Reject' and 'Irrelevant' usageHello, I agree with Pat. But along the lines of the choices of "MAY" there seems to be another issue: (inlined) > "THALER,PAT (A-Roseville,ex1)" wrote: > > Initiator offers value x > Target responds with value y (which it thinks is admissible) > Initiator finds value y to be inadmissible and offers the parameter again > (either with x or a new value z). The initiator should close the connection. (Reasons below.) > The target wouldn't intentionally respond with an inadmissible value so some sort of error must > have occurred. For instance, the target is using the wrong rule to pick its value, the value it > received from the initiator was corrupted or the value it picked got corrupted. The more reason the initiator should close the connection. A problem arises for a "MAY" rule: that is, it opens a split (choices) in the decision tree which may lead to a cyclical decision tree, which would mean that the logic was faulty somewhere. Consider this: A variable negotiation state is esablished only when a variable offer and result have been exchanged where no reserved keywords have been the value of the variable (i.e. Reject, Irrelevant, etc.). This also includes an implicit result for the OR and AND functions. (This version of the renegotiation rule is equivalent to: A node cannot offer a variable more than once if it received (even implicit) a result for the variable which is not a reserved keyword.) Then: I: v = x --> T: 1) either x is unnaceptable (Reject) 2) or rule choses y. <-- 1) v = Reject \ > Because of MAY 2) v = y / I: 1) ok, will renegotiate it. OR 2) y is unnacceptable -- cannot break the renegotiation rule, close the connection (hopeless target). There may be a problem for 1): the node may offer its faulty value forever and the peer node will reject it forever --thus we get into an inf. cycle, which is also undesirable. To avoid this problem one needs to either keep state for offers, or limit the number of variable negotiation exchanges. Currently, as per the draft, offers are stateless, and a complete negotiation is stateful (as per the renegotiation rule). Try_1: We can get rid of the need to introduce stateful offers, by stipulating that: A node cannot make another offer upon a receipt of a reserved keyword for a value of the variable which it offered. Thus, as per the above example, once the target goes into to 1) scenario, then the initiator cannot make another offer. In which case the target will make an offer later on. BUT this would also lead to a cycle if the initiator finds the offer unnacceptable and replies with a reserved keyword... So then, should we elimiate the Reject keyword? (which would eliminate the cyclical nature) It seems to me that to avoid all this, stipulating that offers (not only negotiations) are stateful is inevitable. If offers are stateful and we assume Try_1, then there cannot be a cycle iff Renegotiation rule is applied. -- Luben P.S. A better and more complete negotiation decision tree is possible.
Home Last updated: Wed Apr 24 13:18:34 2002 9767 messages in chronological order |