Compare commits

...

6 Commits

Author SHA1 Message Date
Mark Qvist
5e27a81412 Updated changelog 2023-10-01 12:41:45 +02:00
Mark Qvist
0dcb009579 Updated docs and manual 2023-10-01 12:34:50 +02:00
Mark Qvist
943f76804b Updated utility documentation 2023-10-01 12:34:29 +02:00
Mark Qvist
8bbe6ae3ae Updated docs and manual 2023-10-01 12:09:49 +02:00
Mark Qvist
f0d85dd078 Merge branch 'master' of github.com:markqvist/Reticulum 2023-10-01 11:46:57 +02:00
Mark Qvist
f85dda1829 Fixed typos in examples 2023-10-01 11:46:30 +02:00
13 changed files with 77 additions and 35 deletions

View File

@ -1,3 +1,30 @@
### 2023-10-01: RNS β 0.6.1
This release brings a number of bugfixes, along with useful new mechanisms for ensuring network stability under high, non-constructive and unusual announce load situation.
**Changes**
- Added announce ingress rate control for new and unknown destinations
- Added per-interface announce frequency monitoring to the transport engine
- Added per-interface announce burst hold queues
- Added announce frequency statistics to `rnstatus`
- Added option to sort `rnstatus` output according to various metrics
- Added timeout options to `rnprobe`
- Added ability to drop all paths via a specific transport instance to `rnpath`
- Added new options and features to documentation and manual
**Bugfixes**
- Fixed announce queue not clearing all announces with exceeded retry limit at the same time
- Fixed a bug that caused local packet RSSI and SNR cache to get stuck
- Fixed output formatting in `rncp`
- Fixed `rnid` not allowing single-aspect destination names
- Fixed a number of typos in the documentation
**Release Hashes**
```
461e5cafa7560dcd3ec047141d10f0f48f151c36e1af1d65ec6c65f732cea46a rns-0.6.1-py3-none-any.whl
be6a4a6069f2d050e21582f2cf9d3bb59ed4040a0f07761a540bd752d90ea591 rnspure-0.6.1-py3-none-any.whl
```
### 2023-09-21: RNS β 0.6.0 ### 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. This release brings a few performance improvements, additions to the included utilities, and fixes a number of bugs.

View File

@ -32,7 +32,7 @@ def program_setup(configpath):
# Destinations are endpoints in Reticulum, that can be addressed # Destinations are endpoints in Reticulum, that can be addressed
# and communicated with. Destinations can also announce their # and communicated with. Destinations can also announce their
# existence, which will let the network know they are reachable # existence, which will let the network know they are reachable
# and autoomatically create paths to them, from anywhere else # and automatically create paths to them, from anywhere else
# in the network. # in the network.
destination_1 = RNS.Destination( destination_1 = RNS.Destination(
identity, identity,
@ -53,7 +53,7 @@ def program_setup(configpath):
) )
# We configure the destinations to automatically prove all # We configure the destinations to automatically prove all
# packets adressed to it. By doing this, RNS will automatically # packets addressed to it. By doing this, RNS will automatically
# generate a proof for each incoming packet and transmit it # generate a proof for each incoming packet and transmit it
# back to the sender of that packet. This will let anyone that # back to the sender of that packet. This will let anyone that
# tries to communicate with the destination know whether their # tries to communicate with the destination know whether their

View File

@ -46,7 +46,7 @@ def server(configpath):
) )
# We configure the destination to automatically prove all # We configure the destination to automatically prove all
# packets adressed to it. By doing this, RNS will automatically # packets addressed to it. By doing this, RNS will automatically
# generate a proof for each incoming packet and transmit it # generate a proof for each incoming packet and transmit it
# back to the sender of that packet. # back to the sender of that packet.
echo_destination.set_proof_strategy(RNS.Destination.PROVE_ALL) echo_destination.set_proof_strategy(RNS.Destination.PROVE_ALL)

View File

@ -25,7 +25,7 @@ def program_setup(configpath):
# Destinations are endpoints in Reticulum, that can be addressed # Destinations are endpoints in Reticulum, that can be addressed
# and communicated with. Destinations can also announce their # and communicated with. Destinations can also announce their
# existence, which will let the network know they are reachable # existence, which will let the network know they are reachable
# and autoomatically create paths to them, from anywhere else # and automatically create paths to them, from anywhere else
# in the network. # in the network.
destination = RNS.Destination( destination = RNS.Destination(
identity, identity,
@ -36,7 +36,7 @@ def program_setup(configpath):
) )
# We configure the destination to automatically prove all # We configure the destination to automatically prove all
# packets adressed to it. By doing this, RNS will automatically # packets addressed to it. By doing this, RNS will automatically
# generate a proof for each incoming packet and transmit it # generate a proof for each incoming packet and transmit it
# back to the sender of that packet. This will let anyone that # back to the sender of that packet. This will let anyone that
# tries to communicate with the destination know whether their # tries to communicate with the destination know whether their

View File

@ -30,7 +30,7 @@ class Packet:
""" """
The Packet class is used to create packet instances that can be sent The Packet class is used to create packet instances that can be sent
over a Reticulum network. Packets will automatically be encrypted if over a Reticulum network. Packets will automatically be encrypted if
they are adressed to a ``RNS.Destination.SINGLE`` destination, they are addressed to a ``RNS.Destination.SINGLE`` destination,
``RNS.Destination.GROUP`` destination or a :ref:`RNS.Link<api-link>`. ``RNS.Destination.GROUP`` destination or a :ref:`RNS.Link<api-link>`.
For ``RNS.Destination.GROUP`` destinations, Reticulum will use the For ``RNS.Destination.GROUP`` destinations, Reticulum will use the

Binary file not shown.

Binary file not shown.

View File

@ -301,19 +301,23 @@ Filter output to only show some interfaces:
.. code:: text .. code:: text
usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-j] [-v] [filter] usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-A] [-s SORT]
[-r] [-j] [-v] [filter]
Reticulum Network Stack Status Reticulum Network Stack Status
positional arguments: positional arguments:
filter only display interfaces with names including filter filter only display interfaces with names including filter
options: options:
-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
--version show program's version number and exit --version show program's version number and exit
-a, --all show all interfaces -a, --all show all interfaces
-j, --json output in JSON format -A, --announce-stats show announce stats
-s SORT, --sort SORT sort interfaces by [rate, traffic, rx, tx, announces, arx, atx, held]
-r, --reverse reverse sorting
-j, --json output in JSON format
-v, --verbose -v, --verbose
@ -438,7 +442,7 @@ Resolve path to a destination:
.. code:: text .. code:: text
usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D] usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D]
[-w seconds] [-v] [destination] [-x] [-w seconds] [-v] [destination]
Reticulum Path Discovery Utility Reticulum Path Discovery Utility
@ -453,6 +457,7 @@ Resolve path to a destination:
-r, --rates show announce rate info -r, --rates show announce rate info
-d, --drop remove the path to a destination -d, --drop remove the path to a destination
-D, --drop-announces drop all queued announces -D, --drop-announces drop all queued announces
-x, --drop-via drop all paths via specified transport instance
-w seconds timeout before giving up -w seconds timeout before giving up
-v, --verbose -v, --verbose

View File

@ -396,7 +396,7 @@ notifications about announces from relevant destinations.</p>
<span class="p">)</span> <span class="p">)</span>
<span class="c1"># We configure the destinations to automatically prove all</span> <span class="c1"># We configure the destinations to automatically prove all</span>
<span class="c1"># packets adressed to it. By doing this, RNS will automatically</span> <span class="c1"># packets addressed to it. By doing this, RNS will automatically</span>
<span class="c1"># generate a proof for each incoming packet and transmit it</span> <span class="c1"># generate a proof for each incoming packet and transmit it</span>
<span class="c1"># back to the sender of that packet. This will let anyone that</span> <span class="c1"># back to the sender of that packet. This will let anyone that</span>
<span class="c1"># tries to communicate with the destination know whether their</span> <span class="c1"># tries to communicate with the destination know whether their</span>
@ -697,7 +697,7 @@ the Packet interface.</p>
<span class="p">)</span> <span class="p">)</span>
<span class="c1"># We configure the destination to automatically prove all</span> <span class="c1"># We configure the destination to automatically prove all</span>
<span class="c1"># packets adressed to it. By doing this, RNS will automatically</span> <span class="c1"># packets addressed to it. By doing this, RNS will automatically</span>
<span class="c1"># generate a proof for each incoming packet and transmit it</span> <span class="c1"># generate a proof for each incoming packet and transmit it</span>
<span class="c1"># back to the sender of that packet.</span> <span class="c1"># back to the sender of that packet.</span>
<span class="n">echo_destination</span><span class="o">.</span><span class="n">set_proof_strategy</span><span class="p">(</span><span class="n">RNS</span><span class="o">.</span><span class="n">Destination</span><span class="o">.</span><span class="n">PROVE_ALL</span><span class="p">)</span> <span class="n">echo_destination</span><span class="o">.</span><span class="n">set_proof_strategy</span><span class="p">(</span><span class="n">RNS</span><span class="o">.</span><span class="n">Destination</span><span class="o">.</span><span class="n">PROVE_ALL</span><span class="p">)</span>

View File

@ -850,7 +850,7 @@ unless other app_data is specified in the <em>announce</em> method.</p>
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">RNS.</span></span><span class="sig-name descname"><span class="pre">Packet</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">destination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">create_receipt</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#RNS.Packet" title="Permalink to this definition">#</a></dt> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">RNS.</span></span><span class="sig-name descname"><span class="pre">Packet</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">destination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">create_receipt</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#RNS.Packet" title="Permalink to this definition">#</a></dt>
<dd><p>The Packet class is used to create packet instances that can be sent <dd><p>The Packet class is used to create packet instances that can be sent
over a Reticulum network. Packets will automatically be encrypted if over a Reticulum network. Packets will automatically be encrypted if
they are adressed to a <code class="docutils literal notranslate"><span class="pre">RNS.Destination.SINGLE</span></code> destination, they are addressed to a <code class="docutils literal notranslate"><span class="pre">RNS.Destination.SINGLE</span></code> destination,
<code class="docutils literal notranslate"><span class="pre">RNS.Destination.GROUP</span></code> destination or a <a class="reference internal" href="#api-link"><span class="std std-ref">RNS.Link</span></a>.</p> <code class="docutils literal notranslate"><span class="pre">RNS.Destination.GROUP</span></code> destination or a <a class="reference internal" href="#api-link"><span class="std std-ref">RNS.Link</span></a>.</p>
<p>For <code class="docutils literal notranslate"><span class="pre">RNS.Destination.GROUP</span></code> destinations, Reticulum will use the <p>For <code class="docutils literal notranslate"><span class="pre">RNS.Destination.GROUP</span></code> destinations, Reticulum will use the
pre-shared key configured for the destination. All packets to group pre-shared key configured for the destination. All packets to group

File diff suppressed because one or more lines are too long

View File

@ -481,19 +481,23 @@ Reticulum Transport Instance &lt;5245a8efe1788c6a1cd36144a270e13b&gt; running
</pre></div> </pre></div>
</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: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-j] [-v] [filter] <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-A] [-s SORT]
[-r] [-j] [-v] [filter]
Reticulum Network Stack Status Reticulum Network Stack Status
positional arguments: positional arguments:
filter only display interfaces with names including filter filter only display interfaces with names including filter
options: options:
-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
--version show program&#39;s version number and exit --version show program&#39;s version number and exit
-a, --all show all interfaces -a, --all show all interfaces
-j, --json output in JSON format -A, --announce-stats show announce stats
-s SORT, --sort SORT sort interfaces by [rate, traffic, rx, tx, announces, arx, atx, held]
-r, --reverse reverse sorting
-j, --json output in JSON format
-v, --verbose -v, --verbose
</pre></div> </pre></div>
</div> </div>
@ -595,7 +599,7 @@ Path found, destination &lt;c89b4da064bf66d280f0e4d8abfd9806&gt; is 4 hops away
</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: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D] <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D]
[-w seconds] [-v] [destination] [-x] [-w seconds] [-v] [destination]
Reticulum Path Discovery Utility Reticulum Path Discovery Utility
@ -610,6 +614,7 @@ options:
-r, --rates show announce rate info -r, --rates show announce rate info
-d, --drop remove the path to a destination -d, --drop remove the path to a destination
-D, --drop-announces drop all queued announces -D, --drop-announces drop all queued announces
-x, --drop-via drop all paths via specified transport instance
-w seconds timeout before giving up -w seconds timeout before giving up
-v, --verbose -v, --verbose
</pre></div> </pre></div>

View File

@ -301,19 +301,23 @@ Filter output to only show some interfaces:
.. code:: text .. code:: text
usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-j] [-v] [filter] usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-A] [-s SORT]
[-r] [-j] [-v] [filter]
Reticulum Network Stack Status Reticulum Network Stack Status
positional arguments: positional arguments:
filter only display interfaces with names including filter filter only display interfaces with names including filter
options: options:
-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
--version show program's version number and exit --version show program's version number and exit
-a, --all show all interfaces -a, --all show all interfaces
-j, --json output in JSON format -A, --announce-stats show announce stats
-s SORT, --sort SORT sort interfaces by [rate, traffic, rx, tx, announces, arx, atx, held]
-r, --reverse reverse sorting
-j, --json output in JSON format
-v, --verbose -v, --verbose
@ -438,7 +442,7 @@ Resolve path to a destination:
.. code:: text .. code:: text
usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D] usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D]
[-w seconds] [-v] [destination] [-x] [-w seconds] [-v] [destination]
Reticulum Path Discovery Utility Reticulum Path Discovery Utility
@ -453,6 +457,7 @@ Resolve path to a destination:
-r, --rates show announce rate info -r, --rates show announce rate info
-d, --drop remove the path to a destination -d, --drop remove the path to a destination
-D, --drop-announces drop all queued announces -D, --drop-announces drop all queued announces
-x, --drop-via drop all paths via specified transport instance
-w seconds timeout before giving up -w seconds timeout before giving up
-v, --verbose -v, --verbose