add forwardOnReceive

Normally, nodes would queue messages for forwarding to mesh
neighbors right on receive

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
Csaba Kiraly 2024-03-01 15:29:16 +01:00
parent b22a096cbc
commit 2ff4bf4825
No known key found for this signature in database
GPG Key ID: 0FE274EE8C95166E
1 changed files with 4 additions and 2 deletions

View File

@ -111,6 +111,7 @@ class Validator:
self.dumbRandomScheduler = False # dumb random scheduler self.dumbRandomScheduler = False # dumb random scheduler
self.segmentShuffleScheduler = True # send each segment that's worth sending once in shuffled order, then repeat self.segmentShuffleScheduler = True # send each segment that's worth sending once in shuffled order, then repeat
self.segmentShuffleSchedulerPersist = True # Persist scheduler state between timesteps self.segmentShuffleSchedulerPersist = True # Persist scheduler state between timesteps
self.forwardOnReceive = True # forward segments as soon as received
def logIDs(self): def logIDs(self):
"""It logs the assigned rows and columns.""" """It logs the assigned rows and columns."""
@ -196,8 +197,9 @@ class Validator:
if not self.receivedBlock.getSegment(rID, cID): if not self.receivedBlock.getSegment(rID, cID):
self.logger.trace("Recv new: %d->%d: %d,%d", src, self.ID, rID, cID, extra=self.format) self.logger.trace("Recv new: %d->%d: %d,%d", src, self.ID, rID, cID, extra=self.format)
self.receivedBlock.setSegment(rID, cID) self.receivedBlock.setSegment(rID, cID)
if self.perNodeQueue or self.perNeighborQueue: if self.forwardOnReceive:
self.receivedQueue.append((rID, cID)) if self.perNodeQueue or self.perNeighborQueue:
self.receivedQueue.append((rID, cID))
else: else:
self.logger.trace("Recv DUP: %d->%d: %d,%d", src, self.ID, rID, cID, extra=self.format) self.logger.trace("Recv DUP: %d->%d: %d,%d", src, self.ID, rID, cID, extra=self.format)
self.statsRxDupInSlot += 1 self.statsRxDupInSlot += 1