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

From: "Balani, Sandeep" <[email-masked]>
Date: Fri, 26 Apr 2002 14:23:04 -0700

> -----Original Message-----
> From: Qiaobing Xie [mailto:[email-masked]]
> Sent: Friday, April 26, 2002 12:54 PM
> To: [email-masked]
> Cc: Qiaobing Xie; [email-masked]; 
> [email-masked];
> [email-masked]; [email-masked]
> Subject: Re: [Tsvwg] End point and association Address conflict
> 
> 
> Hi, Ivan,
> 
> This is a very important discussion. Please see my comments below...
> 
> [email-masked] wrote:
> ....
> > > 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.
> > 
> >         No, I don't think what I'm proposing is illegal at 
> all... Take into account that you can make use of the AddIP 
> extension to delete IPb... Thus, initially, the association 
> had all the addresses of the endpoint (IPa and IPb). Later on 
> you delete your source address IPb. And then all this happens...
> 
> Applying Add/Delete-IP is ok, but anytime you do that, you must not
> break the basic rules that define the endpoint and association.
> Otherwise, you will get into troubles as you've noticed in your own
> analysis.
> 
> Let us layout what you are proposing in details.
> 
> Suppose you originally have:
> 
>           E1                  E2
>   A1 = [(IPa,IPb; Port1), (IPz; Port 65535)]
> 
> then you delete IPb from E1 (Note, this effectively changes the
> definition of E1 to E1' and A1 to A1'. They are logically differently
> defined now):
> 
>           E1'                  E2
>   A1' = [(IPa; Port1), (IPz; Port 65535)]

[ Sandeep ]  A slight change in the example above. What if initally I have 2
Associations. 

           E1                  E2
  A1 = [(IPa,IPb; Port1), (IPz; Port 65535)]
   
              E1                      E2
  A9 = [ (IPa, IPb; Port1), (IPm; Port 76577)]

And then i perform DELETEIP(IPb) from association A1,  then i have something
like 

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

    And 
                 E1                      E2
    A9 = [ (IPa, IPb; Port1), (IPm; Port 76577)]

 Which is also illegal ....

  So what should be the option in this case for DELETEIP : 

(1) Delete IPb from the Endpoint & From Association A9 also. ( Assuming that
IPb  NIC Card is Down )  ??????????
(2) Create a Totally new Endpoint [ E1' ] & Delete E1 ?????? 

Or anything else ???????????????/

> 
> Now, E2 sends an INIT to IPb/Port1, and you decide it's ok to setup
> assoc A2, which is ok. But you are _PROBINITED_ by the endpoint
> definition to have:
> 
>           E1'                  E2
>   A1' = [(IPa; Port1), (IPz; Port 65535)]
> 
>           E3                  E2
>   A2 = [(IPa,IPb; Port1), (IPz; Port 65535)]  /* bad, illegal assoc */
> 
> I don't know how you can detect and prevent this illegal 
> setup conflict
> in your implementation. But allowing this will violate the basic SCTP
> association rule I mentioned above. Another way to understand why this
> is illegal is to think about this: if this were to be allowed, what
> would happen if you then go ahead and add IPb back to A1'? You would
> magically end up with _two_ association between the same pair of
> endpoints!?! 
> 
> However, it is perfectly ok to have:
> 
>           E1'                  E2
>   A1' = [(IPa; Port1), (IPz; Port 65535)]
> 
>           E3                  E2
>   A2 = [(IPb; Port1), (IPz; Port 65535)]  /* good, legal assoc */
> 
> This discussion is very good. We should capture this and 
> caution people
> not to break SCTP association definitions when using ADD/DELETE-IP.
> 
> -Qiaobing
> 
> > 
> >         So, the problem is that the pair IPb/1-IPz/65535 is 
> not part of any association... :-/
> > 
> >         BR Iván Arias Rodríguez
> > 
> > > -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:
> > >
> 

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

---

From: Qiaobing Xie <[email-masked]>
Date: Fri, 26 Apr 2002 17:24:10 -0500

Hi, Sandeep,

It is very good point. Please see below for my answer.

>                  E1                      E2  /* call it E3 */

Yes, this is illegal. Your implementation should never allow this to
happen. 

You may have some confusion over an important definition in SCTP. It is
conceptually WRONG to say "deleting IPb from association A1". One can
only add or delete addresses to or from __an SCTP endpoint__. 

With this important clarification of concept, all above should become
very simple and clear - what you are allowed to do here is __to delete
IPb from endpoint E1 which is currently being used in associations A1
and A9__. If your implementation is doing the right thing, the result
should be 

               E1'             E2

    And
               E1'                   E2  /* call it E3 */
    A9' = [ (IPa; Port1), (IPm; Port 76577)]

If your intention is to transform the original A1 and A9 to the
following:

               E1'             E2

    And
               E1'                   E2  /* call it E3 */
    A9' = [ (IPb; Port1), (IPm; Port 76577)]

I am afraid that you have to tear down A1/A9 and set-up A1' and A9'
fresh. ADD/DELET-IP will NOT get your here without violating the basic
association rules.

-Qiaobing