Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DSR-style routing support #12

Merged
merged 11 commits into from
May 15, 2020
Merged

DSR-style routing support #12

merged 11 commits into from
May 15, 2020

Conversation

paidforby
Copy link
Collaborator

This introduces a completely new packet structure and packet parsing logic that allows for full routing capabilities without having to transmit routing table packets at regular intervals. Changes were discussed in depth in the following issue, sudomesh/disaster-radio#57 (comment). Most changes to the protocol have been documented on the protocol wiki page.

The basic idea is that the packet header now contains enough information for nodes to build routes during normal operation (i.e. sending messages user-to-user), such that airtime can be reserved for actual communication instead of being taken up with large control messages.

Routing table packets (control messages) are, currently, still enabled by default, but they can be disabled by setting the routing interval to zero with LL2.setInterval(0).

There are some considerations when choosing between the reactive (DSR/packet-driven) routing and the proactive (routing table driven) routing options.

  • Reactive requires that users be actively using the network for it nodes to build routes and respond to changes in the network structure.
  • Proactive is autonomous and will converge much more quickly, but may result in a node missing packets since it may be transmitting a control message.

@paidforby paidforby merged commit 3f65007 into master May 15, 2020
@paidforby paidforby deleted the DSR branch May 28, 2020 06:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant