flood message bug and working distributed ethernet switch

Milan Pässler
Message ID
DKIM signature
Download raw message
Hi everyone,

I discovered another issue while writing my application and I wanted to
write it down here so that it doesn't get lost and everyone is aware of it.

When sending a message with the destination Recipient::Flood via the
libqaul messages API, it will cause a broadcast storm on the underlying
network, and depending on the netmod it may never arrive at the
destination's listener.

How to reproduce: Modify the qaul-linux application in clients/linux to
use a Recipient::Flood instead of Recipient::User(...) when sending the
test message. Then run the application.

Expectation: I would expect that the message arrives at the other node
and is printed.

In the current implementation, the message is rebroadcasted between the
nodes until the program ends, but the message never arrives at its
destination listener, presumably because that destination is too busy
rebroadcasting it.

In other news, I have mitigated this issue by using a Recipient::Group
with all nodes on the network as a destination in qaul-switch, and the
switch now works as expected over the netmod-mem adapter (so group
recipients seem to be working fine, yay). You can check it out using the
demo.sh script in the repository, which will set up a network with 4
nodes and 4 tap devices attached to them, move those to seperate network
namespaces and run an IP ping.

The code is available here:

- Milan / PetaByteBoy