mirror of
https://github.com/meshtastic/firmware.git
synced 2025-09-05 19:19:18 +00:00
ignore relay node as well
This commit is contained in:
parent
eb0ab06d26
commit
ac6843562e
@ -77,7 +77,7 @@ bool FloodingRouter::perhapsRebroadcast(const meshtastic_MeshPacket *p)
|
|||||||
CoverageFilter incomingCoverage;
|
CoverageFilter incomingCoverage;
|
||||||
loadCoverageFilterFromPacket(p, incomingCoverage);
|
loadCoverageFilterFromPacket(p, incomingCoverage);
|
||||||
|
|
||||||
float forwardProb = calculateForwardProbability(incomingCoverage, p->from);
|
float forwardProb = calculateForwardProbability(incomingCoverage, p->from, p->relay_node);
|
||||||
|
|
||||||
float rnd = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
|
float rnd = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
|
||||||
if (rnd <= forwardProb) {
|
if (rnd <= forwardProb) {
|
||||||
@ -162,7 +162,7 @@ void FloodingRouter::mergeMyCoverage(CoverageFilter &coverage)
|
|||||||
coverage.add(nodeDB->getNodeNum());
|
coverage.add(nodeDB->getNodeNum());
|
||||||
}
|
}
|
||||||
|
|
||||||
float FloodingRouter::calculateForwardProbability(const CoverageFilter &incoming, NodeNum from)
|
float FloodingRouter::calculateForwardProbability(const CoverageFilter &incoming, NodeNum from, NodeNum relayNode)
|
||||||
{
|
{
|
||||||
#ifndef USERPREFS_USE_COVERAGE_FILTER
|
#ifndef USERPREFS_USE_COVERAGE_FILTER
|
||||||
LOG_DEBUG("Coverage filter is NOT enabled.");
|
LOG_DEBUG("Coverage filter is NOT enabled.");
|
||||||
@ -193,7 +193,7 @@ float FloodingRouter::calculateForwardProbability(const CoverageFilter &incoming
|
|||||||
uint8_t uncovered = 0;
|
uint8_t uncovered = 0;
|
||||||
|
|
||||||
for (auto nodeId : recentNeighbors) {
|
for (auto nodeId : recentNeighbors) {
|
||||||
if (nodeId == from)
|
if (nodeId == from || nodeId == relayNode)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
auto nodeInfo = nodeDB->getMeshNode(nodeId);
|
auto nodeInfo = nodeDB->getMeshNode(nodeId);
|
||||||
|
@ -42,7 +42,7 @@ class FloodingRouter : public Router, protected PacketHistory
|
|||||||
|
|
||||||
void mergeMyCoverage(CoverageFilter &coverage);
|
void mergeMyCoverage(CoverageFilter &coverage);
|
||||||
|
|
||||||
float calculateForwardProbability(const CoverageFilter &incoming, NodeNum from);
|
float calculateForwardProbability(const CoverageFilter &incoming, NodeNum from, NodeNum relayNode);
|
||||||
|
|
||||||
float computeRecencyWeight(uint32_t age, uint32_t timeWindowSecs);
|
float computeRecencyWeight(uint32_t age, uint32_t timeWindowSecs);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user