import ipv4;
import dhcp;
import arp;
let client = 192.168.238.112/dhcp::CLIENT_PORT;
let server = 142.250.207.36/dhcp::SERVER_PORT;
# There is a low-level DNS API which you can use to construct exact queries,
# and even malformed queries
ipv4::udp::broadcast(
src: client,
dst: 255.255.255.255/dhcp::SERVER_PORT,
srcip: 0.0.0.0,
dhcp::hdr(
opcode: dhcp::opcode::REQUEST,
xid: 0xdeadbeef,
chaddr: "|78:24:af:23:f0:a9|",
),
dhcp::option(
dhcp::opt::MESSAGE_TYPE,
"|01|"
),
dhcp::option(
dhcp::opt::CLIENT_ID,
"|07 01 78:24:af:23:f0:a9|"
),
dhcp::option(
dhcp::opt::REQUESTED_ADDRESS,
0.0.0.0
),
dhcp::option(
dhcp::opt::PARAM_REQUEST_LIST,
"|01 03 06 2a|"
),
dhcp::option(
dhcp::opt::CLIENT_HOSTNAME,
"resynth",
),
dhcp::option(
dhcp::opt::CLIENT_FQDN,
"|19 00 00|resynth.local",
),
dhcp::opt::END,
);
ipv4::udp::unicast(
src: server,
dst: client,
dhcp::hdr(
opcode: dhcp::opcode::REPLY,
xid: 0xdeadbeef,
chaddr: "|78:24:af:23:f0:a9|",
),
);