Subject: multicast daemon design
To: None <tech-net@netbsd.org>
From: Bill Studenmund <wrstuden@netbsd.org>
List: tech-net
Date: 04/28/2005 15:09:03
--LQksG6bCIzRHxTLp
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

I'm messing around with the OpenSLP IPv6 code base, and trying to figure=20
out how to get it working with just IPv6.

I'm wondering how everyone things the code SHOULD work.

I'm interested in slpd, which is a daemon that acts as a local SLP=20
registration proxy. SLP-aware services register themselves with this=20
daemon, and it in turn announces these registrations to interested=20
clients. This way the individual clients don't have to deal with answering=
=20
requests.

For multicast, clients send a message to an appropriate multicast group=20
(based on a hash of the service name). Thus for slpd to announce the=20
existence of a service, it has to join the appropriate multicast group.

Well, I'm interested as to what the best way to do this is. What the code=
=20
does now is it opens a udp6 socket, sets REUSEPORT, binds it to an address=
=20
and port 427 (exactly which address varries and is a separate question)=20
and has it join the right multicast group.

It does that EACH time it gets a request. So if we have ten different=20
groups, we have ten different sockets.

Is it reasonable to have the same socket join ten different multicast=20
groups? I _think_ that would be the easiest thing to do, but wanted to=20
check.

Oh, will this work on other OSs too? OpenSLP works on Linux and Windows=20
too...

Take care,

Bill

--LQksG6bCIzRHxTLp
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (NetBSD)

iD8DBQFCcV7/Wz+3JHUci9cRArAIAJ4kFsY5Z4A0kClfJ0M+/St15amDFgCdHwES
AWfKfpk0nBVJCm3dEuuoYv4=
=UEE+
-----END PGP SIGNATURE-----

--LQksG6bCIzRHxTLp--