Hello list,

I'm currently running a few wireless nodes (Ubiquiti PicoStations) with OpenWrt to form an 802.11s mesh network. I'm also currently writing a package to manage these nodes that are set up on the network as well. I'd like to get information about each node (name, IP, MAC, lat, lon, all stored in /etc/config/<mypackage>). To accomplish this, I've written a client/server package that uses multicast UDP to send requests from one node to all the other nodes that are set up on my network, and receive back the relevant information about them all. Each node has both the server side running on it and the client side available for network status requests. In this manner, any node can get information about the network on-the-fly without any connection to a centralized server. Then this information is displayed in LuCI.

Obviously using multicast UDP packets over the air presents reliability challenges.

I'm also interested in writing a completely decentralized multicast chat application and interfacing it with LuCI. So I've saved up some questions that I'd appreciate if anyone skimmed over and could provide some help on a couple things:

1) To overcome the reliability problem with multicast UDP, my program sends multiple UDP packets, and on receive, weeds out the duplicates. This has helped tremendously when it comes to reliability, but at the cost of increased network traffic. Also, although the reliability /appears/ to be there, it doesn't guarantee packet 100% reliable transmission/reception. a) Is there a way and/or has anyone implemented any form of 'reliable multicasting' within the OpenWrt package framework? Is it possible, and where would I start? b) Is it possible to set the multicast rate on my particular nodes? I see in the wiki that there is an mcast_rate option in the wireless configuration settings, but warns that "Only supported by |madwifi|, and |mac80211| (for type |adhoc| in trunk)." I have a virtual interface in "mesh" mode, so does this mean this option doesn't work for me? Lowering the multicast rate would help even more for reliability. Again, I'm just sending information about the network around, not streaming 1080p video.

2) Does there exist a chat application available for OpenWrt, or something that I've not heard of in which I can port for compilation in OpenWrt? The biggest issue is that it can't rely on any sort of centralized server/node. Which means I can't use any sort of reliable network communication protocols (TCP, basically). Is there a design that doesn't involve a centralized server that I haven't thought of? The immediate solution is to do what I did for managing the nodes via multicast, and just send multiple chat messages to all the nodes, and discard duplicates. But I admit this is hacky, ugly, and will add a lot in terms of network traffic.

Thanks for any help,
Justyn
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to