Subject: Query regarding SCTP ordering queue handling.

From: sandeep kandula <[email-masked]>
Date: Tue, 23 Nov 2010 12:41:26 +0530

We have scenario as explained below, please let me know how SCTP has to
handle this situation.

   1. 1.       There is an association established between two nodes (say
   Node A and Node B) and traffic is flowing between these nodes.

   1. 2.       Node A sent a data chunk with TSN 25 to Node B. Even though
   this is complete chunk, due to error at sending side, the B-bit was sent
   while sending before the checksum is calculated.

   1. 3.       On reception of chunk (TSN 25) at Node B, it will be keep
   this chunk in ordering queue as it is expecting the other fragments and will
   not provide it to SCTP user. Node B will acknowledge the TSN 25 with a SACK.

   1. 4.       As B-bit was set due to error at Node-A, it will not transmit
   any other fragment of the packets to Node-B.

   1. 5.       Node-B will be waiting for infinitely for other fragments of
   the packets and it will be able to deliver it user.

Is this the expected behavior of the SCTP at Node-B? If not, can anyone
please tell what shall be correct behavior of the SCTP at Node-B? How SCTP
can overcome from such situations?

*Regards,
V Sandeep Kandula.*

---

From: Michael Tüxen <[email-masked]>
Date: Tue, 23 Nov 2010 08:48:08 +0100

On Nov 23, 2010, at 8:11 AM, sandeep kandula wrote:
> We have scenario as explained below, please let me know how SCTP has to handle this situation.
> 
> 	• 1.       There is an association established between two nodes (say Node A and Node B) and traffic is flowing between these nodes.
> 	• 2.       Node A sent a data chunk with TSN 25 to Node B. Even though this is complete chunk, due to error at sending side, the B-bit was sent while sending before the checksum is calculated.
> 	• 3.       On reception of chunk (TSN 25) at Node B, it will be keep this chunk in ordering queue as it is expecting the other fragments and will not provide it to SCTP user. Node B will acknowledge the TSN 25 with a SACK.
> 	• 4.       As B-bit was set due to error at Node-A, it will not transmit any other fragment of the packets to Node-B.
> 	• 5.       Node-B will be waiting for infinitely for other fragments of the packets and it will be able to deliver it user.
> Is this the expected behavior of the SCTP at Node-B? If not, can anyone please tell what shall be correct behavior of the SCTP at Node-B? How SCTP can overcome from such situations?
Node B is behaving correctly. To overcome this situation, fix Node A.

Please note, that the situation might change if Node A sends another message.
Then Node B might be able to figure out that Node A is violating the protocol
specification and might (depending on the implementation) send an ABORT. It
might include an error cause indicating a protocol violation.

Best regards
Michael
> Regards,
> V Sandeep Kandula.

---

From: Randy Stewart <[email-masked]>
Date: Tue, 23 Nov 2010 04:28:33 -0800

Michael:
I agree with your assessment .. but I do have a query for Sandeep (I assume
this is how you interpreted his request but it is not clear)...

>> 	• 2.       Node A sent a data chunk with TSN 25 to Node B. Even though this is complete chunk, due to error at sending side, the B-bit was sent while sending before the checksum is calculated.

So you would normally have the B and E bit set, so the E bit is NOT set would be how I would guess
you mean?

> might include an error cause indicating a protocol violation.

I know that the BSD implementation would send an ABORT if say TSN 26 were sent with B bit set. Since
it would recognize the peer (A) has violated the protocol sending to chunks with B=1/E=0 set in a row.

R

>> V Sandeep Kandula.

-----
Randall Stewart
[email-masked]

---

From: sandeep kandula <[email-masked]>
Date: Wed, 24 Nov 2010 18:39:56 +0530

Hi Randall Stewart
please find answers in line.

On Tue, Nov 23, 2010 at 5:58 PM, Randy Stewart <[email-masked]> wrote:

> >>      • 1.       There is an association established between two nodes
> (say Node A and Node B) and traffic is flowing between these nodes.
> >>      • 2.       Node A sent a data chunk with TSN 25 to Node B. Even
> though this is complete chunk, due to error at sending side, the B-bit was
> sent while sending before the checksum is calculated.
>
> [SANDEEP] : This was done for testing purpose.
>

> >>      • 3.       On reception of chunk (TSN 25) at Node B, it will be
> keep this chunk in ordering queue as it is expecting the other fragments and
> will not provide it to SCTP user. Node B will acknowledge the TSN 25 with a
> SACK.
> >>      • 4.       As B-bit was set due to error at Node-A, it will not
> transmit any other fragment of the packets to Node-B.
> >>      • 5.       Node-B will be waiting for infinitely for other
> fragments of the packets and it will be able to deliver it user.

-- 

*Regards,
V Sandeep Kandula.*