Re: New Address Family: Inter Process Networking (IPN)



On Thu, Dec 06, 2007 at 12:39:22AM +0100, Andi Kleen wrote:
renzo@xxxxxxxxxxx (Renzo Davoli) writes:

Berkeley socket have been designed for client server or point to point
communication. All existing Address Families implement this idea.
Netlink is multicast/broadcast by default for once. And BC/MC certainly
works for IPv[46] and a couple of other protocols too.

IPN is an Inter Process Communication paradigm where all the processes
appear as they were connected by a networking bus.

Sounds like netlink. See also RFC 3549

RFC 3549 says:
"This document describes Linux Netlink, which is used in Linux both as
an intra-kernel messaging system as well as between kernel and user
space."

We know AF_NETLINK, our user-space stack lwipv6 supports it.

AF_IPN is different.
AF_IPN is the broadcast and peer-to-peer extension of AF_UNIX.
It supports communication among *user* processes.

Example:

Qemu, User-Mode Linux, Kvm, our umview machines can use IPN as an
Ethernet Hub and communicate among themselves with the hosting computer
and the world by a tap like interface.

You can also grab an interface (say eth1) and use eth0 for your hosting
computer and eth1 for the IPN network of virtual machines.

If you load the kvde_switch submodule IPN can be a virtual Ethernet switch.

This example is already working using the svn versions of ipn and
vdeplug.

Another Example:

You have a continuous stream of data packets generated by a process,
and you want to send this data to many processes.
Maybe the set of processes is not known in advance, you want to send the
data to any interested process. Some kind of publish&subscribe
communication service (among unix processes not on TCP-IP).
Without IPN you need a server. With IPN the sender creates the socket
connects to it and feed it with data packets. All the interested
receivers connects to it and start reading. That's all.

I hope that this message can give a better undertanding of what IPN is.

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



Relevant Pages

  • Re: New Address Family: Inter Process Networking (IPN)
    ... Both are frequently used for communication among "*user* processes". ... You can connect Qemu, UML, and KVM to a standard linus "tap" interface, and then use the standard Linux bridging code to connect the "tap" interface to your existing network interfaces. ... You have a continuous stream of data packets generated by a process, and you want to send this data to many processes. ... Your interconnecting programs then use either unicast or multicast sockets to bind, then report to the registration server what service you are offering and what port it's on. ...
    (Linux-Kernel)
  • Re: [PATCH 0/1] IPN: Inter Process Networking
    ... WHAT IS IPN? ... IPN is an Inter Process Communication paradigm where all the processes ... processes can interoperate using real networking protocols ... wouldn't it be better to just add the ability for multiple writers to send to the same pipe, and then have all of them splice into the output of that pipe? ...
    (Linux-Kernel)