Added hardware MTU parameter to interfaces

This commit is contained in:
Mark Qvist 2022-05-29 15:43:50 +02:00
parent d99d31097b
commit c6df6293b2
10 changed files with 41 additions and 10 deletions

View File

@ -79,6 +79,8 @@ class AX25KISSInterface(Interface):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 564
self.pyserial = serial self.pyserial = serial
self.serial = None self.serial = None
@ -304,7 +306,7 @@ class AX25KISSInterface(Interface):
in_frame = True in_frame = True
command = KISS.CMD_UNKNOWN command = KISS.CMD_UNKNOWN
data_buffer = b"" data_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU+AX25.HEADER_SIZE): elif (in_frame and len(data_buffer) < self.HW_MTU+AX25.HEADER_SIZE):
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN): if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
# We only support one HDLC port for now, so # We only support one HDLC port for now, so
# strip off the port nibble # strip off the port nibble

View File

@ -60,6 +60,9 @@ class AutoInterface(Interface):
self.netifaces = netifaces self.netifaces = netifaces
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 1064
self.IN = True self.IN = True
self.OUT = False self.OUT = False
self.name = name self.name = name

View File

@ -306,6 +306,8 @@ class I2PInterfacePeer(Interface):
def __init__(self, parent_interface, owner, name, target_i2p_dest=None, connected_socket=None, max_reconnect_tries=None): def __init__(self, parent_interface, owner, name, target_i2p_dest=None, connected_socket=None, max_reconnect_tries=None):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 1064
self.IN = True self.IN = True
self.OUT = False self.OUT = False
@ -569,7 +571,7 @@ class I2PInterfacePeer(Interface):
in_frame = True in_frame = True
command = KISS.CMD_UNKNOWN command = KISS.CMD_UNKNOWN
data_buffer = b"" data_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU): elif (in_frame and len(data_buffer) < self.HW_MTU):
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN): if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
# We only support one HDLC port for now, so # We only support one HDLC port for now, so
# strip off the port nibble # strip off the port nibble
@ -595,7 +597,7 @@ class I2PInterfacePeer(Interface):
elif (byte == HDLC.FLAG): elif (byte == HDLC.FLAG):
in_frame = True in_frame = True
data_buffer = b"" data_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU): elif (in_frame and len(data_buffer) < self.HW_MTU):
if (byte == HDLC.ESC): if (byte == HDLC.ESC):
escape = True escape = True
else: else:
@ -660,6 +662,9 @@ class I2PInterface(Interface):
def __init__(self, owner, name, rns_storagepath, peers, connectable = False): def __init__(self, owner, name, rns_storagepath, peers, connectable = False):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 1064
self.online = False self.online = False
self.clients = 0 self.clients = 0
self.owner = owner self.owner = owner
@ -757,6 +762,7 @@ class I2PInterface(Interface):
spawned_interface.announce_rate_grace = self.announce_rate_grace spawned_interface.announce_rate_grace = self.announce_rate_grace
spawned_interface.announce_rate_penalty = self.announce_rate_penalty spawned_interface.announce_rate_penalty = self.announce_rate_penalty
spawned_interface.mode = self.mode spawned_interface.mode = self.mode
spawned_interface.HW_MTU = self.HW_MTU
RNS.log("Spawned new I2PInterface Peer: "+str(spawned_interface), RNS.LOG_VERBOSE) RNS.log("Spawned new I2PInterface Peer: "+str(spawned_interface), RNS.LOG_VERBOSE)
RNS.Transport.interfaces.append(spawned_interface) RNS.Transport.interfaces.append(spawned_interface)
self.clients += 1 self.clients += 1

View File

@ -73,6 +73,8 @@ class KISSInterface(Interface):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 564
if beacon_data == None: if beacon_data == None:
beacon_data = "" beacon_data = ""
@ -279,7 +281,7 @@ class KISSInterface(Interface):
in_frame = True in_frame = True
command = KISS.CMD_UNKNOWN command = KISS.CMD_UNKNOWN
data_buffer = b"" data_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU): elif (in_frame and len(data_buffer) < self.HW_MTU):
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN): if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
# We only support one HDLC port for now, so # We only support one HDLC port for now, so
# strip off the port nibble # strip off the port nibble

View File

@ -49,6 +49,9 @@ class LocalClientInterface(Interface):
def __init__(self, owner, name, target_port = None, connected_socket=None): def __init__(self, owner, name, target_port = None, connected_socket=None):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 1064
self.online = False self.online = False
self.IN = True self.IN = True
@ -177,7 +180,7 @@ class LocalClientInterface(Interface):
elif (byte == HDLC.FLAG): elif (byte == HDLC.FLAG):
in_frame = True in_frame = True
data_buffer = b"" data_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU): elif (in_frame and len(data_buffer) < self.HW_MTU):
if (byte == HDLC.ESC): if (byte == HDLC.ESC):
escape = True escape = True
else: else:

View File

@ -56,6 +56,8 @@ class PipeInterface(Interface):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 1064
self.owner = owner self.owner = owner
self.name = name self.name = name
@ -137,7 +139,7 @@ class PipeInterface(Interface):
elif (byte == HDLC.FLAG): elif (byte == HDLC.FLAG):
in_frame = True in_frame = True
data_buffer = b"" data_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU): elif (in_frame and len(data_buffer) < self.HW_MTU):
if (byte == HDLC.ESC): if (byte == HDLC.ESC):
escape = True escape = True
else: else:

View File

@ -111,6 +111,8 @@ class RNodeInterface(Interface):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 508
self.pyserial = serial self.pyserial = serial
self.serial = None self.serial = None
@ -439,7 +441,7 @@ class RNodeInterface(Interface):
command = KISS.CMD_UNKNOWN command = KISS.CMD_UNKNOWN
data_buffer = b"" data_buffer = b""
command_buffer = b"" command_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU): elif (in_frame and len(data_buffer) < self.HW_MTU):
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN): if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
command = byte command = byte
elif (command == KISS.CMD_DATA): elif (command == KISS.CMD_DATA):

View File

@ -62,6 +62,8 @@ class SerialInterface(Interface):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 564
self.pyserial = serial self.pyserial = serial
self.serial = None self.serial = None
@ -152,7 +154,7 @@ class SerialInterface(Interface):
elif (byte == HDLC.FLAG): elif (byte == HDLC.FLAG):
in_frame = True in_frame = True
data_buffer = b"" data_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU): elif (in_frame and len(data_buffer) < self.HW_MTU):
if (byte == HDLC.ESC): if (byte == HDLC.ESC):
escape = True escape = True
else: else:

View File

@ -79,6 +79,8 @@ class TCPClientInterface(Interface):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 1064
self.IN = True self.IN = True
self.OUT = False self.OUT = False
self.socket = None self.socket = None
@ -293,7 +295,7 @@ class TCPClientInterface(Interface):
in_frame = True in_frame = True
command = KISS.CMD_UNKNOWN command = KISS.CMD_UNKNOWN
data_buffer = b"" data_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU): elif (in_frame and len(data_buffer) < self.HW_MTU):
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN): if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
# We only support one HDLC port for now, so # We only support one HDLC port for now, so
# strip off the port nibble # strip off the port nibble
@ -319,7 +321,7 @@ class TCPClientInterface(Interface):
elif (byte == HDLC.FLAG): elif (byte == HDLC.FLAG):
in_frame = True in_frame = True
data_buffer = b"" data_buffer = b""
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU): elif (in_frame and len(data_buffer) < self.HW_MTU):
if (byte == HDLC.ESC): if (byte == HDLC.ESC):
escape = True escape = True
else: else:
@ -405,6 +407,9 @@ class TCPServerInterface(Interface):
def __init__(self, owner, name, device=None, bindip=None, bindport=None, i2p_tunneled=False): def __init__(self, owner, name, device=None, bindip=None, bindport=None, i2p_tunneled=False):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 1064
self.online = False self.online = False
self.clients = 0 self.clients = 0
@ -460,6 +465,7 @@ class TCPServerInterface(Interface):
spawned_interface.announce_rate_grace = self.announce_rate_grace spawned_interface.announce_rate_grace = self.announce_rate_grace
spawned_interface.announce_rate_penalty = self.announce_rate_penalty spawned_interface.announce_rate_penalty = self.announce_rate_penalty
spawned_interface.mode = self.mode spawned_interface.mode = self.mode
spawned_interface.HW_MTU = self.HW_MTU
spawned_interface.online = True spawned_interface.online = True
RNS.log("Spawned new TCPClient Interface: "+str(spawned_interface), RNS.LOG_VERBOSE) RNS.log("Spawned new TCPClient Interface: "+str(spawned_interface), RNS.LOG_VERBOSE)
RNS.Transport.interfaces.append(spawned_interface) RNS.Transport.interfaces.append(spawned_interface)

View File

@ -57,6 +57,9 @@ class UDPInterface(Interface):
def __init__(self, owner, name, device=None, bindip=None, bindport=None, forwardip=None, forwardport=None): def __init__(self, owner, name, device=None, bindip=None, bindport=None, forwardip=None, forwardport=None):
self.rxb = 0 self.rxb = 0
self.txb = 0 self.txb = 0
self.HW_MTU = 1064
self.IN = True self.IN = True
self.OUT = False self.OUT = False
self.name = name self.name = name