From: Terje Eggestad <terje.eggestad@scali.com>
To: Chris Friesen <cfriesen@nortelnetworks.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
netdev@oss.sgi.com, linux-net@vger.kernel.org, davem@redhat.com
Subject: Re: anyone ever done multicast AF_UNIX sockets?
Date: 04 Mar 2003 00:29:24 +0100 [thread overview]
Message-ID: <1046734165.27924.263.camel@eggis1> (raw)
In-Reply-To: <3E63D73A.2000402@nortelnetworks.com>
My point is that you can't send a request real work with either shm nor
multicast. You don't know who or howmany recipients there are. You just
use it to update someone that do real work. Then they tend not to need
it until they get a request for real work, then alost always on a tcp
connection or as audp (unicast) message.
How do you design a protocol that uses multicast to send a request to do
work?
All uses I can think of right now of multicast/broadcast is:
* Discovery, like in NIS.
* Announcements like in OSPF.
* update like in NTP broadcast
DHCP is actually a nice example of very very bad things that happen if
you loose control of how many servers that are running.
On Mon, 2003-03-03 at 23:29, Chris Friesen wrote:
Terje Eggestad wrote:
> On Mon, 2003-03-03 at 18:09, Chris Friesen wrote:
> If you *had* multicast, you don't know *when* a peer proccessed it.
> What if the peer is suspended ??? you don't get an error on the send,
> and you apparently never get an answer, then what? The peer may also
> gone haywire on a while(1);
Exactly. So if the message got delivered you have no way of knowing for
sure that it was processed and you have application-level timers and
stuff. But if the message wasn't delivered to anyone and you know it
should have been, then you don't have to wait for the timer to expire to
know that they didn't get it.
Nice to know, but it help you, how?
If there is a subscriber out there that is hung? You need that timer
*anyway*. Why the special case?
All I see you're trying to do is something like this (just the
nonblocking version):
do_unix_mcast(message)
{
alarm(timeout);
rc = write(fd_unixmultocast, message, mlen);
if (rc == -1 && errno == nosubscribers) goto they_are_all_dead;
rc = select( fd_unixmultocast ++);
if (rc == -1 && errno = EINTR) goto they_are_all_dead;
alarm(0);
process_reply();
return;
they_all_dead:
handle_all_dead_peers();
return;
};
Chris
--
Chris Friesen | MailStop: 043/33/F10
Nortel Networks | work: (613) 765-0557
3500 Carling Avenue | fax: (613) 765-2986
Nepean, ON K2H 8E9 Canada | email: cfriesen@nortelnetworks.com
--
_________________________________________________________________________
Terje Eggestad mailto:terje.eggestad@scali.no
Scali Scalable Linux Systems http://www.scali.com
Olaf Helsets Vei 6 tel: +47 22 62 89 61 (OFFICE)
P.O.Box 150, Oppsal +47 975 31 574 (MOBILE)
N-0619 Oslo fax: +47 22 62 89 51
NORWAY
_________________________________________________________________________
next prev parent reply other threads:[~2003-03-03 23:29 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-27 20:09 anyone ever done multicast AF_UNIX sockets? Chris Friesen
2003-02-27 22:21 ` Greg Daley
2003-02-28 13:33 ` jamal
2003-02-28 14:39 ` Chris Friesen
2003-03-01 3:18 ` jamal
2003-03-02 6:03 ` Chris Friesen
2003-03-02 14:11 ` jamal
2003-03-03 18:02 ` Chris Friesen
2003-03-03 12:51 ` Terje Eggestad
2003-03-03 12:35 ` David S. Miller
2003-03-03 17:09 ` Chris Friesen
2003-03-03 16:55 ` David S. Miller
2003-03-03 18:07 ` Chris Friesen
2003-03-03 17:56 ` David S. Miller
2003-03-03 19:11 ` Chris Friesen
2003-03-03 18:56 ` David S. Miller
2003-03-03 19:42 ` Terje Eggestad
2003-03-03 21:32 ` Chris Friesen
2003-03-03 23:38 ` Terje Eggestad
2003-03-03 19:39 ` Terje Eggestad
2003-03-03 22:29 ` Chris Friesen
2003-03-03 23:29 ` Terje Eggestad [this message]
2003-03-04 2:38 ` jamal
[not found] <3E5E7081.6020704@nortelnetworks.com.suse.lists.linux.kernel>
[not found] ` <20030228083009.Y53276@shell.cyberus.ca.suse.lists.linux.kernel>
[not found] ` <3E5F748E.2080605@nortelnetworks.com.suse.lists.linux.kernel>
[not found] ` <20030228212309.C57212@shell.cyberus.ca.suse.lists.linux.kernel>
[not found] ` <3E619E97.8010508@nortelnetworks.com.suse.lists.linux.kernel>
[not found] ` <20030302081916.S61365@shell.cyberus.ca.suse.lists.linux.kernel>
[not found] ` <3E6398C4.2020605@nortelnetworks.com.suse.lists.linux.kernel>
2003-03-03 18:18 ` Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1046734165.27924.263.camel@eggis1 \
--to=terje.eggestad@scali.com \
--cc=cfriesen@nortelnetworks.com \
--cc=davem@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-net@vger.kernel.org \
--cc=netdev@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).