Mark Qvist
800ed3af7a
Fixed ready callback invocation
2023-05-18 23:35:28 +02:00
Mark Qvist
9c8e79546c
Fixed missing check in receipt culling
2023-05-18 23:33:26 +02:00
Mark Qvist
61626897e7
Add channel window mode for slow links
2023-05-11 21:28:13 +02:00
Mark Qvist
fc5b02ed5d
Added medium window to channel
2023-05-11 20:23:36 +02:00
Mark Qvist
a06e752b76
Added multi-interface duplicate deque to AutoInterface
2023-05-11 19:54:26 +02:00
Mark Qvist
66fda34b20
Cleanup
2023-05-11 17:48:07 +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
523fc7b8f9
Adjusted loglevel
2023-05-11 16:09:25 +02:00
Mark Qvist
73faf04ea1
Tuned channel windowing
2023-05-10 20:01:33 +02:00
Mark Qvist
e10ddf9d2d
Cleanup
2023-05-10 19:28:28 +02:00
Mark Qvist
641a7ea75d
Implemented basic channel windowing
2023-05-10 19:15:45 +02:00
Mark Qvist
e543d5c27f
Implemented basic channel windowing
2023-05-10 19:15:20 +02:00
Mark Qvist
01c59ab0c6
Cleanup
2023-05-10 18:44:05 +02:00
Mark Qvist
a4c64abed4
Initial framework for channel windowing
2023-05-10 18:43:17 +02:00
Mark Qvist
7df11a6f67
Fixed missing isolation of packet delivery callback
2023-05-10 18:40:46 +02:00
Mark Qvist
1bd6020163
Cleanup
2023-05-10 18:40:18 +02:00
Mark Qvist
b3ac3131b5
Updated version
2023-05-09 23:07:47 +02:00
Mark Qvist
f522cb1db1
Added per-packet compression to buffer
2023-05-09 22:13:57 +02:00
Mark Qvist
d96a4853fe
Fixed version display
2023-05-09 22:13:23 +02:00
Mark Qvist
52a0447fea
Fixed resent packets not getting repacked
2023-05-09 22:12:49 +02:00
Mark Qvist
e82e6d56f1
Added ability to trust external signing keys to rnodeconf
2023-05-09 15:31:02 +02:00
Mark Qvist
dcf33e125b
Cleanup
2023-05-05 10:43:27 +02:00
Mark Qvist
01600b96a4
Fix import paths
2023-05-05 10:37:22 +02:00
Mark Qvist
64bdc4c18c
Fix import paths
2023-05-05 10:25:15 +02:00
Mark Qvist
5e5d89cc92
Removed dependency on netifaces.
2023-05-04 23:19:43 +02:00
Mark Qvist
a3bee4baa9
Removed netifaces dependency from AutoInterface
2023-05-04 17:55:58 +02:00
Mark Qvist
fab83ec399
Restructured library
2023-05-04 17:55:38 +02:00
Mark Qvist
b740e36985
Added ifaddr module
2023-05-04 17:46:56 +02:00
Mark Qvist
53b325d34d
Added support for T3 v1.0 to rnodeconf
2023-05-03 15:56:19 +02:00
Mark Qvist
d31cf6e297
Added ability to configure RNode display intensity
2023-05-03 14:26:47 +02:00
Mark Qvist
e386a5d08b
Use native Python unzip for updates
2023-05-03 12:57:38 +02:00
Mark Qvist
d467ed9ece
Merge branch 'master' of github.com:markqvist/Reticulum
2023-05-03 12:27:10 +02:00
Mark Qvist
892a467d74
Update version
2023-05-03 12:26:48 +02:00
markqvist
4366e71f34
Merge pull request #272 from VioletEternity/windows
...
Improve Windows compatibility for rnodeconf
2023-05-03 12:26:36 +02:00
Mark Qvist
7e9998b4fd
Use included platform detection method
2023-05-03 12:21:57 +02:00
markqvist
79abe93139
Merge pull request #278 from VioletEternity/windows-so_reuseaddr
...
Use SO_EXCLUSIVEADDRUSE instead of SO_REUSEADDR on Windows
2023-05-03 12:18:49 +02:00
Mark Qvist
d69d4b3920
Fixed firmware extraction for unverifiable devices. Fixes #266 .
2023-05-02 18:10:04 +02:00
Mark Qvist
3300541181
Fixed invalid error code in conditional. Fixes #284 .
2023-05-02 17:45:30 +02:00
Mark Qvist
3848059f19
Only use ifname for link-local discovery scopes. Fixes #283 .
2023-05-02 17:39:06 +02:00
Mark Qvist
30021d89cb
Fixed header bits in get_packed_flags(). Fixes #275 .
2023-05-02 17:33:38 +02:00
Mark Qvist
29019724bd
Added verbosity argument to Reticulum instantiation. Fixes #238 .
2023-05-02 16:42:04 +02:00
Maya
ba7838c04e
Use SO_EXCLUSIVEADDRUSE instead of SO_REUSEADDR on Windows.
...
On Linux, SO_REUSEADDR is used so that a socket in TIME-WAIT state can
be rebound after a listening process is restarted. It does not allow two
processes to listen on the exact same (addr, port) combination. However,
on Windows, it does, and SO_EXCLUSIVEADDRUSE is required to reproduce
the Linux behavior.
Reticulum relies on an error being returned by bind() that reuses
the same (addr, port) combination as another process to detect whether
there is a shared instance already running. Setting SO_EXCLUSIVEADDRUSE
makes this detection process work on Windows as well.
2023-04-19 03:03:15 +01:00
Maya
af16c68e47
Make esptool.py invocation compatible with Windows.
2023-04-13 18:17:14 +01:00
Maya
bda5717051
Use standard Python zipfile module to decompress firmware
2023-04-13 18:10:21 +01:00
Mark Qvist
fac4973329
Fixed potential race condition in announce queue handling for AutoInterface
2023-03-09 18:32:14 +01:00
Mark Qvist
159c7a9a52
Fixed rnstatus JSON output error
2023-03-08 14:10:33 +01:00
Mark Qvist
226004da94
Ignore lo0 in all cases. Fixes #237 .
2023-03-07 16:43:10 +01:00
Aaron Heise
9c9f0a20f9
Handle sequence overflow when checking incoming message
2023-03-04 23:54:07 -06: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
d8f3ad8d3f
Temporarily disabled extra-level log statement
2023-03-04 19:30:47 +01:00
Mark Qvist
a1b75b9746
Increased per-hop timeout
2023-03-04 19:30:23 +01:00
Mark Qvist
80f3bfaece
Adjusted StreamDataMessage overhead calculation
2023-03-04 19:06:47 +01:00
Mark Qvist
37b2d8a6ec
Fixed Link MDU output in phyparams()
2023-03-04 18:37:28 +01:00
Mark Qvist
777fea9cea
Differentiate exception between link establishment callback, and internal RTT packet handling
2023-03-04 18:32:36 +01:00
Mark Qvist
bbfdd37935
Added check for link state before sending
2023-03-04 18:31:07 +01:00
Mark Qvist
28e6302b3d
Updated versions
2023-03-04 17:56:30 +01:00
Aaron Heise
aac2b9f987
Buffer: send and receive binary data over Channel
...
(also some minor fixes in channel)
2023-03-02 17:17:18 -06:00
markqvist
a6551fc019
Merge pull request #246 from gdt/fix-transmit-hash
...
AutoInterface: Drop embedded scope identifier on fe80::
2023-03-02 11:34:00 +01:00
markqvist
a06ae40797
Merge pull request #236 from faragher/master
...
Additional error messages for offline flashing.
2023-03-02 11:31:31 +01:00
markqvist
1db08438df
Merge pull request #248 from Erethon/hkdf-remove-dead-code
...
hkdf: Remove duplicate check if the salt is None
2023-03-02 11:29:18 +01:00
Dionysis Grigoropoulos
ddb7a92c15
hkdf: Remove duplicate check if the salt is None
...
The second if isn't needed since we initialize the salt with zeroes
earlier. If instead we meant to pass an empty bytes class to the HMAC
implementation, the end result would be the same, since it's gonna get
padded with zeroes in the HMAC code.
2023-03-01 16:22:51 +02:00
Greg Troxel
e273900e87
AutoInterface: Drop embedded scope identifier on fe80::
...
The code previously dropped scope identifiers expressed as a trailing
"%ifname", which happens on macOS. On NetBSD and OpenBSD (and likely
FreeBSD, not tested), the scope identifier is embedded. Drop that
form of identifier as well, because we keep address and ifname
separate, and because the scope identifier must not be part of
computing the hash of the address.
Resolves #240 , failure to peer on NetBSD and OpenBSD.
2023-02-28 10:19:46 -05:00
Aaron Heise
9963cf37b8
Fix exceptions on Channel shutdown
2023-02-28 08:38:23 -06: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
118acf77b8
Fix up documentation even more
2023-02-27 21:10:28 -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
c00b592ed9
System-reserved channel message types
...
- a message handler can return logical True to prevent subsequent message handlers from running
- Message types >= 0xff00 are reserved for system/framework messages
2023-02-26 11:39:49 -06:00
Aaron Heise
e005826151
Allow channel message handlers to short circuit
...
- a message handler can return logical True to prevent subsequent message handlers from running
2023-02-26 11:23:38 -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
Michael Faragher
5b3d26a90a
Additional error messages for offline flashing.
2023-02-22 12:49:24 -06:00
Mark Qvist
c604214bb9
Improved RNode reconnection when serial device disappears
2023-02-18 13:31:22 +01:00
Mark Qvist
d02cdd5471
Added JSON output to rnstatus
2023-02-17 21:29:35 +01:00
Mark Qvist
b82ecf047a
Added Link establishment rate calculation
2023-02-17 09:54:18 +01:00
Mark Qvist
4d3570fe4c
Updated version
2023-02-15 12:28:06 +01:00
Mark Qvist
fc818f00f1
Merge branch 'master' of github.com:markqvist/Reticulum
2023-02-09 11:54:06 +01:00
Mark Qvist
a55d39b7d4
Added Link ID to response_generator callback signature
2023-02-09 11:52:54 +01:00
Dionysis Grigoropoulos
323c2285ce
rnodeconf: Typo fix on board versions
2023-02-04 17:16:57 +02:00
Mark Qvist
e9ae255f84
Added fallback version URL to rnodeconf updater
2023-02-04 14:18:11 +01:00
Mark Qvist
42dfee8557
Added Bluetooth pairing PIN output
2023-02-04 13:45:12 +01:00
Mark Qvist
1b55ac7f24
Added destination hash generation and announce functionality to rnid utility
2023-02-03 20:27:39 +01:00
Mark Qvist
d7aacba797
Cleanup
2023-02-03 10:13:36 +01:00
Mark Qvist
b92ddeccff
Cleanup
2023-02-03 08:29:32 +01:00
Mark Qvist
6fac96ec18
Mask entire header
2023-02-03 00:11:11 +01:00
Mark Qvist
53ceafcebd
Improved IFAC mask derivation
2023-02-02 23:59:02 +01:00
Mark Qvist
4df67304d6
Added payload masking to interfaces with IFAC enabled
2023-02-02 20:48:52 +01:00
Mark Qvist
ac07ba1368
Added Identity generation to rnid utility
2023-02-02 19:26:27 +01:00
Mark Qvist
ece064d46e
Updated version
2023-02-02 19:05:15 +01:00
Mark Qvist
08e480387b
Added signing and validation to rnid
2023-02-02 19:02:05 +01:00
Mark Qvist
f4241ae9c2
Added basic rnid utility
2023-02-02 17:45:59 +01:00
markqvist
3b2fbe02c6
Merge pull request #189 from Erethon/master
...
Fix bug where announce_identity could be undefined
2023-02-02 10:41:42 +01:00
Dionysis Grigoropoulos
6ecae615de
packet: Fix header_type matching according to IFAC
...
Ever since IFAC/Interface Access Codes were introduced, the header type
is one bit long and not two.
2023-01-27 15:29:06 +02:00
Dionysis Grigoropoulos
72ca6316f6
Fix bug where announce_identity could be undefined
2023-01-26 22:05:38 +02:00
Mark Qvist
e4f0b2dc39
Allow rnodeconf to provision RNodes from extracted firmwares on systems without prior tools installed
2023-01-14 20:47:34 +01:00
Mark Qvist
c5a586175d
Updated version
2023-01-14 15:06:30 +01:00
Mark Qvist
2a1ec6592c
Added autoinstall and updating from extracted RNode Firmwares to rnodeconf
2023-01-14 14:51:44 +01:00
Mark Qvist
eed7698ed3
Added firmware extraction from existing devices to rnodeconf
2023-01-14 13:20:19 +01:00
Mark Qvist
8d96673bec
Updated flasher paths
2023-01-14 00:55:34 +01:00
Mark Qvist
62a13eb0e8
Added RNode Bootstrap Console info to rnodeconf autoinstaller
2023-01-14 00:28:34 +01:00
Mark Qvist
78253093c7
Updated rnodeconf
2023-01-13 11:59:38 +01:00
Mark Qvist
63d54dbecb
Added console image flashing to rnodeconf
2023-01-11 13:56:41 +01:00
Mark Qvist
32922868b9
Updated rnodeconf install guide
2023-01-11 11:45:10 +01:00
Mark Qvist
274c7199b0
Updated version
2022-12-23 23:27:37 +01:00
Mark Qvist
7960226883
Fixed missing path invalidation on failed link establishments made from a shared instance client
2022-12-23 23:26:50 +01:00
Mark Qvist
bb74878e94
Reordered property assignment
2022-12-23 23:24:26 +01:00
Mark Qvist
5c2c935b6f
Updated version
2022-12-22 21:08:02 +01:00
Mark Qvist
8402541c73
Faster roaming path recovery for multiple interface non-transport instances
2022-12-22 20:17:09 +01:00
Mark Qvist
c34c268a6a
Added carrier change detection flag to AutoInterface
2022-12-22 18:20:34 +01:00
Mark Qvist
8fcdc4613c
Adjusted loglevels
2022-12-22 18:20:13 +01:00
Mark Qvist
f645fa569b
Fixed AutoInterface multicast echoes failing on interfaces with rolling MAC addresses on every re-connect
2022-12-22 17:46:46 +01:00
Mark Qvist
e9e98a00c2
Updated version
2022-12-22 15:07:36 +01:00
Mark Qvist
b305eb8e0a
Improved path response handling. Prepared destination path response handling for multi-path Transport.
2022-12-22 11:28:56 +01:00
Mark Qvist
dd7931d421
Added signal quality stats to announce log output
2022-12-22 11:26:59 +01:00
Mark Qvist
171457713b
Improved RNode hotplug over Bluetooth on Android
2022-12-20 15:17:46 +01:00
Mark Qvist
67ee8d6aab
Added originator check to path rediscovery on failed links
2022-12-19 01:31:00 +01:00
Mark Qvist
13fa7d49d9
Added automatic path rediscovery on failed link establishments
2022-12-19 01:15:49 +01:00
Mark Qvist
66d921e669
Improved resource advertisement retry handling
2022-12-19 01:10:34 +01:00
Mark Qvist
85f60ea04e
Added check for already transferring resource to Link class
2022-12-19 01:04:49 +01:00
Mark Qvist
4870e741f6
Added link request proof signature validation for every transport hop
2022-12-18 21:27:14 +01:00
Mark Qvist
f71c1986af
Added Heltec USB issue notice to autoinstaller
2022-12-16 23:34:31 +01:00
Mark Qvist
30d8e351dd
Updated version
2022-12-16 23:21:22 +01:00
Mark Qvist
d26bbbd59f
Merge branch 'master' of https://git.unsigned.io/markqvist/Reticulum
2022-12-15 17:14:15 +01:00
Mark Qvist
2a264fa7d6
Fixed invalid driver proxy for Qinheng CH34x chips on Android
2022-12-15 17:14:09 +01:00
Mark Qvist
d5e0a461cf
Fixed invalid check for None
2022-11-25 00:42:22 +01:00
Mark Qvist
f692e81b8e
Fixed AutoInterface roaming on Android devices that rotate Ethernet/WiFi MAC addresses on reconnect
2022-11-24 17:19:01 +01:00
Mark Qvist
680d17fb98
Improved startup time for instances and programs connected to a shared instance
2022-11-24 13:28:22 +01:00
Mark Qvist
ab301cdb79
Updated version
2022-11-24 10:45:45 +01:00
Mark Qvist
cecb4b3acb
Fixed buffered input stream reader not working on Android API levels < 30
2022-11-23 20:39:49 +01:00
Mark Qvist
de53a105a4
Improved time pretty-print function
2022-11-23 17:15:46 +01:00
Mark Qvist
f22504d080
Improved I2P recovery time on unresponsive tunnels
2022-11-03 22:47:08 +01:00
Mark Qvist
f22e5cc200
Fixed socket references. Closes #146 .
2022-11-03 19:51:04 +01:00
Mark Qvist
36906f6567
Updated version
2022-11-03 18:05:13 +01:00
Mark Qvist
88b88b9b64
Fixed missing check for socket state
2022-11-03 18:03:00 +01:00
Mark Qvist
76fcad0b53
Added better I2P state visibility to rnstatus util
2022-11-03 17:49:25 +01:00
Mark Qvist
01e520b082
Adjusted I2P interface timings
2022-11-03 16:30:07 +01:00
Mark Qvist
1d2a0fe4c8
Improved I2P tunnel state detection. Fixed missing IFAC init on spawned I2P interfaces.
2022-11-03 15:22:34 +01:00
Mark Qvist
0f19ced9d3
Fixed missing IFAC identity init on spawned TCP clients. Closes #137 .
2022-11-03 14:16:00 +01:00
Mark Qvist
81ec701240
Updated version
2022-11-03 12:05:10 +01:00
Mark Qvist
5f7e37187f
Fixed local firmware cache location for rnodeconf
2022-11-03 12:03:26 +01:00
Mark Qvist
b9d73518dd
Improved rnodeconf firmware install
2022-11-03 00:42:46 +01:00
Mark Qvist
36052e2c61
Updated version
2022-11-02 22:34:52 +01:00
Mark Qvist
06d232f889
Added Bluetooth control interface for RNode interfaces on Android
2022-11-02 22:34:07 +01:00
Mark Qvist
f9b3c749e0
Improved cleanup on device disconnect
2022-11-02 20:44:09 +01:00
Mark Qvist
63a59753af
Implemented Bluetooth support for RNode interfaces on Android. Added Bluetooth/USB multiplexing and Bluetooth manager to interface.
2022-11-02 20:43:46 +01:00
Mark Qvist
20696e7827
Bluetooth support for RNode interfaces on Linux (via standard rfcomm driver)
2022-11-02 20:42:45 +01:00
Mark Qvist
fee9473cac
Improved rnodeconf timings
2022-11-02 01:23:23 +01:00