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

Sergio Lopez sergio.lopez at nologin.es
Tue Feb 1 08:31:33 PST 2011


Well, I think this is an special situation, since those functions
aren't conventional callbacks, but kernel provided hooks to be used by
modules.

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.


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
> > 
> > 
> > 
> > 
> 
> 



More information about the Developer mailing list