Subject: Re: [Tsvwg] text inconsistency in draft-ietf-tsvwg-2960bis-02

From: "li suozhu" <[email-masked]>
Date: Wed, 06 Dec 2006 11:14:33 +0800

hiya.

Section 9.2 also says:[line 5969--line 5971]

Once an endpoint as reached the SHUTDOWN-RECEIVED state it
MUST NOT
send a SHUTDOWN in response to a ULP request, and
should discard
subsequent SHUTDOWN
chunks.

If a endpoint ,for example endpoint
A,in  SHUTDOWN-SENT state, and respond
to subsequent DATA chunks
with a SHUTDOWN chunk just as section 9.2 [line
5979--line 5981]
says,but the peer,endpoint B handles SHUTDOWN in the way
'discard
subsequent SHUTDOWN chunks' ,so unnecessary retransmission may
occur.

Endpoint
A
Endpoint
B
(Established)
(Established)

<----------------    DATA(TSN
1)
SHUTDOWN       ---------------->

(Cumulative TSN =
1)

<----------------    DATA(TSN
2)
SHUTDOWN
---------------->    ignore the SHUTDOWN
(Cumulative
TSN =
2)
|

|

| T3-rtx timer
expired

|

<----------------    DATA(TSN
2)
SHUTDOWN       ----------------->

with
SACK

<-----------------
SHUTDOWN-ACK

:
In my opinion ,it probably better change the handle SHUTDOWN way from

'discard subsequent SHUTDOWN chunks' to 'discard subsequent SHUTDOWN

chunks if that the Cumulative TSN Ack int the chunk is less than or

equal to the Cumulative TSN Ack Point'.

>Vlad,
>
>Section 6.2 say that a SHUTDOWN MAY be used
to acknowledge.  Section
>9.2 says when a SHUTDOWN MUST be sent,
but a SACK can still be used to
>acknowledge data.  So, I don't
see the where there is a
contradiction.
>--brian
>Vlad Yasevich
wrote:
(Tue, 05
>Dec 2006 15:15:01)
>> Hi
I recent found the following text inconsistency in 2960bis-02.

>> Section 6.2 says:
Acknowledegments MUST be sent in SACK chunks unless shutdown
was
>>    requested by the ULP, in which case an
endpoint MAY send an
>>    acknowledgement in the
SHUTDOWN chunk.  A SACK chunk can
acknowledge
>>    the reception of multiple DATA
chunks.  See Section 3.3.4 for SACK
chunk format.  In particular, the SCTP endpoint MUST fill in
the
>>    Cumulative TSN Ack field to indicate the
latest sequential TSN (of a
>>    valid DATA chunk)
it has received.  Any received DATA chunks with
TSN
>>    greater than the value in the Cumulative
TSN Ack field are reported
>>    in the Gap Ack
Block fields.  The SCTP endpoint MUST report as
many
>>    Gap Ack Blocks as can fit in a single
SACK chunk limited by the
>>    current path
MTU.
>>    Note: The SHUTDOWN chunk
does not contain Gap Ack Block fields.
Therefore, the endpoint should use a SACK instead of the
SHUTDOWN
>>    chunk to acknowledge DATA chunks
received out of order .
>> Note the use of "MAY" in
the first sentence above.   Also the Note doesn't
really mandate anything.  May be the "should" needs to be a
"SHOULD"?
>> Then looking at section
9.2.
>>    While in SHUTDOWN-SENT state, the
SHUTDOWN sender MUST immediately
>>    respond to
each received packet containing one or more DATA
chunks
>>    with a SHUTDOWN chunk and restart the
T2-shutdown timer.  If a
>>    SHUTDOWN chunk
by itself cannot acknowledge all of the received
DATA
>>    chunks (i.e., there are TSNs that can be
acknowledged that are larger
>>    than the
cumulative TSN, and thus gaps exist in the TSN sequence),
or
>>    if duplicate TSNs have been received, then
a SACK chunk MUST also be
>>    sent.

>> While Section 6.2 says the SHUTDOWN "MAY" be used, section 9.2
says that
>> SHUTDOWN "MUST" be used.  Section 9.2 also
mandates a "MUST" for a SACK, while
>> the Note in Section 6.2
only says "should".
>>
>> It would probably better for
Section 6.2 to point to Section 9.2 for the
>correct
behavior.
>> Something like:

>>    Acknowledegments MUST be sent in SACK chunks
unless shutdown was
>>    requested by the ULP, in
which case Section 9.2 describes the proper
response.
>> And remove the Note.

>> -vlad
>--
>Brian F. G.
Bidulock
>[email-masked]
>http://www.openss7.org/

-----------------------------------------------------------------------

使用世界上最大的电子邮件系统― MSN Hotmail
Get 2 months FREE*.

---

From: Vlad Yasevich <[email-masked]>
Date: Wed, 06 Dec 2006 15:13:59 -0500

li suozhu wrote:
>    Once an endpoint as reached the SHUTDOWN-RECEIVED state it MUST NOT
>    send a SHUTDOWN in response to a ULP request, and should discard   
>    subsequent SHUTDOWN chunks. 
>   
> If a endpoint ,for example endpoint A,in  SHUTDOWN-SENT state, and respond
> to subsequent DATA chunks with a SHUTDOWN chunk just as section 9.2 [line
> 5979--line 5981] says,but the peer,endpoint B handles SHUTDOWN in the way
> 'discard subsequent SHUTDOWN chunks' ,so unnecessary retransmission may occur.
> 
[... snip diagram ...]
> equal to the Cumulative TSN Ack Point'.

I've been trying to understand the requirement of sending SHUTDOWN before
the SACK in the SUTDOWN-SENT state, and so far I can't really come up with
a good reason to do it.

If there are gaps or duplicate TSNs to report, sending SHUTDOWN first will
mostly result in a noop, and sending a SACK would actually be more informative.
If there are no gaps, SHUTDOWN is a bit shorter and makes a bit more sense,
but the above clarification is needed.

So, I am trying to understand why SHUTDOWN+SACK is more natural then SACK+SHUTDOWN?

Thanks
-vlad

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Wed, 6 Dec 2006 16:52:10 -0700

li,

I currently only discard SHUTDOWN (from the point of
view of state machine changes), only after processing
the cumulative ack point per normal.

I believe that this is the intent (as the SHUTDOWN may
be used to ack data while in the SHUTDOWN-SENT state,
it can be assumed that the peer will actually process
the acknowledgements), even if the text is unclear in
places on this point.

I agree with your proposed text change as it makes the
passage consistent with the intent obvious from other
passages in the specification.

--brian

li suozhu wrote:                                 (Wed, 06 Dec 2006 11:14:33)

-- 
Brian F. G. Bidulock
[email-masked]
http://www.openss7.org/

---

From: Randall Stewart <[email-masked]>
Date: Mon, 11 Dec 2006 10:53:34 -0500

> So, I am trying to understand why SHUTDOWN+SACK is more natural then SACK+SHUTDOWN?

An implementation may process the SHUTDOWN cum-tsn as a
SACK with no gap-acks. This means that if you get a
SHUTDOWN+SACK .. no problem.. the SD would reneg
any gaps.. and the SACK would re-mark them.

However.. a SACKw/gaps+SD would mean the implementation
would consider the last thing was a revoke of all
gap acks.. not necessarily what you want ... but it
would be what you would be saying..

R

-- 
Randall Stewart
803-345-0369 <or> 815-342-5222(cell)