Re: [PATCH 0/10] af_unix: add multicast and filtering features toAF_UNIX

From: david
Date: Fri Mar 02 2012 - 17:20:08 EST


On Fri, 2 Mar 2012, David Miller wrote:

From: Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx>
Date: Fri, 2 Mar 2012 10:39:24 +0200

Like I said before there is many projects using AF_UNIX as IPC
transport, the documentation actually induces people to use for this
purpose, and many would benefit from being able to do multicast.

You can't have it both ways.

If it's useful for many applications, then many applications would
benefit from a userland library that solved the problem using
existing facilities such as IP multicast.

I missed the start of this discussion (but did see the lwn.net article on it)

as I understand it, they are looking for some features that are not in IP multicast (or at least not as I understand it)

1. reliable delivery

2. in-order delivery

3. sender blocking on recipients rather than dropping messages when the channel is full.

IP multicast definantly does not do #3, and as far as I understand it, is essentially UDP to multiple recipients, and UDP does not provide either #1 or #2

Yes, this could be done entirely in userspace (with something like 0MQ as I see others mentioning), and I don't understand the Android aversion to any userspace daemons, but with all of that being said, I do think that a kernel-based mechanism that supports having iptables type filters on it would be a very nice thing to have (and should be able to re-use a lot of existing code that would end up being duplicated if this is done in a userspace daemon)

now it may be that some of the requirements may result in error O_PONY or O_SANITY (the sender blocking seems like a potential problem, but that may possibly make sense as a configurable option)

David Lang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/