kernel-ark/include
Evgeniy Polyakov 7672d0b544 [NET]: Add netlink connector.
Kernel connector - new userspace <-> kernel space easy to use
communication module which implements easy to use bidirectional
message bus using netlink as it's backend.  Connector was created to
eliminate complex skb handling both in send and receive message bus
direction.

Connector driver adds possibility to connect various agents using as
one of it's backends netlink based network.  One must register
callback and identifier. When driver receives special netlink message
with appropriate identifier, appropriate callback will be called.

From the userspace point of view it's quite straightforward:

	socket();
	bind();
	send();
	recv();

But if kernelspace want to use full power of such connections, driver
writer must create special sockets, must know about struct sk_buff
handling...  Connector allows any kernelspace agents to use netlink
based networking for inter-process communication in a significantly
easier way:

int cn_add_callback(struct cb_id *id, char *name, void (*callback) (void *));
void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask);

struct cb_id
{
	__u32			idx;
	__u32			val;
};

idx and val are unique identifiers which must be registered in
connector.h for in-kernel usage.  void (*callback) (void *) - is a
callback function which will be called when message with above idx.val
will be received by connector core.

Using connector completely hides low-level transport layer from it's
users.

Connector uses new netlink ability to have many groups in one socket.

[ Incorporating many cleanups and fixes by myself and
  Andrew Morton -DaveM ]

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-09-11 19:15:07 -07:00
..
acpi
asm-alpha
asm-arm Merge master.kernel.org:/home/rmk/linux-2.6-arm 2005-09-10 10:16:47 -07:00
asm-arm26
asm-cris
asm-frv
asm-generic [PATCH] i386 / uml: add dwarf sections to static link script 2005-09-10 12:00:17 -07:00
asm-h8300
asm-i386
asm-ia64 Pull sn-features into release branch 2005-09-11 14:34:23 -07:00
asm-m32r
asm-m68k
asm-m68knommu
asm-mips
asm-parisc
asm-powerpc
asm-ppc [PATCH] ppc32: support hotplug cpu on powermacs 2005-09-10 10:15:11 -07:00
asm-ppc64
asm-s390
asm-sh
asm-sh64
asm-sparc
asm-sparc64
asm-um [PATCH] uml spinlock breakage 2005-09-10 16:50:01 -07:00
asm-v850
asm-x86_64
asm-xtensa
linux [NET]: Add netlink connector. 2005-09-11 19:15:07 -07:00
math-emu
media
mtd
net
pcmcia
rdma
rxrpc
scsi
sound
video