mirror of
https://github.com/markqvist/Reticulum.git
synced 2025-02-22 08:51:15 +00:00
Compare commits
No commits in common. "8f6c6b76de7b8eb358854754fdc7c00e0938e574" and "7e34b61f370c15295819eaed07a228273bc60569" have entirely different histories.
8f6c6b76de
...
7e34b61f37
22
Changelog.md
22
Changelog.md
@ -1,25 +1,3 @@
|
|||||||
### 2023-09-21: RNS β 0.6.0
|
|
||||||
|
|
||||||
This release brings a few performance improvements, additions to the included utilities, and fixes a number of bugs.
|
|
||||||
|
|
||||||
**Changes**
|
|
||||||
- Added ability to run automatic probe responder on Transport Instances
|
|
||||||
- Improved `rnprobe` utility
|
|
||||||
- Improved AutoInterface peering on Android devices
|
|
||||||
- Improved Transport performance
|
|
||||||
- Improved path re-discovery when local nodes roam to other network segments
|
|
||||||
- Updated various parts of the documentation
|
|
||||||
|
|
||||||
**Bugfixes**
|
|
||||||
- Fixed missing timeout check in `rncp`
|
|
||||||
- Fixed missing link status check on `Identify()` call, which could lead to an unnecessary exception
|
|
||||||
|
|
||||||
**Release Hashes**
|
|
||||||
```
|
|
||||||
88a26b1593e82a628dab96dbe8820548aea0159235f730fa992bf1833db59246 rns-0.6.0-py3-none-any.whl
|
|
||||||
bcee416e4fb52346d01f6e0c46b1cebf84b127cc516603367fc2ae00a4149fa2 rnspure-0.6.0-py3-none-any.whl
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2023-09-19: RNS β 0.5.9
|
### 2023-09-19: RNS β 0.5.9
|
||||||
|
|
||||||
This release brings major efficiency improvements to `Channel` and `Buffer` classes, adds a range of usability improvements to the included utilities and fixes a number of bugs.
|
This release brings major efficiency improvements to `Channel` and `Buffer` classes, adds a range of usability improvements to the included utilities and fixes a number of bugs.
|
||||||
|
@ -201,7 +201,6 @@ class Reticulum:
|
|||||||
|
|
||||||
Reticulum.__transport_enabled = False
|
Reticulum.__transport_enabled = False
|
||||||
Reticulum.__use_implicit_proof = True
|
Reticulum.__use_implicit_proof = True
|
||||||
Reticulum.__allow_probes = False
|
|
||||||
|
|
||||||
Reticulum.panic_on_interface_error = False
|
Reticulum.panic_on_interface_error = False
|
||||||
|
|
||||||
@ -320,7 +319,6 @@ class Reticulum:
|
|||||||
self.is_standalone_instance = False
|
self.is_standalone_instance = False
|
||||||
self.is_connected_to_shared_instance = True
|
self.is_connected_to_shared_instance = True
|
||||||
Reticulum.__transport_enabled = False
|
Reticulum.__transport_enabled = False
|
||||||
Reticulum.__allow_probes = False
|
|
||||||
RNS.log("Connected to locally available Reticulum instance via: "+str(interface), RNS.LOG_DEBUG)
|
RNS.log("Connected to locally available Reticulum instance via: "+str(interface), RNS.LOG_DEBUG)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
RNS.log("Local shared instance appears to be running, but it could not be connected", RNS.LOG_ERROR)
|
RNS.log("Local shared instance appears to be running, but it could not be connected", RNS.LOG_ERROR)
|
||||||
@ -363,10 +361,6 @@ class Reticulum:
|
|||||||
v = self.config["reticulum"].as_bool(option)
|
v = self.config["reticulum"].as_bool(option)
|
||||||
if v == True:
|
if v == True:
|
||||||
Reticulum.__transport_enabled = True
|
Reticulum.__transport_enabled = True
|
||||||
if option == "respond_to_probes":
|
|
||||||
v = self.config["reticulum"].as_bool(option)
|
|
||||||
if v == True:
|
|
||||||
Reticulum.__allow_probes = True
|
|
||||||
if option == "panic_on_interface_error":
|
if option == "panic_on_interface_error":
|
||||||
v = self.config["reticulum"].as_bool(option)
|
v = self.config["reticulum"].as_bool(option)
|
||||||
if v == True:
|
if v == True:
|
||||||
@ -1153,10 +1147,6 @@ class Reticulum:
|
|||||||
if Reticulum.transport_enabled():
|
if Reticulum.transport_enabled():
|
||||||
stats["transport_id"] = RNS.Transport.identity.hash
|
stats["transport_id"] = RNS.Transport.identity.hash
|
||||||
stats["transport_uptime"] = time.time()-RNS.Transport.start_time
|
stats["transport_uptime"] = time.time()-RNS.Transport.start_time
|
||||||
if Reticulum.probe_destination_enabled():
|
|
||||||
stats["probe_responder"] = RNS.Transport.probe_destination.hash
|
|
||||||
else:
|
|
||||||
stats["probe_responder"] = None
|
|
||||||
|
|
||||||
return stats
|
return stats
|
||||||
|
|
||||||
@ -1295,10 +1285,6 @@ class Reticulum:
|
|||||||
"""
|
"""
|
||||||
return Reticulum.__transport_enabled
|
return Reticulum.__transport_enabled
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def probe_destination_enabled():
|
|
||||||
return Reticulum.__allow_probes
|
|
||||||
|
|
||||||
# Default configuration file:
|
# Default configuration file:
|
||||||
__default_rns_config__ = '''# This is the default Reticulum config file.
|
__default_rns_config__ = '''# This is the default Reticulum config file.
|
||||||
# You should probably edit it to include any additional,
|
# You should probably edit it to include any additional,
|
||||||
|
@ -270,15 +270,6 @@ class Transport:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
RNS.log("Could not load tunnel table from storage, the contained exception was: "+str(e), RNS.LOG_ERROR)
|
RNS.log("Could not load tunnel table from storage, the contained exception was: "+str(e), RNS.LOG_ERROR)
|
||||||
|
|
||||||
if RNS.Reticulum.probe_destination_enabled():
|
|
||||||
Transport.probe_destination = RNS.Destination(Transport.identity, RNS.Destination.IN, RNS.Destination.SINGLE, Transport.APP_NAME, "probe")
|
|
||||||
Transport.probe_destination.accepts_links(False)
|
|
||||||
Transport.probe_destination.set_proof_strategy(RNS.Destination.PROVE_ALL)
|
|
||||||
Transport.probe_destination.announce()
|
|
||||||
RNS.log("Transport Instance will respond to probe requests on "+str(Transport.probe_destination), RNS.LOG_NOTICE)
|
|
||||||
else:
|
|
||||||
Transport.probe_destination = None
|
|
||||||
|
|
||||||
RNS.log("Transport instance "+str(Transport.identity)+" started", RNS.LOG_VERBOSE)
|
RNS.log("Transport instance "+str(Transport.identity)+" started", RNS.LOG_VERBOSE)
|
||||||
Transport.start_time = time.time()
|
Transport.start_time = time.time()
|
||||||
|
|
||||||
|
@ -32,8 +32,7 @@ from RNS._version import __version__
|
|||||||
|
|
||||||
DEFAULT_PROBE_SIZE = 16
|
DEFAULT_PROBE_SIZE = 16
|
||||||
|
|
||||||
def program_setup(configdir, destination_hexhash, size=None, full_name = None, verbosity = 0):
|
def program_setup(configdir, destination_hexhash, size=DEFAULT_PROBE_SIZE, full_name = None, verbosity = 0):
|
||||||
if size == None: size = DEFAULT_PROBE_SIZE
|
|
||||||
if full_name == None:
|
if full_name == None:
|
||||||
print("The full destination name including application name aspects must be specified for the destination")
|
print("The full destination name including application name aspects must be specified for the destination")
|
||||||
exit()
|
exit()
|
||||||
@ -90,20 +89,11 @@ def program_setup(configdir, destination_hexhash, size=None, full_name = None, v
|
|||||||
*aspects
|
*aspects
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
probe = RNS.Packet(request_destination, os.urandom(size))
|
||||||
probe = RNS.Packet(request_destination, os.urandom(size))
|
|
||||||
probe.pack()
|
|
||||||
except OSError:
|
|
||||||
print("Error: Probe packet size of "+str(len(probe.raw))+" bytes exceed MTU of "+str(RNS.Reticulum.MTU)+" bytes")
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
receipt = probe.send()
|
receipt = probe.send()
|
||||||
|
|
||||||
if more_output:
|
if more_output:
|
||||||
nhd = reticulum.get_next_hop(destination_hash)
|
more = " via "+RNS.prettyhexrep(reticulum.get_next_hop(destination_hash))+" on "+str(reticulum.get_next_hop_if_name(destination_hash))
|
||||||
via_str = " via "+RNS.prettyhexrep(nhd) if nhd != None else ""
|
|
||||||
if_str = " on "+str(reticulum.get_next_hop_if_name(destination_hash)) if reticulum.get_next_hop_if_name(destination_hash) != "None" else ""
|
|
||||||
more = via_str+if_str
|
|
||||||
else:
|
else:
|
||||||
more = ""
|
more = ""
|
||||||
|
|
||||||
@ -166,11 +156,34 @@ def main():
|
|||||||
try:
|
try:
|
||||||
parser = argparse.ArgumentParser(description="Reticulum Probe Utility")
|
parser = argparse.ArgumentParser(description="Reticulum Probe Utility")
|
||||||
|
|
||||||
parser.add_argument("--config", action="store", default=None, help="path to alternative Reticulum config directory", type=str)
|
parser.add_argument("--config",
|
||||||
parser.add_argument("-s", "--size", action="store", default=None, help="size of probe packet payload in bytes", type=int)
|
action="store",
|
||||||
parser.add_argument("--version", action="version", version="rnprobe {version}".format(version=__version__))
|
default=None,
|
||||||
parser.add_argument("full_name", nargs="?", default=None, help="full destination name in dotted notation", type=str)
|
help="path to alternative Reticulum config directory",
|
||||||
parser.add_argument("destination_hash", nargs="?", default=None, help="hexadecimal hash of the destination", type=str)
|
type=str
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--version",
|
||||||
|
action="version",
|
||||||
|
version="rnprobe {version}".format(version=__version__)
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"full_name",
|
||||||
|
nargs="?",
|
||||||
|
default=None,
|
||||||
|
help="full destination name in dotted notation",
|
||||||
|
type=str
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"destination_hash",
|
||||||
|
nargs="?",
|
||||||
|
default=None,
|
||||||
|
help="hexadecimal hash of the destination",
|
||||||
|
type=str
|
||||||
|
)
|
||||||
|
|
||||||
parser.add_argument('-v', '--verbose', action='count', default=0)
|
parser.add_argument('-v', '--verbose', action='count', default=0)
|
||||||
|
|
||||||
@ -189,7 +202,6 @@ def main():
|
|||||||
program_setup(
|
program_setup(
|
||||||
configdir = configarg,
|
configdir = configarg,
|
||||||
destination_hexhash = args.destination_hash,
|
destination_hexhash = args.destination_hash,
|
||||||
size = args.size,
|
|
||||||
full_name = args.full_name,
|
full_name = args.full_name,
|
||||||
verbosity = args.verbose
|
verbosity = args.verbose
|
||||||
)
|
)
|
||||||
|
@ -87,7 +87,7 @@ __example_rns_config__ = '''# This is an example Reticulum config file.
|
|||||||
# always-on. This directive is optional and can be removed
|
# always-on. This directive is optional and can be removed
|
||||||
# for brevity.
|
# for brevity.
|
||||||
|
|
||||||
enable_transport = No
|
enable_transport = False
|
||||||
|
|
||||||
|
|
||||||
# By default, the first program to launch the Reticulum
|
# By default, the first program to launch the Reticulum
|
||||||
@ -111,7 +111,6 @@ share_instance = Yes
|
|||||||
shared_instance_port = 37428
|
shared_instance_port = 37428
|
||||||
instance_control_port = 37429
|
instance_control_port = 37429
|
||||||
|
|
||||||
|
|
||||||
# You can configure Reticulum to panic and forcibly close
|
# You can configure Reticulum to panic and forcibly close
|
||||||
# if an unrecoverable interface error occurs, such as the
|
# if an unrecoverable interface error occurs, such as the
|
||||||
# hardware device for an interface disappearing. This is
|
# hardware device for an interface disappearing. This is
|
||||||
@ -121,17 +120,6 @@ instance_control_port = 37429
|
|||||||
panic_on_interface_error = No
|
panic_on_interface_error = No
|
||||||
|
|
||||||
|
|
||||||
# When Transport is enabled, it is possible to allow the
|
|
||||||
# Transport Instance to respond to probe requests from
|
|
||||||
# the rnprobe utility. This can be a useful tool to test
|
|
||||||
# connectivity. When this option is enabled, the probe
|
|
||||||
# destination will be generated from the Identity of the
|
|
||||||
# Transport Instance, and printed to the log at startup.
|
|
||||||
# Optional, and disabled by default.
|
|
||||||
|
|
||||||
respond_to_probes = No
|
|
||||||
|
|
||||||
|
|
||||||
[logging]
|
[logging]
|
||||||
# Valid log levels are 0 through 7:
|
# Valid log levels are 0 through 7:
|
||||||
# 0: Log only critical information
|
# 0: Log only critical information
|
||||||
|
@ -176,10 +176,7 @@ def program_setup(configdir, dispall=False, verbosity=0, name_filter=None,json=F
|
|||||||
print(" Traffic : {txb}↑\n {rxb}↓".format(rxb=size_str(ifstat["rxb"]), txb=size_str(ifstat["txb"])))
|
print(" Traffic : {txb}↑\n {rxb}↓".format(rxb=size_str(ifstat["rxb"]), txb=size_str(ifstat["txb"])))
|
||||||
|
|
||||||
if "transport_id" in stats and stats["transport_id"] != None:
|
if "transport_id" in stats and stats["transport_id"] != None:
|
||||||
print("\n Transport Instance "+RNS.prettyhexrep(stats["transport_id"])+" running")
|
print("\n Transport Instance "+RNS.prettyhexrep(stats["transport_id"])+" running\n Uptime is "+RNS.prettytime(stats["transport_uptime"]))
|
||||||
if "probe_responder" in stats and stats["probe_responder"] != None:
|
|
||||||
print(" Probe responder at "+RNS.prettyhexrep(stats["probe_responder"]))
|
|
||||||
print(" Uptime is "+RNS.prettytime(stats["transport_uptime"]))
|
|
||||||
|
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -108,17 +108,6 @@ configuration file is created. The default configuration looks like this:
|
|||||||
panic_on_interface_error = No
|
panic_on_interface_error = No
|
||||||
|
|
||||||
|
|
||||||
# When Transport is enabled, it is possible to allow the
|
|
||||||
# Transport Instance to respond to probe requests from
|
|
||||||
# the rnprobe utility. This can be a useful tool to test
|
|
||||||
# connectivity. When this option is enabled, the probe
|
|
||||||
# destination will be generated from the Identity of the
|
|
||||||
# Transport Instance, and printed to the log at startup.
|
|
||||||
# Optional, and disabled by default.
|
|
||||||
|
|
||||||
respond_to_probes = No
|
|
||||||
|
|
||||||
|
|
||||||
[logging]
|
[logging]
|
||||||
# Valid log levels are 0 through 7:
|
# Valid log levels are 0 through 7:
|
||||||
# 0: Log only critical information
|
# 0: Log only critical information
|
||||||
@ -203,19 +192,6 @@ Run ``rnsd``:
|
|||||||
|
|
||||||
[2023-08-18 17:59:56] [Notice] Started rnsd version 0.5.8
|
[2023-08-18 17:59:56] [Notice] Started rnsd version 0.5.8
|
||||||
|
|
||||||
Run ``rnsd`` in service mode, ensuring all logging output is sent directly to file:
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
$ rnsd -s
|
|
||||||
|
|
||||||
Generate a verbose and detailed configuration example, with explanations of all the
|
|
||||||
various configuration options, and interface configuration examples:
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
$ rnsd --exampleconfig
|
|
||||||
|
|
||||||
**All Command-Line Options**
|
**All Command-Line Options**
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
@ -463,12 +439,7 @@ The rnprobe Utility
|
|||||||
The ``rnprobe`` utility lets you probe a destination for connectivity, similar
|
The ``rnprobe`` utility lets you probe a destination for connectivity, similar
|
||||||
to the ``ping`` program. Please note that probes will only be answered if the
|
to the ``ping`` program. Please note that probes will only be answered if the
|
||||||
specified destination is configured to send proofs for received packets. Many
|
specified destination is configured to send proofs for received packets. Many
|
||||||
destinations will not have this option enabled, so most destinations will not
|
destinations will not have this option enabled, and will not be probable.
|
||||||
be probable.
|
|
||||||
|
|
||||||
You can enable a probe-reply destination on Reticulum Transport Instances by
|
|
||||||
setting the ``respond_to_probes`` configuration directive. Reticulum will then
|
|
||||||
print the probe destination to the log on Transport Instance startup.
|
|
||||||
|
|
||||||
**Usage Examples**
|
**Usage Examples**
|
||||||
|
|
||||||
@ -476,40 +447,17 @@ Probe a destination:
|
|||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
$ rnprobe rnstransport.probe 2d03725b327348980d570f739a3a5708
|
$ rnprobe example_utilities.echo.request 2d03725b327348980d570f739a3a5708
|
||||||
|
|
||||||
Sent 16 byte probe to <2d03725b327348980d570f739a3a5708>
|
Sent 16 byte probe to <2d03725b327348980d570f739a3a5708>
|
||||||
Valid reply received from <2d03725b327348980d570f739a3a5708>
|
Valid reply received from <2d03725b327348980d570f739a3a5708>
|
||||||
Round-trip time is 38.469 milliseconds over 2 hops
|
Round-trip time is 38.469 milliseconds over 2 hops
|
||||||
|
|
||||||
Send a larger probe:
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
$ rnprobe rnstransport.probe 2d03725b327348980d570f739a3a5708 -s 256
|
|
||||||
|
|
||||||
Sent 16 byte probe to <2d03725b327348980d570f739a3a5708>
|
|
||||||
Valid reply received from <2d03725b327348980d570f739a3a5708>
|
|
||||||
Round-trip time is 38.781 milliseconds over 2 hops
|
|
||||||
|
|
||||||
If the interface that receives the probe replies supports reporting radio
|
|
||||||
parameters such as **RSSI** and **SNR**, the ``rnprobe`` utility will print
|
|
||||||
these as part of the result as well.
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
$ rnprobe rnstransport.probe e7536ee90bd4a440e130490b87a25124
|
|
||||||
|
|
||||||
Sent 16 byte probe to <e7536ee90bd4a440e130490b87a25124>
|
|
||||||
Valid reply received from <e7536ee90bd4a440e130490b87a25124>
|
|
||||||
Round-trip time is 1.809 seconds over 1 hop [RSSI -73 dBm] [SNR 12.0 dB]
|
|
||||||
|
|
||||||
**All Command-Line Options**
|
**All Command-Line Options**
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
usage: rnprobe [-h] [--config CONFIG] [--version] [-v] [-s SIZE]
|
usage: rnprobe [-h] [--config CONFIG] [--version] [-v] [full_name] [destination_hash]
|
||||||
[full_name] [destination_hash]
|
|
||||||
|
|
||||||
Reticulum Probe Utility
|
Reticulum Probe Utility
|
||||||
|
|
||||||
@ -520,7 +468,6 @@ these as part of the result as well.
|
|||||||
optional arguments:
|
optional arguments:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--config CONFIG path to alternative Reticulum config directory
|
--config CONFIG path to alternative Reticulum config directory
|
||||||
-s SIZE, --size SIZE size of probe packet payload in bytes
|
|
||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
-v, --verbose
|
-v, --verbose
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
@ -316,17 +316,6 @@ configuration file is created. The default configuration looks like this:</p>
|
|||||||
<span class="n">panic_on_interface_error</span> <span class="o">=</span> <span class="n">No</span>
|
<span class="n">panic_on_interface_error</span> <span class="o">=</span> <span class="n">No</span>
|
||||||
|
|
||||||
|
|
||||||
<span class="c1"># When Transport is enabled, it is possible to allow the</span>
|
|
||||||
<span class="c1"># Transport Instance to respond to probe requests from</span>
|
|
||||||
<span class="c1"># the rnprobe utility. This can be a useful tool to test</span>
|
|
||||||
<span class="c1"># connectivity. When this option is enabled, the probe</span>
|
|
||||||
<span class="c1"># destination will be generated from the Identity of the</span>
|
|
||||||
<span class="c1"># Transport Instance, and printed to the log at startup.</span>
|
|
||||||
<span class="c1"># Optional, and disabled by default.</span>
|
|
||||||
|
|
||||||
<span class="n">respond_to_probes</span> <span class="o">=</span> <span class="n">No</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="p">[</span><span class="n">logging</span><span class="p">]</span>
|
<span class="p">[</span><span class="n">logging</span><span class="p">]</span>
|
||||||
<span class="c1"># Valid log levels are 0 through 7:</span>
|
<span class="c1"># Valid log levels are 0 through 7:</span>
|
||||||
<span class="c1"># 0: Log only critical information</span>
|
<span class="c1"># 0: Log only critical information</span>
|
||||||
@ -399,15 +388,6 @@ the same system.</p>
|
|||||||
[2023-08-18 17:59:56] [Notice] Started rnsd version 0.5.8
|
[2023-08-18 17:59:56] [Notice] Started rnsd version 0.5.8
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>Run <code class="docutils literal notranslate"><span class="pre">rnsd</span></code> in service mode, ensuring all logging output is sent directly to file:</p>
|
|
||||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ rnsd -s
|
|
||||||
</pre></div>
|
|
||||||
</div>
|
|
||||||
<p>Generate a verbose and detailed configuration example, with explanations of all the
|
|
||||||
various configuration options, and interface configuration examples:</p>
|
|
||||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ rnsd --exampleconfig
|
|
||||||
</pre></div>
|
|
||||||
</div>
|
|
||||||
<p><strong>All Command-Line Options</strong></p>
|
<p><strong>All Command-Line Options</strong></p>
|
||||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnsd.py [-h] [--config CONFIG] [-v] [-q] [-s] [--exampleconfig] [--version]
|
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnsd.py [-h] [--config CONFIG] [-v] [-q] [-s] [--exampleconfig] [--version]
|
||||||
|
|
||||||
@ -620,41 +600,18 @@ options:
|
|||||||
<p>The <code class="docutils literal notranslate"><span class="pre">rnprobe</span></code> utility lets you probe a destination for connectivity, similar
|
<p>The <code class="docutils literal notranslate"><span class="pre">rnprobe</span></code> utility lets you probe a destination for connectivity, similar
|
||||||
to the <code class="docutils literal notranslate"><span class="pre">ping</span></code> program. Please note that probes will only be answered if the
|
to the <code class="docutils literal notranslate"><span class="pre">ping</span></code> program. Please note that probes will only be answered if the
|
||||||
specified destination is configured to send proofs for received packets. Many
|
specified destination is configured to send proofs for received packets. Many
|
||||||
destinations will not have this option enabled, so most destinations will not
|
destinations will not have this option enabled, and will not be probable.</p>
|
||||||
be probable.</p>
|
|
||||||
<p>You can enable a probe-reply destination on Reticulum Transport Instances by
|
|
||||||
setting the <code class="docutils literal notranslate"><span class="pre">respond_to_probes</span></code> configuration directive. Reticulum will then
|
|
||||||
print the probe destination to the log on Transport Instance startup.</p>
|
|
||||||
<p><strong>Usage Examples</strong></p>
|
<p><strong>Usage Examples</strong></p>
|
||||||
<p>Probe a destination:</p>
|
<p>Probe a destination:</p>
|
||||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ rnprobe rnstransport.probe 2d03725b327348980d570f739a3a5708
|
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ rnprobe example_utilities.echo.request 2d03725b327348980d570f739a3a5708
|
||||||
|
|
||||||
Sent 16 byte probe to <2d03725b327348980d570f739a3a5708>
|
Sent 16 byte probe to <2d03725b327348980d570f739a3a5708>
|
||||||
Valid reply received from <2d03725b327348980d570f739a3a5708>
|
Valid reply received from <2d03725b327348980d570f739a3a5708>
|
||||||
Round-trip time is 38.469 milliseconds over 2 hops
|
Round-trip time is 38.469 milliseconds over 2 hops
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>Send a larger probe:</p>
|
|
||||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ rnprobe rnstransport.probe 2d03725b327348980d570f739a3a5708 -s 256
|
|
||||||
|
|
||||||
Sent 16 byte probe to <2d03725b327348980d570f739a3a5708>
|
|
||||||
Valid reply received from <2d03725b327348980d570f739a3a5708>
|
|
||||||
Round-trip time is 38.781 milliseconds over 2 hops
|
|
||||||
</pre></div>
|
|
||||||
</div>
|
|
||||||
<p>If the interface that receives the probe replies supports reporting radio
|
|
||||||
parameters such as <strong>RSSI</strong> and <strong>SNR</strong>, the <code class="docutils literal notranslate"><span class="pre">rnprobe</span></code> utility will print
|
|
||||||
these as part of the result as well.</p>
|
|
||||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ rnprobe rnstransport.probe e7536ee90bd4a440e130490b87a25124
|
|
||||||
|
|
||||||
Sent 16 byte probe to <e7536ee90bd4a440e130490b87a25124>
|
|
||||||
Valid reply received from <e7536ee90bd4a440e130490b87a25124>
|
|
||||||
Round-trip time is 1.809 seconds over 1 hop [RSSI -73 dBm] [SNR 12.0 dB]
|
|
||||||
</pre></div>
|
|
||||||
</div>
|
|
||||||
<p><strong>All Command-Line Options</strong></p>
|
<p><strong>All Command-Line Options</strong></p>
|
||||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnprobe [-h] [--config CONFIG] [--version] [-v] [-s SIZE]
|
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnprobe [-h] [--config CONFIG] [--version] [-v] [full_name] [destination_hash]
|
||||||
[full_name] [destination_hash]
|
|
||||||
|
|
||||||
Reticulum Probe Utility
|
Reticulum Probe Utility
|
||||||
|
|
||||||
@ -665,7 +622,6 @@ positional arguments:
|
|||||||
optional arguments:
|
optional arguments:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--config CONFIG path to alternative Reticulum config directory
|
--config CONFIG path to alternative Reticulum config directory
|
||||||
-s SIZE, --size SIZE size of probe packet payload in bytes
|
|
||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
-v, --verbose
|
-v, --verbose
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
@ -108,17 +108,6 @@ configuration file is created. The default configuration looks like this:
|
|||||||
panic_on_interface_error = No
|
panic_on_interface_error = No
|
||||||
|
|
||||||
|
|
||||||
# When Transport is enabled, it is possible to allow the
|
|
||||||
# Transport Instance to respond to probe requests from
|
|
||||||
# the rnprobe utility. This can be a useful tool to test
|
|
||||||
# connectivity. When this option is enabled, the probe
|
|
||||||
# destination will be generated from the Identity of the
|
|
||||||
# Transport Instance, and printed to the log at startup.
|
|
||||||
# Optional, and disabled by default.
|
|
||||||
|
|
||||||
respond_to_probes = No
|
|
||||||
|
|
||||||
|
|
||||||
[logging]
|
[logging]
|
||||||
# Valid log levels are 0 through 7:
|
# Valid log levels are 0 through 7:
|
||||||
# 0: Log only critical information
|
# 0: Log only critical information
|
||||||
@ -203,19 +192,6 @@ Run ``rnsd``:
|
|||||||
|
|
||||||
[2023-08-18 17:59:56] [Notice] Started rnsd version 0.5.8
|
[2023-08-18 17:59:56] [Notice] Started rnsd version 0.5.8
|
||||||
|
|
||||||
Run ``rnsd`` in service mode, ensuring all logging output is sent directly to file:
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
$ rnsd -s
|
|
||||||
|
|
||||||
Generate a verbose and detailed configuration example, with explanations of all the
|
|
||||||
various configuration options, and interface configuration examples:
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
$ rnsd --exampleconfig
|
|
||||||
|
|
||||||
**All Command-Line Options**
|
**All Command-Line Options**
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
@ -463,12 +439,7 @@ The rnprobe Utility
|
|||||||
The ``rnprobe`` utility lets you probe a destination for connectivity, similar
|
The ``rnprobe`` utility lets you probe a destination for connectivity, similar
|
||||||
to the ``ping`` program. Please note that probes will only be answered if the
|
to the ``ping`` program. Please note that probes will only be answered if the
|
||||||
specified destination is configured to send proofs for received packets. Many
|
specified destination is configured to send proofs for received packets. Many
|
||||||
destinations will not have this option enabled, so most destinations will not
|
destinations will not have this option enabled, and will not be probable.
|
||||||
be probable.
|
|
||||||
|
|
||||||
You can enable a probe-reply destination on Reticulum Transport Instances by
|
|
||||||
setting the ``respond_to_probes`` configuration directive. Reticulum will then
|
|
||||||
print the probe destination to the log on Transport Instance startup.
|
|
||||||
|
|
||||||
**Usage Examples**
|
**Usage Examples**
|
||||||
|
|
||||||
@ -476,40 +447,17 @@ Probe a destination:
|
|||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
$ rnprobe rnstransport.probe 2d03725b327348980d570f739a3a5708
|
$ rnprobe example_utilities.echo.request 2d03725b327348980d570f739a3a5708
|
||||||
|
|
||||||
Sent 16 byte probe to <2d03725b327348980d570f739a3a5708>
|
Sent 16 byte probe to <2d03725b327348980d570f739a3a5708>
|
||||||
Valid reply received from <2d03725b327348980d570f739a3a5708>
|
Valid reply received from <2d03725b327348980d570f739a3a5708>
|
||||||
Round-trip time is 38.469 milliseconds over 2 hops
|
Round-trip time is 38.469 milliseconds over 2 hops
|
||||||
|
|
||||||
Send a larger probe:
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
$ rnprobe rnstransport.probe 2d03725b327348980d570f739a3a5708 -s 256
|
|
||||||
|
|
||||||
Sent 16 byte probe to <2d03725b327348980d570f739a3a5708>
|
|
||||||
Valid reply received from <2d03725b327348980d570f739a3a5708>
|
|
||||||
Round-trip time is 38.781 milliseconds over 2 hops
|
|
||||||
|
|
||||||
If the interface that receives the probe replies supports reporting radio
|
|
||||||
parameters such as **RSSI** and **SNR**, the ``rnprobe`` utility will print
|
|
||||||
these as part of the result as well.
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
$ rnprobe rnstransport.probe e7536ee90bd4a440e130490b87a25124
|
|
||||||
|
|
||||||
Sent 16 byte probe to <e7536ee90bd4a440e130490b87a25124>
|
|
||||||
Valid reply received from <e7536ee90bd4a440e130490b87a25124>
|
|
||||||
Round-trip time is 1.809 seconds over 1 hop [RSSI -73 dBm] [SNR 12.0 dB]
|
|
||||||
|
|
||||||
**All Command-Line Options**
|
**All Command-Line Options**
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
usage: rnprobe [-h] [--config CONFIG] [--version] [-v] [-s SIZE]
|
usage: rnprobe [-h] [--config CONFIG] [--version] [-v] [full_name] [destination_hash]
|
||||||
[full_name] [destination_hash]
|
|
||||||
|
|
||||||
Reticulum Probe Utility
|
Reticulum Probe Utility
|
||||||
|
|
||||||
@ -520,7 +468,6 @@ these as part of the result as well.
|
|||||||
optional arguments:
|
optional arguments:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--config CONFIG path to alternative Reticulum config directory
|
--config CONFIG path to alternative Reticulum config directory
|
||||||
-s SIZE, --size SIZE size of probe packet payload in bytes
|
|
||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
-v, --verbose
|
-v, --verbose
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user