sniffReceived now allows router to inspect packets not destined for this node

This commit is contained in:
geeksville
2020-05-18 17:57:58 -07:00
parent 26d3ef529e
commit 976bdad067
7 changed files with 52 additions and 28 deletions

View File

@@ -4,11 +4,13 @@ great source of papers and class notes: http://www.cs.jhu.edu/~cs647/
reliable messaging tasks (stage one for DSR):
- fix FIXME - should snoop packet not sent to us
- add a 'messagePeek' hook for all messages that pass through our node.
- DONE generalize naive flooding
- DONE add a max hops parameter, use it for broadcast as well (0 means adjacent only, 1 is one forward etc...). Store as three bits in the header.
- DONE add a 'snoopReceived' hook for all messages that pass through our node.
- DONE use the same 'recentmessages' array used for broadcast msgs to detect duplicate retransmitted messages.
- keep possible retries in the list with to be rebroadcast messages?
- for each message keep a count of # retries (max of three)
- for each message keep a count of # retries (max of three). allow this to _also_ work for broadcasts.
- Don't use broadcasts for the network pings (close open github issue)
- delay some random time for each retry (large enough to allow for acks to come in)
- once an ack comes in, remove the packet from the retry list and deliver the ack to the original sender
- after three retries, deliver a no-ack packet to the original sender (i.e. the phone app or mesh router service)
@@ -60,8 +62,6 @@ TODO:
- DONE reread the disaster radio protocol docs - seems based on Babel (which is AODVish)
- REJECTED - seems dying - possibly dash7? https://www.slideshare.net/MaartenWeyn1/dash7-alliance-protocol-technical-presentation https://github.com/MOSAIC-LoPoW/dash7-ap-open-source-stack - does the opensource stack implement multihop routing? flooding? their discussion mailing list looks dead-dead
- update duty cycle spreadsheet for our typical usecase
- DONE generalize naive flooding
- DONE add a max hops parameter, use it for broadcast as well (0 means adjacent only, 1 is one forward etc...). Store as three bits in the header.
a description of DSR: https://tools.ietf.org/html/rfc4728 good slides here: https://www.slideshare.net/ashrafmath/dynamic-source-routing
good description of batman protocol: https://www.open-mesh.org/projects/open-mesh/wiki/BATMANConcept