|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] iSCSI: Marker negotiation - draft 11A.2 Initial Marker-less Interval
To enable the connection setup including the login phase negotiation,
marking (if any) is started only at the first marker interval after the end of the login phase. However, in order to enable the marker inclusion and exclusion mechanism to work without knowledge of the length of the login phase, the first marker will be placed in the TCP stream as if the Marker-less interval had included markers.
Thus all markers appear in the stream at locations conforming to the
formula: [(MI + 8) * n - 8] where MI = Marker Interval, n = integer number.
As an example if the marker interval is 512 and the login ended at
byte 1003 (first iSCSI placed byte is 0) the first marker will be inserted after byte 1031 in the stream. The formula doesn't make sense to me. An
interval of 512 = 2048 bytes. Wouldn't the first marker would be placed
around byte 2048 instead of 1032?
A.3.2 OFMarkInt, IFMarkInt
Use: IO
Senders: Initiator and Target Scope: CO
Offering:
OFMarkInt=<integer-from-1-to-65535>[,<integer-from-1-to-65535>]
IFMarkInt=<integer-from-1-to-65535>[,<integer-from-1-to-65535>]
Responding:
OFMarkInt=<integer-from-1-to-65535>|Reject
IFMarkInt=<integer-from-1-to-65535>|Reject
OFMarkInt is used to set the interval for the initiator to target
markers on the connection. IFMarkInt is used to set the interval for the target to initiator markers on the connection.
For the offering the initiator or target indicates the minimum to
max-
imum interval (in 4-byte words) it wants the markers for one or both directions. In case it only wants a specific value, only a single value has to be specified. The responder selects a value within the minimum and maximum offered or the only value offered or indicates through the xFMarker key=value its inability to set and/or receive markers. When the interval is unacceptable the responder answers with "Reject". Reject is resetting the marker function in the specified direction (Output or Input) to No.
The interval is measured from the end of a marker to the beginning of
the next marker. For example, a value of 1024 means 1024 words (4096 bytes of iSCSI payload between markers).
The default is 2048.
Why allow for intervals as small as 4-bytes on markers? Is a range of values really necessary? I: OFMarker=yes | IFMarker=yes | OFMarkInt=1,512
| IFMarkInt=1,512
T: OFMarker=yes | IFMarker=yes | OFMarkInt=1 | IFMarkInt=1 (BTW: Why was the above naming chosen over:
ITMarker, TIMarker, ITMarkInt, TIMarkInt. OF & IF prefixes don't seem
intuitively perspective-obvious.)
Instead of offering a range (which seems kind of
unnecessary), how about offering only the value the entity wishes to
receive? Example:
I: TIMarker=yes | TIMarkInt=512 | ITMarker=yes |
ITMarkInt=0
T: TIMarker=yes | TIMarkInt=512 | ITMarker=yes | ITMarkInt=2048 The draft says "Default is 2048", how does that get negotiated? I: OFMarker=yes | IFMarker=yes
T: OFMarker=yes | IFMarker=yes Will the above negotiate the default OF & IF
Marker Intervals?
Also, section 9.10.4 does not explicitly say
that only a parameter negotiated by the initiator may be returned in a
target's response. So would this be possible?
I: OFMarker=yes | IFMarker=yes |
OFMarkInt=1,512
T: OFMarker=yes | IFMarker=yes | OFMarkInt=1 | IFMarkInt=1
Home Last updated: Wed Mar 13 10:18:12 2002 9084 messages in chronological order |