From 81b92ffdc1ce4d4f7f89134cb90ef8a44013af30 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Sun, 22 May 2022 11:14:33 +0200 Subject: [PATCH] Added gateway interface mode --- RNS/Interfaces/Interface.py | 6 ++++++ RNS/Reticulum.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/RNS/Interfaces/Interface.py b/RNS/Interfaces/Interface.py index 05c5e62..f6c9dd2 100755 --- a/RNS/Interfaces/Interface.py +++ b/RNS/Interfaces/Interface.py @@ -31,11 +31,17 @@ class Interface: RPT = False name = None + # Interface mode definitions MODE_FULL = 0x01 MODE_POINT_TO_POINT = 0x02 MODE_ACCESS_POINT = 0x03 MODE_ROAMING = 0x04 MODE_BOUNDARY = 0x05 + MODE_GATEWAY = 0x06 + + # Which interface modes a Transport Node + # must act as path request agent for. + PATH_REQUEST_AGENT_FOR = [MODE_ACCESS_POINT, MODE_GATEWAY] def __init__(self): self.rxb = 0 diff --git a/RNS/Reticulum.py b/RNS/Reticulum.py index c0a7ef6..adc5db1 100755 --- a/RNS/Reticulum.py +++ b/RNS/Reticulum.py @@ -354,6 +354,8 @@ class Reticulum: interface_mode = Interface.Interface.MODE_ROAMING elif c["interface_mode"] == "boundary": interface_mode = Interface.Interface.MODE_BOUNDARY + elif c["mode"] == "gateway" or c["mode"] == "gw": + interface_mode = Interface.Interface.MODE_GATEWAY elif "mode" in c: c["mode"] = str(c["mode"]).lower() @@ -367,6 +369,8 @@ class Reticulum: interface_mode = Interface.Interface.MODE_ROAMING elif c["mode"] == "boundary": interface_mode = Interface.Interface.MODE_BOUNDARY + elif c["mode"] == "gateway" or c["mode"] == "gw": + interface_mode = Interface.Interface.MODE_GATEWAY ifac_size = None if "ifac_size" in c: