test(java-oracle): DhcpRun records DHCP as Java FILIUS runs it

Builds a core scenario's network in Java FILIUS, starts it as the action
mode does and writes every frame each card saw (the Lauscher) and the
addresses at the end. References for the four DHCP scenarios: one
DISCOVER/REQUEST per attempt, an ARP check that waits one RTT, DECLINE on a
conflict, link-local 169.254.1.x after the fifth failure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-30 10:33:58 +00:00
co-authored by Claude Opus 5.5
parent 396dbacfc5
commit fd445e8889
7 changed files with 1725 additions and 1 deletions
@@ -0,0 +1,331 @@
{
"frames": {
"00000000-0000-0000-0000-000000000101": [
{
"time": 460,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPDISCOVER\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:12"
},
{
"time": 464,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPOFFER\nyiaddr=192.168.0.100\nchaddr=02:00:00:00:01:12\nrouter=192.168.0.1\nsubnetmask=255.255.255.0\ndnsserver=192.168.0.53\nserverident=192.168.0.10"
},
{
"time": 516,
"source": "02:00:00:00:01:13",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPDISCOVER\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:13"
},
{
"time": 520,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPOFFER\nyiaddr=192.168.0.150\nchaddr=02:00:00:00:01:13\nrouter=192.168.0.1\nsubnetmask=255.255.255.0\ndnsserver=192.168.0.53\nserverident=192.168.0.10"
},
{
"time": 688,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "0.0.0.0",
"targetIp": "192.168.0.100"
},
{
"time": 743,
"source": "02:00:00:00:01:13",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "0.0.0.0",
"targetIp": "192.168.0.150"
},
{
"time": 3438,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPREQUEST\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:12\nrequested=192.168.0.100\nserverident=192.168.0.10"
},
{
"time": 3438,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPACK\nyiaddr=192.168.0.100\nchaddr=02:00:00:00:01:12\nserverident=192.168.0.10"
},
{
"time": 3493,
"source": "02:00:00:00:01:13",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPREQUEST\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:13\nrequested=192.168.0.150\nserverident=192.168.0.10"
},
{
"time": 3494,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPACK\nyiaddr=192.168.0.150\nchaddr=02:00:00:00:01:13\nserverident=192.168.0.10"
}
],
"00000000-0000-0000-0000-000000000102": [
{
"time": 337,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPDISCOVER\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:12"
},
{
"time": 460,
"source": "02:00:00:00:01:13",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPDISCOVER\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:13"
},
{
"time": 575,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPOFFER\nyiaddr=192.168.0.100\nchaddr=02:00:00:00:01:12\nrouter=192.168.0.1\nsubnetmask=255.255.255.0\ndnsserver=192.168.0.53\nserverident=192.168.0.10"
},
{
"time": 576,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "0.0.0.0",
"targetIp": "192.168.0.100"
},
{
"time": 631,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPOFFER\nyiaddr=192.168.0.150\nchaddr=02:00:00:00:01:13\nrouter=192.168.0.1\nsubnetmask=255.255.255.0\ndnsserver=192.168.0.53\nserverident=192.168.0.10"
},
{
"time": 743,
"source": "02:00:00:00:01:13",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "0.0.0.0",
"targetIp": "192.168.0.150"
},
{
"time": 3327,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPREQUEST\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:12\nrequested=192.168.0.100\nserverident=192.168.0.10"
},
{
"time": 3493,
"source": "02:00:00:00:01:13",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPREQUEST\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:13\nrequested=192.168.0.150\nserverident=192.168.0.10"
},
{
"time": 3549,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPACK\nyiaddr=192.168.0.100\nchaddr=02:00:00:00:01:12\nserverident=192.168.0.10"
},
{
"time": 3605,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPACK\nyiaddr=192.168.0.150\nchaddr=02:00:00:00:01:13\nserverident=192.168.0.10"
}
],
"00000000-0000-0000-0000-000000000103": [
{
"time": 460,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPDISCOVER\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:12"
},
{
"time": 575,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPOFFER\nyiaddr=192.168.0.100\nchaddr=02:00:00:00:01:12\nrouter=192.168.0.1\nsubnetmask=255.255.255.0\ndnsserver=192.168.0.53\nserverident=192.168.0.10"
},
{
"time": 631,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPOFFER\nyiaddr=192.168.0.150\nchaddr=02:00:00:00:01:13\nrouter=192.168.0.1\nsubnetmask=255.255.255.0\ndnsserver=192.168.0.53\nserverident=192.168.0.10"
},
{
"time": 631,
"source": "02:00:00:00:01:13",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "0.0.0.0",
"targetIp": "192.168.0.150"
},
{
"time": 688,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "0.0.0.0",
"targetIp": "192.168.0.100"
},
{
"time": 3382,
"source": "02:00:00:00:01:13",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPREQUEST\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:13\nrequested=192.168.0.150\nserverident=192.168.0.10"
},
{
"time": 3438,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "0.0.0.0",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 68,
"destinationPort": 67,
"payload": "DHCPREQUEST\nyiaddr=0.0.0.0\nchaddr=02:00:00:00:01:12\nrequested=192.168.0.100\nserverident=192.168.0.10"
},
{
"time": 3549,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPACK\nyiaddr=192.168.0.100\nchaddr=02:00:00:00:01:12\nserverident=192.168.0.10"
},
{
"time": 3605,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"sourceIp": "192.168.0.10",
"destinationIp": "255.255.255.255",
"protocol": 17,
"sourcePort": 67,
"destinationPort": 68,
"payload": "DHCPACK\nyiaddr=192.168.0.150\nchaddr=02:00:00:00:01:13\nserverident=192.168.0.10"
}
]
},
"devices": {
"00000000-0000-0000-0000-000000000101": [
"192.168.0.10",
"255.255.255.0",
"",
""
],
"00000000-0000-0000-0000-000000000102": [
"192.168.0.100",
"255.255.255.0",
"192.168.0.1",
"192.168.0.53"
],
"00000000-0000-0000-0000-000000000103": [
"192.168.0.150",
"255.255.255.0",
"192.168.0.1",
"192.168.0.53"
]
}
}