|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Concensus Call on Urgent Pointer.Daniel Smith wrote: > > I'd word it closer to: > > "During login, if the target reqests use of the Urgent Pointer (UP) then > this should be taken as meaning that the target will operate more > efficiently when the UP is used. The initiator should make an effort to use > the UP. If it is unable (or unwilling, because of user intervention*) to > use the UP then it must indicate its non-compliance to the target." Another approach is to go the pseudo code route, rather than get bogged down in English. The MUSTs and SHOULDs complicate matters, so the result isn't really p-code, but does seem to be reasonably clear. I've allowed for a single user "switch" that turns of UP totally from either the initiator or the target for all sessions. We need some weasel words that allow a more fine-grained implementation without removing the user's ability to do away with UP if needed. TARGET T-EFFICIENT-SEND, boolean constant the target can efficently send iSCSI protocol data units with the TCP Urgent data feature being used to mark protocol data unit boundaries. T-EFFICIENT-RECEIVE, boolean constant the target can efficently receive iSCSI protocol data units with the TCP Urgent data feature being used to mark protocol data unit boundaries. T-URGENT-ALLOWED, boolean global variable, user settable, default true the user wishes for the TCP urgent data feature to be used if it enhances efficiency T-URGENT-SEND, boolean per-session variable if true, the TCP urgent data feature SHOULD be used for identifying iSCSI protocol data units when sending data if false, the TCP urgent data feature MUST NOT be used. T-URGENT-RECIEVE-HINT, boolean per-session variable if true, the TCP urgent data feature can be expected with received data. Of course, support for Urgent data is not optional with TCP, but this variable MAY be used to implement a more efficient handling of this usually rare data. INITIATOR And similarly for the initiator we define I-EFFICIENT-SEND, I-EFFICIENT-RECEIVE, I-WISHES-URGENT, I-URGENT-SEND, I-URGENT-RECEIVE-HINT. STATES Upon login the initiator MUST I-URGENT-SEND <- false and then SHOULD send I-URGENT-RECIEVE-HINT <- false if I-URGENT-ALLOWED if I-EFFICIENT-SEND send message UrgentPointerFromTarget: 1 endif if I-EFFICIENT-RECEIVE send message UrgentPointerFromInitiator: 1 endif endif The target MUST T-URGENT-SEND <- false and then SHOULD respond with T-URGENT-SEND <- false if received message UrgentPointerFromTarget: 1 if T-URGENT-ALLOWED if T-EFFICIENT-SEND SHOULD send response UrgentPointerFromTarget: 1 T-URGENT-SEND <- true else SHOULD send response UrgentPointerFromTarget: 0 endif else MUST send response UrgentPointerFromTarget: 0 endif endif T-URGENT-RECEIVE-HINT <- false if received message UrgentPointerFromInitiator: 1 if T-URGENT-ALLOWED if T-EFFICIENT-RECEIVE SHOULD send response UrgentPointerFromInitiator: 1 T-URGENT-RECIEVE-HINT <- true else SHOULD send response UrgentPointerFromInitiator: 0 endif else MUST send response UrgentPointerFromInitiator: 0 endif endif The initiator then SHOULD set if received response UrgentPointerFromInitiator: 1 I-URGENT-SEND <- true endif if received response UrgentPointerFromInitiator: 0 I-URGENT-SEND <- false endif if recieved response UrgentPointerFromTarget: 1 I-URGENT-RECEIVE-HINT <- true endif if recieved response UrgentPointerFromTarget: 0 I-URGENT-RECIEVE-HINT <- false endif if not I-URGENT-ALLOWED and I-URGENT-SEND SHOULD Log protocol error endif if not I-URGENT-ALLOWED and I-URGENT-RECEIVE-HINT SHOULD Log protocol error endif The initiator SHOULD use the TCP urgent data pointer feature to mark iSCSI PDU boundaries if I-URGENT-SEND is true. It MUST wait until the login process has completed before doing so. Similarly, the target SHOULD use the TCP urgent data pointer feature to mark iSCSI PDU boundaries if T-URGENT-SEND is true. It MUST wait until the login process has completed before doing so. The robustness principle applies to received data. Initiators and targets MUST allow TCP segments containing iSCSI PDUs delimited with the TCP Urgent Data feature to be correctly processed regardless of the value of I-URGENT-RECEIVE-HINT and T-URGENT-RECEIVE-HINT respectively. However, initiators and targets SHOULD record the session details and number of occurances of this protocol violation. -- Glen Turner Network Engineer (08) 8303 3936 Australian Academic and Research Network glen.turner@aarnet.edu.au http://www.aarnet.edu.au/ -- The revolution will not be televised, it will be digitised
Home Last updated: Tue Sep 04 01:06:23 2001 6315 messages in chronological order |