ignore relay node as well

This commit is contained in:
medentem 2025-01-09 08:51:55 -06:00
parent eb0ab06d26
commit ac6843562e
2 changed files with 4 additions and 4 deletions

View File

@ -77,7 +77,7 @@ bool FloodingRouter::perhapsRebroadcast(const meshtastic_MeshPacket *p)
CoverageFilter 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);
if (rnd <= forwardProb) {
@ -162,7 +162,7 @@ void FloodingRouter::mergeMyCoverage(CoverageFilter &coverage)
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
LOG_DEBUG("Coverage filter is NOT enabled.");
@ -193,7 +193,7 @@ float FloodingRouter::calculateForwardProbability(const CoverageFilter &incoming
uint8_t uncovered = 0;
for (auto nodeId : recentNeighbors) {
if (nodeId == from)
if (nodeId == from || nodeId == relayNode)
continue;
auto nodeInfo = nodeDB->getMeshNode(nodeId);

View File

@ -42,7 +42,7 @@ class FloodingRouter : public Router, protected PacketHistory
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);