Subject: SCTP Multihoming switch-over behaviour

From: Amar Nv <[email-masked]>
Date: Thu, 16 Sep 2010 16:25:55 +0530

Hi,

I have configured multi-homed SCTP on A and B.

A
B
A_IP1 -- Primary IP              B_IP1 -- Primary IP
A_IP2 -- Secondary IP          B_IP2 -- Secondary IP

HBs are exchanged between A_IP1<-->B_IP1 and A_IP2<-->B_IP2.

Congestion in the network causes A_IP1<-->B_IP1, HB to fail. Although A_IP1
up and running at A.

How will the data flow from A to B in this scenario? Will A_IP1 still be
considered as primary IP.

In Linux/Unix environment, a "*" is marked to A_IP1. In this scenario, data
is still be reaching B (hopefully through A_IP2).
The status of the primary IP hasn't got switched-over at A.
Doesn't "*" should shift to A_IP2? If it is using A_IP2 for sending traffic
to B.

1.    can it happen that A_IP1 is marked as primary, but actually data flow
through A_IP2?

2.    does "*" marking in /proc/net/sctp/assocs indicates any actual data
flowing path? or it just marks an IP configured as primary during initial
SCTP association setup?

3.    if it marks the IP, which is carrying traffic; then how will this mark
correctly in the scenario where associations are created with multiple
remote ends?

with regards,
Amar NV

---

From: Randy Stewart <[email-masked]>
Date: Mon, 20 Sep 2010 11:09:13 -0700

Amar:

Some answers in-line..  but remember implementations can
do different things so these are "general answers"...

On Sep 16, 2010, at 3:55 AM, Amar Nv wrote:

> A                                        B
> Congestion in the network causes A_IP1<-->B_IP1, HB to fail.  
> Although A_IP1 up and running at A.

Normally one HB failure will not take the destination down... of  
course that depends on
what the path-max-retransmit value is.. if its the default, 5, you  
would have to have
5 HB losses in a row with NO intervening data sent to the address and  
acknowledge before
the primary would be considered unreachable... I doubt that congestion  
would cause this assuming
the defaults.

>
> How will the data flow from A to B in this scenario? Will A_IP1  
> still be considered as primary IP.
>
> In Linux/Unix environment, a "*" is marked to A_IP1. In this  
> scenario, data is still be reaching B (hopefully through A_IP2).
> Doesn't "*" should shift to A_IP2? If it is using A_IP2 for sending  
> traffic to B.
>
> 1.    can it happen that A_IP1 is marked as primary, but actually  
> data flow through A_IP2?\

Yes, thats possible.. but it would happen that the data was first  
attempted to A
and then timed-out and was moved to the alternate path at the  
retransmission. Some implementations
will move to the alternate path when a Fast Retransmit happens as  
well.. not all though since
then you cant do multiple fast retransmits.

>
> 2.    does "*" marking in /proc/net/sctp/assocs indicates any actual  
> data flowing path? or it just marks an IP configured as primary  
> during initial SCTP association setup?

This is really a linux specific question ...

>
> 3.    if it marks the IP, which is carrying traffic; then how will  
> this mark correctly in the scenario where associations are created  
> with multiple remote ends?

Again.. a linux specific question on how the '*' mark means something..

Best wishes

R
> Amar NV

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