Subject: AW: [Tsvwg] [Sigtran] SCTP - Processing of Abort chunk, when bund led with other chunks

From: Meyknecht Bernward <[email-masked]>
Date: Fri, 17 Sep 2004 07:12:01 +0200

Hi all,

what if I decide not to process the ABORT and destroy my TCB, e.g. due 
to wrong t-bit in the ABORT chunk?
In that case I would also ignore any chunk bundled with the not acceptable 
ABORT and discard the whole packet.
Correct?
Is that a point for the next implementors guide?

Best regards,

Bernward

-----Ursprungliche Nachricht-----
Von: [email-masked] [mailto:[email-masked]]Im Auftrag
von Randall Stewart
Gesendet: Donnerstag, 16. September 2004 11:37
An: Subhashini
Cc: [email-masked]
Betreff: Re: [Tsvwg] [Sigtran] SCTP - Processing of Abort chunk, when
bundled with other chunks

Subhahini:

Comments in-line..

Subhashini wrote:
> Hi,
> 
> Please refer below the statements from three different sections of
> RFC 2960.
> 
> Section 6.10 says "An endpoint MUST process received chunks in their
> order in the packet".
> 
> Section 9.1 says "An endpoint MUST NOT respond to any received packet
> that contains an Abort chunk."
> 
> Section 3.3.7 says "Control chunks (except for INIT, INIT ACK and
> SHUTDOWN COMPLETE) MAY be bundled with an ABORT but they MUST be
> placed before the ABORT in the SCTP packet, or they will be ignored
> by the receiver."
> 
> 
> Sections 6.10 and 3.3.7 together convey that the chunks bundled
> before ABORT chunk should be processed as they are in the order.
> 
> Sections 9.1 and 3.3.7 are contradicting to each other.

No, this is not true... you DON'T have to respond to the chunk
even though you process it... you can either
do as you say.. do a whole pre-scan.. which most implementations
do NOT do..

Or.. more likely you will process things and send out responses
at the end of packet processing... so... in your example

-----
cooke-echo
-----
abort
------

1) I process the cookie-echo, prepare a cooke-ack and place
    it in my list of chunks that will be sent in my local sctp queue
    (note this DOES NOT send the chunk).
2) Process the abort, and destroy the TCB
3) Skip my output processing (i.e. bundling of the chunks
    for output) since my TCB was destroyed.

Soo... basically if you choose NOT to bundle chunks you will need
to do a pre-scan looking for an abort :-D

R

> 
> Suppose say, if Cookie Echo chunk is bundled with before Abort chunk
> in a packet, since the chunks should be processed in the order,
> Cookie Ack will be sent to the peer first and then the Abort chunk
> will be processed to abort the association. Is my understanding
> correct? Otherwise, do we need to scan whole packet for the presence
> of Abort chunk and then we need to decide to ignore the other chunks
> in the packet?
> 
> Please clarify.
> 
> thanks, Subhashini ...
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 
> _______________________________________________ tsvwg mailing list 
> [email-masked] https://www1.ietf.org/mailman/listinfo/tsvwg

_______________________________________________
tsvwg mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/tsvwg

_______________________________________________
tsvwg mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/tsvwg

---

From: Randall Stewart <[email-masked]>
Date: Fri, 17 Sep 2004 20:05:32 -0400

> to wrong t-bit in the ABORT chunk?

If the Tbit is wrong then its a chunk with a incorrect V-Tag. And
for those there is a set proceedure.. you ignore the WHOLE packet
and silently discard it...

> ABORT and discard the whole packet.

And of course you would ignore it... thats the rules..

In fact, if you think on it.. the ONLY way you will see the
T bit set is when the sender has NO TCB.. so in that case
there would NEVER be anything bundled with the ABORT..

Only in the case of the T bit clear would you find
things ahead of the ABORT (a cookie echo in the example put
forth).. and it such a case you either pre-scan (since the
TAG must be correct before you get that far) or you do
as I mentioned I do... and a lot of others I would imagine :->

In any event I think all of this is already documented and
needs no more explanation... Its just a matter of applying
the rules that are already present...

R