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: