Hi Michał, On Tue, 2020-06-16 at 14:27 +0200, Michał Lowas-Rzechonek wrote: > This patchset adds another D-Bus API for attaching applications, called > AttachFD. We have talked a little about this, but I am personally opposed to switching the daemon--> App message delivery system to socket based. This has the feeling of something that has been developed as the result of a stress test to see how much data can be pushed through the system as fast as possible, which should not be a common mesh use case. I also worry about the increase in system socket resorces... Currently the daemon consumes 1 socket for App <--> daemon communication (the one to the dbus daemon), and each App currently being supported uses one more (again, to dbus daemon) And all MUXing, marshaling and unmarshaling of messages is handled by DBUS... the very reason for it's existance. While creating a new socket between App and daemon would make the messages flow faster, it comes at the cost of re-inventing MUXing, marshaling, unmarshaling plus all the additional sockets. A larger code footprint, and a *much* larger resource footprint. This just feels to me like the kind of customization that is fine for a vendor to do for a specialized high-flow mesh, but not something that we want to impose on everyone who uses Mesh in the open source community. > When application uses that API, it receives one end of a datagram socket > pair, which it's supposed to recv() from in order to receive mesh > packets, instead of wating for *MessageReceived() calls over D-Bus. > > This significantly reduces system load for high traffic environment > (e.g. an application that subscribes to a large number of publications > in a big network). > > Message delivery is one way only: application is still supposed to call > *Send methods via D-Bus, although the socket pair is bidirectional, so > it would be possible to add sending as well. > > Michał Lowas-Rzechonek (1): > mesh: Implement AttachFD method > > Przemysław Fierek (1): > mesh: Add documentation for AttachFD > > doc/mesh-api.txt | 40 +++++++++++++++ > mesh/mesh.c | 12 ++++- > mesh/model.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++- > mesh/node.c | 83 ++++++++++++++++++++++++++++++- > mesh/node.h | 4 +- > 5 files changed, 259 insertions(+), 6 deletions(-) >