Commit graph

13 commits

Author SHA1 Message Date
Chad Attermann
27433edb19 Updates for MCU builds broken by previous dev. 2026-02-09 13:52:13 -07:00
Chad Attermann
3af5111606 WIP: Logging optimizations and memory management
Changed a few key logs to use printf-style instead of string
concatenation to avoid dynamic memory allocation. Still need to move
all remaining logging over to printf-style.

Added option (-DRNS_USE_ALLOCATOR=1) to override new/delete operators for
both allocation metrics and the ability to implement an alternate memory
allocator.

Added option (-DRNS_USE_TLSF=1) to use the alternate TLSF allocator
(must also define RNS_USE_ALLOCATOR). This allocator is well known for
reducing fragmentation and providing constant, O(1)-time allocation
and deallocation for real-time embedded systems.

This TLSF allocator appears to already be the default allocator for
ESP32 boards, but the allocator used by NRF52 is unknown at this time so
the TLSF allocator internal to microReticulum is only being used for
NRF52 boards at this time.

Future memory management improvements will include custom allocators for
long-lived structures like the path table that will segregate them from
the general pool of memory that is constantly cycling, thereby further
reducing fragmentation. It will also allow these structures to use
alternate memory like PSRAM present on T-Beam boards.
2024-07-16 10:40:46 -06:00
Chad Attermann
36ff1c5f00 WIP: Refactored logging to use macros 2024-07-03 11:30:01 -06:00
Chad Attermann
bef8dbc1b0 WIP: Stable memory and flash with limited paths 2024-07-03 06:55:06 -06:00
Chad Attermann
f415b5e0b5 WIP: Enhancements to persistence 2024-06-03 08:13:45 -06:00
Chad Attermann
63a16a5391 WIP 2024-05-29 11:43:22 -06:00
attermann
03cfb1c03f WIP: More porting and work on persistence
Ported packet PROOFs.
Implemented Transport probe destination.
SPIFFs filesystem checks and formatting when necessary.
2023-12-20 11:52:48 -07:00
attermann
642486ac7e WIP: Fixes, optimizations, and more Transport
Changed all time references to use decimal seconds to match Python
reference implementation.
Fixed memory issues caused by storing references to objects instead of
copies.
More implementation of Transport logic.
This is the first build that fully implements end-to-end path finding
and routing.
2023-12-02 08:52:45 -07:00
attermann
ea7b4603ed WIP: Added super basic UDP interface for testing
Basic UDP interface enabled testing with RNS reference implementation.
Added to basic Transport implementation.
2023-11-26 18:10:46 -07:00
attermann
a2e956eced WIP update
Minimal transport implementation.
2023-11-19 08:51:10 -07:00
attermann
f9e3a22911 WIP update
Implemented AES.
Implemented AES-CBC.
Implemented HKDF.
Implemented HMAC.
Implemented PKCS7.
Implemented Fernet.
Added extensive logging and successfully tested ability to encrypt and
decrypt a packet.
2023-10-08 23:59:43 -06:00
attermann
1b919a9489 WIP Update
Cleaned up and organized test functions.
Implemented Ed25519.
2023-10-07 01:03:15 -06:00
attermann
eef5f1b326 Initial commit 2023-10-06 17:24:48 -06:00