Skip to content

fix: cap the path table at 200 paths and build on current upstream microReticulum - #147

Open
mclueppers wants to merge 1 commit into
mainfrom
fix/upstream-libs-path-cap
Open

mclueppers wants to merge 1 commit into
mainfrom
fix/upstream-libs-path-cap

Conversation

@mclueppers

Copy link
Copy Markdown
Contributor

Both retimesh/combined branches are now upstream master plus one change each: the packet-carrying AnnounceHandler callback (attermann/microReticulum#85) and microStore keeping future-dated records at init. Everything else the forks carried is merged upstream.

Upstream master applies RNS_PATH_TABLE_MAX to the path store, so the path table is now bounded: the oldest path is evicted to make room for a new one, and the store's dead-record compaction runs. The library default of 100 is close to what fleet nodes already hold, so set it to 200 (about 16 KB of internal DRAM at worst). The sweep commentary that rested on the table being unbounded and that compaction could not run is rewritten.

Drop Reticulum::jobs_interval(1.0f). Transport::jobs() has always run every 0.25 s from Transport::loop(); the 60 s interval it shortened only paces cache cleaning and persistence, so the call bought nothing, and the API it needed was withdrawn upstream.

Upstream also brings interface access codes (IFAC): packets flagged with an access code are now dropped on interfaces without one, as Python RNS does.

…croReticulum

Both retimesh/combined branches are now upstream master plus one change
each: the packet-carrying AnnounceHandler callback (attermann/microReticulum#85)
and microStore keeping future-dated records at init. Everything else the
forks carried is merged upstream.

Upstream master applies RNS_PATH_TABLE_MAX to the path store, so the path
table is now bounded: the oldest path is evicted to make room for a new one,
and the store's dead-record compaction runs. The library default of 100 is
close to what fleet nodes already hold, so set it to 200 (about 16 KB of
internal DRAM at worst). The sweep commentary that rested on the table being
unbounded and that compaction could not run is rewritten.

Drop Reticulum::jobs_interval(1.0f). Transport::jobs() has always run every
0.25 s from Transport::loop(); the 60 s interval it shortened only paces
cache cleaning and persistence, so the call bought nothing, and the API it
needed was withdrawn upstream.

Upstream also brings interface access codes (IFAC): packets flagged with an
access code are now dropped on interfaces without one, as Python RNS does.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant