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,243 @@
{
"frames": {
"00000000-0000-0000-0000-000000000101": [
{
"time": 466,
"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": 3199,
"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": 5949,
"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": 8699,
"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": 11450,
"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": 14201,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "0.0.0.0",
"targetIp": "169.254.1.72"
},
{
"time": 16951,
"source": "02:00:00:00:01:12",
"destination": "ff:ff:ff:ff:ff:ff",
"arp": 2,
"senderIp": "169.254.1.72",
"targetIp": "255.255.255.255"
}
],
"00000000-0000-0000-0000-000000000102": [
{
"time": 342,
"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": 3087,
"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": 5838,
"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": 8588,
"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": 11338,
"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": 14089,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "0.0.0.0",
"targetIp": "169.254.1.72"
},
{
"time": 16840,
"source": "02:00:00:00:01:12",
"destination": "ff:ff:ff:ff:ff:ff",
"arp": 2,
"senderIp": "169.254.1.72",
"targetIp": "255.255.255.255"
}
],
"00000000-0000-0000-0000-000000000103": [
{
"time": 466,
"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": 3199,
"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": 5949,
"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": 8699,
"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": 11450,
"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": 14201,
"source": "02:00:00:00:01:12",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "0.0.0.0",
"targetIp": "169.254.1.72"
},
{
"time": 16951,
"source": "02:00:00:00:01:12",
"destination": "ff:ff:ff:ff:ff:ff",
"arp": 2,
"senderIp": "169.254.1.72",
"targetIp": "255.255.255.255"
}
]
},
"devices": {
"00000000-0000-0000-0000-000000000101": [
"192.168.0.10",
"255.255.255.0",
"",
""
],
"00000000-0000-0000-0000-000000000102": [
"169.254.1.72",
"255.255.0.0",
"",
""
],
"00000000-0000-0000-0000-000000000103": [
"192.168.0.30",
"255.255.255.0",
"",
""
]
}
}