xref: /aosp_15_r20/tools/netsim/pdl/arp.pdl (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1*cf78ab8cSAndroid Build Coastguard Worker// PDL grammar file for arp packet format.
2*cf78ab8cSAndroid Build Coastguard Worker
3*cf78ab8cSAndroid Build Coastguard Workerbig_endian_packets
4*cf78ab8cSAndroid Build Coastguard Worker
5*cf78ab8cSAndroid Build Coastguard Worker// Arp packet for Ethernet and IPv4
6*cf78ab8cSAndroid Build Coastguard Worker
7*cf78ab8cSAndroid Build Coastguard Workerpacket ArpPacket {
8*cf78ab8cSAndroid Build Coastguard Worker  _fixed_ = 0x01 : 16,          // Hardware type (e.g., 1 for Ethernet)
9*cf78ab8cSAndroid Build Coastguard Worker  _fixed_ = 0x0800 : 16,        // Protocol type (e.g., 0x0800 for IPv4)
10*cf78ab8cSAndroid Build Coastguard Worker  _fixed_ = 0x06 : 8,           // Hardware address length (e.g., 6 for MAC)
11*cf78ab8cSAndroid Build Coastguard Worker  _fixed_ = 0x04 : 8,           // Protocol address length (e.g., 4 for IPv4)
12*cf78ab8cSAndroid Build Coastguard Worker  opcode: 16,                   // Operation (1 for request, 2 for reply)
13*cf78ab8cSAndroid Build Coastguard Worker  sender_hw_addr: 8[6],         // Sender's hardware address
14*cf78ab8cSAndroid Build Coastguard Worker  sender_proto_addr: 8[4],      // Sender's protocol address
15*cf78ab8cSAndroid Build Coastguard Worker  target_hw_addr: 8[6],         // Target's hardware address
16*cf78ab8cSAndroid Build Coastguard Worker  target_proto_addr: 8[4],      // Target's protocol address
17*cf78ab8cSAndroid Build Coastguard Worker}
18