RipRun runs rip-chain's three routers in Java FILIUS, each router's random set by reflection to the core's ripSeed, and writes the frames, every change of each RIP table and the calls. converge: the tables fill, a ping at 45 s. expire: R3 falls silent at 10 s; R2 marks its network 16 hops only at its own next beacon, R1 passes it on at once, the ping gets ICMP 3/0. Both match: per sending card the same messages at the same times, every table through the same states. The first 5 s are compared by the state the tables reach, since Java's routers start one after the other. Measured on the JDK: Java's pause divides nextFloat() by 3 in float; the core does too now (a millisecond off in one draw of about 10,000 before). Scenarios name their RIP routers in the new field rip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
166 lines
4.4 KiB
JSON
166 lines
4.4 KiB
JSON
{
|
|
"seed": 71,
|
|
"nodes": [
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000401",
|
|
"kind": "pc",
|
|
"ports": [
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000411",
|
|
"label": "eth0"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000402",
|
|
"kind": "router",
|
|
"ports": [
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000421",
|
|
"label": "eth0"
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000422",
|
|
"label": "eth1"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000403",
|
|
"kind": "router",
|
|
"ports": [
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000431",
|
|
"label": "eth0"
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000432",
|
|
"label": "eth1"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000404",
|
|
"kind": "router",
|
|
"ports": [
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000441",
|
|
"label": "eth0"
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000442",
|
|
"label": "eth1"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000405",
|
|
"kind": "pc",
|
|
"ports": [
|
|
{
|
|
"id": "00000000-0000-0000-0000-000000000451",
|
|
"label": "eth0"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"links": [
|
|
{
|
|
"id": "00000000-0000-0000-0000-00000000F401",
|
|
"sourceNode": "00000000-0000-0000-0000-000000000401",
|
|
"sourcePort": "00000000-0000-0000-0000-000000000411",
|
|
"targetNode": "00000000-0000-0000-0000-000000000402",
|
|
"targetPort": "00000000-0000-0000-0000-000000000421"
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-00000000F402",
|
|
"sourceNode": "00000000-0000-0000-0000-000000000402",
|
|
"sourcePort": "00000000-0000-0000-0000-000000000422",
|
|
"targetNode": "00000000-0000-0000-0000-000000000403",
|
|
"targetPort": "00000000-0000-0000-0000-000000000431"
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-00000000F403",
|
|
"sourceNode": "00000000-0000-0000-0000-000000000403",
|
|
"sourcePort": "00000000-0000-0000-0000-000000000432",
|
|
"targetNode": "00000000-0000-0000-0000-000000000404",
|
|
"targetPort": "00000000-0000-0000-0000-000000000441"
|
|
},
|
|
{
|
|
"id": "00000000-0000-0000-0000-00000000F404",
|
|
"sourceNode": "00000000-0000-0000-0000-000000000404",
|
|
"sourcePort": "00000000-0000-0000-0000-000000000442",
|
|
"targetNode": "00000000-0000-0000-0000-000000000405",
|
|
"targetPort": "00000000-0000-0000-0000-000000000451"
|
|
}
|
|
],
|
|
"devices": {
|
|
"00000000-0000-0000-0000-000000000401": {
|
|
"ip": "10.0.1.2",
|
|
"mask": "255.255.255.0",
|
|
"gateway": "10.0.1.1"
|
|
},
|
|
"00000000-0000-0000-0000-000000000402": {
|
|
"ip": "10.0.1.1",
|
|
"mask": "255.255.255.0"
|
|
},
|
|
"00000000-0000-0000-0000-000000000403": {
|
|
"ip": "10.0.12.2",
|
|
"mask": "255.255.255.0"
|
|
},
|
|
"00000000-0000-0000-0000-000000000404": {
|
|
"ip": "10.0.23.3",
|
|
"mask": "255.255.255.0"
|
|
},
|
|
"00000000-0000-0000-0000-000000000405": {
|
|
"ip": "10.0.3.2",
|
|
"mask": "255.255.255.0",
|
|
"gateway": "10.0.3.1"
|
|
}
|
|
},
|
|
"interfaces": [
|
|
{
|
|
"node": "00000000-0000-0000-0000-000000000402",
|
|
"port": "00000000-0000-0000-0000-000000000421",
|
|
"ip": "10.0.1.1",
|
|
"mask": "255.255.255.0"
|
|
},
|
|
{
|
|
"node": "00000000-0000-0000-0000-000000000402",
|
|
"port": "00000000-0000-0000-0000-000000000422",
|
|
"ip": "10.0.12.1",
|
|
"mask": "255.255.255.0"
|
|
},
|
|
{
|
|
"node": "00000000-0000-0000-0000-000000000403",
|
|
"port": "00000000-0000-0000-0000-000000000431",
|
|
"ip": "10.0.12.2",
|
|
"mask": "255.255.255.0"
|
|
},
|
|
{
|
|
"node": "00000000-0000-0000-0000-000000000403",
|
|
"port": "00000000-0000-0000-0000-000000000432",
|
|
"ip": "10.0.23.2",
|
|
"mask": "255.255.255.0"
|
|
},
|
|
{
|
|
"node": "00000000-0000-0000-0000-000000000404",
|
|
"port": "00000000-0000-0000-0000-000000000441",
|
|
"ip": "10.0.23.3",
|
|
"mask": "255.255.255.0"
|
|
},
|
|
{
|
|
"node": "00000000-0000-0000-0000-000000000404",
|
|
"port": "00000000-0000-0000-0000-000000000442",
|
|
"ip": "10.0.3.1",
|
|
"mask": "255.255.255.0"
|
|
}
|
|
],
|
|
"rip": [
|
|
"00000000-0000-0000-0000-000000000402",
|
|
"00000000-0000-0000-0000-000000000403",
|
|
"00000000-0000-0000-0000-000000000404"
|
|
],
|
|
"steps": []
|
|
}
|