Broadband-Hamnet™ Forum :: Developer's Forum
Welcome Guest   [Register]  [Login]
 Subject :Beaconing of Info to other connected nodes.. 2014-12-20- 17:44:03 
VA7WPN
Member
Joined: 2013-04-29- 12:21:43
Posts: 60
Location: BC, Canada
 

So, Im working on a project, and I know the OLSR does some checking / beaconing of the local routers connected. What I am trying to do is build a script that will do much the same, only using figures and info input via a PHP form, along with some other device stats. Can anyone give me some insight, or a point in the right direction with this!!

IP Logged
 Subject :Re:Beaconing of Info to other connected nodes.. 2014-12-20- 17:58:03 
VA7WPN
Member
Joined: 2013-04-29- 12:21:43
Posts: 60
Location: BC, Canada
 
Kind of like a broadcasting script I guess.
IP Logged
 Subject :Re:Beaconing of Info to other connected nodes.. 2014-12-20- 20:13:29 
KG6JEI
Member
Joined: 2013-12-02- 19:52:05
Posts: 516
Location

Ah I do love a challenging subject.

The function of "broadcasting" across a mesh won't be doable with just a script.

Typiically in an IPv4 network broadcasting is done by sending to the broadcast address of the network  (10.255.255.255 or 255.255.255.255 for the mesh network.) These packets will not be forwarded past a mesh node as each one is a broadcast break point.  This is also true of the LAN to MESH connection as the nodes are acting as IP routers at this point so you can't just flood the packet from a device on the lan port to a broadcast IP address and have it go out over the mesh interface.

This leaves you with needing to run a program on every node that will participate that will receive your broadcast and regenerate it (OLSR has to do this itself already)

Ultimately you have the following options that I can see.

  • Create a daemon and install it on each node
    Any node that is not running the daemon will be a block point
  • Use the OLSR daemon to distribute the messages
    -- Create a custom module (olsr sends messages it doesn't understand on without modification meaning no node becomes a block point) and provide a way to submit the messages into the system.

I tend to be weary of broadcasting packets over the entire network if it can be avoided (I've had the discussion of add data to OLSR come up a few times and its a cost/reward discussion in my mind), one should analyze the data they are sending to see how much traffic it will take.  It also should be noted that messages via OLSR are not a guaranteed delivery, they are sent with the expectation they may be lost. This may mean that you need to code a resend system in place for critical items and may need to write your own daemon as noted above (or find one made for Linux already)

Once you figure out what you need you can better evaluate the options for sending messages.

Another less indepth option (if the data in question can work with this) may be to use services to advertise a location, and have a script pick up on the service database to know where to query information from to get its updates. Of course if the information can afford to be lost (similar to a broadcast on a repeater not everyone will always hear it) than an actual broadcast can be much more efficient than constant querying of a central location and can e worth the effort to build in.


This may change whenever we get IPv6 In as MultiCast routing is part of the protocol, but we are not there yet so we can't utilize that solution yet, though MultiCast may provide an option under the install software on each node method in the current version.

IP Logged
Note: Most posts submitted from iPhone
 Subject :Re:Beaconing of Info to other connected nodes.. 2014-12-20- 20:13:42 
KG6JEI
Member
Joined: 2013-12-02- 19:52:05
Posts: 516
Location

Ah I do love a challenging subject.

The function of "broadcasting" across a mesh won't be doable with just a script.

Typiically in an IPv4 network broadcasting is done by sending to the broadcast address of the network  (10.255.255.255 or 255.255.255.255 for the mesh network.) These packets will not be forwarded past a mesh node as each one is a broadcast break point.  This is also true of the LAN to MESH connection as the nodes are acting as IP routers at this point so you can't just flood the packet from a device on the lan port to a broadcast IP address and have it go out over the mesh interface.

This leaves you with needing to run a program on every node that will participate that will receive your broadcast and regenerate it (OLSR has to do this itself already)

Ultimately you have the following options that I can see.

  • Create a daemon and install it on each node
    Any node that is not running the daemon will be a block point
  • Use the OLSR daemon to distribute the messages
    -- Create a custom module (olsr sends messages it doesn't understand on without modification meaning no node becomes a block point) and provide a way to submit the messages into the system.

I tend to be weary of broadcasting packets over the entire network if it can be avoided (I've had the discussion of add data to OLSR come up a few times and its a cost/reward discussion in my mind), one should analyze the data they are sending to see how much traffic it will take.  It also should be noted that messages via OLSR are not a guaranteed delivery, they are sent with the expectation they may be lost. This may mean that you need to code a resend system in place for critical items and may need to write your own daemon as noted above (or find one made for Linux already)

Once you figure out what you need you can better evaluate the options for sending messages.

Another less indepth option (if the data in question can work with this) may be to use services to advertise a location, and have a script pick up on the service database to know where to query information from to get its updates. Of course if the information can afford to be lost (similar to a broadcast on a repeater not everyone will always hear it) than an actual broadcast can be much more efficient than constant querying of a central location and can e worth the effort to build in.


This may change whenever we get IPv6 In as MultiCast routing is part of the protocol, but we are not there yet so we can't utilize that solution yet, though MultiCast may provide an option under the install software on each node method in the current version.

IP Logged
Note: Most posts submitted from iPhone
 Subject :Re:Beaconing of Info to other connected nodes.. 2014-12-21- 08:12:00 
VA7WPN
Member
Joined: 2013-04-29- 12:21:43
Posts: 60
Location: BC, Canada
 
This was my thought as well, how ever..... It should be able to be done via a php script that utilizes the push system, and its multicast. Im reading up on it now as we speak. Basically each node will be both a server and a client where, each node will push its info to all of the other nodes as clients, and will also be looking to gather information from the other nodes to display. The are a number of websites that use just this for research and school facilities at remote locations... also lotto, and gambling facilities. lol. This will also help out with some conditional formatting within the CSS of the website too. For instance, each node will push some identifying information such as the Node name, beacon time, and heartbeat data (Service its running, CPU and Network Load) in CVS format. This can accomplish the formatting by Indicating that the node is infact connected to the Mesh, so the node will show up in the node list, The last time it beaconed can be used to Turn the node name Red, Yellow, or Green. Indicating if its connected, was connected but missed a beaconing event, or was connected but has missed consecutive beaconing events. If that makes any sense to you. This is just one method I plan to use. But finding the most effective method is my primary focus at this time. As almost all of the reasoning behind this project will rely on this feature.
IP Logged
Page # 


Powered by ccBoard


SPONSORED AD: