Commit Graph

112 Commits

Author SHA1 Message Date
Mark Qvist
f01074e5b8 Implemented link establishment on ultra low bandwidth links 2023-10-27 18:16:52 +02:00
Mark Qvist
bed71fa3f8 Added physical layer link stats to link and packet classes 2023-10-24 01:41:12 +02:00
Mark Qvist
8908022b88 Updated license headers 2023-09-29 10:31:20 +02:00
Mark Qvist
7e34b61f37 Added link status check on identify 2023-09-21 14:12:32 +02:00
Mark Qvist
08bfd923ea Fixed possible invalid comparison in link watchdog job 2023-08-05 15:10:00 +02:00
Mark Qvist
049733c4b6 Fixed race condition for link initiators on timed out link establishment 2023-06-13 19:20:54 +02:00
Mark Qvist
bab779a34c Fixed race condition for link initiators on timed out link establishment 2023-06-13 16:10:47 +02:00
Mark Qvist
4f78973751 Fixed race condition when timed-out link receives a late establishment proof a few milliseconds after it has timed out 2023-06-02 21:24:49 +02:00
Mark Qvist
1542c5f4fe Fixed received link packet proofs not resetting watchdog stale timer 2023-05-11 16:22:44 +02:00
Mark Qvist
a4c64abed4 Initial framework for channel windowing 2023-05-10 18:43:17 +02:00
Aaron Heise
6d9d410a70
Address multiple issues with Buffer and Channel
- StreamDataMessage now packed by struct rather than umsgpack for a more predictable size
- Added protected variable on LocalInterface to allow tests to simulate a low bandwidth connection
- Retry timer now has exponential backoff and a more sane starting value
- Link proves packet _before_ sending contents to Channel; this should help prevent spurious retries especially on half-duplex links
- Prevent Transport packet filter from filtering out duplicate packets for Channel; handle duplicates in Channel to ensure the packet is reproven (in case the original proof packet was lost)
- Fix up other tests broken by these changes
2023-03-04 23:37:58 -06:00
Mark Qvist
777fea9cea Differentiate exception between link establishment callback, and internal RTT packet handling 2023-03-04 18:32:36 +01:00
Aaron Heise
72300cc821
Revert "Only send proof if link is still active" 2023-02-28 08:24:13 -06:00
Aaron Heise
8168d9bb92
Only send proof if link is still active 2023-02-28 08:13:07 -06:00
Aaron Heise
8f0151fed6
Tidy up PR 2023-02-27 21:33:50 -06:00
Aaron Heise
42935c8238
Make the PR have zero deletions 2023-02-27 21:15:25 -06:00
Aaron Heise
661964277f
Fix up documentation for building 2023-02-27 19:05:25 -06:00
Aaron Heise
464dc23ff0
Add some internal documenation 2023-02-27 17:36:04 -06:00
Aaron Heise
fe3a3e22f7
Expose Channel on Link
Separates channel interface from link

Also added: allow multiple message handlers
2023-02-26 07:25:49 -06:00
Aaron Heise
68cb4a6740
Initial work on Channel 2023-02-25 18:23:25 -06:00
Mark Qvist
b82ecf047a Added Link establishment rate calculation 2023-02-17 09:54:18 +01:00
Mark Qvist
a55d39b7d4 Added Link ID to response_generator callback signature 2023-02-09 11:52:54 +01:00
Mark Qvist
bb74878e94 Reordered property assignment 2022-12-23 23:24:26 +01:00
Mark Qvist
85f60ea04e Added check for already transferring resource to Link class 2022-12-19 01:04:49 +01:00
Mark Qvist
c18806c912 Updated deprecated threading API call and updated docs 2022-09-30 19:02:41 +02:00
Mark Qvist
2abd8a1aae Updated docs and manual 2022-09-30 11:26:51 +02:00
Mark Qvist
8886ed5794 Fixed missing destination-side ephemeral key generation in link establishment 2022-09-29 22:47:10 +02:00
Mark Qvist
5faf13d505 Expanded address space to 128 bits 2022-06-30 14:02:57 +02:00
Mark Qvist
02968baa76 Added establishment cost property to Link 2022-06-09 19:28:31 +02:00
Mark Qvist
592c405067 Cleanup 2022-06-09 14:46:02 +02:00
Mark Qvist
e0b795b4d0 Added internal python-only implementation of Ed25519 2022-06-08 19:47:09 +02:00
Mark Qvist
94edc8eff3 Implemented proxies to pyca X25519 2022-06-08 17:03:40 +02:00
Mark Qvist
e2aeb56c12 Renamed file 2022-06-08 15:54:48 +02:00
Mark Qvist
06fffe5a94 Use internal implementation for X25519 key exchanges 2022-06-08 13:36:23 +02:00
Mark Qvist
4bd5f05e0e Moved Link Fernet to internal implementation 2022-06-08 12:34:31 +02:00
Mark Qvist
19a033db96 Freed RNS from dependency on PyCA HMAC, HKDF and hashes 2022-06-07 15:48:23 +02:00
Mark Qvist
49ed335e19 Cleanup 2022-05-26 16:52:28 +02:00
Mark Qvist
33fac728f8 Improved link stale process and timeout calculations 2022-05-26 16:49:02 +02:00
Mark Qvist
30f71857ae Added docstrings. Added request size to receipts. Fixed link stale time calculation on newly created links with no actual activity. 2022-05-24 20:13:11 +02:00
Mark Qvist
3bf5694238 Fixed naming conflict in resource advertisements 2022-05-23 08:54:07 +02:00
Mark Qvist
0ace84367b Improved link authentication callback 2022-05-22 19:08:03 +02:00
Mark Qvist
b2d61843d0 Improved log output 2022-05-17 13:25:42 +02:00
Mark Qvist
cf1ca01a3b Configuration support for interface access codes 2022-04-27 13:21:53 +02:00
Mark Qvist
dc6877927e Updated license headers 2022-04-01 17:18:18 +02:00
Mark Qvist
550dfd44cb Improved cryptography API compatibility 2022-03-08 00:38:51 +01:00
Mark Qvist
cb023cde40 Fixed potential race condition in resource assembly 2022-02-26 18:27:11 +01:00
Mark Qvist
fdaa58a6fa Improved malformed packet detection 2022-01-11 03:06:16 +01:00
Mark Qvist
81158c27e4 Cleanup 2021-12-11 18:41:28 +01:00
Mark Qvist
eeb424ecee Link request debug 2021-12-11 18:33:09 +01:00
Mark Qvist
0273328b23 Link proof debug 2021-12-11 18:19:51 +01:00