Commit Graph

834 Commits

Author SHA1 Message Date
Mark Qvist
ce00822cb0 Work on tunnels 2021-09-18 18:11:23 +02:00
Mark Qvist
5e21bdd233 Improved link teardown handling. 2021-09-16 20:40:37 +02:00
Mark Qvist
f80e09cb5c Included six internally. 2021-09-11 16:03:35 +02:00
Mark Qvist
91d94f2f6f Fixed incorrect transfer size indications on single-packet request responses with msgpacked dictionaries as payloads. 2021-09-10 21:35:30 +02:00
Mark Qvist
534bb28900 Fixed removal of non-existing receipts. 2021-09-05 20:05:12 +02:00
Mark Qvist
5629a062a5 Added resource window timeout recalculations during transfer. 2021-09-03 22:53:25 +02:00
Mark Qvist
83232f0446 Work on resource timing. 2021-09-03 22:20:16 +02:00
Mark Qvist
aa794514b3 Work on resource timing. 2021-09-03 22:01:58 +02:00
Mark Qvist
07cf180ea8 Added continous resource timeout adjustment. Fixes missing response timeout check. 2021-09-03 21:08:20 +02:00
Mark Qvist
42a3d23e99 Optimised resource transfer timings. Improved request/response timeout handling. 2021-09-03 18:53:37 +02:00
Mark Qvist
d28c888d1c Improved link request/response handling. 2021-09-03 16:24:47 +02:00
Mark Qvist
58d48c18f4 Improved link request/response handling. 2021-09-03 16:23:31 +02:00
Mark Qvist
ecf0c55fd6 Improved link establishment. 2021-09-03 16:14:08 +02:00
Mark Qvist
32e4c262ef Improved link timeout handling. 2021-09-03 15:47:42 +02:00
Mark Qvist
f87a6a57df Added link error handling. 2021-09-03 15:08:38 +02:00
Mark Qvist
6373f159f8 Added link error handling. 2021-09-03 14:42:59 +02:00
Mark Qvist
ad9f548eeb Improved request timeout calculation and handling. 2021-09-03 14:22:53 +02:00
Mark Qvist
425f0153d0 Added flow control timeouts to AX.25 interface and optimised timeouts. 2021-09-03 10:56:49 +02:00
Mark Qvist
cd9daaefee Removed option to allow unencrypted links. 2021-09-03 10:13:48 +02:00
Mark Qvist
0fe76d50f6 Improved documentation. 2021-09-02 20:35:42 +02:00
Mark Qvist
9562803bb3 Optimised sent Fernet token data. 2021-09-02 18:42:17 +02:00
Mark Qvist
e9c89209c7 Optimised sent Fernet token data. 2021-09-02 18:34:58 +02:00
Mark Qvist
cd8de64201 Implemented ability to change MTU. 2021-09-02 18:00:03 +02:00
Mark Qvist
40f7a6d359 Added resource HMU/part request hash filter. Fixes #7. 2021-09-02 14:44:53 +02:00
Mark Qvist
0c96508cca Updated default config. 2021-08-29 13:48:12 +02:00
Mark Qvist
1fd59f1a02 Fixed resource sequencing fail handling. 2021-08-29 13:46:31 +02:00
Mark Qvist
b694cbdc91 Improved announce handling for local clients. 2021-08-29 12:43:54 +02:00
Mark Qvist
71c3333e10 Improved announce handling for local clients. 2021-08-29 12:28:30 +02:00
Mark Qvist
972fcdee22 Fixed identity saving. 2021-08-29 01:24:21 +02:00
Mark Qvist
781cb4712d Fixed request packet receipts timing out in spite of delivery. 2021-08-28 23:53:51 +02:00
Mark Qvist
cdb08325cc Fixed timeout calculation condition. 2021-08-28 20:34:41 +02:00
Mark Qvist
62d954d7bf Fixed timeout calculation condition. 2021-08-28 20:21:50 +02:00
Mark Qvist
2678aeb6a1 Improved timeout calculation and handling. 2021-08-28 20:01:01 +02:00
Mark Qvist
6d441dac02 Better resource advertisement timeout. 2021-08-28 14:41:25 +02:00
Mark Qvist
2e7126ef39 Cleaned up log statements 2021-08-27 22:51:16 +02:00
Mark Qvist
c0f909850b Updated docs. 2021-08-27 19:54:57 +02:00
Mark Qvist
a199e4c929 Improved link and resource callbacks and resource handling. 2021-08-27 19:52:48 +02:00
Mark Qvist
f719d44db5 Transport optimisations 2021-08-21 20:23:36 +02:00
Mark Qvist
af890d91d2 Fixed race condition in outbound handling packet filter 2021-08-21 19:42:01 +02:00
Mark Qvist
212518a345 Implemented requests and responses of arbitrary sizes using resources. 2021-08-21 14:52:31 +02:00
Mark Qvist
1dc6655017 Implemented request and response API 2021-08-20 23:29:06 +02:00
Mark Qvist
69930e5652 Updated default config 2021-08-20 11:23:35 +02:00
Mark Qvist
2b8b95da2b Added config options for TCP server interface binding to network interface instead of IP. 2021-08-19 20:13:53 +02:00
Mark Qvist
6382409194 Added config options for UDP interface binding to network interface instead of IP. 2021-08-19 19:56:35 +02:00
Mark Qvist
4fd3d26714 Fixed UDP broadcast echo packets not being filtered. 2021-08-19 17:05:07 +02:00
Mark Qvist
384a7db974 Implemented link peer identification 2021-08-19 14:10:37 +02:00
Mark Qvist
ad67c553d7 Added exception when trying to remember an invalid public key 2021-05-20 22:30:54 +02:00
Mark Qvist
d68cfaa8f7 Optimised link establishment 2021-05-20 20:32:08 +02:00
Mark Qvist
e8ca88377a Updated documentation 2021-05-20 18:37:12 +02:00
Mark Qvist
db527b6759 Optimised announces to 151 bytes 2021-05-20 16:56:08 +02:00
Mark Qvist
ce405b9252 Migrated all asymmetric crypto operations to ECIES on Curve25519. 2021-05-20 15:31:38 +02:00
Mark Qvist
7f5625a526 Cleanup 2021-05-20 13:38:57 +02:00
Mark Qvist
f880edbeb8 Store GROUP destination symmetric key as bytes instead of base64 2021-05-20 12:44:12 +02:00
Mark Qvist
e746a80dca Fixed beacon data in KISSInterface 2021-05-17 22:01:56 +02:00
Mark Qvist
94813d95b1 Separate Ed25519 signature keys on links 2021-05-17 19:11:10 +02:00
Mark Qvist
aa93e475a4 Updated docs 2021-05-17 15:57:41 +02:00
Mark Qvist
8478782c18 Moved Reticulum to Curve25519 for ECDH exchanges and signatures 2021-05-17 14:05:13 +02:00
Mark Qvist
08dc980282 Added docstrings to Resource 2021-05-16 23:29:25 +02:00
Mark Qvist
dfb5af5dd1 Added docstrings, refactored method names. 2021-05-16 23:14:49 +02:00
Mark Qvist
3f1e2bc682 Changed method order 2021-05-16 23:14:19 +02:00
Mark Qvist
522204d8a5 Added Identity docstrings. Renamed Identity method. 2021-05-16 21:58:50 +02:00
Mark Qvist
e7f7d91276 Updated Destination docstring 2021-05-16 21:57:49 +02:00
Mark Qvist
e8f7e4a5b7 Fixed excessive resource hashmap size 2021-05-16 17:33:55 +02:00
Mark Qvist
235b1cea4c Refactored Transport method names 2021-05-16 16:48:54 +02:00
Mark Qvist
8496ee19d9 Refactored Resource method names 2021-05-16 16:43:34 +02:00
Mark Qvist
55c0f44e58 Refactored Packet method names 2021-05-16 16:42:07 +02:00
Mark Qvist
cd2f49272d Refactored Link method names 2021-05-16 16:37:12 +02:00
Mark Qvist
d03b7d7a52 Refactored Identity method names 2021-05-16 16:15:57 +02:00
Mark Qvist
fe773c32e2 Implemented callback as default_app_data. Added docstrings to Destination. 2021-05-16 15:58:06 +02:00
Mark Qvist
27dbde1981 Updated docstrings 2021-05-16 15:52:45 +02:00
Mark Qvist
aa02931364 Refactored and documented Reticulum class 2021-05-16 13:02:46 +02:00
Mark Qvist
b2eebd90ea Refactored and documented Reticulum class 2021-05-16 12:55:50 +02:00
Mark Qvist
bdf1d289b0 Added default app data to destinations 2021-05-15 13:06:50 +02:00
Mark Qvist
43de693f01 Fixed typo 2021-05-15 10:57:54 +02:00
Mark Qvist
a60e4fc5f1 Renamed has_path method 2021-05-14 21:36:44 +02:00
Mark Qvist
0c76d6a15c Link inbound/outbound inactivity timers 2021-05-14 12:58:02 +02:00
Mark Qvist
f242abcf75 Version bump 2021-05-13 16:42:36 +02:00
Mark Qvist
51ab2d3488 Implemented app_data recall from announces, better destination registration handling and link inactivity querying. 2021-05-13 16:41:23 +02:00
Mark Qvist
54206d9101 Added thread locking to log output. Various housekeeping. 2021-05-03 20:24:44 +02:00
Mark Qvist
f275065b40 Implemented ID beaconing on RNode and KISS interfaces 2020-08-13 15:06:39 +02:00
Mark Qvist
a43d485630 Renamed UDPInterface 2020-08-13 12:37:54 +02:00
Mark Qvist
b9301a2a8a Fixed public exponent 2020-08-13 12:25:56 +02:00
Mark Qvist
bd098c338a Indentation and formatting cleanup 2020-08-13 12:15:56 +02:00
Mark Qvist
e4dfd052e6 Implemented recursive resource segmentation for large transfers 2020-08-12 21:49:59 +02:00
Mark Qvist
73a3516db8 Indentation rework 2020-08-12 20:59:13 +02:00
Mark Qvist
81804b5d19 Resource work 2020-08-12 20:58:32 +02:00
Mark Qvist
bf0e22d461 Indentation fix 2020-08-12 20:51:33 +02:00
Mark Qvist
6b2b66aa25 Moving large transfers to recursive resource segmentation 2020-08-12 20:48:16 +02:00
Mark Qvist
4a3ee622ec Work on bundles 2020-08-12 14:06:29 +02:00
Mark Qvist
90f2a84243 Work on bundles 2020-08-11 20:15:23 +02:00
Mark Qvist
19257b5975 Bundle class setup 2020-06-14 20:18:46 +02:00
Mark Qvist
e2122be006 Started bundle class 2020-06-14 18:33:01 +02:00
Mark Qvist
4ffe4482d3 Updated readme and fixed typos 2020-06-14 11:26:11 +02:00
Mark Qvist
459f6b792f Optimised resource transfers, fixed resource transfer regression, removed txdelay from UDPInterface. 2020-06-10 10:58:13 +02:00
Mark Qvist
24abb4cfa4 Fixed coding rate reference in RNodeInterface 2020-05-28 22:15:46 +02:00
Mark Qvist
0d069bf1d8 Fixed missing cr statement for RNodeInterface 2020-05-27 16:47:12 +02:00
Mark Qvist
8c2cfb0349 Added periodic ID option to RNode interface. Fixed RNode SNR stat indication. 2020-05-21 14:17:14 +02:00
Mark Qvist
3819485c20 Better comments on outbound transport 2020-05-15 10:05:18 +02:00
Mark Qvist
3ca06bbf3a Fixed shared instance transport for 1-hop destinations. Path request forwarding to local clients behind shared instance. 2020-05-15 09:41:26 +02:00
Mark Qvist
8a69f7e88c Implemented systemwide shared instance 2020-05-14 16:31:23 +02:00
Mark Qvist
e3bd91b82d Changed transport init 2020-05-14 16:23:13 +02:00
Mark Qvist
343f439ad9 Improved group destination error handling 2020-05-14 13:42:49 +02:00
Mark Qvist
14784d2c01 Added default create_receipt behaviour on packet 2020-05-14 12:20:59 +02:00
Mark Qvist
e0e1868e50 Transport handling of announces and path requests for shared instance 2020-05-13 20:33:10 +02:00
Mark Qvist
6903c7a2f6 Initial handling for local shared instance 2020-05-13 16:03:50 +02:00
Mark Qvist
27f5b8fb3e Fixed typo 2020-05-13 16:03:25 +02:00
Mark Qvist
a2e856762c Relaxed outbound error handling 2020-05-13 16:02:37 +02:00
Mark Qvist
06a43f6515 Removed stray log statement 2020-05-13 16:02:03 +02:00
Mark Qvist
d74f92ad15 Added local interface 2020-05-13 16:01:27 +02:00
Mark Qvist
be1ff8ec21 Resource transfer and receipt management optimisation 2020-05-13 13:08:48 +02:00
Mark Qvist
94164bb580 Updated readme 2020-05-13 09:31:43 +02:00
Mark Qvist
c595fdd54b Optimised resource transfer implementation 2020-05-12 16:45:51 +02:00
Mark Qvist
bf49eb2475 TCP performance improvements 2020-05-12 08:50:51 +02:00
Mark Qvist
d121562b22 Cleanup 2020-05-11 21:52:20 +02:00
Mark Qvist
3a2b12f9ad Cleanup and logging 2020-05-11 21:27:42 +02:00
Mark Qvist
49fce1e1cb Destination table is now stored on exit 2020-05-11 21:05:04 +02:00
Mark Qvist
5f0f53eba1 Updated default config 2020-05-11 16:33:31 +02:00
Mark Qvist
d6757db6c6 Added TCP interface 2020-05-11 16:09:00 +02:00
Mark Qvist
556d95c381 Description in SerialInterface 2020-05-07 14:14:35 +02:00
Mark Qvist
8c506b0c78 Cleanup in interfaces 2020-05-06 14:34:19 +02:00
Mark Qvist
67fc7685ec Reworked serial interface with HDLC framing instead of timeouts 2020-05-06 14:34:03 +02:00
Mark Qvist
4c3a874b21 Fixed Python2 remnant in interfaces 2020-05-03 23:06:53 +02:00
Mark Qvist
a6ca0cd64f Changed resource retries 2020-04-28 22:23:14 +02:00
Mark Qvist
c9d1c938ff Implemented progress on resource initiator side. Made MDUs more obvious. 2020-04-28 20:50:57 +02:00
Mark Qvist
481d43ad72 Fixed path request response on system-local destinations when Transport is disabled 2020-04-27 17:26:49 +02:00
Mark Qvist
e9cfbb1118 Preparation for setuptools 2020-04-27 13:33:26 +02:00
Mark Qvist
1391c9ef3b Made running Transport a config choice 2020-04-27 12:04:14 +02:00
Mark Qvist
b78e0e9ec0 Updated default config with examples and explanations. 2020-04-27 10:19:49 +02:00
Mark Qvist
fa50e1d35b Migrated to Python3 2020-04-22 17:07:40 +02:00
Mark Qvist
a339ae3d28 Preliminary Python3 support 2020-04-22 12:07:13 +02:00
Mark Qvist
c962f2c7a8 Updated readme and default config 2020-03-07 22:49:24 +01:00
Mark Qvist
8e558814eb Implemented transport table cleanup 2020-03-07 11:20:09 +01:00
Mark Qvist
d169c3d9c1 Cleanup 2020-03-06 22:48:07 +01:00
Mark Qvist
3bbda5a4b4 Transmit proofs only on relevant interface 2020-03-06 22:45:05 +01:00
Mark Qvist
d754ed989c Implemented transport for links 2020-03-06 22:20:50 +01:00
Mark Qvist
67b13bca25 Updated path requests 2020-03-06 14:28:26 +01:00
Mark Qvist
33ce3ef48f Implemented path requests 2020-03-06 12:55:05 +01:00
Mark Qvist
09a19aed72 Strip transport headers at final hop 2020-03-06 09:51:59 +01:00
Mark Qvist
a24a9623d3 Fixed resource transfers timing out over fast links 2020-03-04 21:25:55 +01:00
Mark Qvist
7867d7ded9 Implemented basic multi-hop transport 2020-03-01 16:56:49 +01:00
Mark Qvist
8e19d5bd97 Implemented loop detection for pathfinding and congestionn avoidance for announce rebroadcasts. 2019-11-10 13:56:04 +01:00
Mark Qvist
64c30488c2 Implemented announce propagation 2019-11-10 10:45:52 +01:00
Mark Qvist
6cdbab7e31 Work on announce routing 2019-11-09 23:47:42 +01:00
Mark Qvist
bcfcf4eb86 Link window optimisations 2018-12-31 20:33:55 +01:00
Mark Qvist
4d0ca28902 AX.25 TX delay 2018-12-01 11:42:39 +01:00
Mark Qvist
56808e49de AX.25 TX delay 2018-12-01 11:40:50 +01:00
Mark Qvist
15f2e976b8 AX.25 TX delay 2018-12-01 11:39:08 +01:00
Mark Qvist
be11f5ed68 AX.25 TX delay 2018-12-01 11:32:18 +01:00
Mark Qvist
cef5de5a00 Fixed RNode RSSI 2018-06-27 14:28:01 +02:00
Mark Qvist
deffcae419 RNode interface updates 2018-06-27 10:15:39 +02:00
Mark Qvist
c338694a9d RNode interface 2018-04-26 15:54:21 +02:00
Mark Qvist
c03bce5547 RNode interface 2018-04-26 13:20:43 +02:00
Mark Qvist
540bde4cd4 Transport job callback in thread 2018-04-26 11:29:21 +02:00
Mark Qvist
f02715bced Added flow contorl for RNode interface 2018-04-26 10:38:29 +02:00
Mark Qvist
ce270f4615 Updated exit handler 2018-04-26 01:31:43 +02:00
Mark Qvist
77da69c37d Identity signer update 2018-04-26 01:16:16 +02:00
Mark Qvist
6a3eb8a1e3 AX.25 interface updates 2018-04-26 00:59:46 +02:00
Mark Qvist
5d977e09fb AX.25 interface updates 2018-04-26 00:54:48 +02:00
Mark Qvist
4e136eea03 File transfer example 2018-04-25 23:10:26 +02:00
Mark Qvist
aa9d0876d7 File transfer example 2018-04-25 23:05:30 +02:00
Mark Qvist
8aa2f8613a File transfer example 2018-04-25 22:46:05 +02:00
Mark Qvist
d69f3c2c34 Implemented elliptic curve signatures and verify on links, auto proofs on links 2018-04-25 22:08:17 +02:00
Mark Qvist
dc86f6884a Cleanup 2018-04-25 12:23:56 +02:00
Mark Qvist
db13ad08a9 Renamed Utilities to Examples 2018-04-25 10:47:55 +02:00
Mark Qvist
8082338657 Updated Echo example 2018-04-25 00:20:57 +02:00
Mark Qvist
0c49ca8458 Packet hashlist save to disk 2018-04-24 18:01:52 +02:00
Mark Qvist
eed78798f2 Flow control for KISS interfaces, Transport Identity implemented 2018-04-24 17:50:58 +02:00
Mark Qvist
5c94324230 Resource timing, retries 2018-04-23 23:42:16 +02:00
Mark Qvist
23ff873c63 Tied link teardown to resource cancellation 2018-04-21 23:15:48 +02:00
Mark Qvist
260f8bbaf1 Implemented link timeouts and keepalive 2018-04-21 16:12:42 +02:00
Mark Qvist
ece4f732f4 Implemented RTT measurements on link establishment and link teardown procedure 2018-04-21 13:54:22 +02:00
Mark Qvist
de8d9cf722 Implemented resources 2018-04-18 23:31:17 +02:00
Mark Qvist
19d9b1a4a5 Proof handling 2018-04-17 17:46:48 +02:00
Mark Qvist
dedea6ba11 Refactored packet type naming 2018-04-16 22:09:23 +02:00
Mark Qvist
8772db6736 Added plaintext link support 2018-04-16 22:04:28 +02:00
Mark Qvist
75e0cb039d Implemented links 2018-04-16 17:14:01 +02:00
Mark Qvist
52968e8ba5 AX.25 header fix 2018-04-11 21:36:35 +02:00
Mark Qvist
9827da9e0f Cleanup 2018-04-11 21:24:33 +02:00
Mark Qvist
5f7694afdd Cleanup 2018-04-08 13:41:03 +02:00
Mark Qvist
07814919f2 Implemented AX.25 KISS interface 2018-04-08 12:26:57 +02:00
Mark Qvist
9bfb7ae2d7 Implemented RNode interface driver 2018-04-05 19:15:05 +02:00
Mark Qvist
0ce144c760 Cleanup, added interface placeholders. 2018-04-04 17:14:26 +02:00
Mark Qvist
217ab1c2eb Cleanup 2018-04-04 15:26:34 +02:00
Mark Qvist
0196c94672 Refactored to new naming scheme. Implemented KISS interface. 2018-04-04 14:14:22 +02:00