From 006c70cd09ac9e79332f64ea22496a7cbde9632e Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Thu, 9 Dec 2021 18:12:18 +0100 Subject: [PATCH] Updated documentation --- README.md | 6 +++++- RNS/Reticulum.py | 4 ++-- .../_sources/gettingstartedfast.rst.txt | 16 ++++++++++++++++ docs/manual/_sources/interfaces.rst.txt | 13 ++++++++++++- docs/manual/_sources/using.rst.txt | 2 ++ docs/manual/gettingstartedfast.html | 15 +++++++++++++++ docs/manual/index.html | 1 + docs/manual/interfaces.html | 12 +++++++++++- docs/manual/objects.inv | Bin 1811 -> 1827 bytes docs/manual/searchindex.js | 2 +- docs/manual/using.html | 3 ++- docs/source/gettingstartedfast.rst | 16 ++++++++++++++++ docs/source/interfaces.rst | 13 ++++++++++++- docs/source/using.rst | 2 ++ 14 files changed, 97 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 6ab5e74..98a7b56 100755 --- a/README.md +++ b/README.md @@ -86,17 +86,21 @@ Reticulum implements a range of generalised interface types that covers most of ## Dependencies: - Python 3.6 - cryptography.io + - netifaces + - pyserial ## How do I get started? The best way to get started with the Reticulum Network Stack depends on what you want to do. For full details and examples, have a look at the [Getting Started Fast](https://markqvist.github.io/Reticulum/manual/gettingstartedfast.html) section of the [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/). -If you just need Reticulum as a dependency for another application, the easiest way is via pip: +To simply install Reticulum and related utilities on your system, the easiest way is via pip: ```bash pip3 install rns ``` +You can then start any program that uses Reticulum, or start Reticulum as a system daemon with [the rnsd utility](https://markqvist.github.io/Reticulum/manual/using.html#the-rnsd-utility). + The default config file contains examples for using Reticulum with LoRa transceivers (specifically [RNode](https://unsigned.io/projects/rnode/)), packet radio TNCs/modems and UDP. By default a UDP interface is already enabled in the default config, which will enable Reticulum communication in your local ethernet broadcast domain. You can use the examples in the config file to expand communication over other mediums such as packet radio or LoRa, or over fast IP links using the UDP interface. I'll add in-depth tutorials and explanations on these topics later. For now, the included examples will hopefully be enough to get started. diff --git a/RNS/Reticulum.py b/RNS/Reticulum.py index 254477b..cf72841 100755 --- a/RNS/Reticulum.py +++ b/RNS/Reticulum.py @@ -280,8 +280,8 @@ class Reticulum: discovery_scope = c["discovery_scope"] if "discovery_scope" in c else None discovery_port = int(c["discovery_port"]) if "discovery_port" in c else None data_port = int(c["data_port"]) if "data_port" in c else None - allowed_interfaces = c.as_list("interfaces") if "interfaces" in c else None - ignored_interfaces = c.as_list("ignored_interfaces") if "ignored_interfaces" in c else None + allowed_interfaces = c.as_list("devices") if "devices" in c else None + ignored_interfaces = c.as_list("ignored_devices") if "ignored_devices" in c else None interface = AutoInterface.AutoInterface( RNS.Transport, diff --git a/docs/manual/_sources/gettingstartedfast.rst.txt b/docs/manual/_sources/gettingstartedfast.rst.txt index fce31c2..beeeda8 100644 --- a/docs/manual/_sources/gettingstartedfast.rst.txt +++ b/docs/manual/_sources/gettingstartedfast.rst.txt @@ -131,6 +131,22 @@ When you have experimented with the basic examples, it's time to go read the :ref:`Understanding Reticulum` chapter. +Reticulum on ARM64 +============================================== +On some architectures, including ARM64, not all dependencies have precompiled +binaries. On such systems, you will need to install ``python3-dev`` before +installing Reticulum or programs that depend on Reticulum. + +.. code:: + + # Install Python and development packages + sudo apt update + sudo apt install python3 python3-pip python3-dev + + # Install Reticulum + python3 -m pip install rns + + Reticulum on Android ============================================== Reticulum can be used on Android in different ways. The easiest way to get diff --git a/docs/manual/_sources/interfaces.rst.txt b/docs/manual/_sources/interfaces.rst.txt index c93211d..80c3806 100644 --- a/docs/manual/_sources/interfaces.rst.txt +++ b/docs/manual/_sources/interfaces.rst.txt @@ -26,7 +26,7 @@ Auto Interface The Auto Interface enables communication with other discoverable Reticulum nodes over UDP. It does not need any functional IP infrastructure like routers or DHCP servers, but will require at least some sort of switching -medium between peers (a wired switch, a WiFi access point or similar), and +medium between peers (a wired switch, a hub, a WiFi access point or similar), and that link-local IPv6 is enabled in your operating system, which should be enabled by default in almost all OSes. @@ -47,6 +47,17 @@ enabled by default in almost all OSes. group_id = reticulum + # You can also select specifically which + # kernel networking devices to use. + + devices = wlan0,eth1 + + # Or let AutoInterface use all suitable + # devices except for a list of ignored ones. + + ignored_devices = tun0,eth0 + + If you are connected to the Internet with IPv6, and your provider will route IPv6 multicast, you can potentially configure the Auto Interface to globally autodiscover other Reticulum nodes within your selected Group ID. You can specify diff --git a/docs/manual/_sources/using.rst.txt b/docs/manual/_sources/using.rst.txt index 0bc7c8f..fde75ad 100644 --- a/docs/manual/_sources/using.rst.txt +++ b/docs/manual/_sources/using.rst.txt @@ -57,6 +57,7 @@ the same system. -q, --quiet --version show program's version number and exit +You can easily add ``rnsd`` as an always-on service by :ref:`configuring a service`. The rnstatus Utility ==================== @@ -205,6 +206,7 @@ Using this methodology avoids potential naming mix-ups where physical devices might be plugged and unplugged in different orders, or when node name assignment varies from one boot to another. +.. _using-systemd: Reticulum as a System Service ============================= diff --git a/docs/manual/gettingstartedfast.html b/docs/manual/gettingstartedfast.html index 65859a0..14ec5ae 100644 --- a/docs/manual/gettingstartedfast.html +++ b/docs/manual/gettingstartedfast.html @@ -148,6 +148,20 @@ don’t use pip, but try this recipe:

When you have experimented with the basic examples, it’s time to go read the Understanding Reticulum chapter.

+
+

Reticulum on ARM64

+

On some architectures, including ARM64, not all dependencies have precompiled +binaries. On such systems, you will need to install python3-dev before +installing Reticulum or programs that depend on Reticulum.

+
# Install Python and development packages
+sudo apt update
+sudo apt install python3 python3-pip python3-dev
+
+# Install Reticulum
+python3 -m pip install rns
+
+
+

Reticulum on Android

Reticulum can be used on Android in different ways. The easiest way to get @@ -201,6 +215,7 @@ here at a later point.

  • Creating a Network With Reticulum
  • Develop a Program with Reticulum
  • Participate in Reticulum Development
  • +
  • Reticulum on ARM64
  • Reticulum on Android
  • diff --git a/docs/manual/index.html b/docs/manual/index.html index 19af0c1..7b43934 100644 --- a/docs/manual/index.html +++ b/docs/manual/index.html @@ -58,6 +58,7 @@ to participate in the development of Reticulum itself.

  • Creating a Network With Reticulum
  • Develop a Program with Reticulum
  • Participate in Reticulum Development
  • +
  • Reticulum on ARM64
  • Reticulum on Android
  • diff --git a/docs/manual/interfaces.html b/docs/manual/interfaces.html index a12aa44..073d2e0 100644 --- a/docs/manual/interfaces.html +++ b/docs/manual/interfaces.html @@ -58,7 +58,7 @@ manual.

    The Auto Interface enables communication with other discoverable Reticulum nodes over UDP. It does not need any functional IP infrastructure like routers or DHCP servers, but will require at least some sort of switching -medium between peers (a wired switch, a WiFi access point or similar), and +medium between peers (a wired switch, a hub, a WiFi access point or similar), and that link-local IPv6 is enabled in your operating system, which should be enabled by default in almost all OSes.

    # This example demonstrates a TCP server interface.
    @@ -75,6 +75,16 @@ enabled by default in almost all OSes.

    # specifying different Group IDs. group_id = reticulum + + # You can also select specifically which + # kernel networking devices to use. + + devices = wlan0,eth1 + + # Or let AutoInterface use all suitable + # devices except for a list of ignored ones. + + ignored_devices = tun0,eth0

    If you are connected to the Internet with IPv6, and your provider will route diff --git a/docs/manual/objects.inv b/docs/manual/objects.inv index 098fb57ce42e18d4a0dbf60baf60c2a74044cabd..0578e6ee00c6802fc5bcda2d9250f0e7af9ef742 100644 GIT binary patch delta 1592 zcmV-82FLl64xl=+{W#9Tu1+c$}%6{`7M+x?8o?!{n%kcCY~>#27C@uU&Gi zGM@TP02M`ySQ;Z);6%xICwLw+lm{Cn6eAI*c!x@=Vr`oug@1xw1V#$S@Ax1?(G(}* zP^fTB;60HFi&)_QO1Kke5DC#WN(cYnWq-REa}U z%oI_0!!@*}L}oaR6GZ72CGXdm6~Mudn=Az9yE-_x zPN(vcO2E6?2Y9_Ul z-{4_4tGC6&WHWt?pC{|**XiQx<~h_OpvXBUpe{M4TI1V;!ZIA&5sJeoT>*W|k)y6C ze{Hsem6}|I3Me)3putnVrsj3v>n1I*UjA1gK_$_#p?@oWtay0VC;|Nr(xolTXG>?*EgyZSrVfAgP+lKk$o9FVj=<;#4W;ndIt!jYuEDmjP%Lm>B zW~qNP$6@l`1pV};XekvuPz6G2s#1ot=72(>d=H63P+s?K6v;6Zr<>rQDU&G!9Dh~( zuJrIvos}(NUZFP90p`?ZZgm|VrI4D6_(sT534(hx2no*yMUs-1xmPr-c0AwsmdhhE zFw&_Q*21oZ%y>!DxP(k0c>zs6vFGlfCxxyUF-SO}V$9H%Vy~><)R0G@oOZmNY@VNH zi$~~I=bjNe!UIDNN9-ut3zW=7?OH(quV{R`taSGTrtC z%O6N}%N&T4jGt$wpm1{iQKEV{c#!khQ$y)+cThcx&g>B^ zG5KG^{e13%RXW%5oG_9jdY+gYk%Q_(=UK?+mW+PUxl%PVvUZRan)0LvMh`s2(bQgY z`hlg_9j^`UF(WL+pKYeTYKEHWUw=WVpor}45pY*$hn-yiu3^8L>(ScWh@N!197nWt zW3b~EzQF1`7w;N{c6g3h388f*TDJN6sxeuYgB%WS-eOH^zndslX3+*f5vn!%yW5wZiBU_>vovteB0YjXCs#wi6m>swp={Xx%W}TT6S~9$V5A+g;yIr$dI_z8B45-$IPY99}v! zO9~O%ao!?Hk{yWk9)f7EcN!c6az#KmD+a3jz4nNnnkJo58XX-&c^#GWgEaqde_>HU zr%h#;pX@l<8ow)r%DNl&pjTb|pA6Bp|-!<;*QHZKGZ3bgT%*c zS^b45dcg;mJ{8(=?yuEBH@~#bxzc~r>h<}9mUAcWxR`!<$3>2mhtEAEfjHEi^HYWO z998BMvlT{3rXLWJpmi4M*a@z9dcvvxR~g-}dA$zHMC%&rn7V2u4{$`wy=Ge%y|qEs zSd~T3)^zoLk8iadj}vYE36HufIyU*G?AA?rte3KtP!XigH<*NdB!dnmsca^vkB13s qddB8xfMkS@K@}eaHjM8Xq(W;yG*`@H{0+ZHaNBwOarZy*?s&I9I3v3N delta 1575 zcmV+?2H5$d4wDX$pMS4mJKJtA0xi)N5sFkvYB&D(9f}mKFWaQOrv%dbyc|)(;ZVtH zu^vBSsR%=ga26GZPYFd*M!!b_@36ou!Q)Kj^p{_w(cP-89wtXUw1W*8A;x$KdhL>9 zmGRUs08|t)Vrh(IffFU;o#1)QP#$cQP>e*J;vFifinVQu6n_eK5f~{PzvF`pMN^!J zL!rVkf%ilzEMkHGE8$L@!GusOLY?65H395OO0SynJyvlc$agzop?HR5b`5h(kt%UW zikTuRczDWDdQ12}>#a$c#apvhdr-pOW4MO4l*kOHae^q_qU8M=vjRByag&AMd{IK&QVDoh`+wj!CCQ%oFtbJ`T_~Zobo}tP`a0DBQc93*sjvssA85GZI$eivwB-ROg7WU_<6E^ew{8pZ=ORv0*aht0_u`usx`hnC@jOV9icdk(iPCR969QW z^4DfdSgFZXsDM%f4;mcuH8rmTUl+8%dih_01eHX`hJUX3vEt!bqXhIjNSC(Y_wXH2 z0uSXi-Ye8~kBX#aLDi@Nrt8h*{&lu~o=+E>cr%+%zr1bY<#ZK4e_4hYy-cUe$?Gg^ z^!B3-*T72CU{+>BS>Xf|Q&Y~-9d*N}T1GhMunA79E&yOCQRF+0cU*WwjK_p+ zp{Y(oF@IjFaL(@3-uf%s1jn`}e@6m4gocgerAY9tG-nAd)0?A!{!6Hz;NsuuRJ4M# zPs)FI6}@Hk(mYCv5ss&eht;>GZX4#0Z=TEBqRZFGY;gtFiEwyrTh##RSsdEpmJhrM z%u@f^9EZt!0s84p(NZdSpbCW4RHY1O%>ji%`419@puFzeD3W6+PB+0pA(JTs9DmjP zUFqSUIxAbkyr$Yn2bfcvxz%-eltOAM;yXi@N)X(mK}dKuD3X-4%)MsAYRB`9Z@D}& z10$W9!&=z2kQpy&8kdkMBrl-JC-&SO^rX-gBL)d4RE!zgQtXxWn;P<%D5o7SC!6P| z+2Rqp)w$=49pQl?hiB|4>{>Lw+>^rt7k>{G19=?<4JkbB4*7lNJ@P+kp6XKSGgqh} zqqOnGTB`IDMO#?$qXB*6b5TXQBf)vBKG0Q+{s4DDuY0vhnYs_w%_6R_R>JbHYfD=y_spL=LJCoo6ANTQd4h=StPg$l5_xXv&iw7(MV5M^k&r z=?9ixcf2;Z$BeKPf3%tUsu^mge}4s~f+DiFN5Ea39X7cBUBiAh*Q2$$5k2X2IgV)Q z#$d-Se1X*uF5Wc??eHA25~kLbXxZlLtHxwq7J41Pcr$mWfsRnAI(gc0(5pgg9NwZo z{`m7E{m&RgFSGS}*yEi@dCB86-G9q{`qCT-rW4_U$!eiRuY84u1Cdye?i#8X2*s!d z9aK^zm-x-YGJ2o{*6~RX>Ei)$lW_$)e?~YL;#?k}+hFZ*-44@?x4rFjHgbuPNV4`& z=9*oY=Kd1x@m&dH2q+k=3b`>t>xSXpTH53G*pi;u?)r8*9Ww0py=V^m7Ggx^@Y11K zQi#xw^A<^x>_Dvd5JY>u)8H78D*~poVxYR;YmexuY0?>`(a|xK*Ryhdkmmm_e=I8K zw5bg9lN~2p<9DS{S$D%8^s0;hlOeix98sT$K5JcvwH++MJ_a)=~uh(IjXk9}cQ&+9z0gh<7SG0A}TN`AJ zRax|GO;_*t_*UETIMLRh@Tj|@W0POXZrzl}dMR586+!BJgCOi98FVN~WivU?d;G}Y ZCAM}lbHxPkH~b#KZHNDL_dhMxU)l2E7~TK? diff --git a/docs/manual/searchindex.js b/docs/manual/searchindex.js index eb072c0..79d6a3d 100644 --- a/docs/manual/searchindex.js +++ b/docs/manual/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["examples","gettingstartedfast","index","interfaces","networks","reference","understanding","using","whatis"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["examples.rst","gettingstartedfast.rst","index.rst","interfaces.rst","networks.rst","reference.rst","understanding.rst","using.rst","whatis.rst"],objects:{"RNS.Destination":{announce:[5,1,1,""],app_and_aspects_from_name:[5,1,1,""],clear_default_app_data:[5,1,1,""],create_keys:[5,1,1,""],decrypt:[5,1,1,""],deregister_request_handler:[5,1,1,""],encrypt:[5,1,1,""],full_name:[5,1,1,""],get_private_key:[5,1,1,""],hash:[5,1,1,""],hash_from_name_and_identity:[5,1,1,""],load_private_key:[5,1,1,""],register_request_handler:[5,1,1,""],set_default_app_data:[5,1,1,""],set_link_established_callback:[5,1,1,""],set_packet_callback:[5,1,1,""],set_proof_requested_callback:[5,1,1,""],set_proof_strategy:[5,1,1,""],sign:[5,1,1,""]},"RNS.Identity":{CURVE:[5,2,1,""],KEYSIZE:[5,2,1,""],TRUNCATED_HASHLENGTH:[5,2,1,""],decrypt:[5,1,1,""],encrypt:[5,1,1,""],from_bytes:[5,1,1,""],from_file:[5,1,1,""],full_hash:[5,1,1,""],get_private_key:[5,1,1,""],get_public_key:[5,1,1,""],get_random_hash:[5,1,1,""],load_private_key:[5,1,1,""],load_public_key:[5,1,1,""],recall:[5,1,1,""],recall_app_data:[5,1,1,""],sign:[5,1,1,""],to_file:[5,1,1,""],truncated_hash:[5,1,1,""],validate:[5,1,1,""]},"RNS.Link":{CURVE:[5,2,1,""],ESTABLISHMENT_TIMEOUT_PER_HOP:[5,2,1,""],KEEPALIVE:[5,2,1,""],get_remote_identity:[5,1,1,""],identify:[5,1,1,""],inactive_for:[5,1,1,""],no_inbound_for:[5,1,1,""],no_outbound_for:[5,1,1,""],request:[5,1,1,""],set_packet_callback:[5,1,1,""],set_remote_identified_callback:[5,1,1,""],set_resource_callback:[5,1,1,""],set_resource_concluded_callback:[5,1,1,""],set_resource_started_callback:[5,1,1,""],set_resource_strategy:[5,1,1,""],teardown:[5,1,1,""]},"RNS.Packet":{ENCRYPTED_MDU:[5,2,1,""],PLAIN_MDU:[5,2,1,""],resend:[5,1,1,""],send:[5,1,1,""]},"RNS.PacketReceipt":{get_rtt:[5,1,1,""],get_status:[5,1,1,""],set_delivery_callback:[5,1,1,""],set_timeout:[5,1,1,""],set_timeout_callback:[5,1,1,""]},"RNS.RequestReceipt":{get_progress:[5,1,1,""],get_request_id:[5,1,1,""],get_response:[5,1,1,""],get_response_time:[5,1,1,""],get_status:[5,1,1,""]},"RNS.Resource":{advertise:[5,1,1,""],cancel:[5,1,1,""],get_progress:[5,1,1,""]},"RNS.Reticulum":{MTU:[5,2,1,""],should_use_implicit_proof:[5,1,1,""],transport_enabled:[5,1,1,""]},"RNS.Transport":{PATHFINDER_M:[5,2,1,""],deregister_announce_handler:[5,1,1,""],has_path:[5,1,1,""],hops_to:[5,1,1,""],next_hop:[5,1,1,""],next_hop_interface:[5,1,1,""],register_announce_handler:[5,1,1,""],request_path:[5,1,1,""]},RNS:{Destination:[5,0,1,""],Identity:[5,0,1,""],Link:[5,0,1,""],Packet:[5,0,1,""],PacketReceipt:[5,0,1,""],RequestReceipt:[5,0,1,""],Resource:[5,0,1,""],Reticulum:[5,0,1,""],Transport:[5,0,1,""]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"]},objtypes:{"0":"py:class","1":"py:method","2":"py:attribute"},terms:{"0":[0,3,5,6,7,8],"00":6,"000":[],"00000000":6,"00000100":6,"00000111":6,"01":[6,7],"01010000":6,"02":7,"05":0,"07":7,"1":[0,3,5,6,7],"10":[0,3,6,7],"100":[0,6],"1000":[0,6],"1024":0,"11":6,"115200":[3,7],"12":3,"1200":6,"125":3,"125000":3,"127":3,"128":[5,6,8],"13":7,"14":6,"141":[],"15":[3,6],"150":[3,7],"150m":3,"151":6,"16":[3,7],"18":6,"180":6,"182":[],"2":[0,3,6,7],"20":[0,3,6,7],"200":[3,7],"2000000":[],"205":[],"211":[],"237":[6,8],"24":3,"240":[],"25":[0,2,8],"255":3,"256":[5,6],"270":6,"2f":0,"3":[0,6,7,8],"323":[],"33":6,"34":6,"360":5,"3600":0,"37":7,"37428":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"4":[6,7],"409":[],"4242":[3,7],"430":6,"45":0,"469":7,"477":[5,6],"48555":3,"49555":3,"4965":7,"5":[0,3,5,6],"500":[5,6,8],"512":5,"55":3,"56b115c30cd386cad69c":7,"60":0,"600":3,"62":[6,8],"7":[3,6],"72":3,"77":6,"7ca6f4e4dc26ae329e61":[],"8":[0,3,7],"80":[5,6],"8001":3,"80e29bf7cccaf31431b3":6,"83":6,"86":[],"867":3,"867200000":3,"868":6,"88":3,"9":7,"900":6,"9382f334de63217a4278":7,"95":6,"abstract":6,"break":[5,6,8],"byte":[0,5,6,7,8],"case":[1,3,4,6,7],"class":[0,2,8],"default":[0,1,3,4,5,6,7],"do":[0,1,3,5,6,7,8],"float":[0,5],"function":[0,1,2,3,4,5,8],"import":[0,1,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6],"public":[0,2,5],"return":[0,5],"short":6,"static":5,"switch":3,"throw":[],"true":[0,3,5,7],"try":[0,2],"while":[0,4,5,6,8],A:[0,1,3,4,5,6,8],And:0,As:[4,5,6,8],At:[4,6],Be:[5,7],But:6,By:[0,3,5,6],For:[1,3,4,5,6,8],IN:[0,5],If:[0,1,3,4,5,6,7,8],In:[0,1,3,4,5,6,7,8],It:[0,1,3,5,6,8],No:[6,8],On:[0,7],One:5,Or:[3,6],That:6,The:[0,1,2,3,4,5,8],Then:1,There:[4,6,8],These:[3,6,7],To:[0,1,3,4,6,7,8],Will:5,With:[2,3,4,6,7],_:6,__:6,______:6,_______:6,________:6,________________:6,__init__:0,__main__:0,__name__:0,_exit:0,ab:0,abil:1,abl:[0,4,5,6,7],about:[0,1,4,5,6],abov:[1,3,6],absolut:[],accept:[5,6],accept_al:[0,5],accept_app:5,accept_non:5,access:[3,5,6,7],accord:6,accordingli:0,acheiv:6,achiev:[5,6],acknowledg:8,across:4,act:[5,6],action:0,activ:[0,1,5,6],actor:6,actual:[0,1,3,6],ad:[0,4,5,8],adapt:4,add:[0,1,3,4],add_argu:0,addit:[6,8],addr1:6,addr2:6,address:[0,3,4,5,6,8],adher:5,admin:3,administr:7,adress:[0,4,5,8],advantag:5,advertis:[0,5],advis:6,ae:[6,8],after:[0,4,6,7],again:[1,6],against:6,agent:6,agnost:[4,6],agnostic:6,aim:[2,6],air:8,airtim:3,aliv:[5,6],all:[0,2,3,4,5,6,7,8],alloc:7,allow:[0,1,3,4,5,6,7,8],allow_al:[0,5],allow_list:5,allow_non:5,allowed_list:5,almost:[3,6],along:[4,6],alreadi:[0,4,6],also:[0,1,3,4,5,6,7,8],alter:6,altern:[0,3,7],although:8,alwai:[5,6,7],amateur:[3,8],amet:[],amount:[3,4,5,6,8],an:[0,1,3,4,5,6,7,8],android:2,ani:[0,1,3,4,5,6,7,8],announc:[2,5],announce_handl:0,announced_ident:[0,5],announceloop:0,announcesampl:0,anonym:[4,5,6,8],anoth:[1,5,6,7],answer:[6,7],anyon:[0,4,5,6],anyth:[3,6],anywher:0,apart:6,api:[1,2,6,8],apk:1,app:[0,1,5,6],app_and_aspects_from_nam:5,app_data:[0,5],app_nam:[0,5],app_timeout:0,append:[0,6],appli:6,applic:[0,5,6,7],approach:7,approv:6,approxim:6,ar:[0,1,3,4,5,6,7,8],arbitrari:[5,6],arbritrari:8,area:[3,4,8],arg:0,argon:0,argpars:0,argument:[0,5,7],argumentpars:0,around:6,arriv:[0,6],ask:[0,5],aspect:[0,5,6],aspect_filt:[0,5],assign:[6,7],associ:[1,5,6],assum:[3,6],asymmetr:8,attached_interfac:[],attempt:5,attribut:5,audit:8,authent:[5,6,8],author:6,auto:[2,5,6],auto_compress:5,autoconfigur:8,autodiscov:3,autointerfac:3,autom:6,automat:[0,3,4,5,6,7,8],autonom:[4,6],autoomat:0,avail:[0,1,3,4,6,7,8],availadbl:[],averag:6,avoid:[6,7],awai:[0,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b:[0,4],back:[0,6,8],background:1,backhaul:4,band:6,bandwidth:[3,4,6,8],bare:0,barrier:6,base:[2,3,4,5,6,7,8],basi:[5,6,8],basic:[0,1,2],baud:[3,6],beacon:3,becaus:[4,6],becki:0,becom:[0,4],been:[0,3,4,5,6,8],befor:[0,5,6],begin:[0,5],begun:5,behind:6,being:[3,5,6],belief:6,below:[1,3],benefici:7,best:[1,6,8],beta:8,better:3,between:[0,3,4,5,6],bgp:6,bi:6,bidirect:6,billion:4,bin:7,binari:[0,2],bind:3,bit:[5,6,8],blob:[0,6],board:8,boot:7,both:[3,4,5,6,8],bp:6,bridg:2,briefli:6,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:7,buffer:3,bug:8,build:[0,1,2,3,6,8],built:[1,6,8],bundl:0,c:[0,4,6],cabl:4,cad:6,calcul:[5,6],call:[0,4,5,6,8],callabl:5,callback:[0,5],callsign:3,can:[0,1,2,3,4,5,6,7],cancel:5,candid:4,cannot:0,capac:6,carambola:0,care:[5,8],carri:[5,6],carrier:[4,8],caution:3,caveat:2,cb:6,cbc:8,cd:1,cdma:3,censor:6,censorship:6,central:[4,6],certain:[0,3,4,6],challeng:6,chang:[0,1,5,6,7,8],channel:[0,3,4,6,8],channelarg:0,chapter:[1,3,4,6,8],charact:0,characterist:6,cheap:6,check:[0,1,5],checksum:[5,8],choos:[0,3],chose:6,chosen:4,chunk:0,ciphertext:5,ciphertext_token:5,cl:0,clear:[0,5,6],clear_default_app_data:5,clear_screen:0,client:[0,1,2,5],client_connect:0,client_disconnect:0,client_ident:0,client_loop:0,client_packet_receiv:0,client_request:0,clone:1,close:[0,5],closed_callback:5,closer:6,cluster:6,code:[1,2,3,6],codingr:3,com:[0,1],combin:[4,6],come:[1,6],command:[0,1,7],comment:3,common:[3,6],commun:[0,1,3,4,5,6,7,8],compat:[5,6],compil:1,complet:[0,1,4,5,6,8],complex:6,compon:6,compos:6,compress:[0,5,6],comput:[1,6,8],concaten:5,concept:[2,6],conclud:[0,5],concurr:[6,7],condit:6,config:[0,1,4,7],configarg:0,configdir:5,configpath:0,configur:[0,1,2,3,4,5,6,8],confirm:[6,8],conjunct:3,connect:[0,1,3,4,5,6,7,8],consequ:[],consid:[6,8],consist:6,constant:[5,6],construct:6,contact:6,contain:[0,4,5,6],content:[4,7],context:6,control:[0,3,4,5,6],conveni:0,convent:0,converg:2,coordin:[4,5,6,8],core:[4,6,8],correct:[0,6],correctli:0,correspond:6,cost:[6,8],could:[0,4,5,6,8],count:6,counter:0,cours:3,cover:8,coverag:4,cpu:0,creat:[0,2,3,5,6,7],create_kei:5,create_receipt:[0,5],creation:6,creator:6,critic:6,cryptograph:[4,8],cryptographi:[1,6,8],ctrl:0,cull:5,current:[0,2,3,5,6],current_download:0,current_filenam:0,curv:[4,5,6,8],curve25519:[4,5,6,8],custom:[5,6],custom_network_nam:3,d:[4,6],daemon:[5,7],dai:[4,6],data:[0,3,4,5,6,8],data_port:3,databit:[3,7],date:[0,1],db:0,dbm:[0,3],debian:[6,7],debug:[],decai:6,decid:[4,5,6],decod:0,decrypt:[5,6],dedic:6,def:0,default_timeout:[],defin:[0,3,6],definit:6,degrad:4,delai:6,deliv:[0,5],deliveri:[0,5,8],demand:5,demonstr:[0,3],depend:[1,4,7],deploi:6,deregist:5,deregister_announce_handl:5,deregister_request_handl:5,deriv:[6,8],describ:[3,5,6],descript:[0,7],design:[4,6,8],desir:[0,6],destin:[0,1,2,4,7],destination_1:0,destination_2:0,destination_clos:0,destination_hash:[0,5,7],destination_hexhash:0,detail:[0,1,2,5,7,8],detect:0,determin:[5,6],dev:[3,7],develop:[2,6,8],devic:[1,2,3,4,5,6,7],dh:5,dhcp:3,did:0,differ:[0,1,3,4,5,6,7,8],diffi:[4,6,8],digit:[6,8],dir:0,direct:[0,4,5,6],directli:[3,5,6,7,8],directori:[0,7],disabl:3,disable_encrypt:[],disappear:[],discard:6,disconnect:0,discover:3,discoveri:[3,6,7],discovery_port:3,discovery_scop:3,discrimin:4,discuss:6,disk:[0,5],displai:[0,6],distanc:6,distinct:[3,6],distribut:[0,1,4,5,6,7],divmod:0,document:6,doe:[0,1,2,3,4,5,6],doesn:3,dolor:[],domain:[1,3],don:[0,1,4],done:[0,1,4,6],dori:4,dot:[6,7],down:0,downgrad:[],download:0,download_began:0,download_conclud:0,download_finish:0,download_start:0,download_tim:0,driver:[7,8],droid:1,drop:6,due:4,duplex:[6,8],dynam:7,e:[0,4],each:[0,4,6],earlier:6,eas:6,easi:[3,6,7,8],easier:[1,4,7],easiest:[1,6],easili:[6,8],eca6f4e4dc26ae329e61:7,ecdh:[6,8],echo:[1,2,7],echo_destin:0,echo_request:0,ed25519:[6,8],edit:1,effici:[0,3,6,8],ei:0,either:[3,4,6],elaps:3,elif:0,ellipt:[4,5,6,8],els:[0,4,6],emploi:6,emptor:2,emul:1,enabl:[3,4,5,7],enable_transport:6,encapsul:[3,8],encod:0,encrypt:[0,1,4,5,6,8],encrypted_mdu:5,encryptionless:[],end:[0,4,5,6,8],endless:3,endpoint:[0,4,5,6],engin:[],enough:1,ensur:6,enter:0,entir:[4,6],entiti:6,entri:[0,6],enumer:0,environ:[1,6],environment:6,environmentlogg:6,ephemer:[4,5,6,8],equal:[4,6],equip:[4,6],equival:3,equl:[],error:0,especi:3,essenti:[1,6],establish:[0,5,8],established_callback:5,establishment_timeout_per_hop:5,etc:7,eth0:3,ethernet:[1,3,4,6,8],even:[4,6,7,8],everi:[0,3,4,5,6],everyon:[4,6],everyth:[0,4,6],evolv:4,exact:6,exactli:[5,6],exampl:[1,2,3,5,6,7,8],example_util:[0,7],exampleannouncehandl:0,exce:0,except:[0,6],exchang:[4,5,6,8],execstart:7,execut:[0,1,5,7],exhaust:6,exist:[0,1,3,6,8],exit:[0,1,5,7],exit_handl:0,expand:6,expect:[0,5,6,7],experi:[1,6],experiment:8,explain:5,explan:6,explicit:5,explicitli:[],explor:[0,6,8],expos:[3,5],extend:[0,1,6],extern:[3,5,8],extra:[1,3,4],extrem:8,f:1,fa7ddfab5213f916dea:6,face:1,fact:[6,8],factor:3,fail:[0,5],failed_callback:[0,5],fals:[0,3,5],far:[4,6],fast:2,fastest:3,featur:[6,8],feed:5,feedback:0,fernet:8,few:[1,4,6,7,8],field:6,file:[0,1,4,5,6,7,8],file_resourc:0,file_s:0,filelist:0,filelist_data:0,filelist_receiv:0,filelist_timeout_job:0,filenam:0,filetransf:[1,2,5],filter:[0,4,6],find:[4,6],firmwar:6,first:[0,1,5,6],fit:0,five:0,fix:[2,6],flag:[5,6],flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,1,3,6,7,8],forcibl:5,foreground:1,foremost:8,form:[3,4,5,6],format:[0,2,8],forth:0,forward:[3,5,6,8],forward_ip:3,forward_port:3,found:[0,1,4,6,7],four:4,frame:3,frankfurt:7,free:8,frequenc:[3,6],friendli:8,from:[0,1,3,4,5,6,7,8],from_byt:5,from_fil:5,fromhex:0,fruit:0,ftdi_ft230x_basic_uart_43891ckm:7,full:[0,3,5,6,7,8],full_hash:5,full_nam:[5,7],fulli:[6,8],funcion:5,fundament:6,further:[1,2],futur:[4,6],g:0,ga:0,gatekeep:6,gatewai:4,gen:[],gener:[0,4,5,6,8],generalis:8,geograph:4,get:[0,2,3,5,8],get_packet_rssi:0,get_packet_snr:0,get_private_kei:5,get_progress:[0,5],get_public_kei:5,get_random_hash:[0,5],get_remote_ident:[0,5],get_request_id:5,get_respons:5,get_response_tim:5,get_rtt:[0,5],get_statu:5,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6],given:[4,6],global:[0,3,4,8],go:[0,1,6],goal:[2,3],good:[4,6],got:0,got_respons:0,govern:6,grape:0,great:6,greater:6,greatli:3,group:[3,5,6],group_id:3,grow:4,growth:2,guarante:6,guid:[1,5,6],h:[1,6,7],ha:[0,3,4,5,6,8],had:6,half:[6,8],hand:[0,1],handheld:6,handl:[0,4,5,6,7,8],handler:[0,5],happen:[0,5],hardlin:4,hardwar:[3,4,5,6,8],has_path:[0,5],hasattr:0,hash:[0,1,5,6,7],hash_from_name_and_ident:5,hashmap:0,have:[0,1,3,4,5,6,7],hazard:5,header:6,header_1:6,header_2:6,header_typ:[],hear:6,heard:[5,6],helium:0,hellman:[4,6,8],help:[0,4,6,7,8],her:4,here:[0,1,3,6,7],hexadecim:[0,6,7],high:[3,6,8],higher:[6,8],highli:6,hill:4,hint:0,hit:0,hmac:8,hoc:8,hold:[5,6],home:4,homebrew:3,hop:[4,5,6,7,8],hops_to:5,host:[0,6,7,8],hostnam:3,hour:0,how:[0,3,4,6,8],howev:[4,6],http:[0,1],human:[0,5],i:0,id:[3,5,6,7],id_callsign:3,id_interv:3,idea:6,ident:[0,2,8],identif:[2,3,8],identifi:[0,3,5,6],identify:6,identifyexampl:0,ie:[],if00:7,ifconfig:7,ignor:[5,6],illustr:4,immedi:[1,7],impact:6,implement:[0,4,5,6,8],implic:3,implicit:[5,6],improv:[2,3],inactive_for:5,inbound:5,includ:[0,2,3,5,6],incom:[0,3,5],incompat:[5,6],increas:3,incur:3,indefinit:6,independ:5,independt:8,index:[0,1,2],indirectli:6,individu:6,inevit:6,infer:6,info:[5,6],inform:[0,1,2,4,5,6],infrastructur:[3,4,6],ingo:5,initi:[0,4,5,6,8],initialis:[0,5,7],input:0,insert:6,inspect:4,instal:[1,3,4,7],instanc:[0,5,7],instanti:5,instead:[0,3,6,7],integr:[4,6],intend:[4,6],intention:6,inter:5,interact:[0,1,5,6],interconnect:2,interest:6,interfac:[0,1,2,4,5,6,7],interface_en:[3,7],intermitt:3,intern:[3,5,6],internet:[1,2,3,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],investig:4,involv:4,io:[1,7],ip:[3,6,8],ipsum:[],ipv6:3,is_connected_to_shared_inst:0,is_request:[],is_respons:[],isdir:0,isfil:0,island:4,ism:6,isol:3,its:[5,6],itself:[2,6],iv:8,job:0,join:[0,6],just:[0,3,4,6,8],k:0,kb:7,kbp:6,keep:[0,4,5,6,7,8],keepal:[5,6],kei:[0,2,4,5,8],kept:[3,4,5,6],kernel:[7,8],keyboardinterrupt:0,keyerror:5,keypair:6,keysiz:5,keystor:4,khz:3,ki:0,kill:5,kilomet:6,kind:[3,4,6],kiss:[2,7],kiss_fram:3,kissinterfac:[3,7],know:[0,4,5,6],knowledg:[4,6],known:[0,5,6],krypton:0,lack:6,laid:6,lan:3,larg:[0,4,6],larger:6,laser:3,last:[0,3,5],last_unit:0,latenc:[6,8],later:[0,1],latest:[0,1],latest_client_link:0,launch:1,lavg:6,layer:[3,4,6,8],lead:6,learn:[0,1,6],least:[3,6,8],leav:[4,6],ledger:6,left:[5,6],len:0,length:[0,5],less:[3,6,8],let:[0,4,6,7],level:[3,6],libffi:1,librari:1,licens:6,light:[],like:[1,3,5,6,7,8],limit:6,line:[0,1,4,6,8],link:[2,3,4,8],link_clos:0,link_establish:0,linkexampl:0,linux:[1,6],list:[0,5,6,8],list_deliv:0,list_fil:0,list_packet:0,list_receipt:0,list_timeout:0,listdir:0,listen:[0,3,6],listen_ip:3,listen_port:3,littl:6,lki:6,lkr:6,ll:[0,1,8],ln:[1,7],load:[0,5,7],load_private_kei:5,load_public_kei:5,local:[0,1,3,4,5,6,7,8],locat:[1,4,6,7],log:0,log_error:0,log_info:0,loglevel:[0,5],longer:[0,4,6],longest:3,look:[0,1,3,6,7],loop:0,lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[3,4,6,8],lxmf:1,m:[0,6,7],mac:6,machin:6,made:[5,6],mai:[3,6],main:0,mainli:4,maintain:6,make:[1,6,7],malici:6,manag:[1,5],mani:[0,1,3,4,6,7,8],manipul:6,manual:[0,1,3,4,5,7],mark:6,markqvist:[0,1],master:[0,5],match:[0,3],maximum:[5,6],mcu:6,mdu:0,mean:[6,7],measur:6,mechan:[2,3],medium:[3,4,6,8],member:4,memori:6,mention:6,menu:0,menu_mod:0,mesh:[4,8],messag:[0,1,5,6,7],messeng:6,metavar:0,method:[0,5,6],methodolog:[6,7],mhz:[3,6],mi:0,microcontrol:6,microwav:6,might:[3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,4,6],minut:[0,1,6],mix:[3,4,7],mode:[0,1,6,8],modem:[3,4,5,6,8],modul:[0,1,3,6,7,8],moment:[6,8],monitor:6,moon:0,mor:[],more:[1,3,4,5,6,8],most:[1,3,4,6,7,8],motiv:2,move:1,mqtt:4,mtu:[5,6,8],much:6,multi:[6,7,8],multicast:3,multilater:6,multipl:[0,3,4,6,7],multipoint:6,must:[0,1,4,5,6],mw:3,my:6,mycal:3,n:0,name:[0,2,4,5],namespac:0,nano:1,narg:0,natur:3,necesarri:4,necessari:[1,5,6],necessarili:6,need:[0,1,2,3,4,6,7,8],neglig:6,neither:6,neon:0,netifac:[1,3],network:[0,3,5,6,7,8],never:[3,5],newer:6,newest:6,newli:[4,6],next:[1,4,5,6],next_hop:5,next_hop_interfac:5,nicknam:6,no1cll:3,no_inbound_for:5,no_outbound_for:5,nobl:0,noble_ga:0,noble_gas:0,node:[2,3,4,7,8],nomad:1,nomadnet:1,non:[5,6],none:[0,3,5,6,7],normal:0,notat:[6,7],note:[0,3,6,7],noth:8,notic:6,notif:[0,5],now:[0,1,4,6,7],nt:0,num:0,number:[0,1,3,4,5,6,7],object:5,obtain:6,occur:8,off:[6,8],offer:[1,2,3,5,6],often:[4,6,7],oganesson:0,old:6,onc:[0,4,5,6,8],one:[0,1,3,4,5,6,7,8],oneself:6,onli:[0,1,3,4,5,6,7,8],onlin:6,open:[0,3,5,6,7,8],openmodem:[3,8],openssl:1,oper:[3,4,5,6,8],opt:6,optic:8,optim:4,option:[0,1,3,4,5,7],order:7,orem:[],organis:[3,4],orient:6,origin:[0,4,6],original_hash:[],os:[0,3,6,7,8],ospf:6,other:[1,3,4,5,6,7],otherwis:[5,6],our:[0,6],out:[0,3,4,5,6,8],outbound:5,outgo:[0,3,5,6,7],outli:4,outlier:4,outlin:[1,6],output:7,outward:6,over:[0,1,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,overview:[2,3,6],own:[0,1,4,5,6],owner:[],p:[0,6],pack:0,packag:1,packb:0,packet:[0,1,2,3,4,7,8],packet_callback:0,packet_deliv:0,packet_hash:0,packet_receipt:[0,5],packet_timed_out:0,packet_typ:[],packetreceipt:[0,5],pad:8,page:[2,6],pair:[3,6],palm:[],paramet:[3,4,5],pariti:[3,7],pars:0,parse_arg:0,parser:0,part:[0,4,6],particip:[2,6],pass:[0,3,4,5,6],past:[],path:[0,1,5,6,7],path_respons:5,pathfind:[],pathfinder_m:5,pattern:6,payload:[5,6],peach:0,peer:[0,1,3,5,6],peer_pub_byt:[],peer_sig_pub_byt:[],peopl:6,per:[5,6,8],percent:0,perfect:[],perform:[0,3,4,6],period:[3,6],perman:7,persecut:6,persist:[3,7],person:6,pet:0,philosophi:6,physic:[3,6,7],pi:[0,4,6,7,8],piec:6,ping:[1,7],pip3:[1,3,7],pip:[1,7],pkcs7:8,pkg:1,place:[4,6,7],plain:[0,3,5,6],plain_mdu:5,plaintext:[0,5],plan:4,platform:6,pleas:[0,3,7,8],plenti:6,plu:6,plug:7,pmr:6,point:[1,3,4,6],pomelo:0,poorli:4,port0:7,port:[2,3,4,6,8],posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,3,6,7],power:3,practic:[6,8],pre:[1,3,5,6],preambl:[3,7],predict:6,prefer:6,prepar:[0,4],prerequisit:5,presenc:5,preserv:5,press:0,pretend:6,pretti:6,prettyhexrep:0,previou:0,previous:[4,5,6],primari:6,principl:[6,8],print:0,print_filelist:0,print_help:0,print_menu:0,prioriti:6,prioritis:[2,4],privaci:8,privat:[3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,procedur:6,process:[1,5,6],product:[],program:[0,2,3,5,6],program_setup:0,programm:6,programmat:6,progress:[0,5,8],progress_callback:5,project:1,prompt:0,proof:[0,5,6,7],proof_packet:0,proof_requested_callback:5,proof_strategi:5,propag:6,properti:5,protocol:[1,2,8],prove:[0,6],prove_al:[0,5],prove_app:5,prove_non:5,proven:[5,6],provid:[0,1,2,3,4,5,6,8],prv_byte:5,pub_byt:5,public_inform:0,purchas:[4,6,8],purg:5,purpos:[3,5,6],purposefulli:6,put:0,py:[0,1,7],pyseri:1,python3:[1,7],python:[1,3,6,7,8],q:[0,7],queri:[0,1],queue:6,quiet:7,quinc:0,quit:0,r:[0,6],radio:[1,3,4,5,6,7,8],radiu:6,radon:0,rais:[0,5],ram:3,rand:6,randint:0,random:[0,5,6],random_text_gener:0,randomli:[0,6],rang:[0,1,3,4,6,8],raspberri:[4,6,7,8],rate:[0,3],rb:0,re:[0,3,5,6],reach:[2,4],reachabl:[0,4,5,6],read:[0,1,6],readabl:[0,5,6],readi:[0,1,4,5],readili:8,real:[4,8],realli:[3,5],reason:[3,6],reassembl:6,recal:[0,5],recall_app_data:5,recap:6,receipt:[0,2,6],receiv:[0,5,6,7],received_announc:[0,5],reception_rssi:0,reception_snr:0,reception_stat:0,recip:1,recipi:6,recommend:[0,6],reconstruct:6,record:6,recoveri:3,recreat:6,refer:[0,1,2],regard:6,regist:[0,5],register_announce_handl:[0,5],register_request_handl:[0,5],rel:[6,8],relat:1,releas:[1,6],relev:[0,5],reli:6,reliabl:[3,4,6,8],rem:0,remain:6,rememb:6,remot:[0,5],remote_ident:[0,5],remote_identifi:0,remote_identity_hash:[],remote_p:0,remotesensor:6,repeat:1,replac:[1,6,7],repli:[0,7],replic:6,reply_data:0,reply_text:0,repositori:1,repres:6,represent:[0,6],request:[2,6,7],request_destin:0,request_fail:0,request_id:[0,5],request_packet:0,request_path:[0,5],request_receipt:[0,5],request_receiv:0,requested_at:[0,5],requestexampl:0,requestreceipt:5,requir:[0,1,3,4,6,7,8],research:8,resend:5,reserv:6,resili:8,resourc:[0,2],resource_callback:5,resource_sending_conclud:0,resource_strategi:5,respect:3,respond:[0,5],respons:[2,5],response_callback:[0,5],response_gener:[0,5],response_tim:[],rest:[4,8],restart:7,restartsec:7,result:[0,6],reticulum:[0,3,4],retransmiss:6,retransmit:6,retri:6,reveal:[5,6,8],review:8,right:4,rn:[0,1,5,7],rnode:[2,6,8],rnodeinterfac:3,rnpath:[1,2],rnprobe:[1,2],rnsconfig:1,rnsd:[1,2],rnstatu:[1,2],robot:6,rotat:6,round:[0,5,7],rout:[3,4,5,6,8],router:3,rprogress:0,rsa:[],rssi:0,rtt:[0,5,6],rttstring:0,rule:6,run:[0,1,4,5,6,7,8],runtim:6,rust:1,rw:6,rx:[3,7],s:[0,1,3,4,6,7,8],said:6,same:[1,3,5,6,7],satisfi:6,save:[5,6],save_error:0,saved_filenam:0,scenario:[1,2,6],scope:3,screen:0,search:2,second:[0,3,5,6,8],secreci:[5,6,8],section:[3,4,6],secur:[6,8],see:[0,4,5,6,8],seen:6,segment:[3,4],segment_index:[],select:[0,3],self:[0,4,8],send:[0,3,5,6,7],sender:[0,4,6],sendig:0,sensibl:1,sensor:6,sent:[0,5,6,7],sentiment:6,separ:[4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,4,6],serve_path:0,server:[0,1,2],server_callback:0,server_destin:0,server_fil:0,server_ident:0,server_link:0,server_loop:0,server_packet_receiv:0,servic:[1,2,4],session:6,set:[0,3,4,5,6,7,8],set_default_app_data:5,set_delivery_callback:[0,5],set_link_closed_callback:0,set_link_established_callback:[0,5],set_packet_callback:[0,5],set_proof_requested_callback:5,set_proof_strategi:[0,5],set_remote_identified_callback:[0,5],set_resource_callback:5,set_resource_concluded_callback:[0,5],set_resource_started_callback:[0,5],set_resource_strategi:[0,5],set_timeout:[0,5],set_timeout_callback:[0,5],setdaemon:0,setup:[0,2,3],sever:[1,4,5,7],sha256:8,sha:[5,6],shall:6,share:[1,4,5,6,7],she:4,shelf:[6,8],shop:0,shortest:6,shorthand:7,should:[0,3,4,5,6,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:8,sight:4,sign:[5,6],signatur:[5,6,8],significantli:[],similar:[3,4,7,8],simpl:[0,6,7,8],simplest:6,simpli:[0,1,3,4,6,7],simplic:6,sinc:[0,1,3,4,5,6],singl:[0,3,5,6,8],singular:6,sit:[],site:[2,3],situat:[4,6],size:[0,5,6],size_str:0,sleep:0,slice:0,slottim:[3,7],slow:[0,3,6],small:[0,3,4,6,8],snr:0,so:[0,1,3,4,5,6,7,8],softwar:[1,3,6,8],some:[0,1,3,4,6],someth:6,somethign:0,soon:5,sort:[3,6],soundmodem:3,sourc:[0,1,4,6,8],space:[0,4,8],span:6,special:[6,7],specif:[0,2,3,5,8],specifi:[0,1,3,4,5,7],spectrum:[3,6],speed:[3,7],split:0,sponsor:8,spread:3,spreadingfactor:3,squelch:3,ssid:3,stabl:[6,8],stack:[0,1,4,6,7,8],stage:6,stai:[0,7],standard:[1,6],start:[0,2,3,5,6,7],startlimitintervalsec:7,startup:0,state:0,station:[3,6],stationari:4,statist:0,statu:[0,1,2,5,6,7],stdout:0,step:1,still:[0,4,6],stock:0,stop:8,stopbit:[3,7],store:[0,6],store_tru:0,str:0,strategi:5,stream:6,strength:8,strictli:6,string:[0,5],strong:6,structur:6,subject:[],subnet:4,subsequ:6,succe:1,successful:5,successfulli:0,sucessfulli:6,sudo:7,suffic:6,suffici:[6,7],suffix:0,suit:[1,6],suitabl:[0,3,4,6],suppli:[4,5,6],support:[0,2,4,6,8],sure:[1,7],sy:0,symlink:[1,7],symmetr:[5,6],system:[0,1,2,3,5,8],systemctl:7,systemd:7,t:[0,1,3,4,6],tabl:[4,6],tail:3,take:[0,1,6,8],taken:[0,6],tangerin:0,target:[0,7],target_host:3,target_port:3,tcp:[1,2,4,6,8],tcpclientinterfac:3,tcpinterfac:7,tcpserverinterfac:3,tdata:0,teardown:[0,5],teardown_reason:0,teffect:0,tell:0,temperatur:6,ten:6,term:[4,6],termin:[1,5],terminolog:[4,6],termux:1,test:[3,6],testnet:7,text:[0,4,6],tfile:0,than:[0,4,6],thei:[0,4,5,6],them:[0,3,6],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7],those:4,though:6,thourough:8,thread:0,three:[4,6],throough:3,throttl:4,through:[3,4,5,6,8],throughout:6,throughput:[6,8],thu:[4,5,6],ti:[0,6],time:[0,1,3,4,5,6,7],timeout:[0,5],timeout_callback:[],timeoutarg:0,timestr:0,tnc:[3,5,7,8],to_fil:5,todai:6,todo:[],togeth:6,token:[5,6],too:[0,4,6],tool:8,top:[4,6],topic:6,topographi:4,topolog:[3,6],total:[6,8],total_s:0,touch:8,toward:[0,6],tradit:4,traffic:[0,3,4,5,6],tramsit:[],transceiv:[3,6,8],transfer:[0,5,6,8],transfer_s:0,transmiss:[3,6],transmit:[0,3,6],transpar:[3,6],transport:[0,2,4,7,8],transport_en:5,transport_id:[],transport_typ:[],travers:6,treat:6,tri:0,trip:[0,5,7],trivial:8,truli:6,truncat:[5,6],truncated_hash:5,truncated_hashlength:5,trust:6,trustless:[6,8],ttime:0,ttransfer:0,ttyusb0:[3,7],ttyusb1:3,ttyusb2:3,tunnel:[6,8],tupl:5,turnaround:3,tutori:1,two:[0,3,4,6],tx:[3,7],txpower:3,txtail:[3,7],type:[0,2,3,4,5,7],typeerror:5,ubuntu:7,udp:[2,4,6,7,8],udpinterfac:[3,7],umsgpack:0,uncencrypt:0,under:7,underli:[4,8],understand:[1,2],unencrypt:[0,5,6],unequivoc:6,unforg:8,unidentifi:0,unifi:4,uninterest:0,uniqu:[6,8],unit:[0,7],unknown:[0,5,6],unless:[1,5,6],unlicens:6,unpack:0,unpackb:0,unplug:7,unreli:3,unsign:7,unsupport:5,until:[0,5,6],unwant:6,up:[0,1,4,6,7,8],updat:[0,1,5],upgrad:1,upon:[0,6],upset:0,urandom:8,us:[0,2,3,4,5,6],usabl:6,usag:7,usb:[4,6,7,8],useabl:6,user:[0,1,4,6,7],user_input:0,userland:8,usernameher:7,usr:7,utf:0,util:[0,2,6],utilis:[4,6,7,8],v:7,valid:[0,3,5,6,7],valu:[5,6],valueerror:[0,5],vari:7,variabl:0,varieti:[3,6,8],variou:[0,6],ve:1,vendor:0,verbos:7,veri:[4,5,6,7,8],verif:[5,6],verifi:[0,5,6],versa:[4,8],version:7,vhf:[4,6],via:[1,3,6,7],vice:[4,8],view:[1,6,7],virtual:4,visibl:0,wa:[0,4,5,6,8],wai:[0,1,3,4,6],wait:[0,6],want:[0,1,3,4,6,7,8],wantedbi:7,warrant:8,wast:3,wb:0,we:[0,3,6],well:[4,5,6,8],went:0,were:4,what:[0,1,2,5,6],whatev:[5,6],wheel:1,when:[0,1,3,4,5,6,7],whenev:5,where:[2,4,5,6,7],whereupon:6,whether:[0,3,5,6],which:[0,1,3,4,5,6,7],who:6,wide:[6,8],wifi:[3,4,6,8],wildcard:0,willing:4,window:6,wire:[3,6,8],wireless:4,wish:6,within:[0,1,3,4,5,6],without:[4,6,8],won:0,work:[1,6,7,8],world:[4,8],worri:4,would:[3,4,6],write:[0,1,5],written:6,wrong:0,x25519:[5,6,8],x:6,xenon:0,y:0,ye:6,year:6,yet:[0,6],yi:0,you:[0,1,2,3,4,5,6,7,8],your:[0,1,2,3,4,6,8],yourself:[6,8],z:0,zero:[5,8],zeromq:4,zi:0},titles:["Code Examples","Getting Started Fast","Reticulum Network Stack Manual","Supported Interfaces","Building Networks","API Reference","Understanding Reticulum","Using Reticulum on Your System","What is Reticulum?"],titleterms:{"1":[],"2":[],"25":3,"class":5,"function":6,"public":6,"try":1,The:[6,7],With:1,android:1,announc:[0,6],api:5,auto:3,ax:3,base:1,basic:6,binari:6,bridg:4,broadcast:0,build:4,can:8,caveat:8,client:3,code:0,concept:4,configur:7,converg:4,creat:1,current:8,deliveri:[],destin:[5,6],detail:6,develop:1,devic:8,doe:8,echo:0,emptor:8,establish:6,exampl:[0,4],fast:1,filetransf:0,fix:7,format:6,further:6,get:[1,6],gipsum:[],goal:6,growth:4,ident:[5,6],identif:0,improv:7,includ:[1,7],indic:2,interconnect:4,interfac:[3,8],internet:4,introduct:6,kei:6,kiss:3,link:[0,5,6],lora:[3,4],manual:2,mechan:6,minim:0,motiv:6,name:[6,7],network:[1,2,4],node:6,offer:8,orem:[],over:4,overview:4,packet:[5,6],particip:1,pathfind:[],port:7,predict:[],prioritis:6,program:[1,7],protocol:6,proven:[],reach:6,receipt:5,refer:[5,6],request:[0,5],resourc:[5,6],respons:0,reticulum:[1,2,5,6,7,8],rnode:3,rnpath:7,rnprobe:7,rnsd:7,rnstatu:7,run:[],scenario:4,serial:[3,7],server:3,servic:7,setup:6,site:4,specif:6,stack:2,start:1,statu:8,step:[],support:3,system:[6,7],tabl:2,tcp:3,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:[1,7],what:8,where:8,your:7}}) \ No newline at end of file +Search.setIndex({docnames:["examples","gettingstartedfast","index","interfaces","networks","reference","understanding","using","whatis"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["examples.rst","gettingstartedfast.rst","index.rst","interfaces.rst","networks.rst","reference.rst","understanding.rst","using.rst","whatis.rst"],objects:{"RNS.Destination":{announce:[5,1,1,""],app_and_aspects_from_name:[5,1,1,""],clear_default_app_data:[5,1,1,""],create_keys:[5,1,1,""],decrypt:[5,1,1,""],deregister_request_handler:[5,1,1,""],encrypt:[5,1,1,""],full_name:[5,1,1,""],get_private_key:[5,1,1,""],hash:[5,1,1,""],hash_from_name_and_identity:[5,1,1,""],load_private_key:[5,1,1,""],register_request_handler:[5,1,1,""],set_default_app_data:[5,1,1,""],set_link_established_callback:[5,1,1,""],set_packet_callback:[5,1,1,""],set_proof_requested_callback:[5,1,1,""],set_proof_strategy:[5,1,1,""],sign:[5,1,1,""]},"RNS.Identity":{CURVE:[5,2,1,""],KEYSIZE:[5,2,1,""],TRUNCATED_HASHLENGTH:[5,2,1,""],decrypt:[5,1,1,""],encrypt:[5,1,1,""],from_bytes:[5,1,1,""],from_file:[5,1,1,""],full_hash:[5,1,1,""],get_private_key:[5,1,1,""],get_public_key:[5,1,1,""],get_random_hash:[5,1,1,""],load_private_key:[5,1,1,""],load_public_key:[5,1,1,""],recall:[5,1,1,""],recall_app_data:[5,1,1,""],sign:[5,1,1,""],to_file:[5,1,1,""],truncated_hash:[5,1,1,""],validate:[5,1,1,""]},"RNS.Link":{CURVE:[5,2,1,""],ESTABLISHMENT_TIMEOUT_PER_HOP:[5,2,1,""],KEEPALIVE:[5,2,1,""],get_remote_identity:[5,1,1,""],identify:[5,1,1,""],inactive_for:[5,1,1,""],no_inbound_for:[5,1,1,""],no_outbound_for:[5,1,1,""],request:[5,1,1,""],set_packet_callback:[5,1,1,""],set_remote_identified_callback:[5,1,1,""],set_resource_callback:[5,1,1,""],set_resource_concluded_callback:[5,1,1,""],set_resource_started_callback:[5,1,1,""],set_resource_strategy:[5,1,1,""],teardown:[5,1,1,""]},"RNS.Packet":{ENCRYPTED_MDU:[5,2,1,""],PLAIN_MDU:[5,2,1,""],resend:[5,1,1,""],send:[5,1,1,""]},"RNS.PacketReceipt":{get_rtt:[5,1,1,""],get_status:[5,1,1,""],set_delivery_callback:[5,1,1,""],set_timeout:[5,1,1,""],set_timeout_callback:[5,1,1,""]},"RNS.RequestReceipt":{get_progress:[5,1,1,""],get_request_id:[5,1,1,""],get_response:[5,1,1,""],get_response_time:[5,1,1,""],get_status:[5,1,1,""]},"RNS.Resource":{advertise:[5,1,1,""],cancel:[5,1,1,""],get_progress:[5,1,1,""]},"RNS.Reticulum":{MTU:[5,2,1,""],should_use_implicit_proof:[5,1,1,""],transport_enabled:[5,1,1,""]},"RNS.Transport":{PATHFINDER_M:[5,2,1,""],deregister_announce_handler:[5,1,1,""],has_path:[5,1,1,""],hops_to:[5,1,1,""],next_hop:[5,1,1,""],next_hop_interface:[5,1,1,""],register_announce_handler:[5,1,1,""],request_path:[5,1,1,""]},RNS:{Destination:[5,0,1,""],Identity:[5,0,1,""],Link:[5,0,1,""],Packet:[5,0,1,""],PacketReceipt:[5,0,1,""],RequestReceipt:[5,0,1,""],Resource:[5,0,1,""],Reticulum:[5,0,1,""],Transport:[5,0,1,""]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"]},objtypes:{"0":"py:class","1":"py:method","2":"py:attribute"},terms:{"0":[0,3,5,6,7,8],"00":6,"000":[],"00000000":6,"00000100":6,"00000111":6,"01":[6,7],"01010000":6,"02":7,"05":0,"07":7,"1":[0,3,5,6,7],"10":[0,3,6,7],"100":[0,6],"1000":[0,6],"1024":0,"11":6,"115200":[3,7],"12":3,"1200":6,"125":3,"125000":3,"127":3,"128":[5,6,8],"13":7,"14":6,"141":[],"15":[3,6],"150":[3,7],"150m":3,"151":6,"16":[3,7],"18":6,"180":6,"182":[],"2":[0,3,6,7],"20":[0,3,6,7],"200":[3,7],"2000000":[],"205":[],"211":[],"237":[6,8],"24":3,"240":[],"25":[0,2,8],"255":3,"256":[5,6],"270":6,"2f":0,"3":[0,6,7,8],"323":[],"33":6,"34":6,"360":5,"3600":0,"37":7,"37428":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"4":[6,7],"409":[],"4242":[3,7],"430":6,"45":0,"469":7,"477":[5,6],"48555":3,"49555":3,"4965":7,"5":[0,3,5,6],"500":[5,6,8],"512":5,"55":3,"56b115c30cd386cad69c":7,"60":0,"600":3,"62":[6,8],"7":[3,6],"72":3,"77":6,"7ca6f4e4dc26ae329e61":[],"8":[0,3,7],"80":[5,6],"8001":3,"80e29bf7cccaf31431b3":6,"83":6,"86":[],"867":3,"867200000":3,"868":6,"88":3,"9":7,"900":6,"9382f334de63217a4278":7,"95":6,"abstract":6,"break":[5,6,8],"byte":[0,5,6,7,8],"case":[1,3,4,6,7],"class":[0,2,8],"default":[0,1,3,4,5,6,7],"do":[0,1,3,5,6,7,8],"float":[0,5],"function":[0,1,2,3,4,5,8],"import":[0,1,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6],"public":[0,2,5],"return":[0,5],"short":6,"static":5,"switch":3,"throw":[],"true":[0,3,5,7],"try":[0,2],"while":[0,4,5,6,8],A:[0,1,3,4,5,6,8],And:0,As:[4,5,6,8],At:[4,6],Be:[5,7],But:6,By:[0,3,5,6],For:[1,3,4,5,6,8],IN:[0,5],If:[0,1,3,4,5,6,7,8],In:[0,1,3,4,5,6,7,8],It:[0,1,3,5,6,8],No:[6,8],On:[0,1,7],One:5,Or:[3,6],That:6,The:[0,1,2,3,4,5,8],Then:1,There:[4,6,8],These:[3,6,7],To:[0,1,3,4,6,7,8],Will:5,With:[2,3,4,6,7],_:6,__:6,______:6,_______:6,________:6,________________:6,__init__:0,__main__:0,__name__:0,_exit:0,ab:0,abil:1,abl:[0,4,5,6,7],about:[0,1,4,5,6],abov:[1,3,6],absolut:[],accept:[5,6],accept_al:[0,5],accept_app:5,accept_non:5,access:[3,5,6,7],accord:6,accordingli:0,acheiv:6,achiev:[5,6],acknowledg:8,across:4,act:[5,6],action:0,activ:[0,1,5,6],actor:6,actual:[0,1,3,6],ad:[0,4,5,8],adapt:4,add:[0,1,3,4,7],add_argu:0,addit:[6,8],addr1:6,addr2:6,address:[0,3,4,5,6,8],adher:5,admin:3,administr:7,adress:[0,4,5,8],advantag:5,advertis:[0,5],advis:6,ae:[6,8],after:[0,4,6,7],again:[1,6],against:6,agent:6,agnost:[4,6],agnostic:6,aim:[2,6],air:8,airtim:3,aliv:[5,6],all:[0,1,2,3,4,5,6,7,8],alloc:7,allow:[0,1,3,4,5,6,7,8],allow_al:[0,5],allow_list:5,allow_non:5,allowed_list:5,almost:[3,6],along:[4,6],alreadi:[0,4,6],also:[0,1,3,4,5,6,7,8],alter:6,altern:[0,3,7],although:8,alwai:[5,6,7],amateur:[3,8],amet:[],amount:[3,4,5,6,8],an:[0,1,3,4,5,6,7,8],android:2,ani:[0,1,3,4,5,6,7,8],announc:[2,5],announce_handl:0,announced_ident:[0,5],announceloop:0,announcesampl:0,anonym:[4,5,6,8],anoth:[1,5,6,7],answer:[6,7],anyon:[0,4,5,6],anyth:[3,6],anywher:0,apart:6,api:[1,2,6,8],apk:1,app:[0,1,5,6],app_and_aspects_from_nam:5,app_data:[0,5],app_nam:[0,5],app_timeout:0,append:[0,6],appli:6,applic:[0,5,6,7],approach:7,approv:6,approxim:6,apt:1,ar:[0,1,3,4,5,6,7,8],arbitrari:[5,6],arbritrari:8,architectur:1,area:[3,4,8],arg:0,argon:0,argpars:0,argument:[0,5,7],argumentpars:0,arm64:2,around:6,arriv:[0,6],ask:[0,5],aspect:[0,5,6],aspect_filt:[0,5],assign:[6,7],associ:[1,5,6],assum:[3,6],asymmetr:8,attached_interfac:[],attempt:5,attribut:5,audit:8,authent:[5,6,8],author:6,auto:[2,5,6],auto_compress:5,autoconfigur:8,autodiscov:3,autointerfac:3,autom:6,automat:[0,3,4,5,6,7,8],autonom:[4,6],autoomat:0,avail:[0,1,3,4,6,7,8],availadbl:[],averag:6,avoid:[6,7],awai:[0,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b:[0,4],back:[0,6,8],background:1,backhaul:4,band:6,bandwidth:[3,4,6,8],bare:0,barrier:6,base:[2,3,4,5,6,7,8],basi:[5,6,8],basic:[0,1,2],baud:[3,6],beacon:3,becaus:[4,6],becki:0,becom:[0,4],been:[0,3,4,5,6,8],befor:[0,1,5,6],begin:[0,5],begun:5,behind:6,being:[3,5,6],belief:6,below:[1,3],benefici:7,best:[1,6,8],beta:8,better:3,between:[0,3,4,5,6],bgp:6,bi:6,bidirect:6,billion:4,bin:7,binari:[0,1,2],bind:3,bit:[5,6,8],blob:[0,6],board:8,boot:7,both:[3,4,5,6,8],bp:6,bridg:2,briefli:6,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:7,buffer:3,bug:8,build:[0,1,2,3,6,8],built:[1,6,8],bundl:0,c:[0,4,6],cabl:4,cad:6,calcul:[5,6],call:[0,4,5,6,8],callabl:5,callback:[0,5],callsign:3,can:[0,1,2,3,4,5,6,7],cancel:5,candid:4,cannot:0,capac:6,carambola:0,care:[5,8],carri:[5,6],carrier:[4,8],caution:3,caveat:2,cb:6,cbc:8,cd:1,cdma:3,censor:6,censorship:6,central:[4,6],certain:[0,3,4,6],challeng:6,chang:[0,1,5,6,7,8],channel:[0,3,4,6,8],channelarg:0,chapter:[1,3,4,6,8],charact:0,characterist:6,cheap:6,check:[0,1,5],checksum:[5,8],choos:[0,3],chose:6,chosen:4,chunk:0,ciphertext:5,ciphertext_token:5,cl:0,clear:[0,5,6],clear_default_app_data:5,clear_screen:0,client:[0,1,2,5],client_connect:0,client_disconnect:0,client_ident:0,client_loop:0,client_packet_receiv:0,client_request:0,clone:1,close:[0,5],closed_callback:5,closer:6,cluster:6,code:[1,2,3,6],codingr:3,com:[0,1],combin:[4,6],come:[1,6],command:[0,1,7],comment:3,common:[3,6],commun:[0,1,3,4,5,6,7,8],compat:[5,6],compil:1,complet:[0,1,4,5,6,8],complex:6,compon:6,compos:6,compress:[0,5,6],comput:[1,6,8],concaten:5,concept:[2,6],conclud:[0,5],concurr:[6,7],condit:6,config:[0,1,4,7],configarg:0,configdir:5,configpath:0,configur:[0,1,2,3,4,5,6,8],confirm:[6,8],conjunct:3,connect:[0,1,3,4,5,6,7,8],consequ:[],consid:[6,8],consist:6,constant:[5,6],construct:6,contact:6,contain:[0,4,5,6],content:[4,7],context:6,control:[0,3,4,5,6],conveni:0,convent:0,converg:2,coordin:[4,5,6,8],core:[4,6,8],correct:[0,6],correctli:0,correspond:6,cost:[6,8],could:[0,4,5,6,8],count:6,counter:0,cours:3,cover:8,coverag:4,cpu:0,creat:[0,2,3,5,6,7],create_kei:5,create_receipt:[0,5],creation:6,creator:6,critic:6,cryptograph:[4,8],cryptographi:[1,6,8],ctrl:0,cull:5,current:[0,2,3,5,6],current_download:0,current_filenam:0,curv:[4,5,6,8],curve25519:[4,5,6,8],custom:[5,6],custom_network_nam:3,d:[4,6],daemon:[5,7],dai:[4,6],data:[0,3,4,5,6,8],data_port:3,databit:[3,7],date:[0,1],db:0,dbm:[0,3],debian:[6,7],debug:[],decai:6,decid:[4,5,6],decod:0,decrypt:[5,6],dedic:6,def:0,default_timeout:[],defin:[0,3,6],definit:6,degrad:4,delai:6,deliv:[0,5],deliveri:[0,5,8],demand:5,demonstr:[0,3],depend:[1,4,7],deploi:6,deregist:5,deregister_announce_handl:5,deregister_request_handl:5,deriv:[6,8],describ:[3,5,6],descript:[0,7],design:[4,6,8],desir:[0,6],destin:[0,1,2,4,7],destination_1:0,destination_2:0,destination_clos:0,destination_hash:[0,5,7],destination_hexhash:0,detail:[0,1,2,5,7,8],detect:0,determin:[5,6],dev:[1,3,7],develop:[2,6,8],devic:[1,2,3,4,5,6,7],dh:5,dhcp:3,did:0,differ:[0,1,3,4,5,6,7,8],diffi:[4,6,8],digit:[6,8],dir:0,direct:[0,4,5,6],directli:[3,5,6,7,8],directori:[0,7],disabl:3,disable_encrypt:[],disappear:[],discard:6,disconnect:0,discover:3,discoveri:[3,6,7],discovery_port:3,discovery_scop:3,discrimin:4,discuss:6,disk:[0,5],displai:[0,6],distanc:6,distinct:[3,6],distribut:[0,1,4,5,6,7],divmod:0,document:6,doe:[0,1,2,3,4,5,6],doesn:3,dolor:[],domain:[1,3],don:[0,1,4],done:[0,1,4,6],dori:4,dot:[6,7],down:0,downgrad:[],download:0,download_began:0,download_conclud:0,download_finish:0,download_start:0,download_tim:0,driver:[7,8],droid:1,drop:6,due:4,duplex:[6,8],dynam:7,e:[0,4],each:[0,4,6],earlier:6,eas:6,easi:[3,6,7,8],easier:[1,4,7],easiest:[1,6],easili:[6,7,8],eca6f4e4dc26ae329e61:7,ecdh:[6,8],echo:[1,2,7],echo_destin:0,echo_request:0,ed25519:[6,8],edit:1,effici:[0,3,6,8],ei:0,either:[3,4,6],elaps:3,elif:0,ellipt:[4,5,6,8],els:[0,4,6],emploi:6,emptor:2,emul:1,enabl:[3,4,5,7],enable_transport:6,encapsul:[3,8],encod:0,encrypt:[0,1,4,5,6,8],encrypted_mdu:5,encryptionless:[],end:[0,4,5,6,8],endless:3,endpoint:[0,4,5,6],engin:[],enough:1,ensur:6,enter:0,entir:[4,6],entiti:6,entri:[0,6],enumer:0,environ:[1,6],environment:6,environmentlogg:6,ephemer:[4,5,6,8],equal:[4,6],equip:[4,6],equival:3,equl:[],error:0,especi:3,essenti:[1,6],establish:[0,5,8],established_callback:5,establishment_timeout_per_hop:5,etc:7,eth0:3,eth1:3,ethernet:[1,3,4,6,8],even:[4,6,7,8],everi:[0,3,4,5,6],everyon:[4,6],everyth:[0,4,6],evolv:4,exact:6,exactli:[5,6],exampl:[1,2,3,5,6,7,8],example_util:[0,7],exampleannouncehandl:0,exce:0,except:[0,3,6],exchang:[4,5,6,8],execstart:7,execut:[0,1,5,7],exhaust:6,exist:[0,1,3,6,8],exit:[0,1,5,7],exit_handl:0,expand:6,expect:[0,5,6,7],experi:[1,6],experiment:8,explain:5,explan:6,explicit:5,explicitli:[],explor:[0,6,8],expos:[3,5],extend:[0,1,6],extern:[3,5,8],extra:[1,3,4],extrem:8,f:1,fa7ddfab5213f916dea:6,face:1,fact:[6,8],factor:3,fail:[0,5],failed_callback:[0,5],fals:[0,3,5],far:[4,6],fast:2,fastest:3,featur:[6,8],feed:5,feedback:0,fernet:8,few:[1,4,6,7,8],field:6,file:[0,1,4,5,6,7,8],file_resourc:0,file_s:0,filelist:0,filelist_data:0,filelist_receiv:0,filelist_timeout_job:0,filenam:0,filetransf:[1,2,5],filter:[0,4,6],find:[4,6],firmwar:6,first:[0,1,5,6],fit:0,five:0,fix:[2,6],flag:[5,6],flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,1,3,6,7,8],forcibl:5,foreground:1,foremost:8,form:[3,4,5,6],format:[0,2,8],forth:0,forward:[3,5,6,8],forward_ip:3,forward_port:3,found:[0,1,4,6,7],four:4,frame:3,frankfurt:7,free:8,frequenc:[3,6],friendli:8,from:[0,1,3,4,5,6,7,8],from_byt:5,from_fil:5,fromhex:0,fruit:0,ftdi_ft230x_basic_uart_43891ckm:7,full:[0,3,5,6,7,8],full_hash:5,full_nam:[5,7],fulli:[6,8],funcion:5,fundament:6,further:[1,2],futur:[4,6],g:0,ga:0,gatekeep:6,gatewai:4,gen:[],gener:[0,4,5,6,8],generalis:8,geograph:4,get:[0,2,3,5,8],get_packet_rssi:0,get_packet_snr:0,get_private_kei:5,get_progress:[0,5],get_public_kei:5,get_random_hash:[0,5],get_remote_ident:[0,5],get_request_id:5,get_respons:5,get_response_tim:5,get_rtt:[0,5],get_statu:5,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6],given:[4,6],global:[0,3,4,8],go:[0,1,6],goal:[2,3],good:[4,6],got:0,got_respons:0,govern:6,grape:0,great:6,greater:6,greatli:3,group:[3,5,6],group_id:3,grow:4,growth:2,guarante:6,guid:[1,5,6],h:[1,6,7],ha:[0,3,4,5,6,8],had:6,half:[6,8],hand:[0,1],handheld:6,handl:[0,4,5,6,7,8],handler:[0,5],happen:[0,5],hardlin:4,hardwar:[3,4,5,6,8],has_path:[0,5],hasattr:0,hash:[0,1,5,6,7],hash_from_name_and_ident:5,hashmap:0,have:[0,1,3,4,5,6,7],hazard:5,header:6,header_1:6,header_2:6,header_typ:[],hear:6,heard:[5,6],helium:0,hellman:[4,6,8],help:[0,4,6,7,8],her:4,here:[0,1,3,6,7],hexadecim:[0,6,7],high:[3,6,8],higher:[6,8],highli:6,hill:4,hint:0,hit:0,hmac:8,hoc:8,hold:[5,6],home:4,homebrew:3,hop:[4,5,6,7,8],hops_to:5,host:[0,6,7,8],hostnam:3,hour:0,how:[0,3,4,6,8],howev:[4,6],http:[0,1],hub:3,human:[0,5],i:0,id:[3,5,6,7],id_callsign:3,id_interv:3,idea:6,ident:[0,2,8],identif:[2,3,8],identifi:[0,3,5,6],identify:6,identifyexampl:0,ie:[],if00:7,ifconfig:7,ignor:[3,5,6],ignored_devic:3,illustr:4,immedi:[1,7],impact:6,implement:[0,4,5,6,8],implic:3,implicit:[5,6],improv:[2,3],inactive_for:5,inbound:5,includ:[0,2,3,5,6],incom:[0,3,5],incompat:[5,6],increas:3,incur:3,indefinit:6,independ:5,independt:8,index:[0,1,2],indirectli:6,individu:6,inevit:6,infer:6,info:[5,6],inform:[0,1,2,4,5,6],infrastructur:[3,4,6],ingo:5,initi:[0,4,5,6,8],initialis:[0,5,7],input:0,insert:6,inspect:4,instal:[1,3,4,7],instanc:[0,5,7],instanti:5,instead:[0,3,6,7],integr:[4,6],intend:[4,6],intention:6,inter:5,interact:[0,1,5,6],interconnect:2,interest:6,interfac:[0,1,2,4,5,6,7],interface_en:[3,7],intermitt:3,intern:[3,5,6],internet:[1,2,3,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],investig:4,involv:4,io:[1,7],ip:[3,6,8],ipsum:[],ipv6:3,is_connected_to_shared_inst:0,is_request:[],is_respons:[],isdir:0,isfil:0,island:4,ism:6,isol:3,its:[5,6],itself:[2,6],iv:8,job:0,join:[0,6],just:[0,3,4,6,8],k:0,kb:7,kbp:6,keep:[0,4,5,6,7,8],keepal:[5,6],kei:[0,2,4,5,8],kept:[3,4,5,6],kernel:[3,7,8],keyboardinterrupt:0,keyerror:5,keypair:6,keysiz:5,keystor:4,khz:3,ki:0,kill:5,kilomet:6,kind:[3,4,6],kiss:[2,7],kiss_fram:3,kissinterfac:[3,7],know:[0,4,5,6],knowledg:[4,6],known:[0,5,6],krypton:0,lack:6,laid:6,lan:3,larg:[0,4,6],larger:6,laser:3,last:[0,3,5],last_unit:0,latenc:[6,8],later:[0,1],latest:[0,1],latest_client_link:0,launch:1,lavg:6,layer:[3,4,6,8],lead:6,learn:[0,1,6],least:[3,6,8],leav:[4,6],ledger:6,left:[5,6],len:0,length:[0,5],less:[3,6,8],let:[0,3,4,6,7],level:[3,6],libffi:1,librari:1,licens:6,light:[],like:[1,3,5,6,7,8],limit:6,line:[0,1,4,6,8],link:[2,3,4,8],link_clos:0,link_establish:0,linkexampl:0,linux:[1,6],list:[0,3,5,6,8],list_deliv:0,list_fil:0,list_packet:0,list_receipt:0,list_timeout:0,listdir:0,listen:[0,3,6],listen_ip:3,listen_port:3,littl:6,lki:6,lkr:6,ll:[0,1,8],ln:[1,7],load:[0,5,7],load_private_kei:5,load_public_kei:5,local:[0,1,3,4,5,6,7,8],locat:[1,4,6,7],log:0,log_error:0,log_info:0,loglevel:[0,5],longer:[0,4,6],longest:3,look:[0,1,3,6,7],loop:0,lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[3,4,6,8],lxmf:1,m:[0,1,6,7],mac:6,machin:6,made:[5,6],mai:[3,6],main:0,mainli:4,maintain:6,make:[1,6,7],malici:6,manag:[1,5],mani:[0,1,3,4,6,7,8],manipul:6,manual:[0,1,3,4,5,7],mark:6,markqvist:[0,1],master:[0,5],match:[0,3],maximum:[5,6],mcu:6,mdu:0,mean:[6,7],measur:6,mechan:[2,3],medium:[3,4,6,8],member:4,memori:6,mention:6,menu:0,menu_mod:0,mesh:[4,8],messag:[0,1,5,6,7],messeng:6,metavar:0,method:[0,5,6],methodolog:[6,7],mhz:[3,6],mi:0,microcontrol:6,microwav:6,might:[3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,4,6],minut:[0,1,6],mix:[3,4,7],mode:[0,1,6,8],modem:[3,4,5,6,8],modul:[0,1,3,6,7,8],moment:[6,8],monitor:6,moon:0,mor:[],more:[1,3,4,5,6,8],most:[1,3,4,6,7,8],motiv:2,move:1,mqtt:4,mtu:[5,6,8],much:6,multi:[6,7,8],multicast:3,multilater:6,multipl:[0,3,4,6,7],multipoint:6,must:[0,1,4,5,6],mw:3,my:6,mycal:3,n:0,name:[0,2,4,5],namespac:0,nano:1,narg:0,natur:3,necesarri:4,necessari:[1,5,6],necessarili:6,need:[0,1,2,3,4,6,7,8],neglig:6,neither:6,neon:0,netifac:[1,3],network:[0,3,5,6,7,8],never:[3,5],newer:6,newest:6,newli:[4,6],next:[1,4,5,6],next_hop:5,next_hop_interfac:5,nicknam:6,no1cll:3,no_inbound_for:5,no_outbound_for:5,nobl:0,noble_ga:0,noble_gas:0,node:[2,3,4,7,8],nomad:1,nomadnet:1,non:[5,6],none:[0,3,5,6,7],normal:0,notat:[6,7],note:[0,3,6,7],noth:8,notic:6,notif:[0,5],now:[0,1,4,6,7],nt:0,num:0,number:[0,1,3,4,5,6,7],object:5,obtain:6,occur:8,off:[6,8],offer:[1,2,3,5,6],often:[4,6,7],oganesson:0,old:6,onc:[0,4,5,6,8],one:[0,1,3,4,5,6,7,8],ones:3,oneself:6,onli:[0,1,3,4,5,6,7,8],onlin:6,open:[0,3,5,6,7,8],openmodem:[3,8],openssl:1,oper:[3,4,5,6,8],opt:6,optic:8,optim:4,option:[0,1,3,4,5,7],order:7,orem:[],organis:[3,4],orient:6,origin:[0,4,6],original_hash:[],os:[0,3,6,7,8],ospf:6,other:[1,3,4,5,6,7],otherwis:[5,6],our:[0,6],out:[0,3,4,5,6,8],outbound:5,outgo:[0,3,5,6,7],outli:4,outlier:4,outlin:[1,6],output:7,outward:6,over:[0,1,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,overview:[2,3,6],own:[0,1,4,5,6],owner:[],p:[0,6],pack:0,packag:1,packb:0,packet:[0,1,2,3,4,7,8],packet_callback:0,packet_deliv:0,packet_hash:0,packet_receipt:[0,5],packet_timed_out:0,packet_typ:[],packetreceipt:[0,5],pad:8,page:[2,6],pair:[3,6],palm:[],paramet:[3,4,5],pariti:[3,7],pars:0,parse_arg:0,parser:0,part:[0,4,6],particip:[2,6],pass:[0,3,4,5,6],past:[],path:[0,1,5,6,7],path_respons:5,pathfind:[],pathfinder_m:5,pattern:6,payload:[5,6],peach:0,peer:[0,1,3,5,6],peer_pub_byt:[],peer_sig_pub_byt:[],peopl:6,per:[5,6,8],percent:0,perfect:[],perform:[0,3,4,6],period:[3,6],perman:7,persecut:6,persist:[3,7],person:6,pet:0,philosophi:6,physic:[3,6,7],pi:[0,4,6,7,8],piec:6,ping:[1,7],pip3:[1,3,7],pip:[1,7],pkcs7:8,pkg:1,place:[4,6,7],plain:[0,3,5,6],plain_mdu:5,plaintext:[0,5],plan:4,platform:6,pleas:[0,3,7,8],plenti:6,plu:6,plug:7,pmr:6,point:[1,3,4,6],pomelo:0,poorli:4,port0:7,port:[2,3,4,6,8],posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,3,6,7],power:3,practic:[6,8],pre:[1,3,5,6],preambl:[3,7],precompil:1,predict:6,prefer:6,prepar:[0,4],prerequisit:5,presenc:5,preserv:5,press:0,pretend:6,pretti:6,prettyhexrep:0,previou:0,previous:[4,5,6],primari:6,principl:[6,8],print:0,print_filelist:0,print_help:0,print_menu:0,prioriti:6,prioritis:[2,4],privaci:8,privat:[3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,procedur:6,process:[1,5,6],product:[],program:[0,2,3,5,6],program_setup:0,programm:6,programmat:6,progress:[0,5,8],progress_callback:5,project:1,prompt:0,proof:[0,5,6,7],proof_packet:0,proof_requested_callback:5,proof_strategi:5,propag:6,properti:5,protocol:[1,2,8],prove:[0,6],prove_al:[0,5],prove_app:5,prove_non:5,proven:[5,6],provid:[0,1,2,3,4,5,6,8],prv_byte:5,pub_byt:5,public_inform:0,purchas:[4,6,8],purg:5,purpos:[3,5,6],purposefulli:6,put:0,py:[0,1,7],pyseri:1,python3:[1,7],python:[1,3,6,7,8],q:[0,7],queri:[0,1],queue:6,quiet:7,quinc:0,quit:0,r:[0,6],radio:[1,3,4,5,6,7,8],radiu:6,radon:0,rais:[0,5],ram:3,rand:6,randint:0,random:[0,5,6],random_text_gener:0,randomli:[0,6],rang:[0,1,3,4,6,8],raspberri:[4,6,7,8],rate:[0,3],rb:0,re:[0,3,5,6],reach:[2,4],reachabl:[0,4,5,6],read:[0,1,6],readabl:[0,5,6],readi:[0,1,4,5],readili:8,real:[4,8],realli:[3,5],reason:[3,6],reassembl:6,recal:[0,5],recall_app_data:5,recap:6,receipt:[0,2,6],receiv:[0,5,6,7],received_announc:[0,5],reception_rssi:0,reception_snr:0,reception_stat:0,recip:1,recipi:6,recommend:[0,6],reconstruct:6,record:6,recoveri:3,recreat:6,refer:[0,1,2],regard:6,regist:[0,5],register_announce_handl:[0,5],register_request_handl:[0,5],rel:[6,8],relat:1,releas:[1,6],relev:[0,5],reli:6,reliabl:[3,4,6,8],rem:0,remain:6,rememb:6,remot:[0,5],remote_ident:[0,5],remote_identifi:0,remote_identity_hash:[],remote_p:0,remotesensor:6,repeat:1,replac:[1,6,7],repli:[0,7],replic:6,reply_data:0,reply_text:0,repositori:1,repres:6,represent:[0,6],request:[2,6,7],request_destin:0,request_fail:0,request_id:[0,5],request_packet:0,request_path:[0,5],request_receipt:[0,5],request_receiv:0,requested_at:[0,5],requestexampl:0,requestreceipt:5,requir:[0,1,3,4,6,7,8],research:8,resend:5,reserv:6,resili:8,resourc:[0,2],resource_callback:5,resource_sending_conclud:0,resource_strategi:5,respect:3,respond:[0,5],respons:[2,5],response_callback:[0,5],response_gener:[0,5],response_tim:[],rest:[4,8],restart:7,restartsec:7,result:[0,6],reticulum:[0,3,4],retransmiss:6,retransmit:6,retri:6,reveal:[5,6,8],review:8,right:4,rn:[0,1,5,7],rnode:[2,6,8],rnodeinterfac:3,rnpath:[1,2],rnprobe:[1,2],rnsconfig:1,rnsd:[1,2],rnstatu:[1,2],robot:6,rotat:6,round:[0,5,7],rout:[3,4,5,6,8],router:3,rprogress:0,rsa:[],rssi:0,rtt:[0,5,6],rttstring:0,rule:6,run:[0,1,4,5,6,7,8],runtim:6,rust:1,rw:6,rx:[3,7],s:[0,1,3,4,6,7,8],said:6,same:[1,3,5,6,7],satisfi:6,save:[5,6],save_error:0,saved_filenam:0,scenario:[1,2,6],scope:3,screen:0,search:2,second:[0,3,5,6,8],secreci:[5,6,8],section:[3,4,6],secur:[6,8],see:[0,4,5,6,8],seen:6,segment:[3,4],segment_index:[],select:[0,3],self:[0,4,8],send:[0,3,5,6,7],sender:[0,4,6],sendig:0,sensibl:1,sensor:6,sent:[0,5,6,7],sentiment:6,separ:[4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,4,6],serve_path:0,server:[0,1,2],server_callback:0,server_destin:0,server_fil:0,server_ident:0,server_link:0,server_loop:0,server_packet_receiv:0,servic:[1,2,4],session:6,set:[0,3,4,5,6,7,8],set_default_app_data:5,set_delivery_callback:[0,5],set_link_closed_callback:0,set_link_established_callback:[0,5],set_packet_callback:[0,5],set_proof_requested_callback:5,set_proof_strategi:[0,5],set_remote_identified_callback:[0,5],set_resource_callback:5,set_resource_concluded_callback:[0,5],set_resource_started_callback:[0,5],set_resource_strategi:[0,5],set_timeout:[0,5],set_timeout_callback:[0,5],setdaemon:0,setup:[0,2,3],sever:[1,4,5,7],sha256:8,sha:[5,6],shall:6,share:[1,4,5,6,7],she:4,shelf:[6,8],shop:0,shortest:6,shorthand:7,should:[0,3,4,5,6,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:8,sight:4,sign:[5,6],signatur:[5,6,8],significantli:[],similar:[3,4,7,8],simpl:[0,6,7,8],simplest:6,simpli:[0,1,3,4,6,7],simplic:6,sinc:[0,1,3,4,5,6],singl:[0,3,5,6,8],singular:6,sit:[],site:[2,3],situat:[4,6],size:[0,5,6],size_str:0,sleep:0,slice:0,slottim:[3,7],slow:[0,3,6],small:[0,3,4,6,8],snr:0,so:[0,1,3,4,5,6,7,8],softwar:[1,3,6,8],some:[0,1,3,4,6],someth:6,somethign:0,soon:5,sort:[3,6],soundmodem:3,sourc:[0,1,4,6,8],space:[0,4,8],span:6,special:[6,7],specif:[0,2,3,5,8],specifi:[0,1,3,4,5,7],spectrum:[3,6],speed:[3,7],split:0,sponsor:8,spread:3,spreadingfactor:3,squelch:3,ssid:3,stabl:[6,8],stack:[0,1,4,6,7,8],stage:6,stai:[0,7],standard:[1,6],start:[0,2,3,5,6,7],startlimitintervalsec:7,startup:0,state:0,station:[3,6],stationari:4,statist:0,statu:[0,1,2,5,6,7],stdout:0,step:1,still:[0,4,6],stock:0,stop:8,stopbit:[3,7],store:[0,6],store_tru:0,str:0,strategi:5,stream:6,strength:8,strictli:6,string:[0,5],strong:6,structur:6,subject:[],subnet:4,subsequ:6,succe:1,successful:5,successfulli:0,sucessfulli:6,sudo:[1,7],suffic:6,suffici:[6,7],suffix:0,suit:[1,6],suitabl:[0,3,4,6],suppli:[4,5,6],support:[0,2,4,6,8],sure:[1,7],sy:0,symlink:[1,7],symmetr:[5,6],system:[0,1,2,3,5,8],systemctl:7,systemd:7,t:[0,1,3,4,6],tabl:[4,6],tail:3,take:[0,1,6,8],taken:[0,6],tangerin:0,target:[0,7],target_host:3,target_port:3,tcp:[1,2,4,6,8],tcpclientinterfac:3,tcpinterfac:7,tcpserverinterfac:3,tdata:0,teardown:[0,5],teardown_reason:0,teffect:0,tell:0,temperatur:6,ten:6,term:[4,6],termin:[1,5],terminolog:[4,6],termux:1,test:[3,6],testnet:7,text:[0,4,6],tfile:0,than:[0,4,6],thei:[0,4,5,6],them:[0,3,6],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7],those:4,though:6,thourough:8,thread:0,three:[4,6],throough:3,throttl:4,through:[3,4,5,6,8],throughout:6,throughput:[6,8],thu:[4,5,6],ti:[0,6],time:[0,1,3,4,5,6,7],timeout:[0,5],timeout_callback:[],timeoutarg:0,timestr:0,tnc:[3,5,7,8],to_fil:5,todai:6,todo:[],togeth:6,token:[5,6],too:[0,4,6],tool:8,top:[4,6],topic:6,topographi:4,topolog:[3,6],total:[6,8],total_s:0,touch:8,toward:[0,6],tradit:4,traffic:[0,3,4,5,6],tramsit:[],transceiv:[3,6,8],transfer:[0,5,6,8],transfer_s:0,transmiss:[3,6],transmit:[0,3,6],transpar:[3,6],transport:[0,2,4,7,8],transport_en:5,transport_id:[],transport_typ:[],travers:6,treat:6,tri:0,trip:[0,5,7],trivial:8,truli:6,truncat:[5,6],truncated_hash:5,truncated_hashlength:5,trust:6,trustless:[6,8],ttime:0,ttransfer:0,ttyusb0:[3,7],ttyusb1:3,ttyusb2:3,tun0:3,tunnel:[6,8],tupl:5,turnaround:3,tutori:1,two:[0,3,4,6],tx:[3,7],txpower:3,txtail:[3,7],type:[0,2,3,4,5,7],typeerror:5,ubuntu:7,udp:[2,4,6,7,8],udpinterfac:[3,7],umsgpack:0,uncencrypt:0,under:7,underli:[4,8],understand:[1,2],unencrypt:[0,5,6],unequivoc:6,unforg:8,unidentifi:0,unifi:4,uninterest:0,uniqu:[6,8],unit:[0,7],unknown:[0,5,6],unless:[1,5,6],unlicens:6,unpack:0,unpackb:0,unplug:7,unreli:3,unsign:7,unsupport:5,until:[0,5,6],unwant:6,up:[0,1,4,6,7,8],updat:[0,1,5],upgrad:1,upon:[0,6],upset:0,urandom:8,us:[0,2,3,4,5,6],usabl:6,usag:7,usb:[4,6,7,8],useabl:6,user:[0,1,4,6,7],user_input:0,userland:8,usernameher:7,usr:7,utf:0,util:[0,2,6],utilis:[4,6,7,8],v:7,valid:[0,3,5,6,7],valu:[5,6],valueerror:[0,5],vari:7,variabl:0,varieti:[3,6,8],variou:[0,6],ve:1,vendor:0,verbos:7,veri:[4,5,6,7,8],verif:[5,6],verifi:[0,5,6],versa:[4,8],version:7,vhf:[4,6],via:[1,3,6,7],vice:[4,8],view:[1,6,7],virtual:4,visibl:0,wa:[0,4,5,6,8],wai:[0,1,3,4,6],wait:[0,6],want:[0,1,3,4,6,7,8],wantedbi:7,warrant:8,wast:3,wb:0,we:[0,3,6],well:[4,5,6,8],went:0,were:4,what:[0,1,2,5,6],whatev:[5,6],wheel:1,when:[0,1,3,4,5,6,7],whenev:5,where:[2,4,5,6,7],whereupon:6,whether:[0,3,5,6],which:[0,1,3,4,5,6,7],who:6,wide:[6,8],wifi:[3,4,6,8],wildcard:0,willing:4,window:6,wire:[3,6,8],wireless:4,wish:6,within:[0,1,3,4,5,6],without:[4,6,8],wlan0:3,won:0,work:[1,6,7,8],world:[4,8],worri:4,would:[3,4,6],write:[0,1,5],written:6,wrong:0,x25519:[5,6,8],x:6,xenon:0,y:0,ye:6,year:6,yet:[0,6],yi:0,you:[0,1,2,3,4,5,6,7,8],your:[0,1,2,3,4,6,8],yourself:[6,8],z:0,zero:[5,8],zeromq:4,zi:0},titles:["Code Examples","Getting Started Fast","Reticulum Network Stack Manual","Supported Interfaces","Building Networks","API Reference","Understanding Reticulum","Using Reticulum on Your System","What is Reticulum?"],titleterms:{"1":[],"2":[],"25":3,"class":5,"function":6,"public":6,"try":1,The:[6,7],With:1,android:1,announc:[0,6],api:5,arm64:1,auto:3,ax:3,base:1,basic:6,binari:6,bridg:4,broadcast:0,build:4,can:8,caveat:8,client:3,code:0,concept:4,configur:7,converg:4,creat:1,current:8,deliveri:[],destin:[5,6],detail:6,develop:1,devic:8,doe:8,echo:0,emptor:8,establish:6,exampl:[0,4],fast:1,filetransf:0,fix:7,format:6,further:6,get:[1,6],gipsum:[],goal:6,growth:4,ident:[5,6],identif:0,improv:7,includ:[1,7],indic:2,interconnect:4,interfac:[3,8],internet:4,introduct:6,kei:6,kiss:3,link:[0,5,6],lora:[3,4],manual:2,mechan:6,minim:0,motiv:6,name:[6,7],network:[1,2,4],node:6,offer:8,orem:[],over:4,overview:4,packet:[5,6],particip:1,pathfind:[],port:7,predict:[],prioritis:6,program:[1,7],protocol:6,proven:[],reach:6,receipt:5,refer:[5,6],request:[0,5],resourc:[5,6],respons:0,reticulum:[1,2,5,6,7,8],rnode:3,rnpath:7,rnprobe:7,rnsd:7,rnstatu:7,run:[],scenario:4,serial:[3,7],server:3,servic:7,setup:6,site:4,specif:6,stack:2,start:1,statu:8,step:[],support:3,system:[6,7],tabl:2,tcp:3,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:[1,7],what:8,where:8,your:7}}) \ No newline at end of file diff --git a/docs/manual/using.html b/docs/manual/using.html index 019fcde..83948df 100644 --- a/docs/manual/using.html +++ b/docs/manual/using.html @@ -87,6 +87,7 @@ optional arguments: --version show program's version number and exit

    +

    You can easily add rnsd as an always-on service by configuring a service.

    The rnstatus Utility

    @@ -218,7 +219,7 @@ might be plugged and unplugged in different orders, or when node name assignment varies from one boot to another.

    -

    Reticulum as a System Service

    +

    Reticulum as a System Service

    Instead of starting Reticulum manually, you can install rnsd as a system service and have it start automatically at boot.

    If you installed Reticulum with pip, the rnsd program will most likely diff --git a/docs/source/gettingstartedfast.rst b/docs/source/gettingstartedfast.rst index fce31c2..beeeda8 100644 --- a/docs/source/gettingstartedfast.rst +++ b/docs/source/gettingstartedfast.rst @@ -131,6 +131,22 @@ When you have experimented with the basic examples, it's time to go read the :ref:`Understanding Reticulum` chapter. +Reticulum on ARM64 +============================================== +On some architectures, including ARM64, not all dependencies have precompiled +binaries. On such systems, you will need to install ``python3-dev`` before +installing Reticulum or programs that depend on Reticulum. + +.. code:: + + # Install Python and development packages + sudo apt update + sudo apt install python3 python3-pip python3-dev + + # Install Reticulum + python3 -m pip install rns + + Reticulum on Android ============================================== Reticulum can be used on Android in different ways. The easiest way to get diff --git a/docs/source/interfaces.rst b/docs/source/interfaces.rst index c93211d..80c3806 100644 --- a/docs/source/interfaces.rst +++ b/docs/source/interfaces.rst @@ -26,7 +26,7 @@ Auto Interface The Auto Interface enables communication with other discoverable Reticulum nodes over UDP. It does not need any functional IP infrastructure like routers or DHCP servers, but will require at least some sort of switching -medium between peers (a wired switch, a WiFi access point or similar), and +medium between peers (a wired switch, a hub, a WiFi access point or similar), and that link-local IPv6 is enabled in your operating system, which should be enabled by default in almost all OSes. @@ -47,6 +47,17 @@ enabled by default in almost all OSes. group_id = reticulum + # You can also select specifically which + # kernel networking devices to use. + + devices = wlan0,eth1 + + # Or let AutoInterface use all suitable + # devices except for a list of ignored ones. + + ignored_devices = tun0,eth0 + + If you are connected to the Internet with IPv6, and your provider will route IPv6 multicast, you can potentially configure the Auto Interface to globally autodiscover other Reticulum nodes within your selected Group ID. You can specify diff --git a/docs/source/using.rst b/docs/source/using.rst index 0bc7c8f..fde75ad 100644 --- a/docs/source/using.rst +++ b/docs/source/using.rst @@ -57,6 +57,7 @@ the same system. -q, --quiet --version show program's version number and exit +You can easily add ``rnsd`` as an always-on service by :ref:`configuring a service`. The rnstatus Utility ==================== @@ -205,6 +206,7 @@ Using this methodology avoids potential naming mix-ups where physical devices might be plugged and unplugged in different orders, or when node name assignment varies from one boot to another. +.. _using-systemd: Reticulum as a System Service =============================