diff --git a/docs/manual/_sources/understanding.rst.txt b/docs/manual/_sources/understanding.rst.txt index 1a6fd7f..e967c8d 100644 --- a/docs/manual/_sources/understanding.rst.txt +++ b/docs/manual/_sources/understanding.rst.txt @@ -630,9 +630,14 @@ Wire Format [HEADER 2 bytes] [ADDRESSES 10/20 bytes] [CONTEXT 1 byte] [DATA 0-477 bytes] * The HEADER field is 2 bytes long. - * Byte 1: [Header Type], [Propagation Type], [Destination Type] and [Packet Type] + * Byte 1: [IFAC Flag], [Header Type], [Propagation Type], [Destination Type] and [Packet Type] * Byte 2: Number of hops + * Interface Access Code field if the IFAC flag was set. + * The length of the Interface Access Code can vary from + 1 to 64 bytes according to physical interface + capabilities and configuration. + * The ADDRESSES field contains either 1 or 2 addresses. * Each address is 10 bytes long. * The Header Type flag in the HEADER field determines @@ -645,12 +650,16 @@ Wire Format * The DATA field is between 0 and 477 bytes. * It contains the packets data payload. + IFAC Flag + ----------------- + open 0 Packet for publically accessible interface + authenticated 1 Interface authentication is included in packet + + Header Types ----------------- - type 1 00 Two byte header, one 10 byte address field - type 2 01 Two byte header, two 10 byte address fields - type 3 10 Reserved - type 4 11 Reserved + type 1 0 Two byte header, one 10 byte address field + type 2 1 Two byte header, two 10 byte address fields Propagation Types @@ -682,39 +691,57 @@ Wire Format HEADER FIELD DESTINATION FIELDS CONTEXT FIELD DATA FIELD _______|_______ ________________|________________ ________|______ __|_ | | | | | | | | - 01010000 00000100 [ADDR1, 10 bytes] [ADDR2, 10 bytes] [CONTEXT, 1 byte] [DATA] - | | | | | - | | | | +-- Hops = 4 - | | | +------- Packet Type = DATA - | | +--------- Destination Type = SINGLE - | +----------- Propagation Type = TRANSPORT - +------------- Header Type = HEADER_2 (two byte header, two address fields) + 01010000 00000100 [HASH1, 10 bytes] [HASH2, 10 bytes] [CONTEXT, 1 byte] [DATA] + || | | | | + || | | | +-- Hops = 4 + || | | +------- Packet Type = DATA + || | +--------- Destination Type = SINGLE + || +----------- Propagation Type = TRANSPORT + |+------------- Header Type = HEADER_2 (two byte header, two address fields) + +-------------- Access Codes = DISABLED - +- Packet Example -+ + +- Packet Example -+ HEADER FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD _______|_______ _______|_______ ________|______ __|_ | | | | | | | | - 00000000 00000111 [ADDR1, 10 bytes] [CONTEXT, 1 byte] [DATA] - | | | | | - | | | | +-- Hops = 7 - | | | +------- Packet Type = DATA - | | +--------- Destination Type = SINGLE - | +----------- Propagation Type = BROADCAST - +------------- Header Type = HEADER_1 (two byte header, one address field) + 00000000 00000111 [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA] + || | | | | + || | | | +-- Hops = 0 + || | | +------- Packet Type = DATA + || | +--------- Destination Type = SINGLE + || +----------- Propagation Type = BROADCAST + |+------------- Header Type = HEADER_1 (two byte header, one address field) + +-------------- Access Codes = DISABLED - Size examples of different packet types - --------------------------------------- + +- Packet Example -+ - The following table lists example sizes of various - packet types. The size listed are the complete on- - wire size counting all fields including headers. + HEADER FIELD IFAC FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD + _______|_______ ______|______ _______|_______ ________|______ __|_ + | | | | | | | | | | + 10000000 00000111 [IFAC, N bytes] [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA] + || | | | | + || | | | +-- Hops = 0 + || | | +------- Packet Type = DATA + || | +--------- Destination Type = SINGLE + || +----------- Propagation Type = BROADCAST + |+------------- Header Type = HEADER_1 (two byte header, one address field) + +-------------- Access Codes = ENABLED - - Path Request : 33 bytes - - Announce : 151 bytes - - Link Request : 77 bytes - - Link Proof : 77 bytes - - Link RTT packet : 83 bytes - - Link keepalive : 14 bytes + + Size examples of different packet types + --------------------------------------- + + The following table lists example sizes of various + packet types. The size listed are the complete on- + wire size counting all fields including headers, + but excluding any interface access codes. + + - Path Request : 33 bytes + - Announce : 151 bytes + - Link Request : 77 bytes + - Link Proof : 77 bytes + - Link RTT packet : 83 bytes + - Link keepalive : 14 bytes diff --git a/docs/manual/reference.html b/docs/manual/reference.html index 7b8c842..aab950a 100644 --- a/docs/manual/reference.html +++ b/docs/manual/reference.html @@ -76,7 +76,7 @@ other programs to use on demand.

MTU = 500

The MTU that Reticulum adheres to, and will expect other peers to -adhere to. By default, the MTU is 500 bytes. In custom RNS network +adhere to. By default, the MTU is 507 bytes. In custom RNS network implementations, it is possible to change this value, but doing so will completely break compatibility with all other RNS networks. An identical MTU is a prerequisite for peers to communicate in the same network.

@@ -688,7 +688,7 @@ destinations, reticulum will use ephemeral keys, and offers Forward Secr
-PLAIN_MDU = 477
+PLAIN_MDU = 476

The maximum size of the payload data in a single unencrypted packet

diff --git a/docs/manual/searchindex.js b/docs/manual/searchindex.js index df3f681..bbd916e 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,"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,"1024":0,"11":6,"115200":[3,7],"12":[3,6],"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":[],"180":6,"182":[],"2":[0,3,5,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":[],"2f":0,"3":[0,6,7,8],"323":[],"33":6,"34":[],"360":5,"3600":0,"37":7,"37428":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"3w3lha":[],"4":[6,7],"409":[],"4242":[3,7],"430":6,"45":0,"469":7,"477":[5,6],"48555":3,"49555":3,"4965":[1,7],"5":[0,3,5],"500":[5,6,8],"5001":3,"512":5,"55":3,"56b115c30cd386cad69c":7,"5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq":3,"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,"\u00ec2pd":3,"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],"export":1,"float":[0,5],"function":[0,1,2,3,4,5,8],"import":[0,1,3,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6],"public":[0,2,3,5],"return":[0,5],"short":[6,7],"static":5,"switch":3,"throw":[],"true":[0,1,3,5,7],"try":[0,2],"while":[0,1,3,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,1,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:[3,6,8],On:[0,1,3,7],One:5,Or:3,That:6,The:[0,1,2,3,4,5,8],Then:1,There:[1,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,aarch64:1,ab:0,abil:1,abl:[0,1,4,5,6,7],about:[0,1,3,4,5,6],abov:[1,3,6],absolut:1,accept:[5,6],accept_al:[0,5],accept_app:5,accept_non:5,access:[1,3,5,6,7],access_point:3,accord:6,accordingli:0,acheiv:[3,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,2,4,5,8],adapt:4,add:[0,1,3,4,7],add_argu:0,addit:[6,8],addr1:6,addr2:6,address:[0,1,3,4,5,6,8],adher:5,admin:3,administr:7,adress:[0,1,4,5,8],advantag:5,adversari:1,advertis:[0,5],advis:6,ae:[6,8],after:[0,4,6,7],again:[1,3,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:[5,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],alo: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:[1,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,3,5],announce_cap:5,announce_handl:0,announced_ident:[0,5],announceloop:0,announcesampl:0,anonym:[1,4,5,6,8],anoth:[1,5,6,7],answer:[6,7],anymor:1,anyon:[0,4,5,6],anyth:[3,6],anywher:[0,3],ap:3,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:[5,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,3,5,6],aspect_filt:[0,5],assign:[6,7],associ:[1,5,6],assum:[3,6],asymmetr:8,attached_interfac:[],attack:1,attempt:5,attribut:5,audit:8,authent:[5,6,8],author:6,auto:[2,5,6],auto_compress:5,autoconfigur:[3,8],autodiscov:3,autointerfac:3,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,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b32:[1,3],b:[0,4],back:[0,6,8],background:[1,3],backhaul:4,band:6,bandwidth:[1,3,4,5,6,8],bare:0,barrier:6,base32:3,base:[2,3,4,5,6,7,8],basi:[5,6,8],basic:[0,1,2],baud:[3,6],beacon:3,beam:[],becaus:[1,4,6],becki:0,becom:[0,1,4],been:[0,1,3,4,5,6,8],befor:[0,1,5,6,7],begin:[0,5],begun:5,behaviour:3,behind:[1,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,6],bind:3,bit:[5,6,8],blob:[0,6],block:3,board:[1,8],boot:7,both:[1,3,4,5,6,8],bp:6,bridg:2,briefli:6,bring:3,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:[3,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:[],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:[5,6],carambola:0,care:[1,5,8],carefulli:1,cargo_build_target:1,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,3,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,1,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],comma:3,command:[0,1,7],comment:3,common:[1,2,6],commun:[0,1,3,4,5,6,7,8],compat:[1,3,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],confus:6,conjunct:3,connect:[0,2,3,4,5,6,7,8],consequ:[],consid:[6,8],consider:1,consist:6,constant:[5,6],construct:6,consumpt:6,contact:6,contain:[0,4,5,6],content:[4,7],context:6,control:[0,1,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,3,4,5,6,8],count:6,counter:0,cours:[3,6],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,1,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:[1,3,5,7],dai:4,data:[0,1,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,deep:1,def:0,default_timeout:[],defin:[0,3,6],definit:6,degrad:4,degre:3,delai:[6,7],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,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,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],directli:[3,5,6,7,8],directori:[0,7],disabl:3,disable_encrypt:[],disappear:3,discard:6,disconnect:0,discov:1,discover:3,discoveri:[3,6,7],discovery_port:3,discovery_scop:3,discrimin:4,discuss:6,disk:[0,5],displai:[0,6],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],doesn:3,dolor:[],domain:[1,3],don:[0,1,4,5],done:[0,1,4,6],dori:4,dot:[6,7],down:0,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],due:4,duplex:[6,8],dynam:7,e:[0,4],each:[0,1,4,6],earlier:6,eas:[3,6],easi:[3,6,7,8],easier:[1,4,7],easiest:[1,3,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,1,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,6,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],energi:1,engin:[],enough:1,ensur:[5,6],enter:0,entir:[4,6],entiti:6,entri:[0,1,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,1],especi:3,essenti:[1,6],establish:[0,3,5,8],established_callback:5,establishment_timeout_per_hop:5,etc:7,eth0:3,eth1:3,ethernet:[1,3,4,6,8],even:[1,4,6,7,8],event:3,eventu:5,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,5],except:[0,3,6],exchang:[4,5,6,8],execstart:7,execstartpr: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,3,5,6,7],experi:[1,6],experiment:[1,8],expiri:3,explain:5,explan:6,explicit:5,explicitli:[],explor:[0,6,8],expos:[3,5],extend:[0,1,5,6],extern:[1,3,5,8],extra:[1,3,4,7],extrem:8,f:1,fa7ddfab5213f916dea:6,face:1,fact:[6,8],factor:3,fail:[0,5],failed_callback:[0,5],failur:1,fals:[0,3,5],far:[4,6],fast:[2,5],faster:1,fastest:3,featur:[1,6,8],feed:5,feedback:0,fernet:8,few:[1,3,4,6,7,8],fewer:5,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],fit:0,five:0,fix:[2,6],flag:[5,6],flexibl:3,flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,1,3,6,7,8],forcibl:5,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,4,6,7],four:4,frame:3,frankfurt:[1,7],free:8,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],futur:[4,6],g:0,ga:0,gatekeep:6,gatewai:4,gen:[],gener:[0,1,3,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,geti2p:3,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6],given:[4,5,6],global:[0,1,3,4,8],go:[0,1,6],goal:[2,3],good:[4,6],got:0,got_respons:0,govern:6,grape:0,graphic:1,great:6,greater:6,greatli:3,group:[3,5,6],group_id:3,grow:4,growth:2,guarante:[1,6],guid:[1,5,6],h:[1,6,7],ha:[0,1,3,4,5,6,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],hardlin:4,hardwar:[1,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],hide:1,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,1,3,6,7,8],hostnam:3,hour:0,how:[0,1,3,4,6,8],howev:[1,4,6],http:[0,1],hub:3,human:[0,5],i2p:[1,2],i2p_tunnel:3,i2pd:1,i2pinterfac:[1,3],i:0,id:[3,5,6,7],id_callsign:3,id_interv:3,idea:6,ideal:[],ident:[0,1,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:[3,5],includ:[0,2,3,5,6],incom:[0,3,5],incompat:[5,6],increas:[3,6],incur:3,indefinit:[],independ:5,independt:8,index:[0,1,2],indirectli:6,individu:[5,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:[1,3,4],instal:[1,3,4,7],instanc:[0,2,3,5,6,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,interest:6,interfac:[0,2,4,5,6,7],interface_en:[1,3,7],interface_mod:[],intermitt:3,intern:[3,5,6],internet:[2,3,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],investig:4,invis:[1,3],involv:4,io:[1,7],ip:[1,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,1,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,1,4,5,6],knowledg:[4,6],known:[0,5,6],krypton:0,lack:6,laid:6,lan:3,larg:[0,4,5,6],larger:6,laser:3,last:[0,3,5],last_unit:0,latenc:[1,6,8],later:[0,1],latest:[0,1,3],latest_client_link:0,launch:1,lavg:[],layer:[3,4,6,8],lead:6,leak:1,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,1,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,3],log_error:0,log_info:0,loglevel:[0,5],longer:[0,4,6],longest:3,look:[0,1,3,6,7],loop:0,lora32:[],lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[3,4,6,8],lower:1,lxmf:1,m:[0,1,6,7],mac:6,machin:6,maco:1,made:[1,5,6],mai:[1,3,5,6],main:0,mainli:4,maintain:6,make:[1,6,7],malici:6,manag:[1,5],mani:[0,1,3,4,5,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,mcu:[],mdu:0,mean:[6,7],measur:6,mechan:[2,3],medium:[3,4,5,6,8],member:4,memori:6,mention: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:6,might:[1,3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,4,6],minut:[0,1,3,6],mix:[3,4,7],mode:[0,1,3,6,8],modem:[3,4,5,6,8],modul:[0,1,6,7,8],moment:[6,8],momentarili:3,monitor:6,moon:0,mor:[],more:[1,3,4,5,6,8],morej:[],most:[1,3,4,6,7,8],mostli:3,motiv:2,move:1,mqtt:4,mtu:[5,6,8],much:[1,3,6],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,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,net:3,netifac:1,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:[1,2,3,4,7,8],nomad:1,nomadnet:1,non:[1,5,6],none:[0,3,5,6,7],normal:[0,5],notat:[6,7],note:[0,1,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],obfusc:[],object:5,obtain:6,occasion:1,occur:8,off:[6,8],offer:[1,2,3,5,6],often:[4,6,7],oganesson:0,old:6,on_interfac:5,onc:[0,1,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:[],open:[0,3,5,6,7,8],openmodem:[3,8],openssl:1,oper:[3,4,5,6,8],opt:6,optic:8,optim:4,optimis:6,option:[0,1,2,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,our:[0,6],out:[0,3,4,5,6,8],outbound:5,outgo:[0,1,3,5,6,7],outli:4,outlier:4,outlin:[1,6],output:[3,7],outward:6,over:[0,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,overview:[2,3,6],overwhelm:5,own:[0,1,4,5,6],owner:[],p:[0,6],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:[2,6],pair:[3,6],palm:[],parallel:1,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,3,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,percentag:5,perfect:[],perform:[0,1,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,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:[1,6],pleas:[0,1,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],portabl:3,posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,3,6,7],power:[1,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:[1,5],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,4,5],privaci:8,privat:[1,3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,procedur:6,process:[1,3,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:[5,6],properli:1,properti:5,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:6,put:0,py:[0,1,7],pyseri:1,python3:[1,7],python:[1,6,7,8],q:[0,7],queri:[0,1],queu:5,queue:6,quiet:[3,7],quinc:0,quit:0,r:[0,6],radio:[2,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],rather:1,rb:0,re:[0,3,5,6],reach:[2,3,4],reachabl:[0,1,3,4,5,6],read:[0,1,6],readabl:[0,5,6],readi:[0,1,3,4,5],readili:8,real:[4,6,8],realli:[3,5],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],reli:6,reliabl:[3,4,6,8],rem:0,remain:[5,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,1,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],retain:3,reticulum:[0,3,4],retiiculum:[],retransmiss:6,retransmit:6,retri:6,reveal:[5,6,8],review:8,right:4,rn:[0,1,5,7],rnode:[1,2,6,8],rnodeinterfac:3,rnpath:[1,2],rnprobe:[1,2],rnsconfig:1,rnsd:[1,2],rnstatu:[1,2,3],robot:6,rotat:6,round:[0,5,7],rout:[1,3,4,5,6,8],router:3,rprogress:0,rsa:[],rssi:0,rtt:[0,5,6],rttstring:0,rule:6,run:[0,1,3,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],schedul:5,scope:3,screen:0,search:2,second:[0,3,5,6,8],secreci:[5,6,8],section:[1,3,4,6],secur:[1,6,8],see:[0,1,3,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,1,4,6],sendig:0,sensibl:1,sensor:6,sent:[0,1,5,6,7],sentiment:6,separ:[3,4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,3,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,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],she:4,shelf:[6,8],shop:0,shorter:3,shortest:6,shorthand:[3,7],should:[0,1,3,4,5,6,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:8,sideband:1,sight:4,sign:[5,6],signatur:[5,6,8],significantli:[],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,sinc:[0,1,3,4,5,6],singl:[0,3,5,6,8],singular:6,sit:[],site:[2,3],situat:[3,4,6],size:[0,1,5,6],size_str:0,sleep:[0,7],slice:0,slightli:1,slottim:[3,7],slow:[0,3,6],slower:5,small:[0,3,4,6,8],smaller:5,snr:0,so:[0,1,3,4,5,6,7,8],softwar:[1,3,6,8],some:[0,1,3,4,6,7],someon:3,someth:6,somethign:0,soon:5,sort:[3,6],soundmodem:3,sourc:[0,1,4,6,8],space:[0,1,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,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:6,stai:[0,7],standard:[1,6],start:[0,2,3,5,6,7],startlimitintervalsec:[],startup:0,state:0,station:3,stationari:4,statist:0,statu:[0,1,2,3,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:6,subnet:[1,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],surviv:6,sy:0,symlink:[1,7],symmetr:[5,6],system:[0,1,2,3,5,6,8],systemctl:7,systemd:7,t:[0,1,3,4,5,6],tabl:[1,4,6],tail:3,tailor:6,take:[0,1,3,6,8],taken:[0,6],tangerin:0,target:[0,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,teardown:[0,5],teardown_reason:0,teffect:0,tell:[0,3],temperatur:6,ten:6,term:[4,6],termin:[1,5],terminolog:[4,6],termux:1,test:[1,3,6],testnet:[2,7],text:[0,4,6],tfile:0,than:[0,1,4,6],thei:[0,4,5,6],them:[0,1,3,6],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7],thing:1,those:4,though:[1,6],thourough:8,thread:0,three:[4,6],throough:3,throttl:4,through:[1,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:[1,4],topolog:[3,6],total:[6,8],total_s:0,touch:8,toward:[0,6],tradit:4,traffic:[0,1,3,4,5,6],tramsit:[],transceiv:[1,3,6,8],transfer:[0,5,6,8],transfer_s:0,transmiss:[1,3,5,6],transmit:[0,3,6],transpar:[3,6],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:[6,8],ttime:0,ttransfer:0,ttyusb0:[3,7],ttyusb1:3,ttyusb2:3,tun0:3,tune:[],tunnel:[3,6,8],tupl:5,turnaround:3,tutori:1,two:[0,1,3,4,6],tx:[3,7],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,7],umsgpack:0,uncencrypt:0,uncensor:1,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,3,5,6],unlicens:6,unpack:0,unpackb:0,unplug:7,unreli:3,unsign:[1,7],unsupport:5,until:[0,5,6],unwant:6,up:[0,1,3,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:[1,6,7],usb:[4,6,7,8],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:[4,7,8],v:7,valid:[0,3,5,6,7],valu:[3,5,6],valueerror:[0,5],vari:7,variabl:0,varieti:[3,6,8],variou:[0,1,3,6],ve:1,vendor:0,verbos:7,veri:[1,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,3,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,1,3,6],websit:3,well:[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,where:[2,3,4,5,6,7],whereupon:6,whether:[0,3,5,6],which:[0,1,3,4,5,6,7],who:6,wide:[3,6,8],wider:6,wifi:[1,3,4,6,7,8],wildcard:0,willing:4,window:6,wire:[2,3,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,6,8],worri:4,would:[1,3,4,5,6],write:[0,1,5],written:6,wrong:0,x25519:[5,6,8],x:6,xenon:0,y:0,ye:[1,3,6],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: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":[1,6],"try":1,The:[6,7],With:1,ad:1,android:1,announc:[0,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,common:3,concept:4,configur:7,connect:1,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,i2p:3,ident:[5,6],identif:0,improv:7,includ:[1,7],indic:2,instanc:1,interconnect:4,interfac:[1,3,8],internet:[1,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,option:3,orem:[],over:[1,4],overview:4,packet:[5,6],particip:1,pathfind:[],port:7,predict:[],prioritis:6,program:[1,7],protocol:6,proven:[],radio:1,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,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:7,tabl:2,tcp:3,testnet:1,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:[1,7],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,"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,"10000000":6,"1024":0,"11":6,"115200":[3,7],"12":[3,6],"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":[],"180":6,"182":[],"2":[0,3,5,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":[],"2f":0,"3":[0,6,7,8],"323":[],"33":6,"34":[],"360":5,"3600":0,"367":[],"37":7,"37428":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"3w3lha":[],"4":[6,7],"409":[],"4242":[3,7],"430":6,"45":0,"460":[],"469":7,"476":5,"477":6,"48555":3,"49555":3,"4965":[1,7],"5":[0,3,5],"500":[5,6,8],"5001":3,"507":5,"512":5,"55":3,"56b115c30cd386cad69c":7,"5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq":3,"60":0,"600":3,"62":[6,8],"64":6,"7":3,"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,"\u00ec2pd":3,"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],"export":1,"float":[0,5],"function":[0,1,2,3,4,5,8],"import":[0,1,3,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6],"public":[0,2,3,5],"return":[0,5],"short":[6,7],"static":5,"switch":3,"throw":[],"true":[0,1,3,5,7],"try":[0,2],"while":[0,1,3,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,1,3,5,6],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,8],No:[3,6,8],On:[0,1,3,7],One:5,Or:3,That:6,The:[0,1,2,3,4,5,8],Then:1,There:[1,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,aarch64:1,ab:0,abil:1,abl:[0,1,4,5,6,7],about:[0,1,3,4,5,6],abov:[1,3,6],absolut:1,accept:[5,6],accept_al:[0,5],accept_app:5,accept_non:5,access:[1,3,5,6,7],access_point:3,accord:6,accordingli:0,acheiv:[3,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,2,4,5,8],adapt:4,add:[0,1,3,4,7],add_argu:0,addit:[6,8],addr1:[],addr2:[],address:[0,1,3,4,5,6,8],adher:5,admin:3,administr:7,adress:[0,1,4,5,8],advantag:5,adversari:1,advertis:[0,5],advis:6,ae:[6,8],after:[0,4,6,7],again:[1,3,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:[5,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],alo: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:[1,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,3,5],announce_cap:5,announce_handl:0,announced_ident:[0,5],announceloop:0,announcesampl:0,anonym:[1,4,5,6,8],anoth:[1,5,6,7],answer:[6,7],anymor:1,anyon:[0,4,5,6],anyth:[3,6],anywher:[0,3],ap:3,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:[5,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,3,5,6],aspect_filt:[0,5],assign:[6,7],associ:[1,5,6],assum:[3,6],asymmetr:8,attached_interfac:[],attack:1,attempt:5,attribut:5,audit:8,authent:[5,6,8],author:6,auto:[2,5,6],auto_compress:5,autoconfigur:[3,8],autodiscov:3,autointerfac:3,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,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b32:[1,3],b:[0,4],back:[0,6,8],background:[1,3],backhaul:4,band:6,bandwidth:[1,3,4,5,6,8],bare:0,barrier:6,base32:3,base:[2,3,4,5,6,7,8],basi:[5,6,8],basic:[0,1,2],baud:[3,6],beacon:3,beam:[],becaus:[1,4,6],becki:0,becom:[0,1,4],been:[0,1,3,4,5,6,8],befor:[0,1,5,6,7],begin:[0,5],begun:5,behaviour:3,behind:[1,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,6],bind:3,bit:[5,6,8],blob:[0,6],block:3,board:[1,8],boot:7,both:[1,3,4,5,6,8],bp:6,bridg:2,briefli:6,bring:3,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:[3,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:[],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,capabl:6,capac:[5,6],carambola:0,care:[1,5,8],carefulli:1,cargo_build_target:1,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,3,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,1,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],comma:3,command:[0,1,7],comment:3,common:[1,2,6],commun:[0,1,3,4,5,6,7,8],compat:[1,3,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],confus:6,conjunct:3,connect:[0,2,3,4,5,6,7,8],consequ:[],consid:[6,8],consider:1,consist:6,constant:[5,6],construct:6,consumpt:6,contact:6,contain:[0,4,5,6],content:[4,7],context:6,control:[0,1,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,3,4,5,6,8],count:6,counter:0,cours:[3,6],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,1,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:[1,3,5,7],dai:4,data:[0,1,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,deep:1,def:0,default_timeout:[],defin:[0,3,6],definit:6,degrad:4,degre:3,delai:[6,7],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,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,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],directli:[3,5,6,7,8],directori:[0,7],disabl:[3,6],disable_encrypt:[],disappear:3,discard:6,disconnect:0,discov:1,discover:3,discoveri:[3,6,7],discovery_port:3,discovery_scop:3,discrimin:4,discuss:6,disk:[0,5],displai:[0,6],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],doesn:3,dolor:[],domain:[1,3],don:[0,1,4,5],done:[0,1,4,6],dori:4,dot:[6,7],down:0,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],due:4,duplex:[6,8],dynam:7,e:[0,4],each:[0,1,4,6],earlier:6,eas:[3,6],easi:[3,6,7,8],easier:[1,4,7],easiest:[1,3,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,1,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,6,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],energi:1,engin:[],enough:1,ensur:[5,6],enter:0,entir:[4,6],entiti:6,entri:[0,1,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,1],especi:3,essenti:[1,6],establish:[0,3,5,8],established_callback:5,establishment_timeout_per_hop:5,etc:7,eth0:3,eth1:3,ethernet:[1,3,4,6,8],even:[1,4,6,7,8],event:3,eventu:5,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,5],except:[0,3,6],exchang:[4,5,6,8],exclud:6,execstart:7,execstartpr: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,3,5,6,7],experi:[1,6],experiment:[1,8],expiri:3,explain:5,explan:6,explicit:5,explicitli:[],explor:[0,6,8],expos:[3,5],extend:[0,1,5,6],extern:[1,3,5,8],extra:[1,3,4,7],extrem:8,f:1,fa7ddfab5213f916dea:6,face:1,fact:[6,8],factor:3,fail:[0,5],failed_callback:[0,5],failur:1,fals:[0,3,5],far:[4,6],fast:[2,5],faster:1,fastest:3,featur:[1,6,8],feed:5,feedback:0,fernet:8,few:[1,3,4,6,7,8],fewer:5,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],fit:0,five:0,fix:[2,6],flag:[5,6],flexibl:3,flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,1,3,6,7,8],forcibl:5,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,4,6,7],four:4,frame:3,frankfurt:[1,7],free:8,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],futur:[4,6],g:0,ga:0,gatekeep:6,gatewai:4,gen:[],gener:[0,1,3,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,geti2p:3,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6],given:[4,5,6],global:[0,1,3,4,8],go:[0,1,6],goal:[2,3],good:[4,6],got:0,got_respons:0,govern:6,grape:0,graphic:1,great:6,greater:6,greatli:3,group:[3,5,6],group_id:3,grow:4,growth:2,guarante:[1,6],guid:[1,5,6],h:[1,6,7],ha:[0,1,3,4,5,6,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],hardlin:4,hardwar:[1,3,4,5,6,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,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:[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,1,3,6,7,8],hostnam:3,hour:0,how:[0,1,3,4,6,8],howev:[1,4,6],http:[0,1],hub:3,human:[0,5],i2p:[1,2],i2p_tunnel:3,i2pd:1,i2pinterfac:[1,3],i:0,id:[3,5,6,7],id_callsign:3,id_interv:3,idea:6,ideal:[],ident:[0,1,2,8],identif:[2,3,8],identifi:[0,3,5,6],identify:6,identifyexampl:0,ie:[],if00:7,ifac:6,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:[3,5],includ:[0,2,3,5,6],incom:[0,3,5],incompat:[5,6],increas:[3,6],incur:3,indefinit:[],independ:5,independt:8,index:[0,1,2],indirectli:6,individu:[5,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:[1,3,4],instal:[1,3,4,7],instanc:[0,2,3,5,6,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,interest:6,interfac:[0,2,4,5,6,7],interface_en:[1,3,7],interface_mod:[],intermitt:3,intern:[3,5,6],internet:[2,3,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],investig:4,invis:[1,3],involv:4,io:[1,7],ip:[1,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,1,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,1,4,5,6],knowledg:[4,6],known:[0,5,6],krypton:0,lack:6,laid:6,lan:3,larg:[0,4,5,6],larger:6,laser:3,last:[0,3,5],last_unit:0,latenc:[1,6,8],later:[0,1],latest:[0,1,3],latest_client_link:0,launch:1,lavg:[],layer:[3,4,6,8],lead:6,leak:1,learn:[0,1,6],least:[3,6,8],leav:[4,6],ledger:6,left:[5,6],len:0,length:[0,5,6],less:[3,6,8],let:[0,1,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,3],log_error:0,log_info:0,loglevel:[0,5],longer:[0,4,6],longest:3,look:[0,1,3,6,7],loop:0,lora32:[],lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[3,4,6,8],lower:1,lxmf:1,m:[0,1,6,7],mac:6,machin:6,maco:1,made:[1,5,6],mai:[1,3,5,6],main:0,mainli:4,maintain:6,make:[1,6,7],malici:6,manag:[1,5],mani:[0,1,3,4,5,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,mcu:[],mdu:0,mean:[6,7],measur:6,mechan:[2,3],medium:[3,4,5,6,8],member:4,memori:6,mention: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:6,might:[1,3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,4,6],minut:[0,1,3,6],mix:[3,4,7],mode:[0,1,3,6,8],modem:[3,4,5,6,8],modul:[0,1,6,7,8],moment:[6,8],momentarili:3,monitor:6,moon:0,mor:[],more:[1,3,4,5,6,8],morej:[],most:[1,3,4,6,7,8],mostli:3,motiv:2,move:1,mqtt:4,mtu:[5,6,8],much:[1,3,6],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,n:[0,6],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,net:3,netifac:1,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:[1,2,3,4,7,8],nomad:1,nomadnet:1,non:[1,5,6],none:[0,3,5,6,7],normal:[0,5],notat:[6,7],note:[0,1,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],obfusc:[],object:5,obtain:6,occasion:1,occur:8,off:[6,8],offer:[1,2,3,5,6],often:[4,6,7],oganesson:0,old:6,on_interfac:5,onc:[0,1,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:[],open:[0,3,5,6,7,8],openmodem:[3,8],openssl:1,oper:[3,4,5,6,8],opt:6,optic:8,optim:4,optimis:6,option:[0,1,2,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,our:[0,6],out:[0,3,4,5,6,8],outbound:5,outgo:[0,1,3,5,6,7],outli:4,outlier:4,outlin:[1,6],output:[3,7],outward:6,over:[0,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,overview:[2,3,6],overwhelm:5,own:[0,1,4,5,6],owner:[],p:[0,6],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:[2,6],pair:[3,6],palm:[],parallel:1,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,3,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,percentag:5,perfect:[],perform:[0,1,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,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:[1,6],pleas:[0,1,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],portabl:3,posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,3,6,7],power:[1,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:[1,5],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,4,5],privaci:8,privat:[1,3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,procedur:6,process:[1,3,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:[5,6],properli:1,properti:5,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:6,put:0,py:[0,1,7],pyseri:1,python3:[1,7],python:[1,6,7,8],q:[0,7],queri:[0,1],queu:5,queue:6,quiet:[3,7],quinc:0,quit:0,r:[0,6],radio:[2,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],rather:1,rb:0,re:[0,3,5,6],reach:[2,3,4],reachabl:[0,1,3,4,5,6],read:[0,1,6],readabl:[0,5,6],readi:[0,1,3,4,5],readili:8,real:[4,6,8],realli:[3,5],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],reli:6,reliabl:[3,4,6,8],rem:0,remain:[5,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,1,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],retain:3,reticulum:[0,3,4],retiiculum:[],retransmiss:6,retransmit:6,retri:6,reveal:[5,6,8],review:8,right:4,rn:[0,1,5,7],rnode:[1,2,6,8],rnodeinterfac:3,rnpath:[1,2],rnprobe:[1,2],rnsconfig:1,rnsd:[1,2],rnstatu:[1,2,3],robot:6,rotat:6,round:[0,5,7],rout:[1,3,4,5,6,8],router:3,rprogress:0,rsa:[],rssi:0,rtt:[0,5,6],rttstring:0,rule:6,run:[0,1,3,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],schedul:5,scope:3,screen:0,search:2,second:[0,3,5,6,8],secreci:[5,6,8],section:[1,3,4,6],secur:[1,6,8],see:[0,1,3,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,1,4,6],sendig:0,sensibl:1,sensor:6,sent:[0,1,5,6,7],sentiment:6,separ:[3,4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,3,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,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],she:4,shelf:[6,8],shop:0,shorter:3,shortest:6,shorthand:[3,7],should:[0,1,3,4,5,6,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:8,sideband:1,sight:4,sign:[5,6],signatur:[5,6,8],significantli:[],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,sinc:[0,1,3,4,5,6],singl:[0,3,5,6,8],singular:6,sit:[],site:[2,3],situat:[3,4,6],size:[0,1,5,6],size_str:0,sleep:[0,7],slice:0,slightli:1,slottim:[3,7],slow:[0,3,6],slower:5,small:[0,3,4,6,8],smaller:5,snr:0,so:[0,1,3,4,5,6,7,8],softwar:[1,3,6,8],some:[0,1,3,4,6,7],someon:3,someth:6,somethign:0,soon:5,sort:[3,6],soundmodem:3,sourc:[0,1,4,6,8],space:[0,1,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,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:6,stai:[0,7],standard:[1,6],start:[0,2,3,5,6,7],startlimitintervalsec:[],startup:0,state:0,station:3,stationari:4,statist:0,statu:[0,1,2,3,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:6,subnet:[1,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],surviv:6,sy:0,symlink:[1,7],symmetr:[5,6],system:[0,1,2,3,5,6,8],systemctl:7,systemd:7,t:[0,1,3,4,5,6],tabl:[1,4,6],tail:3,tailor:6,take:[0,1,3,6,8],taken:[0,6],tangerin:0,target:[0,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,teardown:[0,5],teardown_reason:0,teffect:0,tell:[0,3],temperatur:6,ten:6,term:[4,6],termin:[1,5],terminolog:[4,6],termux:1,test:[1,3,6],testnet:[2,7],text:[0,4,6],tfile:0,than:[0,1,4,6],thei:[0,4,5,6],them:[0,1,3,6],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7],thing:1,those:4,though:[1,6],thourough:8,thread:0,three:[4,6],throough:3,throttl:4,through:[1,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:[1,4],topolog:[3,6],total:[6,8],total_s:0,touch:8,toward:[0,6],tradit:4,traffic:[0,1,3,4,5,6],tramsit:[],transceiv:[1,3,6,8],transfer:[0,5,6,8],transfer_s:0,transmiss:[1,3,5,6],transmit:[0,3,6],transpar:[3,6],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:[6,8],ttime:0,ttransfer:0,ttyusb0:[3,7],ttyusb1:3,ttyusb2:3,tun0:3,tune:[],tunnel:[3,6,8],tupl:5,turnaround:3,tutori:1,two:[0,1,3,4,6],tx:[3,7],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,7],umsgpack:0,uncencrypt:0,uncensor:1,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,3,5,6],unlicens:6,unpack:0,unpackb:0,unplug:7,unreli:3,unsign:[1,7],unsupport:5,until:[0,5,6],unwant:6,up:[0,1,3,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:[1,6,7],usb:[4,6,7,8],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:[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,8],variou:[0,1,3,6],ve:1,vendor:0,verbos:7,veri:[1,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,3,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,1,3,6],websit:3,well:[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,where:[2,3,4,5,6,7],whereupon:6,whether:[0,3,5,6],which:[0,1,3,4,5,6,7],who:6,wide:[3,6,8],wider:6,wifi:[1,3,4,6,7,8],wildcard:0,willing:4,window:6,wire:[2,3,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,6,8],worri:4,would:[1,3,4,5,6],write:[0,1,5],written:6,wrong:0,x25519:[5,6,8],x:6,xenon:0,y:0,ye:[1,3,6],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: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":[1,6],"try":1,The:[6,7],With:1,ad:1,android:1,announc:[0,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,common:3,concept:4,configur:7,connect:1,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,i2p:3,ident:[5,6],identif:0,improv:7,includ:[1,7],indic:2,instanc:1,interconnect:4,interfac:[1,3,8],internet:[1,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,option:3,orem:[],over:[1,4],overview:4,packet:[5,6],particip:1,pathfind:[],port:7,predict:[],prioritis:6,program:[1,7],protocol:6,proven:[],radio:1,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,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:7,tabl:2,tcp:3,testnet:1,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:[1,7],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 2291580..1812ecc 100644 --- a/docs/manual/understanding.html +++ b/docs/manual/understanding.html @@ -689,9 +689,14 @@ A Reticulum packet is composed of the following fields: [HEADER 2 bytes] [ADDRESSES 10/20 bytes] [CONTEXT 1 byte] [DATA 0-477 bytes] * The HEADER field is 2 bytes long. - * Byte 1: [Header Type], [Propagation Type], [Destination Type] and [Packet Type] + * Byte 1: [IFAC Flag], [Header Type], [Propagation Type], [Destination Type] and [Packet Type] * Byte 2: Number of hops +* Interface Access Code field if the IFAC flag was set. + * The length of the Interface Access Code can vary from + 1 to 64 bytes according to physical interface + capabilities and configuration. + * The ADDRESSES field contains either 1 or 2 addresses. * Each address is 10 bytes long. * The Header Type flag in the HEADER field determines @@ -704,12 +709,16 @@ A Reticulum packet is composed of the following fields: * The DATA field is between 0 and 477 bytes. * It contains the packets data payload. +IFAC Flag +----------------- +open 0 Packet for publically accessible interface +authenticated 1 Interface authentication is included in packet + + Header Types ----------------- -type 1 00 Two byte header, one 10 byte address field -type 2 01 Two byte header, two 10 byte address fields -type 3 10 Reserved -type 4 11 Reserved +type 1 0 Two byte header, one 10 byte address field +type 2 1 Two byte header, two 10 byte address fields Propagation Types @@ -741,42 +750,60 @@ proof 11 HEADER FIELD DESTINATION FIELDS CONTEXT FIELD DATA FIELD _______|_______ ________________|________________ ________|______ __|_ | | | | | | | | -01010000 00000100 [ADDR1, 10 bytes] [ADDR2, 10 bytes] [CONTEXT, 1 byte] [DATA] - | | | | | - | | | | +-- Hops = 4 - | | | +------- Packet Type = DATA - | | +--------- Destination Type = SINGLE - | +----------- Propagation Type = TRANSPORT - +------------- Header Type = HEADER_2 (two byte header, two address fields) +01010000 00000100 [HASH1, 10 bytes] [HASH2, 10 bytes] [CONTEXT, 1 byte] [DATA] +|| | | | | +|| | | | +-- Hops = 4 +|| | | +------- Packet Type = DATA +|| | +--------- Destination Type = SINGLE +|| +----------- Propagation Type = TRANSPORT +|+------------- Header Type = HEADER_2 (two byte header, two address fields) ++-------------- Access Codes = DISABLED - +- Packet Example -+ ++- Packet Example -+ HEADER FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD _______|_______ _______|_______ ________|______ __|_ | | | | | | | | -00000000 00000111 [ADDR1, 10 bytes] [CONTEXT, 1 byte] [DATA] - | | | | | - | | | | +-- Hops = 7 - | | | +------- Packet Type = DATA - | | +--------- Destination Type = SINGLE - | +----------- Propagation Type = BROADCAST - +------------- Header Type = HEADER_1 (two byte header, one address field) +00000000 00000111 [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA] +|| | | | | +|| | | | +-- Hops = 0 +|| | | +------- Packet Type = DATA +|| | +--------- Destination Type = SINGLE +|| +----------- Propagation Type = BROADCAST +|+------------- Header Type = HEADER_1 (two byte header, one address field) ++-------------- Access Codes = DISABLED - Size examples of different packet types - --------------------------------------- ++- Packet Example -+ - The following table lists example sizes of various - packet types. The size listed are the complete on- - wire size counting all fields including headers. + HEADER FIELD IFAC FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD + _______|_______ ______|______ _______|_______ ________|______ __|_ +| | | | | | | | | | +10000000 00000111 [IFAC, N bytes] [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA] +|| | | | | +|| | | | +-- Hops = 0 +|| | | +------- Packet Type = DATA +|| | +--------- Destination Type = SINGLE +|| +----------- Propagation Type = BROADCAST +|+------------- Header Type = HEADER_1 (two byte header, one address field) ++-------------- Access Codes = ENABLED - - Path Request : 33 bytes - - Announce : 151 bytes - - Link Request : 77 bytes - - Link Proof : 77 bytes - - Link RTT packet : 83 bytes - - Link keepalive : 14 bytes + +Size examples of different packet types +--------------------------------------- + +The following table lists example sizes of various +packet types. The size listed are the complete on- +wire size counting all fields including headers, +but excluding any interface access codes. + +- Path Request : 33 bytes +- Announce : 151 bytes +- Link Request : 77 bytes +- Link Proof : 77 bytes +- Link RTT packet : 83 bytes +- Link keepalive : 14 bytes diff --git a/docs/source/understanding.rst b/docs/source/understanding.rst index 1a6fd7f..e967c8d 100644 --- a/docs/source/understanding.rst +++ b/docs/source/understanding.rst @@ -630,9 +630,14 @@ Wire Format [HEADER 2 bytes] [ADDRESSES 10/20 bytes] [CONTEXT 1 byte] [DATA 0-477 bytes] * The HEADER field is 2 bytes long. - * Byte 1: [Header Type], [Propagation Type], [Destination Type] and [Packet Type] + * Byte 1: [IFAC Flag], [Header Type], [Propagation Type], [Destination Type] and [Packet Type] * Byte 2: Number of hops + * Interface Access Code field if the IFAC flag was set. + * The length of the Interface Access Code can vary from + 1 to 64 bytes according to physical interface + capabilities and configuration. + * The ADDRESSES field contains either 1 or 2 addresses. * Each address is 10 bytes long. * The Header Type flag in the HEADER field determines @@ -645,12 +650,16 @@ Wire Format * The DATA field is between 0 and 477 bytes. * It contains the packets data payload. + IFAC Flag + ----------------- + open 0 Packet for publically accessible interface + authenticated 1 Interface authentication is included in packet + + Header Types ----------------- - type 1 00 Two byte header, one 10 byte address field - type 2 01 Two byte header, two 10 byte address fields - type 3 10 Reserved - type 4 11 Reserved + type 1 0 Two byte header, one 10 byte address field + type 2 1 Two byte header, two 10 byte address fields Propagation Types @@ -682,39 +691,57 @@ Wire Format HEADER FIELD DESTINATION FIELDS CONTEXT FIELD DATA FIELD _______|_______ ________________|________________ ________|______ __|_ | | | | | | | | - 01010000 00000100 [ADDR1, 10 bytes] [ADDR2, 10 bytes] [CONTEXT, 1 byte] [DATA] - | | | | | - | | | | +-- Hops = 4 - | | | +------- Packet Type = DATA - | | +--------- Destination Type = SINGLE - | +----------- Propagation Type = TRANSPORT - +------------- Header Type = HEADER_2 (two byte header, two address fields) + 01010000 00000100 [HASH1, 10 bytes] [HASH2, 10 bytes] [CONTEXT, 1 byte] [DATA] + || | | | | + || | | | +-- Hops = 4 + || | | +------- Packet Type = DATA + || | +--------- Destination Type = SINGLE + || +----------- Propagation Type = TRANSPORT + |+------------- Header Type = HEADER_2 (two byte header, two address fields) + +-------------- Access Codes = DISABLED - +- Packet Example -+ + +- Packet Example -+ HEADER FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD _______|_______ _______|_______ ________|______ __|_ | | | | | | | | - 00000000 00000111 [ADDR1, 10 bytes] [CONTEXT, 1 byte] [DATA] - | | | | | - | | | | +-- Hops = 7 - | | | +------- Packet Type = DATA - | | +--------- Destination Type = SINGLE - | +----------- Propagation Type = BROADCAST - +------------- Header Type = HEADER_1 (two byte header, one address field) + 00000000 00000111 [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA] + || | | | | + || | | | +-- Hops = 0 + || | | +------- Packet Type = DATA + || | +--------- Destination Type = SINGLE + || +----------- Propagation Type = BROADCAST + |+------------- Header Type = HEADER_1 (two byte header, one address field) + +-------------- Access Codes = DISABLED - Size examples of different packet types - --------------------------------------- + +- Packet Example -+ - The following table lists example sizes of various - packet types. The size listed are the complete on- - wire size counting all fields including headers. + HEADER FIELD IFAC FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD + _______|_______ ______|______ _______|_______ ________|______ __|_ + | | | | | | | | | | + 10000000 00000111 [IFAC, N bytes] [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA] + || | | | | + || | | | +-- Hops = 0 + || | | +------- Packet Type = DATA + || | +--------- Destination Type = SINGLE + || +----------- Propagation Type = BROADCAST + |+------------- Header Type = HEADER_1 (two byte header, one address field) + +-------------- Access Codes = ENABLED - - Path Request : 33 bytes - - Announce : 151 bytes - - Link Request : 77 bytes - - Link Proof : 77 bytes - - Link RTT packet : 83 bytes - - Link keepalive : 14 bytes + + Size examples of different packet types + --------------------------------------- + + The following table lists example sizes of various + packet types. The size listed are the complete on- + wire size counting all fields including headers, + but excluding any interface access codes. + + - Path Request : 33 bytes + - Announce : 151 bytes + - Link Request : 77 bytes + - Link Proof : 77 bytes + - Link RTT packet : 83 bytes + - Link keepalive : 14 bytes