feat(core): RIP after Java's code

Where the Swift template departs from Java's filius.software.rip, Java's
code rules: a learned route gets 16 hops at the router's next beacon after
it expired (RIPTable.check), not when it expires; messages count from any
source port; each router draws its pauses from a random of its own (Java:
an unseeded Random per router), which the core seeds from the scenario and
the router's id (ripSeed), so that the Java oracle can give it the same.

A route of hop count 0 to each own network, the first beacon after a
second, then every 25.2 to 35.2 s; a message per interface without the
routes through it; a new route or a longer one from the same router sends
at once; forwarding by the table alone, fewest hops before longest mask.
Messages are read with Java's parser (javaIpCheck, javaParseInt, moved from
fls to core for it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-30 19:29:48 +00:00
co-authored by Claude Opus 5.5
parent 313786e738
commit a4036f12a3
10 changed files with 522 additions and 45 deletions
+1
View File
@@ -16,4 +16,5 @@ export * from './runtime/snapshot.js';
export * from './runtime/speed.js';
export * from './runtime/trace.js';
export * from './util/equal.js';
export * from './util/javaIp.js';
export * from './util/swiftString.js';