[Ksummit-2008-discuss] proposal for discussion..

Evgeniy Polyakov johnpol at 2ka.mipt.ru
Mon Aug 25 23:41:44 PDT 2008


Hi Marcel.

On Tue, Aug 26, 2008 at 05:54:31AM +0200, Marcel Holtmann (holtmann at linux.intel.com) wrote:
> > It's not breaking, it's encapsulation.
> 
> I might have misunderstood, but he meant breaking in this case. If D- 
> Bus can't be cleanly encapsulated into netlink, then we fix the D-Bus  
> message format. And that one is not working out at all. D-Bus has a  
> clearly specified binary wire format.

No, I did not mean breaking dbus, but changing the way how it is used in
systems which support netlink. The simplest way is just to wrap it into
appropriate netlink messages. Then you can change broadcast/unicast
delivery of the dbus messages to number of clients, _this_ may require
some additional changes, like subscribing new user to the netlink group
and using netlink broadcast instead of, for example, putting them into
the list and iterating over it when sending breadcast message.
 
> Anyway, I am seriously looking into using netlink as transport instead  
> of a new address family, but there is more to it. Please keep in mind  
> that in the D-Bus world we have to satisfy all bindings. Some of these  
> bindings (Mono and Java) talk the D-Bus binary wire format directly  
> instead of using the D-Bus low-level library. And the reason for that  
> was just performance and simplicity. So natural moving an  
> implementation detail from AF_UNIX to AF_DBUS where the wire format  
> used on the socket is the same. It is simpler then having to deal with  
> netlink details.

What do you mean by 'directly'? Does it use unix socket or network
socket or pipe? Right now kernel does not support that, so neither
binding can talk to kernel itself, but only to different users via some
transport. All those bindings will be forced to be upgraded when kernel
will support this new functionality no matter which transport layer you
will decide to use. Netlink is just another socket type, so there is
effectively no difference as to use unix socket or netlink or whatever
else except additional netlink headers.

We are looking orward to see your implementation.

-- 
	Evgeniy Polyakov


More information about the Ksummit-2008-discuss mailing list