-
Notifications
You must be signed in to change notification settings - Fork 433
Description
Actual situation:
The behaviour of flood advertising is defined by the admin of every single repeater to a fixed value.
Advantage:
Predictable behaviour.
Admins and users are happy to see the whole mesh and the influence of the own nodes to the mesh. This is a strong motivation to extend the mesh and to spend money and time into the mesh.
Disadvantage:
Flood advertisings are repeated by every single repeater of the mesh, causing a high load to the growing mesh. Many admins do not understand the properties of flood advertisings.
What should flood advertises do:
Announcing the availability of a repeater (or a companion) to the mesh. A flood advertising is not needed for the mesh itself; it is just for the motivation of the admins (and users) to visualize the size of the mesh.
Proposed new concept:
Make the distribution of flood advertisings dynamic, related to the transmitting air time of every single repeater. If a repeater has a high transmitting load, flood advertisings shall be limited or blocked. If the transmitting load is low, the flood advertisements shall be repeated. Advantageous the behaviour should be graded between “off” and “on”.
Proposing an “Air time” state machine:
Introducing an “Air time” state machine with hysteresis.
Possible air time states: quiet, lazy, busy, heavy
Status after reboot: heavy
- Shift states upwards: quiet --> “air time >3%” --> lazy --> “air time >5,5%” --> busy --> “air time >8%” --> heavy
- Shift states downwards: heavy --> “air time <7%” --> busy --> “air time <5%” --> lasy --> “air time <2,5%” --> quiet
Repeating of flood advertising:
- quiet: repeat all flood advertisings
- lazy : repeat flood advertisings <= 7 hops
- busy : repeat flood advertisings <= 2 hops
- heavy: repeat no flood advertisings
Transmitting own flood advertisings
Advantage: shift the flood advertisings to timeslots with low air time. Admin sets a “send own flood timer delay” to 12 hours or more. Default: 24 hours.
Introduce a “flood delay timer” and a “Send my own flood” flag.
After a reboot: “flood delay timer” is set to “send own flood timer delay” minus 10 minutes and “Send my own flood” flag is set to FALSE. As a result, the first own flood advertising will be transmitted earliest 10 minutes after reboot.
The timer “flood delay timer” is incremented every minute. Limited to 4 * “send own flood timer delay”. This will prevent a timer overflow.
Pending on state of “air time state machine”:
- quiet: if “flood delay timer” >= “send own flood timer delay”; set flag “Send my own flood” to TRUE
- lazy: if “flood delay timer” >= 2 * “send own flood timer delay”; set flag “Send my own flood” to TRUE
- busy: if “flood delay timer” >= 4 * “send own flood timer delay”; Set flag “Send my own flood” to TRUE
- heavy: do nothing
If Flag “Send my own flood” is set, send my own flood advertising, set the flag “Send my own flood” to FALSE and set “flood delay timer” to zero.
Expectation
This will automatically shift flood advertisings to timeslots with lower load. The mesh will not be overloaded with flood advertisings at busy hours. The admins and users are still able to see the size of the net in their local appliance by receiving flooded adverts.