Subject: Re: SCTP control socket question

From: Vlad Yasevich <[email-masked]>
Date: Thu, 27 Mar 2008 10:01:11 -0400

Denis V. Lunev wrote:
> On Thu, 2008-03-27 at 09:15 -0400, Vlad Yasevich wrote:
>> Denis V. Lunev wrote:
>>> On Thu, 2008-03-27 at 08:48 -0400, Vlad Yasevich wrote:
>>>> Denis V. Lunev wrote:
>>>>> Hello, Vlad!
>>>>>
>>>>> I have read SCTP sources and found that SCTP control socket
>>>>> (sctp_ctl_socket) remains hashed unlike similar staff in UDP/TCP etc.
>>>>>
>>>>> Am I wrong, that it should not be hashed or not?
>>>> Why do you believe that the socket is hashed?  That socket is only
>>>> allocated and referenced.  It's should not be in any hash tables
>>>> since we hold a global reference on it.
>>> sctp_ctl_sock_init
>>>   __sock_create
>>>     inet(6)_create
>>>         sk->sk_prot->hash(sk);
>>>
>>> For this purpose sk->sk_prot->unhash is explicitly called for ICMP/TCP
>>> etc cases.
>>>
>>> Regards,
>>> 	Den
>>>
>> Ahhh...  ;-)
>>
>> struct proto sctp_prot = {
>> ...
>> 	.hash        =  sctp_hash,
>> ...
>> }
>>
>> static void sctp_hash(struct sock *sk)
>> {
>>         /* STUB */
>> }
>>
>>
>> SCTP currently does't do any hashing on the sockets.  It hashes SCTP structures
>> that live under the socket.
> 
> will you mind against this?
> 

That's fine.  My one concern is that someone may erroneously interpret that SCTP
sockets are derived from inet_connection_sock, but I can live with that.

-vlad