Subject: Re: [Tsvwg] End point and association Address conflict

From: Randall Stewart <[email-masked]>
Date: Thu, 25 Apr 2002 17:03:55 -0500

[email-masked] wrote:
> 
>         Hi all!
> 
>         Well, now I realized that I had a somehow different view about what was a legal addition... thanks for your comments.
> 
>         Now I have another doubt... Imagine that we have an endpoint E1 with addresses IPa, IPb and port 1. We have an association A1 that only uses IPa, whose peer is IPz and port 65535. Thus the association A1 can be represented as [(IPa; Port1), (IPz; Port 65535)]. What happens now if we receive an INIT from IPz/65535 directed to IPb/1?

A question...

Why did you not include IPb in the INIT or INIT-ACK that setup A1. You
are
supposed to tell the peer of all your addresses that are bound to your
endpoint. I think this is the big flaw in your question..

You really MUST tell the peer of all your endpoint's addresses.  I don't
think this is a valid scenario if you follow the proper endpoint
procedures
and tell your peer ALL your bound addresses..

R

> 
>         As IPb is not being used in A1, we should answer with an INIT ACK as in a normal establishment of an association. However, when you receive an INIT chunk, you include all the addresses of the endpoint in the INIT ACK chunk... But we have to be careful, because in this case, when receiving the COOKIE ECHO, we have two options:
> 
>         a) It is directed to IPb. From our point of view, it comes from an unknown peer, and then we should make a new association. The problem is that we will create a new association A2 that will use IPa as well, and this would be in conflict with association A1, since the peer is the same one.
> 
>         b) It goes to IPa. Then, it will be treated as a duplicate COOKIE ECHO. The local tag and the peer's tag should not match the existing TCB, and the tie tags will be set to 0. Thus, we are not in any of the cases that Table 2 considers, and we will silently discard the datagram. The conclusion of this is that if the peer established an association and we delete one of our source addresses, if the peer actually restarts, we will be discarding the datagram all the time and it will never be able to restart. Even if we send DATA or HEARTBEAT, the peer will not send us back an ABORT because they won't be OOTB datagrams...
> 
>         As when you create a new association you always include all the address of the endpoint, there is no way there could be another association A2 [(IPb; Port 1), (IPz; Port 65535)] (unless you recognize this case when receiving the INIT and you only include IPb in the INIT ACK, which I don't think is a good idea at all), so I think that this situation should be handled as a restart in any case... i.e., if a COOKIE ECHO comes from an unknown peer, check inside the State Cookie to see if we are in case a) below... However, I don't know what should be done in the b) case... :-/
> 
>         What do the people of the list think about this?
> 
>         Thanks!
> 
>         BR Iván Arias Rodríguez

-- 
Randall R. Stewart
[email-masked] 815-342-5222 (cell phone)

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

---

From: [email-masked]
Date: Fri, 26 Apr 2002 00:58:24 +0300

Hi all!

	Thanks!

	BR Iván Arias Rodríguez

---

From: Qiaobing Xie <[email-masked]>
Date: Thu, 25 Apr 2002 19:44:34 -0500

....
>         Now I have another doubt... Imagine that we have an endpoint 
> E1 with addresses IPa, IPb and port 1. We have an association A1 
> that only uses IPa, whose peer is IPz and port 65535. Thus the 
> association A1 can be represented as [(IPa; Port1), (IPz; Port 65535)]. 
> What happens now if we receive an INIT from IPz/65535 directed to IPb/1?
> 
>         As IPb is not being used in A1, we should answer with an 
> INIT ACK as in a normal establishment of an association. However, 
> when you receive an INIT chunk, you include all the addresses of the endpoint
                                      ^^^^^^^^^^^^^
Here your "..include all the addr..." directly violated the "under no
circumstance can an SCTP transport address ever be present in more than
one SCTP endpoint" rule (see last the paragraph, page 23 of the SCTP
book).

        E1               E2
A1 = [(IPa; Port1), (IPz; Port 65535)]

        E3                 E2
A2 = [(IPa, IPb; Port1), (IPz; Port 65535)]

And you have IPa/Port1 present in both E1 and E3 (they are TWO different
endpoints by definition!). This is prohibited by the SCTP association
definition.

-Qiaobing

> in the INIT ACK chunk... But we have to be careful, because in
> this case, when receiving the COOKIE ECHO, we have two options: