Subject: RE: [Tsvwg] SCTP Parameter relationships (in RFC2960 12.*)

From: [email-masked]
Date: Wed, 24 Oct 2001 16:28:27 +0300

Hi Douglas!

	See some comments inline...

> I'm confused about the difference between the SCTP instance 
> in 12.1 and its
> relationship with the SCTP association in 12.2 of RFC 2960.
> 
> My confusion arises due to the SCTP Port being in 12.1 
> instead of 12.2 as I
> would have  thought that an instance, having many 
> associations, would be
> independent of the SCTP Port. Similarly, each SCTP 
> association could be
> related to a different SCTP Port.

	I must confess I haven't read that section for ages... And I have
the same doubts as you about why there isn't any "Peer's SCTP Port" item in
12.2... In any case I'll try to help you with your question.

	I guess that the best way to simply describe what an SCTP Instance
is, is saying that it is a kind of server socket. It is a group of IP
addresses plus an SCTP port that is waiting for associations (i.e., waiting
for incoming INIT Chunks or upper user order to establish a new
association). So, both the addresses and port described in 12.1 are the ones
you use in your machine. They are the ones that appear in your outgoing
datagrams, and are the ones that must appear in the incoming datagrams (in
order to reach you).

	A host can have several SCTP instances as far as they don't have in
common both the SCTP port and any of the addresses... Sharing the port but
not any address, and sharing any (or all) addresses but not the port is
perfectly legal... Think about an SCTP instance like a server socket...

	And now, about 12.2... Well, I think that there is a "Peer's SCTP
Port" missing... And now that I read it completely... Well, I think you
would also need a "Local SCTP Port"... Not any of those two ports appear in
12.2, so I'm starting to be suspicious about if there is any reason for
that...

	I'm also confused, so it would be nice that somebody else could say
something else...

> I'm further confused by the description of the Address List 
> in 12.1, as
> being passed to one's peer(s) in INIT and INIT ACK chunks. I 
> would have
> thought that it was the Local Transport Address List that fitted this
> description, and that the latter was a subset of the former.

	You can have several SCTP instances in the same host with different
addresses/ports, as I said above... But once you have an SCTP instance, all
the associations established by that instance, will make use of the "Address
List"...

	Instead of having the local addresses and port, you could have a
pointer to the SCTP instance that created the association...

> Unfortunately, SCTP instance does not appear to be defined, 
> at least not in
> 1.4 Key Kerms. But that sedction does define SCTP Association as the
> transport addresses of the endpoints. It further defines the 
> "transport
> address" to include the "transport layer port number" which 
> implies that
> SCTP port should be moved from 12.1 to 12.2.

	I think that the port shouldn't be moved, but it should appear in
12.2 as well (both the local and the peer's ones)

> Could we have a definition of SCTP Instance, and the 
> relationship between
> it and SCTP Association?

	:-/

> Douglas Clowes

	I hope it helped...

	BR Iván Arias Rodríguez

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

---

From: Douglas Clowes <[email-masked]>
Date: Wed, 24 Oct 2001 23:46:56 +1000

Thanks Ivan,

My mind was stuck with a "single instance", being the protocol stack or
similar. If it is indeed a listening server socket, and there can be many
of them, it makes different sense. Since there is an instance for each
address set and port combination of interest, 12.2 doesn't need a port
because it inherits it from 12.1, and all associations related to a
particular instance have this port.

Thanks,

Douglas Clowes

---

From: Randall Stewart <[email-masked]>
Date: Wed, 24 Oct 2001 08:53:24 -0500

Ivan:

I just finished answering Douglas but I did not
mention why the peers port is NOT in 12.2 ... but the
answer is that it IS in 12.2 but hidden :>

If one looks at:
"
   Peer        : A list of SCTP transport addresses that the peer is
   Transport   : bound to.  This information is derived from the INIT or
   Address     : INIT ACK and is used to associate an inbound packet
   List        : with a given association.  Normally this information is
               : hashed or keyed for quick lookup and access of the TCB.
"

One can find the port. This is due to the definition of an SCTP
transport
address... which is the combination of an IP address AND a SCTP port!

One can argue that it would have been clearer to seperate this into
two items but the port IS covered by the defintion of an SCTP transport
address...

Oh and adding the local port is an implementation decision trading
off space versus possibly speed.. In my kernel work we DO NOT hold
multiple copys of the local port since it does not speed the lookup
process. We use a two level hash table. The first level gets one
to the SCTP endpoint... aka the inpcb if you will... the second 
gets you to the association structure... which includes a backpointer
to the SCTP endpoint. So consequently I really don't need to copy
the local port multiple times since it is always availalbe..

R

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