[illumos-Developer] Cluster hook functions in "inet/tcp.h"

Garrett D'Amore garrett at damore.org
Tue Feb 1 10:53:48 PST 2011


On 02/ 1/11 08:31 AM, Sergio Lopez wrote:
> Well, I think this is an special situation, since those functions
> aren't conventional callbacks, but kernel provided hooks to be used by
> modules.
>    

Then they should be protected by #ifdef _KERNEL.

> We can easily change IHAC to avoid this problem, but I still have the
> feeling that it's a bit weird to have those declarations in a public
> header. Probably, the cleanest solution would be to remove those
> external symbols and provide a function to register the hooks, but this
> is, perhaps, a mid-term solution.
>    

"Public header" means that interfaces are exposed to external code.  As 
IHAC is such code, the header is where it belongs.  The fact that it is 
in kernel code is orthogonal -- see my comment above about -D_KERNEL. :-)

     - Garrett

>
> El Tue, 18 Jan 2011 11:22:25 -0800
> Garrett D'Amore<garrett at nexenta.com>  escribió:
>
>    
>> The question is less about when things were added, and more about
>> which piece "owns" the API.  I think these are probably "owned" most
>> logically by OS/Net, and that OHAC is where the change should be made
>> rather than in illumos.
>>
>> 	- Garrett
>>
>> On Tue, 2011-01-18 at 20:16 +0100, Piotr Jasiukajtis wrote:
>>      
>>> These definitions were added into ON in putback 11042 (onnv_129):
>>>
>>> changeset:   11042:2d6e217af1b4
>>> user:        Erik Nordmark<Erik.Nordmark at Sun.COM>
>>> date:        Wed Nov 11 11:49:49 2009 -0800
>>> summary:     PSARC/2009/331 IP Datapath Refactoring
>>>
>>> + * Hook functions to enable cluster networking
>>> + * On non-clustered systems these vectors must always be NULL.
>>> + */
>>> +extern void    (*cl_inet_listen)(netstackid_t, uint8_t,
>>> sa_family_t,
>>> +                   uint8_t *, in_port_t, void *);
>>> +extern void    (*cl_inet_unlisten)(netstackid_t, uint8_t,
>>> sa_family_t,
>>> +                   uint8_t *, in_port_t, void *);
>>>
>>> The latest Colorado (OHAC) drop was tested and supported only on
>>> b111. Most likely we will not see another Cluster code drop, so
>>> there is no need to have those Sun Cluster definitions in ON
>>> consolidation.
>>>
>>> On Jan 17, 2011, at 5:46 PM, Garrett D'Amore wrote:
>>>
>>>        
>>>> On Mon, 2011-01-17 at 10:45 +0100, Sergio Lopez wrote:
>>>>          
>>>>> Hi,
>>>>>
>>>>> Currently, "inet/tcp.h" declares the following hook functions for
>>>>> cluster networking:
>>>>>
>>>>> extern void     (*cl_inet_listen)(netstackid_t, uint8_t,
>>>>> sa_family_t, uint8_t *, in_port_t, void *);
>>>>> extern void     (*cl_inet_unlisten)(netstackid_t, uint8_t,
>>>>> sa_family_t, uint8_t *, in_port_t, void *);
>>>>>
>>>>> Recent versions of OHAC/colorado define these functions by its
>>>>> own, causing the compiler to complain when building. Since AFAIK
>>>>> these hooks are only used by OHAC, perhaps it should be
>>>>> considered to remove them from the public headers (internally,
>>>>> they're already defined in "inet/tcp_cluster.h").
>>>>>
>>>>> What do you think?
>>>>>            
>>>>
>>>> I need to look at these.  If the definitions are not conflicting,
>>>> but represent callbacks done by tcp, then the definitions belong
>>>> in ON, not the OHAC sources.
>>>>
>>>> Probably its OHAC that needs to update, but I'll know more when I
>>>> have a few minutes to look deeper.
>>>>
>>>> 	-Garrett
>>>>
>>>>
>>>> _______________________________________________
>>>> Developer mailing list
>>>> Developer at lists.illumos.org
>>>> http://lists.illumos.org/m/listinfo/developer
>>>>          
>>> --
>>> Piotr Jasiukajtis | estibi | SCA OS0072
>>> http://estseg.blogspot.com
>>>
>>>
>>>
>>>
>>>        
>>
>>      
> _______________________________________________
> Developer mailing list
> Developer at lists.illumos.org
> http://lists.illumos.org/m/listinfo/developer
>    




More information about the Developer mailing list