Link window optimisations

This commit is contained in:
Mark Qvist 2018-12-31 20:33:55 +01:00
parent 4d0ca28902
commit bcfcf4eb86
4 changed files with 16 additions and 8 deletions

View file

@ -397,7 +397,7 @@ class RNodeInterface(Interface):
self.r_stat_tx = ord(command_buffer[0]) << 24 | ord(command_buffer[1]) << 16 | ord(command_buffer[2]) << 8 | ord(command_buffer[3])
elif (command == KISS.CMD_STAT_RSSI):
self.r_stat_rssi = ord(byte)-RSSI_OFFSET
self.r_stat_rssi = ord(byte)-RNodeInterface.RSSI_OFFSET
elif (command == KISS.CMD_RANDOM):
self.r_random = ord(byte)
elif (command == KISS.CMD_ERROR):

View file

@ -64,10 +64,12 @@ class Link:
link.last_inbound = time.time()
link.start_watchdog()
if link.owner.callbacks.link_established != None:
link.owner.callbacks.link_established(link)
# TODO: Why was link_established callback here? Seems weird
# to call this before RTT packet has been received
#if self.owner.callbacks.link_established != None:
# self.owner.callbacks.link_established(link)
RNS.log("Incoming link request "+str(link)+" accepted", RNS.LOG_VERBOSE)
RNS.log("Incoming link request "+str(link)+" accepted, waiting for RTT packet", RNS.LOG_VERBOSE)
return link
except Exception as e:
@ -191,6 +193,7 @@ class Link:
RNS.log("Link "+str(self)+" established with "+str(self.destination)+", RTT is "+str(self.rtt), RNS.LOG_VERBOSE)
rtt_data = umsgpack.packb(self.rtt)
rtt_packet = RNS.Packet(self, rtt_data, context=RNS.Packet.LRRTT)
RNS.log("Sending RTT packet", RNS.LOG_EXTREME);
rtt_packet.send()
self.status = Link.ACTIVE
@ -215,7 +218,12 @@ class Link:
rtt = umsgpack.unpackb(plaintext)
self.rtt = max(measured_rtt, rtt)
self.status = Link.ACTIVE
# TODO: Link established callback moved here, ok?
if self.owner.callbacks.link_established != None:
self.owner.callbacks.link_established(self)
except Exception as e:
RNS.log("Error occurred while processing RTT packet, tearing down link", RNS.LOG_ERROR)
traceback.print_exc()
self.teardown()
def getSalt(self):

View file

@ -8,8 +8,8 @@ from time import sleep
class Resource:
WINDOW_MIN = 1
WINDOW_MAX = 10
WINDOW = 5
WINDOW_MAX = 7
WINDOW = 4
MAPHASH_LEN = 4
SDU = RNS.Reticulum.MTU - RNS.Packet.HEADER_MAXSIZE
RANDOM_HASH_SIZE = 4