Skip to content

Commit c6df629

Browse files
committed
Added hardware MTU parameter to interfaces
1 parent d99d310 commit c6df629

10 files changed

+41
-10
lines changed

RNS/Interfaces/AX25KISSInterface.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ def __init__(self, owner, name, callsign, ssid, port, speed, databits, parity, s
7979

8080
self.rxb = 0
8181
self.txb = 0
82+
83+
self.HW_MTU = 564
8284

8385
self.pyserial = serial
8486
self.serial = None
@@ -304,7 +306,7 @@ def readLoop(self):
304306
in_frame = True
305307
command = KISS.CMD_UNKNOWN
306308
data_buffer = b""
307-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU+AX25.HEADER_SIZE):
309+
elif (in_frame and len(data_buffer) < self.HW_MTU+AX25.HEADER_SIZE):
308310
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
309311
# We only support one HDLC port for now, so
310312
# strip off the port nibble

RNS/Interfaces/AutoInterface.py

+3
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ def __init__(self, owner, name, group_id=None, discovery_scope=None, discovery_p
6060
self.netifaces = netifaces
6161
self.rxb = 0
6262
self.txb = 0
63+
64+
self.HW_MTU = 1064
65+
6366
self.IN = True
6467
self.OUT = False
6568
self.name = name

RNS/Interfaces/I2PInterface.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,8 @@ class I2PInterfacePeer(Interface):
306306
def __init__(self, parent_interface, owner, name, target_i2p_dest=None, connected_socket=None, max_reconnect_tries=None):
307307
self.rxb = 0
308308
self.txb = 0
309+
310+
self.HW_MTU = 1064
309311

310312
self.IN = True
311313
self.OUT = False
@@ -569,7 +571,7 @@ def read_loop(self):
569571
in_frame = True
570572
command = KISS.CMD_UNKNOWN
571573
data_buffer = b""
572-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU):
574+
elif (in_frame and len(data_buffer) < self.HW_MTU):
573575
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
574576
# We only support one HDLC port for now, so
575577
# strip off the port nibble
@@ -595,7 +597,7 @@ def read_loop(self):
595597
elif (byte == HDLC.FLAG):
596598
in_frame = True
597599
data_buffer = b""
598-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU):
600+
elif (in_frame and len(data_buffer) < self.HW_MTU):
599601
if (byte == HDLC.ESC):
600602
escape = True
601603
else:
@@ -660,6 +662,9 @@ class I2PInterface(Interface):
660662
def __init__(self, owner, name, rns_storagepath, peers, connectable = False):
661663
self.rxb = 0
662664
self.txb = 0
665+
666+
self.HW_MTU = 1064
667+
663668
self.online = False
664669
self.clients = 0
665670
self.owner = owner
@@ -757,6 +762,7 @@ def incoming_connection(self, handler):
757762
spawned_interface.announce_rate_grace = self.announce_rate_grace
758763
spawned_interface.announce_rate_penalty = self.announce_rate_penalty
759764
spawned_interface.mode = self.mode
765+
spawned_interface.HW_MTU = self.HW_MTU
760766
RNS.log("Spawned new I2PInterface Peer: "+str(spawned_interface), RNS.LOG_VERBOSE)
761767
RNS.Transport.interfaces.append(spawned_interface)
762768
self.clients += 1

RNS/Interfaces/KISSInterface.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ def __init__(self, owner, name, port, speed, databits, parity, stopbits, preambl
7373
self.rxb = 0
7474
self.txb = 0
7575

76+
self.HW_MTU = 564
77+
7678
if beacon_data == None:
7779
beacon_data = ""
7880

@@ -279,7 +281,7 @@ def readLoop(self):
279281
in_frame = True
280282
command = KISS.CMD_UNKNOWN
281283
data_buffer = b""
282-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU):
284+
elif (in_frame and len(data_buffer) < self.HW_MTU):
283285
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
284286
# We only support one HDLC port for now, so
285287
# strip off the port nibble

RNS/Interfaces/LocalInterface.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ class LocalClientInterface(Interface):
4949
def __init__(self, owner, name, target_port = None, connected_socket=None):
5050
self.rxb = 0
5151
self.txb = 0
52+
53+
self.HW_MTU = 1064
54+
5255
self.online = False
5356

5457
self.IN = True
@@ -177,7 +180,7 @@ def read_loop(self):
177180
elif (byte == HDLC.FLAG):
178181
in_frame = True
179182
data_buffer = b""
180-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU):
183+
elif (in_frame and len(data_buffer) < self.HW_MTU):
181184
if (byte == HDLC.ESC):
182185
escape = True
183186
else:

RNS/Interfaces/PipeInterface.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ def __init__(self, owner, name, command, respawn_delay):
5656

5757
self.rxb = 0
5858
self.txb = 0
59+
60+
self.HW_MTU = 1064
5961

6062
self.owner = owner
6163
self.name = name
@@ -137,7 +139,7 @@ def readLoop(self):
137139
elif (byte == HDLC.FLAG):
138140
in_frame = True
139141
data_buffer = b""
140-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU):
142+
elif (in_frame and len(data_buffer) < self.HW_MTU):
141143
if (byte == HDLC.ESC):
142144
escape = True
143145
else:

RNS/Interfaces/RNodeInterface.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ def __init__(self, owner, name, port, frequency = None, bandwidth = None, txpowe
111111

112112
self.rxb = 0
113113
self.txb = 0
114+
115+
self.HW_MTU = 508
114116

115117
self.pyserial = serial
116118
self.serial = None
@@ -439,7 +441,7 @@ def readLoop(self):
439441
command = KISS.CMD_UNKNOWN
440442
data_buffer = b""
441443
command_buffer = b""
442-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU):
444+
elif (in_frame and len(data_buffer) < self.HW_MTU):
443445
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
444446
command = byte
445447
elif (command == KISS.CMD_DATA):

RNS/Interfaces/SerialInterface.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ def __init__(self, owner, name, port, speed, databits, parity, stopbits):
6262

6363
self.rxb = 0
6464
self.txb = 0
65+
66+
self.HW_MTU = 564
6567

6668
self.pyserial = serial
6769
self.serial = None
@@ -152,7 +154,7 @@ def readLoop(self):
152154
elif (byte == HDLC.FLAG):
153155
in_frame = True
154156
data_buffer = b""
155-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU):
157+
elif (in_frame and len(data_buffer) < self.HW_MTU):
156158
if (byte == HDLC.ESC):
157159
escape = True
158160
else:

RNS/Interfaces/TCPInterface.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ def __init__(self, owner, name, target_ip=None, target_port=None, connected_sock
7979
self.rxb = 0
8080
self.txb = 0
8181

82+
self.HW_MTU = 1064
83+
8284
self.IN = True
8385
self.OUT = False
8486
self.socket = None
@@ -293,7 +295,7 @@ def read_loop(self):
293295
in_frame = True
294296
command = KISS.CMD_UNKNOWN
295297
data_buffer = b""
296-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU):
298+
elif (in_frame and len(data_buffer) < self.HW_MTU):
297299
if (len(data_buffer) == 0 and command == KISS.CMD_UNKNOWN):
298300
# We only support one HDLC port for now, so
299301
# strip off the port nibble
@@ -319,7 +321,7 @@ def read_loop(self):
319321
elif (byte == HDLC.FLAG):
320322
in_frame = True
321323
data_buffer = b""
322-
elif (in_frame and len(data_buffer) < RNS.Reticulum.MTU):
324+
elif (in_frame and len(data_buffer) < self.HW_MTU):
323325
if (byte == HDLC.ESC):
324326
escape = True
325327
else:
@@ -405,6 +407,9 @@ def get_broadcast_for_if(name):
405407
def __init__(self, owner, name, device=None, bindip=None, bindport=None, i2p_tunneled=False):
406408
self.rxb = 0
407409
self.txb = 0
410+
411+
self.HW_MTU = 1064
412+
408413
self.online = False
409414
self.clients = 0
410415

@@ -460,6 +465,7 @@ def incoming_connection(self, handler):
460465
spawned_interface.announce_rate_grace = self.announce_rate_grace
461466
spawned_interface.announce_rate_penalty = self.announce_rate_penalty
462467
spawned_interface.mode = self.mode
468+
spawned_interface.HW_MTU = self.HW_MTU
463469
spawned_interface.online = True
464470
RNS.log("Spawned new TCPClient Interface: "+str(spawned_interface), RNS.LOG_VERBOSE)
465471
RNS.Transport.interfaces.append(spawned_interface)

RNS/Interfaces/UDPInterface.py

+3
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ def get_broadcast_for_if(name):
5757
def __init__(self, owner, name, device=None, bindip=None, bindport=None, forwardip=None, forwardport=None):
5858
self.rxb = 0
5959
self.txb = 0
60+
61+
self.HW_MTU = 1064
62+
6063
self.IN = True
6164
self.OUT = False
6265
self.name = name

0 commit comments

Comments
 (0)