SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    Re: iSCSI: Questions regarding text parameter 'Reject' and 'Irrelevant' usage



    Hello,
    
    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