diff --git a/docs/manual/_sources/interfaces.rst.txt b/docs/manual/_sources/interfaces.rst.txt index d98f271..899f445 100644 --- a/docs/manual/_sources/interfaces.rst.txt +++ b/docs/manual/_sources/interfaces.rst.txt @@ -634,25 +634,51 @@ Interface Modes The optional ``mode`` setting is available on all interfaces, and allows selecting the high-level behaviour of the interface from a number of modes. These modes affect how Reticulum selects paths in the network, how announces -are propagated and how long paths are valid. +are propagated, how long paths are valid and how paths are discovered. -Configuring modes on interfaces is not strictly necessary, but can be useful -when building or connecting to more complex networks. When not running a -Transport Node, it is rarely useful to configure an interface mode. +Configuring modes on interfaces is **not** strictly necessary, but can be useful +when building or connecting to more complex networks. If your Reticulum +instance is not running a Transport Node, it is rarely useful to configure +interface modes, and in such cases interfaces should generally be left in +the default mode. - * | The default value is ``full``. In this mode, all discovery, + * | The default mode is ``full``. In this mode, all discovery, meshing and transport functionality is activated. + * | The ``gateway`` mode (or shorthand ``gw``) also has all + discovery, meshing and transport functionality available, + but will additionally try to discover unknown paths on + behalf of other nodes residing on the ``gateway`` interface. + If Reticulum receives a path request for an unknown + destination, from a node on a ``gateway`` interface, it + will try to discover this path via all other active interfaces, + and forward the discovered path to the requestor if one is + found. + + | If you want to allow other nodes to widely resolve paths or connect + to a network via an interface, it might be useful to put it in this + mode. By creating a chain of ``gateway`` interfaces, other + nodes will be able to immediately discover paths to any + destination along the chain. + + | *Please note!* It is the interface *facing the clients* that + must be put into ``gateway`` mode for this to work, not + the interface facing the wider network (for this, the ``boundary`` + mode can be useful, though). + * | In the ``access_point`` (or shorthand ``ap``) mode, the interface will operate as a network access point. In this mode, announces will not be automatically broadcasted on the interface, and paths to destinations on the interface - will have a much shorter expiry time. This mode is useful - for creating interfaces that remain quiet, unless when - someone is actually using them. An example of this could - be a radio interface serving a wide area, where users are - expected to connect momentarily, use the network, and then - disappear again. + will have a much shorter expiry time. In addition, path + requests from clients on the access point interface will + be handled in the same way as the ``gateway`` interface. + + | This mode is useful for creating interfaces that remain + quiet, until someone actually starts using them. An example + of this could be a radio interface serving a wide area, + where users are expected to connect momentarily, use the + network, and then disappear again. * | The ``roaming`` mode should be used on interfaces that are roaming (physically mobile), seen from the perspective of diff --git a/docs/manual/_sources/understanding.rst.txt b/docs/manual/_sources/understanding.rst.txt index 52b58e0..56d665a 100644 --- a/docs/manual/_sources/understanding.rst.txt +++ b/docs/manual/_sources/understanding.rst.txt @@ -809,12 +809,14 @@ Announce Propagation Rules -------------------------- The following table illustrates the rules for automatically propagating announces -from one interface type to another, for all possible combinations. See the -:ref:`Interface Modes` section for a conceptual overview of the -different interface modes, and how they are configured. +from one interface type to another, for all possible combinations. For the purpose +of announce propagation, the *Full* and *Gateway* modes are identical. .. image:: graphics/if_mode_graph_b.png +See the :ref:`Interface Modes` section for a conceptual overview +of the different interface modes, and how they are configured. + .. (.. code-block:: text) Full ────── ✓ ──┐ ┌── ✓ ── Full diff --git a/docs/manual/interfaces.html b/docs/manual/interfaces.html index 1f539c2..e6934f4 100644 --- a/docs/manual/interfaces.html +++ b/docs/manual/interfaces.html @@ -611,28 +611,59 @@ option, to set the interface speed in bits per second.

The optional mode setting is available on all interfaces, and allows selecting the high-level behaviour of the interface from a number of modes. These modes affect how Reticulum selects paths in the network, how announces -are propagated and how long paths are valid.

-

Configuring modes on interfaces is not strictly necessary, but can be useful -when building or connecting to more complex networks. When not running a -Transport Node, it is rarely useful to configure an interface mode.

+are propagated, how long paths are valid and how paths are discovered.

+

Configuring modes on interfaces is not strictly necessary, but can be useful +when building or connecting to more complex networks. If your Reticulum +instance is not running a Transport Node, it is rarely useful to configure +interface modes, and in such cases interfaces should generally be left in +the default mode.

  • -
    The default value is full. In this mode, all discovery, +
    The default mode is full. In this mode, all discovery, meshing and transport functionality is activated.
  • +
    The gateway mode (or shorthand gw) also has all +discovery, meshing and transport functionality available, +but will additionally try to discover unknown paths on +behalf of other nodes residing on the gateway interface. +If Reticulum receives a path request for an unknown +destination, from a node on a gateway interface, it +will try to discover this path via all other active interfaces, +and forward the discovered path to the requestor if one is +found.
    +
    +
    +
    If you want to allow other nodes to widely resolve paths or connect +to a network via an interface, it might be useful to put it in this +mode. By creating a chain of gateway interfaces, other +nodes will be able to immediately discover paths to any +destination along the chain.
    +
    +
    +
    Please note! It is the interface facing the clients that +must be put into gateway mode for this to work, not +the interface facing the wider network (for this, the boundary +mode can be useful, though).
    +
    +
  • +
  • In the access_point (or shorthand ap) mode, the interface will operate as a network access point. In this mode, announces will not be automatically broadcasted on the interface, and paths to destinations on the interface -will have a much shorter expiry time. This mode is useful -for creating interfaces that remain quiet, unless when -someone is actually using them. An example of this could -be a radio interface serving a wide area, where users are -expected to connect momentarily, use the network, and then -disappear again.
    +will have a much shorter expiry time. In addition, path +requests from clients on the access point interface will +be handled in the same way as the gateway interface.
    +
+
+
This mode is useful for creating interfaces that remain +quiet, until someone actually starts using them. An example +of this could be a radio interface serving a wide area, +where users are expected to connect momentarily, use the +network, and then disappear again.
  • diff --git a/docs/manual/searchindex.js b/docs/manual/searchindex.js index cfa03d3..e186ca7 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":{ANNOUNCE_CAP:[5,2,1,""],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,7],"000":[],"00000000":6,"00000100":6,"00000111":6,"01":6,"01010000":6,"02":[],"05":0,"07":[],"1":[0,3,5,6,7],"10":[0,3,6,7],"100":[0,3,6],"1000":0,"10000000":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,"150":[3,7],"150m":3,"151":6,"16":[3,7],"17":7,"18":[],"180":[],"182":[],"187":7,"2":[0,3,5,6,7],"20":[0,3,6,7],"200":[3,7],"2000000":[],"205":[],"211":[],"23":7,"237":[6,8],"24":3,"240":[],"25":[0,2,8],"255":3,"256":[5,6],"27":7,"270":[],"2f":0,"3":[0,3,6,7,8],"30":7,"323":[],"33":6,"34":[],"360":5,"3600":[0,3],"367":[],"37":[],"37428":7,"37429":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"3w3lha":[],"4":[6,7],"409":[],"4242":3,"430":6,"45":0,"460":[],"469":7,"476":5,"477":6,"48555":3,"49":7,"49555":3,"4965":[1,7],"5":[0,3,5,7],"500":[5,6,8],"5001":3,"507":5,"512":[3,5,6],"5245a8efe1788c6a70e1":7,"55":3,"56b115c30cd386cad69c":7,"5757":3,"5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq":3,"6":7,"60":0,"600":3,"62":[6,8],"63":7,"64":[6,7],"7":[3,7],"72":3,"7200":3,"74":7,"77":6,"7c565719ec7a8cdb1fe2":[],"7ca6f4e4dc26ae329e61":[],"8":[0,3,7],"80":[5,6,7],"8001":3,"80e29bf7cccaf31431b3":6,"83":[6,7],"86":7,"867":3,"867200000":3,"868":6,"88":3,"9":7,"900":6,"9382f334de63217a4278":7,"95":6,"\u00ec2pd":3,"abstract":6,"break":[5,6,8],"byte":[0,5,6,7,8],"case":[1,3,4,6,7],"class":[0,2,4,8],"default":[0,1,3,4,5,6,7],"do":[0,1,3,5,6,8],"export":1,"final":6,"float":[0,5],"function":[0,1,2,3,4,5,7,8],"import":[0,1,3,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6,7],"public":[0,2,3,5],"return":[0,5],"short":[6,7],"static":5,"switch":[3,6],"throw":[],"true":[0,1,3,5,7],"try":[0,2,3],"while":[0,1,3,4,5,6,8],A:[0,1,3,4,5,6,7,8],And:0,As:[1,3,4,5,6,8],At:[4,6],Be:[5,7],But:6,By:[0,1,3,5,6,7],For:[1,3,4,5,6,8],IF:[],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,7,8],No:[3,6,7,8],On:[0,1,3,7],One:5,Or:[3,8],That:6,The:[0,1,2,3,4,5,8],Then:1,There:[1,4,6,8],These:[1,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,_other_:[],_with_:3,aarch64:1,ab:0,abil:1,abl:[0,1,3,4,5,6,7],about:[0,1,3,4,5,6],abov:[1,3,6,7],absolut:[1,8],accept:[5,6],accept_al:[0,5],accept_app:5,accept_non:5,access:[1,2,3,4,5,7],access_point:3,accomod:6,accord:6,accordingli:0,acheiv:[3,6],achiev:[5,6],acknowledg:8,across:4,act:[1,5,6,7],action:0,activ:[0,1,3,5,6],actor:6,actual:[0,1,3,6],ad:[0,2,3,4,5,6,8],adapt:4,add:[0,1,3,4,7],add_argu:0,addit:[6,7,8],addr1:[],addr2:[],address:[0,1,3,4,5,6,8],adher:5,admin:3,administr:7,adress:[0,1,4,5,6,8],advanc:6,advantag:5,adversari:1,advertis:[0,5],advis:6,ae:[6,8],affect:3,after:[0,3,4,6,7],again:[1,3,6,7],against:6,agenc: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:[3,5,6,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,7],alo:6,alon:3,along:[4,6],alreadi:[0,1,4,6,7],als:[],also:[0,1,3,4,5,6,7,8],alter:6,altern:[0,3,7],although:[6,8],alwai:[1,3,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],annouce_cap:3,announc:[2,5,7],announce_cap:[3,5],announce_handl:0,announce_rate_grac:3,announce_rate_penalti:3,announce_rate_target:3,announced_ident:[0,5],announceloop:0,announcesampl:0,announec:[],anonym:[1,4,5,6,8],anoth:[1,5,6,7],answer:[6,7],anymor:1,anyon:[0,1,4,5,6],anyth:[3,6,7,8],anywher:[0,3],ap:3,apart:[],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:[5,6],applic:[0,3,4,5,6,7],approach:[6,7],approv:6,approxim:[],apt:1,ar:[0,1,3,4,5,6,7,8],arbitrari:[5,6],arbritrari:8,architectur:1,area:[3,4,6,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,3,5,6],aspect_filt:[0,5],assign:[6,7],associ:[1,5,6],assum:[3,6],asymmetr:[6,8],attached_interfac:[],attack:1,attempt:5,attribut:5,audit:8,authent:[1,3,4,5,6,8],author:6,auto:[2,5,6],auto_compress:5,autoconfigur:[3,8],autodiscov:3,autointerfac:[3,7],autom:6,automat:[0,1,3,4,5,6,7,8],autonom:[4,6],autoomat:0,avail:[0,1,3,4,5,6,7,8],availadbl:[],averag:6,avoid:[6,7],awai:[0,3,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b32:[1,3],b:[0,4],back:[0,3,6,8],background:[1,3],backhaul:4,balanc:3,band:6,bandwidth:[1,3,4,5,6,8],bare:0,barrier:6,base32:3,base:[2,3,4,5,6,7,8],basi:[3,5,6,7,8],basic:[0,1,2,7],baud:3,beacon:3,beam:[],becaus:[4,6],becki:0,becom:[0,1,4,6],been:[0,1,3,4,5,6,8],befor:[0,1,3,5,6,7],begin:[0,5],begun:5,behaviour:[3,7],behind:[1,6],being:[3,5,6],beings:6,belief:6,below:[1,3,7],benefici:[3,7],best:[1,6,8],beta:8,better:3,between:[0,3,4,5,6],bgp:[],bi:6,bidirect:6,billion:[4,6],bin:7,binari:[0,1,6],bind:3,bit:[3,5,6,7,8],bitrat:3,blob:[0,6],block:3,board:[1,6,8],boot:7,both:[1,3,4,5,6,8],boundari:3,bp:[],breviti:7,bridg:2,briefli:6,bring:3,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:[3,7],browser:1,buffer:3,bug:8,build:[0,1,2,3,6,8],built:[1,3,6,8],bundl:0,c:[0,4],cabl:4,cad:[],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,cap:3,capabl:6,capac:[3,5,6],carambola:0,care:[1,5,8],carefulli:1,cargo_build_target:1,carri:[3,5,6],carrier:[4,8],caution:3,caveat:2,cb:6,cbc:8,cd:1,cdma:3,censor:6,censorship:6,central:[4,6],centralis:6,certain:[0,3,4,6],challeng:6,chang:[0,1,3,5,6,7,8],channel:[0,3,4,6,8],channelarg:0,chapter:[1,3,4,6,7,8],charact:0,characterist:6,cheap:6,check:[0,1,5,6],checksum:[5,8],choos:[0,1,3,6],choosen:6,chose:6,chosen:4,chunk:0,ciphertext:5,ciphertext_token:5,circumst:6,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,4,5,7],closed_callback:5,closer:6,closest:6,cluster:6,co:[3,8],code:[1,2,3],codingr:3,com:[0,1],combin:[1,4,6],come:[1,6],comma:3,command:[0,1,3,7],comment:[3,7],common:[1,2,4,6,8],commun:[0,1,3,4,5,6,7,8],compat:[1,3,5,6],compil:1,complet:[0,1,3,4,5,6,7,8],complex:[3,6],compon:6,compos:6,compress:[0,5,6],comput:[1,6,8],concaten:5,concept:[2,6,7],conceptu: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],confus:6,congest:6,conjunct:3,connect:[0,2,3,4,5,6,7,8],consequ:[],conserv:3,consid:[6,8],consider:[],consist:6,constant:5,constantli:6,construct:6,consumpt:[],contact:6,contain:[0,4,5,6,7],contend:6,content:[4,7],context:6,contin:3,continu:8,control:[0,1,2,4,5,6],conveni:0,convent:0,converg:[2,6],coordin:[4,5,6,8],core:[4,6,8],correct:[0,6],correctli:0,correspond:6,cost:[6,8],could:[0,1,3,4,5,6,8],count:6,counter:0,cours:[3,6],cover:[6,8],coverag:4,cpu:0,creat:[0,2,3,4,5,6,7,8],create_kei:5,create_receipt:[0,5],creation:6,creator:6,critic:[6,7],cryptograph:[4,8],cryptographi:[1,6,8],ctrl:0,cull:5,current:[0,1,2,3,5,6],current_download:0,current_filenam:0,curv:[4,5,6,8],curve25519:[4,5,6,8],custom:[3,5,6,8],custom_network_nam:3,customis:3,d:[4,7],daemon:[1,3,5,7],dai:4,data:[0,1,2,3,4,5,6,8],data_port:3,databit:[3,7],date:[0,1],db:0,dbm:[0,3],de:[],debian:[6,7],debug:7,decai:[],decid:[4,5,6],decis:3,decod:0,decrypt:[5,6],dedic:[3,6],deep:1,def:0,default_timeout:[],defin:[0,3,6,7],definit:6,degrad:4,degre:3,delai:[1,3,6,7],deliv:[0,5],deliveri:[0,1,5,8],demand:5,demonstr:[0,3],depend:[1,4,6,7],deploi:6,deregist:5,deregister_announce_handl:5,deregister_request_handl:5,deriv:[6,8],describ:[3,5,6],descript:[0,7],design:[1,4,6,8],desir:[0,3,6],destin:[0,1,2,3,4,7],destination_1:0,destination_2:0,destination_clos:0,destination_hash:[0,5,7],destination_hexhash:0,detail:[0,1,2,3,5,7,8],detect:0,determin:[1,5,6],dev:[1,3,7],develop:[2,6,8],devic:[1,2,3,4,5,6,7],dh:5,dhcp:[3,7],did:0,differ:[0,1,3,4,5,6,7,8],diffi:[4,6,8],difficult:1,digit:[6,8],dir:0,direct:[0,1,4,5,6,7],directli:[3,5,6,7,8],directori:[0,7],disabl:[3,6,7],disable_encrypt:[],disappear:[3,7],disassoci:6,discard:6,disconnect:0,discov:1,discover:3,discoveri:[3,6,7],discovery_port:3,discovery_scop:3,discrimin:4,discuss:[1,6],disk:[0,5],displai:[0,6],dissolv:4,distanc:6,distant:5,distinct:[3,6],distinguish:6,distribut:[0,1,4,5,6,7],divmod:0,document:6,doe:[0,1,2,3,4,5,6,7],doesn:3,dolor:[],domain:[1,3],don:[0,1,4,5,7],done:[0,1,3,4,6,7],dori:4,dot:[6,7],down:[0,3],downgrad:[],download:[0,3],download_began:0,download_conclud:0,download_finish:0,download_start:0,download_tim:0,driver:[7,8],droid:1,drop:[5,6,7],due:4,duplex:[6,8],dynam:[1,7],e702c42ba8:7,e:[0,4],each:[0,1,3,4,6,7],earli:1,earlier:6,eas:[3,6],easi:[1,3,6,7,8],easier:[1,3,4,7],easiest:[1,3,6],easili:[3,4,6,7,8],eca6f4e4dc26ae329e61:7,ecdh:[6,8],echo:[1,2,7],echo_destin:0,echo_request:0,ed25519:[6,8],edit:[1,7],effeci:[],effect:3,effici:[0,1,3,6,8],ei:0,either:[3,4,6,7],elaps:3,elif:0,ellipt:[4,5,6,8],els:[0,4,6],emploi:6,emptor:2,emul:1,enabl:[1,3,4,5,6,7],enable_transport:[6,7],encapsul:[3,8],encod:0,encrypt:[0,1,4,5,6,8],encrypted_mdu:5,encryptionless:[],end:[0,3,4,5,6,8],endless:3,endpoint:[0,4,5,6],energi:1,enforc:3,engin:[],enhanc:6,enough:[1,6],ensur:[3,5,6],enter:0,entir:[4,6,7],entiti:6,entri:[0,1,6],enumer:0,environ:[1,4,6],environment:6,environmentlogg:6,eof:3,ephemer:[4,5,6,8],equal:[4,6],equip:[3,4,6],equival:3,equl:[],error:[0,1,7],especi:3,essenti:[1,3,6],establish:[0,1,3,4,5,8],established_callback:5,establishment_timeout_per_hop:5,etc:7,eth0:3,eth1:3,ethernet:[1,3,4,6,8],even:[1,3,4,6,7,8],event:3,eventu:5,everi:[0,3,4,5,6],everyon:[4,6],everyth:[0,4,6],evolv:4,exact:[3,6],exactli:[5,6],exampl:[1,2,3,5,6,7,8],example_util:[0,7],exampleannouncehandl:0,exampleconfig:7,exce:[0,3,5],except:[0,3],excess:3,exchang:[4,5,6,8],exclud:6,execstart:7,execstartpr:7,execut:[0,1,3,5,7],exhaust:6,exist:[0,1,3,6,7,8],exit:[0,1,5,7],exit_handl:0,expand:6,expect:[0,3,5,6,7],experi:[1,6],experiment:[1,8],expir:3,expiri:3,explain:5,explan:[6,7],explicit:5,explicitli:[],explor:[0,6,8],expos:[3,5],extend:[0,1,5],extern:[1,3,5,8],extra:[1,3,4,7],extrem:[1,6,7,8],f:1,fa7ddfab5213f916dea:6,face:1,fact:8,factor:3,fail:[0,5],failed_callback:[0,5],failur:[1,3],fals:[0,3,5,7],far:[4,6],fast:[2,3,5,6],faster:[1,3,6],fastest:[3,6],featur:[1,6,8],feed:5,feedback:0,feel:1,fernet:8,few:[1,3,4,6,7,8],fewer:5,fibr:8,field:6,file:[0,1,3,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],firewal:[1,3],firmwar:[1,6],first:[0,1,3,5,6,7],fit:0,five:0,fix:[2,6],flag:[5,6],flexibl:[3,8],flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,1,3,6,7,8],forcibl:[5,7],foreground:1,foremost:8,form:[1,3,4,5,6],format:[0,2,8],forth:0,forward:[3,5,6,8],forward_ip:3,forward_port:3,found:[0,1,3,4,6,7],four:4,frame:3,frankfurt:[1,7],free:[4,8],freedom:6,freeli:6,frequenc:[3,6],frequent:3,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,3],furthermor:[],futur:[4,6],g:0,ga:0,gain:6,galact:6,gatekeep:6,gatewai:[1,4],gbp:7,gen:[],gener:[0,1,3,4,5,6,7,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,geti2p:3,ghz:6,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6,7],given:[3,4,5,6,7],global:[0,1,3,4,6,8],go:[0,1,3,6],goal:[2,3],good:[4,6,7],got:0,got_respons:0,govern:6,gracefulli:3,grape:0,graphic:1,great:6,greater:6,greatli:3,group:[3,5,6],group_id:3,grow:4,growth:2,guarante:[1,6],guess:3,guid:[1,5,6],h:[1,7],ha:[0,1,3,4,5,6,8],hack:8,had:6,half:[6,8],hand:[0,1],handheld:6,handl:[0,3,4,5,6,7,8],handler:[0,5],happen:[0,5,6],hardlin:4,hardwar:[1,3,4,5,6,7,8],has_path:[0,5],hasattr:0,hash1:6,hash2:6,hash:[0,1,5,6,7],hash_from_name_and_ident:5,hashmap:0,have:[0,1,3,4,5,6,7],hazard:5,head:1,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],hide:1,high:[3,6,8],higher:[4,8],highli:6,hill:4,hint:0,hit:0,hmac:8,hoc:8,hold:[5,6],home:4,homebrew:3,hop:[3,4,5,6,7,8],hops_to:5,host:[0,1,3,6,7],hostnam:3,hour:[0,3],how:[0,1,3,4,6,8],howev:[1,4],http:[0,1],hub:3,huge:[],human:[0,5,6],i2p:[1,2,8],i2p_tunnel:3,i2pd:1,i2pinterfac:[1,3],i:0,id:[3,5,6,7],id_callsign:3,id_interv:3,idea:[6,7],ideal:8,ident:[0,1,2,8],identif:[2,3,8],identifi:[0,3,5,6],identify:6,identifyexampl:0,ie:7,if00:7,ifac:[6,7],ifac_s:3,ifconfig:7,ignor:[3,5,6],ignored_devic:3,illustr:[4,6],immedi:[1,7],impact:[3,6],implement:[0,3,4,5,6,8],implic:3,implicit:[5,6],imposs:6,improv:[2,3],inactive_for:5,inbound:[3,5],includ:[0,2,3,5,6],incom:[0,3,5],incompat:[5,6],increas:3,incred:[],incur:3,indefinit:[],independ:[5,6],independt:8,index:[0,1,2],indirectli:6,individu:[5,6],inevit:6,infer:6,info:[5,6,7],inform:[0,1,2,3,4,5,6,7],infrastructur:[1,3,4,6,7],ingo:5,initi:[0,4,5,6,8],initialis:[0,5,7],input:0,insert:6,insid:6,inspect:[1,3,4,6],instal:[1,3,4,7,8],instanc:[0,2,3,5,6,7],instance_control_port:7,instanti:5,instead:[0,3,6,7],integr:[4,6],intend:[4,6],intention:6,inter:5,interact:[0,1,5,6],interchang:3,interconnect:[2,3,6],interest:6,interfac:[0,2,4,5,7],interface_en:[1,3,7],interface_mod:[],intermediari:6,intermitt:3,intern:[3,5],internet:[2,3,6,8],interoper:[1,4,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],invers:6,investig:4,invis:[1,3],involv:4,io:[1,7],ip:[1,3,6,7,8],ipsum:[],ipv6:[3,7],is_connected_to_shared_inst:0,is_request:[],is_respons:[],isdir:0,isfil:0,island:4,ism:6,isol:[3,7],issu:4,its:[3,5,6],itself:[2,6],iv:8,job:0,join:[0,1,4,6],just:[0,1,3,4,6,8],k:0,kb:7,kbp:7,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,6],kilomet:[],kind:[3,4,6],kiss:[2,7,8],kiss_fram:3,kissinterfac:[3,7],know:[0,1,4,5,6],knowledg:[4,6],known:[0,5,6,7],krypton:0,l:3,lack:6,laid:6,lan:3,larg:[0,3,4,5,6,8],larger:[4,6],laser:3,last:[0,3,5],last_unit:0,latenc:[1,6,8],later:[0,1,3],latest:[0,1,3],latest_client_link:0,launch:[1,7],lavg:[],layer:[3,4,6,8],lead:6,leak:1,learn:[0,1,6],least:[3,6,7,8],leav:[4,6],ledger:6,left:[3,5,6,7],legaci:4,len:0,length:[0,3,5,6],less:[3,6,8],let:[0,1,3,4,6,7],level:[3,6,7],libffi:1,librari:1,licens:6,light:7,like:[1,3,4,5,6,7,8],limit:[4,6],line:[0,1,3,4,6,8],link:[2,3,4,7,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,3,7],log_error:0,log_info:0,loglevel:[0,5,7],longer:[0,4,6,7],longest:3,look:[0,1,3,6,7],loop:0,lora32:[],lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[1,3,4,6,8],lower:[1,3,7],lxmf:1,m:[0,1,6,7],mac:6,machin:6,maco:1,made:[1,5,6],mai:[1,3,5,6,7],main:0,mainli:4,maintain:6,make:[1,3,6,7],malici:6,manag:[1,4,5,6],mani:[0,1,3,4,5,6,7,8],manipul:6,manner:4,manual:[0,1,3,4,5,7],mark:6,markqvist:[0,1],master:[0,5],match:[0,3,6],matter:3,maximum:[3,5,6],mbp:7,mcu:[],mdu:0,mean:[3,4,6,7],measur:6,mechan:[2,3],medium:[3,4,5,6,8],member:4,memori:6,mention:[3,6],menu:0,menu_mod:0,mesh:[1,3,4,8],messag:[0,1,5,6,7],messeng:6,metadata:1,metavar:0,method:[0,1,3,5,6],methodolog:[6,7],mhz:[3,6],mi:0,microcontrol:6,microwav:[],might:[1,3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,3,4,6],minut:[0,1,3,6],mix:[1,3,4,7],mobil:[3,6],mode:[0,1,2,6,7,8],modem:[3,4,5,6,8],moder:3,modifi:[6,7],modul:[0,1,6,7,8],moment:[6,8],momentarili:3,monitor:6,moon:0,mor:[],more:[1,3,4,5,6,7,8],morej:[],most:[1,3,4,6,7],mostli:[3,4,6],motiv:2,move:[1,3,6],mqtt:[],mtu:[5,6,8],much:[1,3,4,7],multi:[6,7,8],multicast:3,multilater:6,multipl:[0,3,4,6,7],multipoint:6,must:[0,1,3,4,5,6],mw:3,my:6,mycal:3,myriad:6,n:[0,6],name:[0,2,3,4,5],namespac:0,nano:1,narg:0,natur:3,nearbi:3,nears:6,necesarri:[3,4],necessari:[1,3,5,6],necessarili:6,need:[0,1,2,3,4,6,7,8],neglig:6,neither:6,neon:0,net:3,netcat:3,netifac:1,network:[0,3,5,6,7,8],network_nam:3,never:[3,5,6],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:[1,2,3,4,7,8],nodet:[],nomad:2,nomadnet:1,non:[1,5,6],none:[0,3,5,6,7],normal:[0,3,5],notat:[6,7],note:[0,1,3,6,7],noth:8,notic:[6,7],notif:[0,5],now:[0,1,4,6,7],nt:0,num:0,number:[0,1,3,4,5,6,7],obfusc:[],object:5,obtain:6,obviusli:6,occasion:1,occur:[7,8],off:[6,8],offer:[1,2,3,5,6],offlin:1,often:[1,3,4,6,7],oganesson:0,old:6,on_interfac:5,onc:[0,1,3,4,5,6,7,8],one:[0,1,3,4,5,6,7,8],ones:[3,7],oneself:6,onli:[0,1,3,4,5,6,7,8],onlin:[],onto:6,open:[0,3,4,5,6,7,8],openmodem:[3,8],openssl:1,oper:[3,4,5,6,7,8],opposit:3,opt:6,optic:8,optim:4,optimis:[],option:[0,1,2,4,5,6,7],order:7,orem:[],organ:4,organis:[3,4],orient:6,origin:[0,4,6],original_hash:[],os:[0,3,6,7,8],ospf:[],other:[1,3,4,5,6,7],otherwis:5,our:[0,6],out:[0,1,3,4,5,6,7,8],outbound:[5,6],outgo:[0,1,3,5,6,7],outli:4,outlier:4,outlin:[1,6],output:[3,7],outward:[],over:[0,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,oversight:6,overview:[2,3,6],overwhelm:[3,5],own:[0,1,4,5,6,7],owner:[],p:0,pack:0,packag:[1,3],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:[1,2,6],pair:[3,6],palm:[],panic:7,panic_on_interface_error:7,parallel:1,paramet:[3,4,5,6],pariti:[3,7],pars:0,parse_arg:0,parser:0,part:[0,3,4,6],particip:[2,4,6],pass:[0,3,4,5,6,7],passphras:[3,6],past:[],path:[0,1,3,5,6,7],path_respons:5,pathfind:[],pathfinder_m:5,pattern:6,payload:[5,6],peach:0,peer:[0,1,3,5,6,7],peer_pub_byt:[],peer_sig_pub_byt:[],penalti:3,peopl:6,per:[3,5,6,8],percent:0,percentag:5,perfect:[],perform:[0,1,3,4,6],period:[3,6],perman:7,permissionless:6,persecut:6,persist:[3,7],person:6,perspect:[3,6],pet:0,philosophi:6,physic:[1,3,6,7],pi:[0,4,6,7,8],pick:6,piec:6,ping:[1,7],pip3:[1,7],pip:[1,7],pipe:[2,8],pipeinterfac:3,pkcs7:8,pkg:1,place:[4,6,7],plain:[0,3,5,6],plain_mdu:5,plaintext:[0,5],plan:[4,6],platform:[1,6],pleas:[0,1,3,7,8],plenti:6,plu:[],plug:7,pmr:6,point:[1,3,4,6,7],pomelo:0,poorli:4,popular:8,port0:7,port:[2,3,4,6,8],portabl:[3,6],posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,3,6,7],power:[1,3,6],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:[1,5],preshar:6,press:0,pretend:6,pretti:6,prettyhexrep:0,previou:0,previous:[4,5,6],primari:6,principl:[6,8],print:[0,3],print_filelist:0,print_help:0,print_menu:0,prioriti:6,prioritis:[2,3,4,5],privaci:8,privat:[1,3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,problem:6,procedur:6,process:[1,3,5,6],product:[],program:[0,2,3,5,6,8],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:[2,3,5],properli:1,properti:[4,5],proport:6,propos:1,protocol:[1,2,3,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,publicli:1,purchas:[4,6,8],purg:5,purpos:[3,5,6],purposefulli:[],put:0,py:[0,1,7],pyseri:1,python3:[1,7],python:[1,6,7,8],q:[0,7],queri:[0,1],question:3,queu:[5,7],queue:[3,6],quickli:[6,8],quiet:[3,7],quinc:0,quit:0,r:[0,3,6,7],radio:[2,3,4,5,6,7,8],radiu:[],radon:0,rais:[0,5],ram:3,rand:[],randint:0,random:[0,5,6],random_text_gener:0,randomis:6,randomli:[0,6],rang:[0,1,3,4,6,8],rapidli:3,rare:3,raspberri:[4,6,7,8],rate:[0,2,7],rather:1,rb:0,re:[0,3,5,6],reach:[2,3,4],reachabl:[0,1,3,4,5,6,7],read:[0,1,3,6,7],readabl:[0,5,6],readi:[0,1,3,4,5,8],readili:8,real:[4,8],realli:[3,5],reappear:3,reason:[3,6],reassembl:6,reboot:1,recal:[0,5],recall_app_data:5,recap:6,receipt:[0,2,6],receiv:[0,1,3,5,6,7],received_announc:[0,5],recent:6,reception_rssi:0,reception_snr:0,reception_stat:0,recip:1,recipi:6,recommend:[0,1,6],reconstruct:6,record:[1,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],relai:1,relat:1,releas:[1,3,6],relev:[0,3,5,6,7],reli:6,reliabl:[3,4,6,8],rem:0,remain:[3,5,6],rememb:6,remot:[0,5],remote_ident:[0,5],remote_identifi:0,remote_identity_hash:[],remote_p:0,remotesensor:6,remov:7,render:1,repeat:1,replac:[1,6,7],repli:[0,7],replic:6,reply_data:0,reply_text:0,report:3,repositori:[1,6],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,1,2],resource_callback:5,resource_sending_conclud:0,resource_strategi:5,respawn:3,respawn_delai:3,respawn_interv:3,respect:3,respond:[0,5],respons:[2,5,6],response_callback:[0,5],response_gener:[0,5],response_tim:[],rest:[4,8],restart:7,restartsec:7,restor:3,restrict:4,result:[0,6],retain:3,reticulum:[0,3,4],retiiculum:[],retransmiss:6,retransmit:6,retri:6,reveal:[1,5,6,8],review:8,ridicul:6,right:[3,4],rn:[0,1,5,7],rnode:[1,2,6,7,8],rnodeinterfac:[3,7],rnpath:[1,2,3],rnprobe:[1,2],rnsconfig:1,rnsd:[1,2],rnstatu:[1,2,3,6],roam:3,robot:6,rotat:6,round:[0,5,7],rout:[1,3,4,5,6,7,8],routabl:[],router:[3,7],rprogress:0,rsa:[],rssi:0,rtt:[0,5,6],rttstring:0,rule:[2,3],run:[0,1,3,4,5,6,7,8],runtim:6,rust:1,rw:[],rx:3,s:[0,1,3,4,6,7,8],said:6,same:[1,3,4,5,6,7],satisfi:6,save:[5,6],save_error:0,saved_filenam:0,scalabl:8,scale:6,scan:3,scenario:[1,2,6],schedul:5,scope:3,screen:0,seamlessli:3,search:2,second:[0,3,5,6,7,8],secreci:[5,6,8],section:[1,3,4,6,7],secur:[1,6,8],see:[0,1,3,4,5,6,7,8],seek:6,seen:3,segment:[3,4,6,8],segment_index:[],select:[0,3],self:[0,4,8],send:[0,3,5,6,7],sender:[0,1,4,6],sendig:0,sensibl:1,sensor:6,sent:[0,1,5,6,7],sentiment:6,separ:[1,3,4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,3,4,6,7],serve_path:0,server:[0,1,2,7],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,1,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,1,2,3],sever:[1,4,5,7],sha256:8,sha:[5,6],shall:6,share:[1,4,5,6,7],share_inst:7,shared_instance_port:7,she:4,shelf:[6,8],shop:0,shorter:3,shortest:6,shorthand:[3,7],should:[0,1,3,4,5,6,7,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:[3,8],sideband:2,sight:4,sign:[5,6],signatur:[5,6,8],significantli:3,similar:[1,3,4,7,8],simpl:[0,6,7,8],simpler:3,simplest:[3,6],simpli:[0,1,3,4,6,7],simplic:6,simultan:6,sinc:[0,1,3,4,5,6],singl:[0,3,5,6,7,8],singular:6,sit:[],site:[2,3],situat:[1,3,4,6],size:[0,1,3,5,6],size_str:0,sleep:[0,7],slice:0,slightli:1,slottim:[3,7],slow:[0,3,6],slower:[3,5,6],small:[0,3,4,6,8],smaller:5,snr:0,so:[0,1,3,4,5,6,8],socket:7,softwar:[1,3,6,8],solut:6,solv:6,some:[0,1,3,4,6,7],someon:[1,3],someth:6,somethign:0,soon:5,sort:[3,6],soundmodem:3,sourc:[0,1,4,6,8],space:[0,1,4,6,8],spam:3,span:[3,6],special:[6,7],specif:[0,2,3,5,8],specifi:[0,1,3,4,5,7],spectrum:[3,6],speed:[3,6,7],split:0,sponsor:8,spread:3,spreadingfactor:3,squelch:3,ssid:3,stabl:[6,8],stack:[0,1,4,6,7,8],stage:[1,6],stai:[0,6,7],standard:[1,6],start:[0,2,3,5,6,7],startlimitintervalsec:[],startup:0,state:0,station:3,stationari:[4,7],statist:[0,3],statu:[0,1,2,3,5,6,7],stdin:3,stdio:8,stdout:[0,3],step:1,still:[0,4,6],stock:0,stop:8,stopbit:[3,7],store:[0,6,7],store_tru:0,str:0,strategi:[3,5],stream:6,strength:8,strictli:[3,6],string:[0,5],strong:6,structur:6,subject:[],subnet:[1,4],subsequ:6,succe:1,successful:5,successfulli:0,sucessfulli:6,sudo:[1,7],suffic:6,suffici:[1,3,6,7],suffix:0,suit:[1,6,7],suitabl:[0,1,3,4,6,8],suppli:[4,5,6],support:[0,1,2,4,6,8],sure:[1,7],surveil:6,surviv:6,sy:0,symlink:[1,7],symmetr:[5,6],system:[0,1,2,3,4,5,6,8],systemctl:7,systemd:7,t:[0,1,3,4,5,7],tabl:[1,3,4,6,7],tail:3,tailor:6,take:[0,1,3,6,7,8],taken:[0,6],tangerin:0,target:[0,3,7],target_host:[1,3],target_port:[1,3],tcp:[1,2,4,6,8],tcpclientinterfac:[1,3],tcpinterfac:7,tcpserverinterfac:[1,3],tdata:0,teach:7,teardown:[0,5],teardown_reason:0,teffect:0,tell:[0,3],temperatur:6,ten:6,tend:3,term:[4,6],termin:[1,5],terminolog:[4,6],termux:1,test:[1,3,6],testnet:[2,7],text:[0,1,4,6],tfile:0,than:[0,1,3,4,6],thei:[0,1,3,4,5,6,7],them:[0,1,3,4,6,7],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7,8],thing:1,think:1,those:[4,6],though:[1,6],thourough:8,thousand:6,thread:0,three:[4,6],throough:3,throttl:4,through:[1,3,4,5,6,7,8],throughout:6,throughput:[6,8],thu:[4,5,6],ti:[0,6],time:[0,1,3,4,5,6,7],timeout:[0,5,7],timeout_callback:[],timeoutarg:0,timestr:0,tnc:[3,5,7,8],to_fil:5,todai:6,todo:[],togeth:[6,7],token:[5,6],toler:3,too:[0,4],tool:[6,8],top:[4,6],topic:6,topographi:[1,4,6],topolog:[3,6],total:[6,8],total_s:0,touch:8,toward:[0,3,6],tradeoff:6,tradit:[4,6],traffic:[0,1,3,4,5,6,7],tramsit:[],transceiv:[1,3,6,8],transfer:[0,5,6,7,8],transfer_s:0,transform:8,transmiss:[1,3,5,6],transmit:[0,3,6],transpar:[3,6,7],transpor:[],transport:[0,1,2,3,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:[4,6,8],ttime:0,ttransfer:0,ttyusb0:[3,7],ttyusb1:3,ttyusb2:3,tun0:3,tune:[],tunnel:[3,6,8],tupl:5,turn:7,turnaround:3,tutori:1,two:[0,1,3,4,6],tx:3,txpower:3,txtail:[3,7],type:[0,1,2,3,4,5,7],typeerror:5,ubuntu:7,udp:[2,4,6,7,8],udpinterfac:3,uhf:[7,8],ultim:6,umsgpack:0,uncencrypt:0,uncensor:1,under:7,underli:[4,8],understand:[1,2,7],unencrypt:[0,5,6],unequivoc:6,unexplor:4,unforg:8,unidentifi:0,unifi:4,uninterest:0,uniqu:[6,8],unit:[0,7],unknown:[0,5,6],unless:[1,3,5,6],unlicens:6,unlik:6,unorganis:4,unpack:0,unpackb:0,unplug:7,unrecover:7,unreli:3,unsign:[1,7],unsupport:5,until:[0,3,5],unus:7,unwant:6,up:[0,1,3,4,6,7,8],updat:[0,1,5,6],upgrad:[1,6],upkeep:3,upon:[0,6],upset:0,urandom:8,us:[0,2,3,4,5,6],usabl:6,usag:[1,3,7],usb:[4,6,7],useabl:6,user:[0,1,3,4,6,7],user_input:0,userland:8,usernameher:7,usr:7,utf:0,util:[0,2,3,6],utilis:[1,4,7,8],v:7,valid:[0,3,5,6,7],valu:[3,5,6],valueerror:[0,5],vari:[6,7],variabl:0,varieti:[3,6,7,8],variou:[0,1,3,4,6],vast:6,ve:1,vehicl:3,vendor:0,verbos:7,veri:[1,3,4,5,6,7,8],verif:[5,6],verifi:[0,5,6],versa:[4,8],version:[6,7],vhf:[4,6,8],via:[1,3,6,7,8],vice:[4,8],view:[1,3,6,7],violat:3,virtual:[3,4,6,7,8],visibl:0,w:7,wa:[0,3,4,5,6,8],wai:[0,1,3,4,6],wait:[0,3,6],want:[0,1,3,4,6,7,8],wantedbi:7,warn:7,warrant:8,wast:3,wb:0,we:[0,1,3,6],websit:3,weight:7,welcom:1,well:[1,3,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,6],where:[1,2,3,4,5,6,7],whereupon:6,whether:[0,3,5,6],which:[0,1,3,4,5,6,7],who:[1,6],wide:[3,6,8],wider:[1,6,7],wifi:[1,3,4,6,7,8],wildcard:0,willing:4,window:[],wire:[1,2,3,8],wireless:4,wish:[6,7],within:[0,1,3,4,5,6],without:[1,4,6,8],wlan0:3,won:0,work:[1,4,6,7,8],world:[4,8],worri:4,would:[1,3,4,5,6],write:[0,1,3,5,6],written:6,wrong:[0,3],x25519:[5,6,8],x:6,xenon:0,y:0,ye:[1,3,6,7],year:6,yet:[0,3,6],yi:0,ykzlw5ujbaqc2xkec4cpvgyxj257wcrmmgkuxqmqcur7cq3w3lha:1,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:[],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":[1,6],"try":1,The:[6,7],With:1,access:6,ad:1,android:1,announc:[0,3,6],api:5,arm64:1,auto:3,ax:3,base:1,basic:6,binari:[],bridg:4,broadcast:0,build:4,can:8,caveat:8,client:3,code:[0,6],common:3,concept:4,configur:7,connect:1,control:3,converg:4,creat:1,current:8,data:7,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,i2p:3,ident:[5,6],identif:0,improv:7,includ:[1,7],indic:2,instanc:1,interconnect:4,interfac:[1,3,6,8],internet:[1,4],introduct:6,kei:6,kiss:3,link:[0,5,6],lora:[3,4],manual:2,mechan:6,minim:0,mode:3,motiv:6,name:[6,7],network:[1,2,4],node:6,nomad:1,offer:8,option:3,orem:[],over:[1,4],overview:4,packet:[5,6],particip:1,pathfind:[],pipe:3,port:7,predict:[],prioritis:6,program:[1,7],propag:6,protocol:6,proven:[],radio:1,rate:3,reach:6,receipt:5,refer:[5,6],request:[0,5],resourc:[5,6],respons:0,reticulum:[1,2,5,6,7,8],retiiculum:[],rnode:3,rnpath:7,rnprobe:7,rnsd:7,rnstatu:7,rule:6,run:[],scenario:4,serial:[3,7],server:3,servic:7,setup:6,sideband:1,site:4,specif:6,stack:2,start:1,statu:8,step:[],support:3,system:7,tabl:2,tcp:3,testnet:1,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:[1,7],virtual:[],what:8,where:8,wire:6,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":{ANNOUNCE_CAP:[5,2,1,""],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,7],"000":[],"00000000":6,"00000100":6,"00000111":6,"01":6,"01010000":6,"02":[],"05":0,"07":[],"1":[0,3,5,6,7],"10":[0,3,6,7],"100":[0,3,6],"1000":0,"10000000":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,"150":[3,7],"150m":3,"151":6,"16":[3,7],"17":7,"18":[],"180":[],"182":[],"187":7,"2":[0,3,5,6,7],"20":[0,3,6,7],"200":[3,7],"2000000":[],"205":[],"211":[],"23":7,"237":[6,8],"24":3,"240":[],"25":[0,2,8],"255":3,"256":[5,6],"27":7,"270":[],"2f":0,"3":[0,3,6,7,8],"30":7,"323":[],"33":6,"34":[],"360":5,"3600":[0,3],"367":[],"37":[],"37428":7,"37429":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"3w3lha":[],"4":[6,7],"409":[],"4242":3,"430":6,"45":0,"460":[],"469":7,"476":5,"477":6,"48555":3,"49":7,"49555":3,"4965":[1,7],"5":[0,3,5,7],"500":[5,6,8],"5001":3,"507":5,"512":[3,5,6],"5245a8efe1788c6a70e1":7,"55":3,"56b115c30cd386cad69c":7,"5757":3,"5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq":3,"6":7,"60":0,"600":3,"62":[6,8],"63":7,"64":[6,7],"7":[3,7],"72":3,"7200":3,"74":7,"77":6,"7c565719ec7a8cdb1fe2":[],"7ca6f4e4dc26ae329e61":[],"8":[0,3,7],"80":[5,6,7],"8001":3,"80e29bf7cccaf31431b3":6,"83":[6,7],"86":7,"867":3,"867200000":3,"868":6,"88":3,"9":7,"900":6,"9382f334de63217a4278":7,"95":6,"\u00ec2pd":3,"abstract":6,"break":[5,6,8],"byte":[0,5,6,7,8],"case":[1,3,4,6,7],"class":[0,2,4,8],"default":[0,1,3,4,5,6,7],"do":[0,1,3,5,6,8],"export":1,"final":6,"float":[0,5],"function":[0,1,2,3,4,5,7,8],"import":[0,1,3,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6,7],"public":[0,2,3,5],"return":[0,5],"short":[6,7],"static":5,"switch":[3,6],"throw":[],"true":[0,1,3,5,7],"try":[0,2,3],"while":[0,1,3,4,5,6,8],A:[0,1,3,4,5,6,7,8],And:0,As:[1,3,4,5,6,8],At:[4,6],Be:[5,7],But:6,By:[0,1,3,5,6,7],For:[1,3,4,5,6,8],IF:[],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,7,8],No:[3,6,7,8],On:[0,1,3,7],One:5,Or:[3,8],That:6,The:[0,1,2,3,4,5,8],Then:1,There:[1,4,6,8],These:[1,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,_other_:[],_with_:3,aarch64:1,ab:0,abil:1,abl:[0,1,3,4,5,6,7],about:[0,1,3,4,5,6],abov:[1,3,6,7],absolut:[1,8],accept:[5,6],accept_al:[0,5],accept_app:5,accept_non:5,access:[1,2,3,4,5,7],access_point:3,accomod:6,accord:6,accordingli:0,acheiv:[3,6],achiev:[5,6],acknowledg:8,across:4,act:[1,5,6,7],action:0,activ:[0,1,3,5,6],actor:6,actual:[0,1,3,6],ad:[0,2,3,4,5,6,8],adapt:4,add:[0,1,3,4,7],add_argu:0,addit:[3,6,7,8],additio:[],addition:3,addr1:[],addr2:[],address:[0,1,3,4,5,6,8],adher:5,admin:3,administr:7,adress:[0,1,4,5,6,8],advanc:6,advantag:5,adversari:1,advertis:[0,5],advis:6,ae:[6,8],affect:3,after:[0,3,4,6,7],again:[1,3,6,7],against:6,agenc: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:[3,5,6,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,7],alo:6,alon:3,along:[3,4,6],alreadi:[0,1,4,6,7],als:[],also:[0,1,3,4,5,6,7,8],alter:6,altern:[0,3,7],although:[6,8],alwai:[1,3,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],annouce_cap:3,announc:[2,5,7],announce_cap:[3,5],announce_handl:0,announce_rate_grac:3,announce_rate_penalti:3,announce_rate_target:3,announced_ident:[0,5],announceloop:0,announcesampl:0,announec:[],anonym:[1,4,5,6,8],anoth:[1,5,6,7],answer:[6,7],anymor:1,anyon:[0,1,4,5,6],anyth:[3,6,7,8],anywher:[0,3],ap:3,apart:[],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:[5,6],applic:[0,3,4,5,6,7],approach:[6,7],approv:6,approxim:[],apt:1,ar:[0,1,3,4,5,6,7,8],arbitrari:[5,6],arbritrari:8,architectur:1,area:[3,4,6,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,3,5,6],aspect_filt:[0,5],assign:[6,7],associ:[1,5,6],assum:[3,6],asymmetr:[6,8],attached_interfac:[],attack:1,attempt:5,attribut:5,audit:8,authent:[1,3,4,5,6,8],author:6,auto:[2,5,6],auto_compress:5,autoconfigur:[3,8],autodiscov:3,autointerfac:[3,7],autom:6,automat:[0,1,3,4,5,6,7,8],autonom:[4,6],autoomat:0,avail:[0,1,3,4,5,6,7,8],availadbl:[],averag:6,avoid:[6,7],awai:[0,3,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b32:[1,3],b:[0,4],back:[0,3,6,8],background:[1,3],backhaul:4,balanc:3,band:6,bandwidth:[1,3,4,5,6,8],bare:0,barrier:6,base32:3,base:[2,3,4,5,6,7,8],basi:[3,5,6,7,8],basic:[0,1,2,7],baud:3,beacon:3,beam:[],becaus:[4,6],becki:0,becom:[0,1,4,6],been:[0,1,3,4,5,6,8],befor:[0,1,3,5,6,7],begin:[0,5],begun:5,behalf:3,behaviour:[3,7],behind:[1,6],being:[3,5,6],beings:6,belief:6,below:[1,3,7],benefici:[3,7],best:[1,6,8],beta:8,better:3,between:[0,3,4,5,6],bgp:[],bi:6,bidirect:6,billion:[4,6],bin:7,binari:[0,1,6],bind:3,bit:[3,5,6,7,8],bitrat:3,blob:[0,6],block:3,board:[1,6,8],boot:7,both:[1,3,4,5,6,8],boundari:3,bp:[],breviti:7,bridg:2,briefli:6,bring:3,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:[3,7],browser:1,buffer:3,bug:8,build:[0,1,2,3,6,8],built:[1,3,6,8],bundl:0,c:[0,4],cabl:4,cad:[],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,cap:3,capabl:6,capac:[3,5,6],carambola:0,care:[1,5,8],carefulli:1,cargo_build_target:1,carri:[3,5,6],carrier:[4,8],caution:3,caveat:2,cb:6,cbc:8,cd:1,cdma:3,censor:6,censorship:6,central:[4,6],centralis:6,certain:[0,3,4,6],chain:3,challeng:6,chang:[0,1,3,5,6,7,8],channel:[0,3,4,6,8],channelarg:0,chapter:[1,3,4,6,7,8],charact:0,characterist:6,cheap:6,check:[0,1,5,6],checksum:[5,8],choos:[0,1,3,6],choosen:6,chose:6,chosen:4,chunk:0,ciphertext:5,ciphertext_token:5,circumst:6,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,4,5,7],closed_callback:5,closer:6,closest:6,cluster:6,co:[3,8],code:[1,2,3],codingr:3,com:[0,1],combin:[1,4,6],come:[1,6],comma:3,command:[0,1,3,7],comment:[3,7],common:[1,2,4,6,8],commun:[0,1,3,4,5,6,7,8],compat:[1,3,5,6],compil:1,complet:[0,1,3,4,5,6,7,8],complex:[3,6],compon:6,compos:6,compress:[0,5,6],comput:[1,6,8],concaten:5,concept:[2,6,7],conceptu: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],confus:6,congest:6,conjunct:3,connect:[0,2,3,4,5,6,7,8],consequ:[],conserv:3,consid:[6,8],consider:[],consist:6,constant:5,constantli:6,construct:6,consumpt:[],contact:6,contain:[0,4,5,6,7],contend:6,content:[4,7],context:6,contin:3,continu:8,control:[0,1,2,4,5,6],conveni:0,convent:0,converg:[2,6],coordin:[4,5,6,8],core:[4,6,8],correct:[0,6],correctli:0,correspond:6,cost:[6,8],could:[0,1,3,4,5,6,8],count:6,counter:0,cours:[3,6],cover:[6,8],coverag:4,cpu:0,creat:[0,2,3,4,5,6,7,8],create_kei:5,create_receipt:[0,5],creation:6,creator:6,critic:[6,7],cryptograph:[4,8],cryptographi:[1,6,8],ctrl:0,cull:5,current:[0,1,2,3,5,6],current_download:0,current_filenam:0,curv:[4,5,6,8],curve25519:[4,5,6,8],custom:[3,5,6,8],custom_network_nam:3,customis:3,d:[4,7],daemon:[1,3,5,7],dai:4,data:[0,1,2,3,4,5,6,8],data_port:3,databit:[3,7],date:[0,1],db:0,dbm:[0,3],de:[],debian:[6,7],debug:7,decai:[],decid:[4,5,6],decis:3,decod:0,decrypt:[5,6],dedic:[3,6],deep:1,def:0,default_timeout:[],defin:[0,3,6,7],definit:6,degrad:4,degre:3,delai:[1,3,6,7],deliv:[0,5],deliveri:[0,1,5,8],demand:5,demonstr:[0,3],depend:[1,4,6,7],deploi:6,deregist:5,deregister_announce_handl:5,deregister_request_handl:5,deriv:[6,8],describ:[3,5,6],descript:[0,7],design:[1,4,6,8],desir:[0,3,6],destin:[0,1,2,3,4,7],destination_1:0,destination_2:0,destination_clos:0,destination_hash:[0,5,7],destination_hexhash:0,detail:[0,1,2,3,5,7,8],detect:0,determin:[1,5,6],dev:[1,3,7],develop:[2,6,8],devic:[1,2,3,4,5,6,7],dh:5,dhcp:[3,7],did:0,differ:[0,1,3,4,5,6,7,8],diffi:[4,6,8],difficult:1,digit:[6,8],dir:0,direct:[0,1,4,5,6,7],directli:[3,5,6,7,8],directori:[0,7],disabl:[3,6,7],disable_encrypt:[],disappear:[3,7],disassoci:6,discard:6,disconnect:0,discov:[1,3],discover:3,discoveri:[3,6,7],discovery_port:3,discovery_scop:3,discrimin:4,discuss:[1,6],disk:[0,5],displai:[0,6],dissolv:4,distanc:6,distant:5,distinct:[3,6],distinguish:6,distribut:[0,1,4,5,6,7],divmod:0,document:6,doe:[0,1,2,3,4,5,6,7],doesn:3,dolor:[],domain:[1,3],don:[0,1,4,5,7],done:[0,1,3,4,6,7],dori:4,dot:[6,7],down:[0,3],downgrad:[],download:[0,3],download_began:0,download_conclud:0,download_finish:0,download_start:0,download_tim:0,driver:[7,8],droid:1,drop:[5,6,7],due:4,duplex:[6,8],dynam:[1,7],e702c42ba8:7,e:[0,4],each:[0,1,3,4,6,7],earli:1,earlier:6,eas:[3,6],easi:[1,3,6,7,8],easier:[1,3,4,7],easiest:[1,3,6],easili:[3,4,6,7,8],eca6f4e4dc26ae329e61:7,ecdh:[6,8],echo:[1,2,7],echo_destin:0,echo_request:0,ed25519:[6,8],edit:[1,7],effeci:[],effect:3,effici:[0,1,3,6,8],ei:0,either:[3,4,6,7],elaps:3,elif:0,ellipt:[4,5,6,8],els:[0,4,6],emploi:6,emptor:2,emul:1,enabl:[1,3,4,5,6,7],enable_transport:[6,7],encapsul:[3,8],encod:0,encrypt:[0,1,4,5,6,8],encrypted_mdu:5,encryptionless:[],end:[0,3,4,5,6,8],endless:3,endpoint:[0,4,5,6],energi:1,enforc:3,engin:[],enhanc:6,enough:[1,6],ensur:[3,5,6],enter:0,entir:[4,6,7],entiti:6,entri:[0,1,6],enumer:0,environ:[1,4,6],environment:6,environmentlogg:6,eof:3,ephemer:[4,5,6,8],equal:[4,6],equip:[3,4,6],equival:3,equl:[],error:[0,1,7],especi:3,essenti:[1,3,6],establish:[0,1,3,4,5,8],established_callback:5,establishment_timeout_per_hop:5,etc:7,eth0:3,eth1:3,ethernet:[1,3,4,6,8],even:[1,3,4,6,7,8],event:3,eventu:5,everi:[0,3,4,5,6],everyon:[4,6],everyth:[0,4,6],evolv:4,exact:[3,6],exactli:[5,6],exampl:[1,2,3,5,6,7,8],example_util:[0,7],exampleannouncehandl:0,exampleconfig:7,exce:[0,3,5],except:[0,3],excess:3,exchang:[4,5,6,8],exclud:6,execstart:7,execstartpr:7,execut:[0,1,3,5,7],exhaust:6,exist:[0,1,3,6,7,8],exit:[0,1,5,7],exit_handl:0,expand:6,expect:[0,3,5,6,7],experi:[1,6],experiment:[1,8],expir:3,expiri:3,explain:5,explan:[6,7],explicit:5,explicitli:[],explor:[0,6,8],expos:[3,5],extend:[0,1,5],extern:[1,3,5,8],extra:[1,3,4,7],extrem:[1,6,7,8],f:1,fa7ddfab5213f916dea:6,face:[1,3],fact:8,factor:3,fail:[0,5],failed_callback:[0,5],failur:[1,3],fals:[0,3,5,7],far:[4,6],fast:[2,3,5,6],faster:[1,3,6],fastest:[3,6],featur:[1,6,8],feed:5,feedback:0,feel:1,fernet:8,few:[1,3,4,6,7,8],fewer:5,fibr:8,field:6,file:[0,1,3,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],firewal:[1,3],firmwar:[1,6],first:[0,1,3,5,6,7],fit:0,five:0,fix:[2,6],flag:[5,6],flexibl:[3,8],flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,1,3,6,7,8],forcibl:[5,7],foreground:1,foremost:8,form:[1,3,4,5,6],format:[0,2,8],forth:0,forward:[3,5,6,8],forward_ip:3,forward_port:3,found:[0,1,3,4,6,7],four:4,frame:3,frankfurt:[1,7],free:[4,8],freedom:6,freeli:6,frequenc:[3,6],frequent:3,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,3],furthermor:[],futur:[4,6],g:0,ga:0,gain:6,galact:6,gatekeep:6,gatewai:[1,3,4,6],gbp:7,gen:[],gener:[0,1,3,4,5,6,7,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,geti2p:3,ghz:6,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6,7],given:[3,4,5,6,7],global:[0,1,3,4,6,8],go:[0,1,3,6],goal:[2,3],good:[4,6,7],got:0,got_respons:0,govern:6,gracefulli:3,grape:0,graphic:1,great:6,greater:6,greatli:3,group:[3,5,6],group_id:3,grow:4,growth:2,guarante:[1,6],guess:3,guid:[1,5,6],gw:3,h:[1,7],ha:[0,1,3,4,5,6,8],hack:8,had:6,half:[6,8],hand:[0,1],handheld:6,handl:[0,3,4,5,6,7,8],handler:[0,5],happen:[0,5,6],hardlin:4,hardwar:[1,3,4,5,6,7,8],has_path:[0,5],hasattr:0,hash1:6,hash2:6,hash:[0,1,5,6,7],hash_from_name_and_ident:5,hashmap:0,have:[0,1,3,4,5,6,7],hazard:5,head:1,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],hide:1,high:[3,6,8],higher:[4,8],highli:6,hill:4,hint:0,hit:0,hmac:8,hoc:8,hold:[5,6],home:4,homebrew:3,hop:[3,4,5,6,7,8],hops_to:5,host:[0,1,3,6,7],hostnam:3,hour:[0,3],how:[0,1,3,4,6,8],howev:[1,4],http:[0,1],hub:3,huge:[],human:[0,5,6],i2p:[1,2,8],i2p_tunnel:3,i2pd:1,i2pinterfac:[1,3],i:0,id:[3,5,6,7],id_callsign:3,id_interv:3,idea:[6,7],ideal:8,ident:[0,1,2,8],identif:[2,3,8],identifi:[0,3,5,6],identify:6,identifyexampl:0,ie:7,if00:7,ifac:[6,7],ifac_s:3,ifconfig:7,ignor:[3,5,6],ignored_devic:3,illustr:[4,6],immedi:[1,3,7],impact:[3,6],implement:[0,3,4,5,6,8],implic:3,implicit:[5,6],imposs:6,improv:[2,3],inactive_for:5,inbound:[3,5],includ:[0,2,3,5,6],incom:[0,3,5],incompat:[5,6],increas:3,incred:[],incur:3,indefinit:[],independ:[5,6],independt:8,index:[0,1,2],indirectli:6,individu:[5,6],inevit:6,infer:6,info:[5,6,7],inform:[0,1,2,3,4,5,6,7],infrastructur:[1,3,4,6,7],ingo:5,initi:[0,4,5,6,8],initialis:[0,5,7],input:0,insert:6,insid:6,inspect:[1,3,4,6],instal:[1,3,4,7,8],instanc:[0,2,3,5,6,7],instance_control_port:7,instanti:5,instead:[0,3,6,7],integr:[4,6],intend:[4,6],intention:6,inter:5,interact:[0,1,5,6],interchang:3,interconnect:[2,3,6],interest:6,interfac:[0,2,4,5,7],interface_en:[1,3,7],interface_mod:[],intermediari:6,intermitt:3,intern:[3,5],internet:[2,3,6,8],interoper:[1,4,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],invers:6,investig:4,invis:[1,3],involv:4,io:[1,7],ip:[1,3,6,7,8],ipsum:[],ipv6:[3,7],is_connected_to_shared_inst:0,is_request:[],is_respons:[],isdir:0,isfil:0,island:4,ism:6,isol:[3,7],issu:4,its:[3,5,6],itself:[2,6],iv:8,job:0,join:[0,1,4,6],just:[0,1,3,4,6,8],k:0,kb:7,kbp:7,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,6],kilomet:[],kind:[3,4,6],kiss:[2,7,8],kiss_fram:3,kissinterfac:[3,7],know:[0,1,4,5,6],knowledg:[4,6],known:[0,5,6,7],krypton:0,l:3,lack:6,laid:6,lan:3,larg:[0,3,4,5,6,8],larger:[4,6],laser:3,last:[0,3,5],last_unit:0,latenc:[1,6,8],later:[0,1,3],latest:[0,1,3],latest_client_link:0,launch:[1,7],lavg:[],layer:[3,4,6,8],lead:6,leak:1,learn:[0,1,6],least:[3,6,7,8],leav:[4,6],ledger:6,left:[3,5,6,7],legaci:4,len:0,length:[0,3,5,6],less:[3,6,8],let:[0,1,3,4,6,7],level:[3,6,7],libffi:1,librari:1,licens:6,light:7,like:[1,3,4,5,6,7,8],limit:[4,6],line:[0,1,3,4,6,8],link:[2,3,4,7,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,3,7],log_error:0,log_info:0,loglevel:[0,5,7],longer:[0,4,6,7],longest:3,look:[0,1,3,6,7],loop:0,lora32:[],lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[1,3,4,6,8],lower:[1,3,7],lxmf:1,m:[0,1,6,7],mac:6,machin:6,maco:1,made:[1,5,6],mai:[1,3,5,6,7],main:0,mainli:4,maintain:6,make:[1,3,6,7],malici:6,manag:[1,4,5,6],mani:[0,1,3,4,5,6,7,8],manipul:6,manner:4,manual:[0,1,3,4,5,7],mark:6,markqvist:[0,1],master:[0,5],match:[0,3,6],matter:3,maximum:[3,5,6],mbp:7,mcu:[],mdu:0,mean:[3,4,6,7],measur:6,mechan:[2,3],medium:[3,4,5,6,8],member:4,memori:6,mention:[3,6],menu:0,menu_mod:0,mesh:[1,3,4,8],messag:[0,1,5,6,7],messeng:6,metadata:1,metavar:0,method:[0,1,3,5,6],methodolog:[6,7],mhz:[3,6],mi:0,microcontrol:6,microwav:[],might:[1,3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,3,4,6],minut:[0,1,3,6],mix:[1,3,4,7],mobil:[3,6],mode:[0,1,2,6,7,8],modem:[3,4,5,6,8],moder:3,modifi:[6,7],modul:[0,1,6,7,8],moment:[6,8],momentarili:3,monitor:6,moon:0,mor:[],more:[1,3,4,5,6,7,8],morej:[],most:[1,3,4,6,7],mostli:[3,4,6],motiv:2,move:[1,3,6],mqtt:[],mtu:[5,6,8],much:[1,3,4,7],multi:[6,7,8],multicast:3,multilater:6,multipl:[0,3,4,6,7],multipoint:6,must:[0,1,3,4,5,6],mw:3,my:6,mycal:3,myriad:6,n:[0,6],name:[0,2,3,4,5],namespac:0,nano:1,narg:0,natur:3,nearbi:3,nears:6,necesarri:[3,4],necessari:[1,3,5,6],necessarili:6,need:[0,1,2,3,4,6,7,8],neglig:6,neither:6,neon:0,net:3,netcat:3,netifac:1,network:[0,3,5,6,7,8],network_nam:3,never:[3,5,6],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:[1,2,3,4,7,8],nodet:[],nomad:2,nomadnet:1,non:[1,5,6],none:[0,3,5,6,7],normal:[0,3,5],notat:[6,7],note:[0,1,3,6,7],noth:8,notic:[6,7],notif:[0,5],now:[0,1,4,6,7],nt:0,num:0,number:[0,1,3,4,5,6,7],obfusc:[],object:5,obtain:6,obviusli:6,occasion:1,occur:[7,8],off:[6,8],offer:[1,2,3,5,6],offlin:1,often:[1,3,4,6,7],oganesson:0,old:6,on_interfac:5,onc:[0,1,3,4,5,6,7,8],one:[0,1,3,4,5,6,7,8],ones:[3,7],oneself:6,onli:[0,1,3,4,5,6,7,8],onlin:[],onto:6,open:[0,3,4,5,6,7,8],openmodem:[3,8],openssl:1,oper:[3,4,5,6,7,8],opposit:3,opt:6,optic:8,optim:4,optimis:[],option:[0,1,2,4,5,6,7],order:7,orem:[],organ:4,organis:[3,4],orient:6,origin:[0,4,6],original_hash:[],os:[0,3,6,7,8],ospf:[],other:[1,3,4,5,6,7],otherwis:5,our:[0,6],out:[0,1,3,4,5,6,7,8],outbound:[5,6],outgo:[0,1,3,5,6,7],outli:4,outlier:4,outlin:[1,6],output:[3,7],outward:[],over:[0,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,oversight:6,overview:[2,3,6],overwhelm:[3,5],own:[0,1,4,5,6,7],owner:[],p:0,pack:0,packag:[1,3],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:[1,2,6],pair:[3,6],palm:[],panic:7,panic_on_interface_error:7,parallel:1,paramet:[3,4,5,6],pariti:[3,7],pars:0,parse_arg:0,parser:0,part:[0,3,4,6],particip:[2,4,6],pass:[0,3,4,5,6,7],passphras:[3,6],past:[],path:[0,1,3,5,6,7],path_respons:5,pathfind:[],pathfinder_m:5,pattern:6,payload:[5,6],peach:0,peer:[0,1,3,5,6,7],peer_pub_byt:[],peer_sig_pub_byt:[],penalti:3,peopl:6,per:[3,5,6,8],percent:0,percentag:5,perfect:[],perform:[0,1,3,4,6],period:[3,6],perman:7,permissionless:6,persecut:6,persist:[3,7],person:6,perspect:[3,6],pet:0,philosophi:6,physic:[1,3,6,7],pi:[0,4,6,7,8],pick:6,piec:6,ping:[1,7],pip3:[1,7],pip:[1,7],pipe:[2,8],pipeinterfac:3,pkcs7:8,pkg:1,place:[4,6,7],plain:[0,3,5,6],plain_mdu:5,plaintext:[0,5],plan:[4,6],platform:[1,6],pleas:[0,1,3,7,8],plenti:6,plu:[],plug:7,pmr:6,point:[1,3,4,6,7],pomelo:0,poorli:4,popular:8,port0:7,port:[2,3,4,6,8],portabl:[3,6],posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,3,6,7],power:[1,3,6],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:[1,5],preshar:6,press:0,pretend:6,pretti:6,prettyhexrep:0,previou:0,previous:[4,5,6],primari:6,principl:[6,8],print:[0,3],print_filelist:0,print_help:0,print_menu:0,prioriti:6,prioritis:[2,3,4,5],privaci:8,privat:[1,3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,problem:6,procedur:6,process:[1,3,5,6],product:[],program:[0,2,3,5,6,8],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:[2,3,5],properli:1,properti:[4,5],proport:6,propos:1,protocol:[1,2,3,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,publicli:1,purchas:[4,6,8],purg:5,purpos:[3,5,6],purposefulli:[],put:[0,3],py:[0,1,7],pyseri:1,python3:[1,7],python:[1,6,7,8],q:[0,7],queri:[0,1],question:3,queu:[5,7],queue:[3,6],quickli:[6,8],quiet:[3,7],quinc:0,quit:0,r:[0,3,6,7],radio:[2,3,4,5,6,7,8],radiu:[],radon:0,rais:[0,5],ram:3,rand:[],randint:0,random:[0,5,6],random_text_gener:0,randomis:6,randomli:[0,6],rang:[0,1,3,4,6,8],rapidli:3,rare:3,raspberri:[4,6,7,8],rate:[0,2,7],rather:1,rb:0,re:[0,3,5,6],reach:[2,3,4],reachabl:[0,1,3,4,5,6,7],read:[0,1,3,6,7],readabl:[0,5,6],readi:[0,1,3,4,5,8],readili:8,real:[4,8],realli:[3,5],reappear:3,reason:[3,6],reassembl:6,reboot:1,recal:[0,5],recall_app_data:5,recap:6,receipt:[0,2,6],receiv:[0,1,3,5,6,7],received_announc:[0,5],recent:6,reception_rssi:0,reception_snr:0,reception_stat:0,recip:1,recipi:6,recommend:[0,1,6],reconstruct:6,record:[1,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],relai:1,relat:1,releas:[1,3,6],relev:[0,3,5,6,7],reli:6,reliabl:[3,4,6,8],rem:0,remain:[3,5,6],rememb:6,remot:[0,5],remote_ident:[0,5],remote_identifi:0,remote_identity_hash:[],remote_p:0,remotesensor:6,remov:7,render:1,repeat:1,replac:[1,6,7],repli:[0,7],replic:6,reply_data:0,reply_text:0,report:3,repositori:[1,6],repres:6,represent:[0,6],request:[2,3,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,requestor:3,requestreceipt:5,requir:[0,1,3,4,6,7,8],research:8,resend:5,reserv:6,resid:3,resili:8,resolv:3,resourc:[0,1,2],resource_callback:5,resource_sending_conclud:0,resource_strategi:5,respawn:3,respawn_delai:3,respawn_interv:3,respect:3,respond:[0,5],respons:[2,5,6],response_callback:[0,5],response_gener:[0,5],response_tim:[],rest:[4,8],restart:7,restartsec:7,restor:3,restrict:4,result:[0,6],retain:3,reticulum:[0,3,4],retiiculum:[],retransmiss:6,retransmit:6,retri:6,reveal:[1,5,6,8],review:8,ridicul:6,right:[3,4],rn:[0,1,5,7],rnode:[1,2,6,7,8],rnodeinterfac:[3,7],rnpath:[1,2,3],rnprobe:[1,2],rnsconfig:1,rnsd:[1,2],rnstatu:[1,2,3,6],roam:3,robot:6,rotat:6,round:[0,5,7],rout:[1,3,4,5,6,7,8],routabl:[],router:[3,7],rprogress:0,rsa:[],rssi:0,rtt:[0,5,6],rttstring:0,rule:[2,3],run:[0,1,3,4,5,6,7,8],runtim:6,rust:1,rw:[],rx:3,s:[0,1,3,4,6,7,8],said:6,same:[1,3,4,5,6,7],satisfi:6,save:[5,6],save_error:0,saved_filenam:0,scalabl:8,scale:6,scan:3,scenario:[1,2,6],schedul:5,scope:3,screen:0,seamlessli:3,search:2,second:[0,3,5,6,7,8],secreci:[5,6,8],section:[1,3,4,6,7],secur:[1,6,8],see:[0,1,3,4,5,6,7,8],seek:6,seen:3,segment:[3,4,6,8],segment_index:[],select:[0,3],self:[0,4,8],send:[0,3,5,6,7],sender:[0,1,4,6],sendig:0,sensibl:1,sensor:6,sent:[0,1,5,6,7],sentiment:6,separ:[1,3,4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,3,4,6,7],serve_path:0,server:[0,1,2,7],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,1,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,1,2,3],sever:[1,4,5,7],sha256:8,sha:[5,6],shall:6,share:[1,4,5,6,7],share_inst:7,shared_instance_port:7,she:4,shelf:[6,8],shop:0,shorter:3,shortest:6,shorthand:[3,7],should:[0,1,3,4,5,6,7,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:[3,8],sideband:2,sight:4,sign:[5,6],signatur:[5,6,8],significantli:3,similar:[1,3,4,7,8],simpl:[0,6,7,8],simpler:3,simplest:[3,6],simpli:[0,1,3,4,6,7],simplic:6,simultan:6,sinc:[0,1,3,4,5,6],singl:[0,3,5,6,7,8],singular:6,sit:[],site:[2,3],situat:[1,3,4,6],size:[0,1,3,5,6],size_str:0,sleep:[0,7],slice:0,slightli:1,slottim:[3,7],slow:[0,3,6],slower:[3,5,6],small:[0,3,4,6,8],smaller:5,snr:0,so:[0,1,3,4,5,6,8],socket:7,softwar:[1,3,6,8],solut:6,solv:6,some:[0,1,3,4,6,7],someon:[1,3],someth:6,somethign:0,soon:5,sort:[3,6],soundmodem:3,sourc:[0,1,4,6,8],space:[0,1,4,6,8],spam:3,span:[3,6],special:[6,7],specif:[0,2,3,5,8],specifi:[0,1,3,4,5,7],spectrum:[3,6],speed:[3,6,7],split:0,sponsor:8,spread:3,spreadingfactor:3,squelch:3,ssid:3,stabl:[6,8],stack:[0,1,4,6,7,8],stage:[1,6],stai:[0,6,7],standard:[1,6],start:[0,2,3,5,6,7],startlimitintervalsec:[],startup:0,state:0,station:3,stationari:[4,7],statist:[0,3],statu:[0,1,2,3,5,6,7],stdin:3,stdio:8,stdout:[0,3],step:1,still:[0,4,6],stock:0,stop:8,stopbit:[3,7],store:[0,6,7],store_tru:0,str:0,strategi:[3,5],stream:6,strength:8,strictli:[3,6],string:[0,5],strong:6,structur:6,subject:[],subnet:[1,4],subsequ:6,succe:1,successful:5,successfulli:0,sucessfulli:6,sudo:[1,7],suffic:6,suffici:[1,3,6,7],suffix:0,suit:[1,6,7],suitabl:[0,1,3,4,6,8],suppli:[4,5,6],support:[0,1,2,4,6,8],sure:[1,7],surveil:6,surviv:6,sy:0,symlink:[1,7],symmetr:[5,6],system:[0,1,2,3,4,5,6,8],systemctl:7,systemd:7,t:[0,1,3,4,5,7],tabl:[1,3,4,6,7],tail:3,tailor:6,take:[0,1,3,6,7,8],taken:[0,6],tangerin:0,target:[0,3,7],target_host:[1,3],target_port:[1,3],tcp:[1,2,4,6,8],tcpclientinterfac:[1,3],tcpinterfac:7,tcpserverinterfac:[1,3],tdata:0,teach:7,teardown:[0,5],teardown_reason:0,teffect:0,tell:[0,3],temperatur:6,ten:6,tend:3,term:[4,6],termin:[1,5],terminolog:[4,6],termux:1,test:[1,3,6],testnet:[2,7],text:[0,1,4,6],tfile:0,than:[0,1,3,4,6],thei:[0,1,3,4,5,6,7],them:[0,1,3,4,6,7],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7,8],thing:1,think:1,those:[4,6],though:[1,3,6],thourough:8,thousand:6,thread:0,three:[4,6],throough:3,throttl:4,through:[1,3,4,5,6,7,8],throughout:6,throughput:[6,8],thu:[4,5,6],ti:[0,6],time:[0,1,3,4,5,6,7],timeout:[0,5,7],timeout_callback:[],timeoutarg:0,timestr:0,tnc:[3,5,7,8],to_fil:5,todai:6,todo:[],togeth:[6,7],token:[5,6],toler:3,too:[0,4],tool:[6,8],top:[4,6],topic:6,topographi:[1,4,6],topolog:[3,6],total:[6,8],total_s:0,touch:8,toward:[0,3,6],tradeoff:6,tradit:[4,6],traffic:[0,1,3,4,5,6,7],tramsit:[],transceiv:[1,3,6,8],transfer:[0,5,6,7,8],transfer_s:0,transform:8,transmiss:[1,3,5,6],transmit:[0,3,6],transpar:[3,6,7],transpor:[],transport:[0,1,2,3,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:[4,6,8],ttime:0,ttransfer:0,ttyusb0:[3,7],ttyusb1:3,ttyusb2:3,tun0:3,tune:[],tunnel:[3,6,8],tupl:5,turn:7,turnaround:3,tutori:1,two:[0,1,3,4,6],tx:3,txpower:3,txtail:[3,7],type:[0,1,2,3,4,5,7],typeerror:5,ubuntu:7,udp:[2,4,6,7,8],udpinterfac:3,uhf:[7,8],ultim:6,umsgpack:0,uncencrypt:0,uncensor:1,under:7,underli:[4,8],understand:[1,2,7],unencrypt:[0,5,6],unequivoc:6,unexplor:4,unforg:8,unidentifi:0,unifi:4,uninterest:0,uniqu:[6,8],unit:[0,7],unknown:[0,3,5,6],unless:[1,3,5,6],unlicens:6,unlik:6,unorganis:4,unpack:0,unpackb:0,unplug:7,unrecover:7,unreli:3,unsign:[1,7],unsupport:5,until:[0,3,5],unus:7,unwant:6,up:[0,1,3,4,6,7,8],updat:[0,1,5,6],upgrad:[1,6],upkeep:3,upon:[0,6],upset:0,urandom:8,us:[0,2,3,4,5,6],usabl:6,usag:[1,3,7],usb:[4,6,7],useabl:6,user:[0,1,3,4,6,7],user_input:0,userland:8,usernameher:7,usr:7,utf:0,util:[0,2,3,6],utilis:[1,4,7,8],v:7,valid:[0,3,5,6,7],valu:[3,5,6],valueerror:[0,5],vari:[6,7],variabl:0,varieti:[3,6,7,8],variou:[0,1,3,4,6],vast:6,ve:1,vehicl:3,vendor:0,verbos:7,veri:[1,3,4,5,6,7,8],verif:[5,6],verifi:[0,5,6],versa:[4,8],version:[6,7],vhf:[4,6,8],via:[1,3,6,7,8],vice:[4,8],view:[1,3,6,7],violat:3,virtual:[3,4,6,7,8],visibl:0,w:7,wa:[0,3,4,5,6,8],wai:[0,1,3,4,6],wait:[0,3,6],want:[0,1,3,4,6,7,8],wantedbi:7,warn:7,warrant:8,wast:3,wb:0,we:[0,1,3,6],websit:3,weight:7,welcom:1,well:[1,3,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,6],where:[1,2,3,4,5,6,7],whereupon:6,whether:[0,3,5,6],which:[0,1,3,4,5,6,7],who:[1,6],wide:[3,6,8],wider:[1,3,6,7],wifi:[1,3,4,6,7,8],wildcard:0,willing:4,window:[],wire:[1,2,3,8],wireless:4,wish:[6,7],within:[0,1,3,4,5,6],without:[1,4,6,8],wlan0:3,won:0,work:[1,3,4,6,7,8],world:[4,8],worri:4,would:[1,3,4,5,6],write:[0,1,3,5,6],written:6,wrong:[0,3],x25519:[5,6,8],x:6,xenon:0,y:0,ye:[1,3,6,7],year:6,yet:[0,3,6],yi:0,ykzlw5ujbaqc2xkec4cpvgyxj257wcrmmgkuxqmqcur7cq3w3lha:1,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:[],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":[1,6],"try":1,The:[6,7],With:1,access:6,ad:1,android:1,announc:[0,3,6],api:5,arm64:1,auto:3,ax:3,base:1,basic:6,binari:[],bridg:4,broadcast:0,build:4,can:8,caveat:8,client:3,code:[0,6],common:3,concept:4,configur:7,connect:1,control:3,converg:4,creat:1,current:8,data:7,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,i2p:3,ident:[5,6],identif:0,improv:7,includ:[1,7],indic:2,instanc:1,interconnect:4,interfac:[1,3,6,8],internet:[1,4],introduct:6,kei:6,kiss:3,link:[0,5,6],lora:[3,4],manual:2,mechan:6,minim:0,mode:3,motiv:6,name:[6,7],network:[1,2,4],node:6,nomad:1,offer:8,option:3,orem:[],over:[1,4],overview:4,packet:[5,6],particip:1,pathfind:[],pipe:3,port:7,predict:[],prioritis:6,program:[1,7],propag:6,protocol:6,proven:[],radio:1,rate:3,reach:6,receipt:5,refer:[5,6],request:[0,5],resourc:[5,6],respons:0,reticulum:[1,2,5,6,7,8],retiiculum:[],rnode:3,rnpath:7,rnprobe:7,rnsd:7,rnstatu:7,rule:6,run:[],scenario:4,serial:[3,7],server:3,servic:7,setup:6,sideband:1,site:4,specif:6,stack:2,start:1,statu:8,step:[],support:3,system:7,tabl:2,tcp:3,testnet:1,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:[1,7],virtual:[],what:8,where:8,wire:6,your:7}}) \ No newline at end of file diff --git a/docs/manual/understanding.html b/docs/manual/understanding.html index 173a73c..ed4b048 100644 --- a/docs/manual/understanding.html +++ b/docs/manual/understanding.html @@ -861,10 +861,11 @@ but excluding any interface access codes.

    Announce Propagation Rules

    The following table illustrates the rules for automatically propagating announces -from one interface type to another, for all possible combinations. See the -Interface Modes section for a conceptual overview of the -different interface modes, and how they are configured.

    +from one interface type to another, for all possible combinations. For the purpose +of announce propagation, the Full and Gateway modes are identical.

    _images/if_mode_graph_b.png +

    See the Interface Modes section for a conceptual overview +of the different interface modes, and how they are configured.

    diff --git a/docs/source/interfaces.rst b/docs/source/interfaces.rst index d98f271..899f445 100644 --- a/docs/source/interfaces.rst +++ b/docs/source/interfaces.rst @@ -634,25 +634,51 @@ Interface Modes The optional ``mode`` setting is available on all interfaces, and allows selecting the high-level behaviour of the interface from a number of modes. These modes affect how Reticulum selects paths in the network, how announces -are propagated and how long paths are valid. +are propagated, how long paths are valid and how paths are discovered. -Configuring modes on interfaces is not strictly necessary, but can be useful -when building or connecting to more complex networks. When not running a -Transport Node, it is rarely useful to configure an interface mode. +Configuring modes on interfaces is **not** strictly necessary, but can be useful +when building or connecting to more complex networks. If your Reticulum +instance is not running a Transport Node, it is rarely useful to configure +interface modes, and in such cases interfaces should generally be left in +the default mode. - * | The default value is ``full``. In this mode, all discovery, + * | The default mode is ``full``. In this mode, all discovery, meshing and transport functionality is activated. + * | The ``gateway`` mode (or shorthand ``gw``) also has all + discovery, meshing and transport functionality available, + but will additionally try to discover unknown paths on + behalf of other nodes residing on the ``gateway`` interface. + If Reticulum receives a path request for an unknown + destination, from a node on a ``gateway`` interface, it + will try to discover this path via all other active interfaces, + and forward the discovered path to the requestor if one is + found. + + | If you want to allow other nodes to widely resolve paths or connect + to a network via an interface, it might be useful to put it in this + mode. By creating a chain of ``gateway`` interfaces, other + nodes will be able to immediately discover paths to any + destination along the chain. + + | *Please note!* It is the interface *facing the clients* that + must be put into ``gateway`` mode for this to work, not + the interface facing the wider network (for this, the ``boundary`` + mode can be useful, though). + * | In the ``access_point`` (or shorthand ``ap``) mode, the interface will operate as a network access point. In this mode, announces will not be automatically broadcasted on the interface, and paths to destinations on the interface - will have a much shorter expiry time. This mode is useful - for creating interfaces that remain quiet, unless when - someone is actually using them. An example of this could - be a radio interface serving a wide area, where users are - expected to connect momentarily, use the network, and then - disappear again. + will have a much shorter expiry time. In addition, path + requests from clients on the access point interface will + be handled in the same way as the ``gateway`` interface. + + | This mode is useful for creating interfaces that remain + quiet, until someone actually starts using them. An example + of this could be a radio interface serving a wide area, + where users are expected to connect momentarily, use the + network, and then disappear again. * | The ``roaming`` mode should be used on interfaces that are roaming (physically mobile), seen from the perspective of diff --git a/docs/source/understanding.rst b/docs/source/understanding.rst index 52b58e0..56d665a 100644 --- a/docs/source/understanding.rst +++ b/docs/source/understanding.rst @@ -809,12 +809,14 @@ Announce Propagation Rules -------------------------- The following table illustrates the rules for automatically propagating announces -from one interface type to another, for all possible combinations. See the -:ref:`Interface Modes` section for a conceptual overview of the -different interface modes, and how they are configured. +from one interface type to another, for all possible combinations. For the purpose +of announce propagation, the *Full* and *Gateway* modes are identical. .. image:: graphics/if_mode_graph_b.png +See the :ref:`Interface Modes` section for a conceptual overview +of the different interface modes, and how they are configured. + .. (.. code-block:: text) Full ────── ✓ ──┐ ┌── ✓ ── Full