Arp_packetSourceConversion between wire and high-level data
The high-level datatype can be decoded and encoded to bytes to be sent on the wire. ARP specifies hardware and protocol addresses, but this implementation picks Ethernet and IPv4 statically. While decoding can result in an error, encoding can not.
type t = {operation : op;source_mac : Macaddr.t;source_ip : Ipaddr.V4.t;target_mac : Macaddr.t;target_ip : Ipaddr.V4.t;}The high-level ARP frame consisting of the two address pairs and an operation.
size is the size of an ARP frame.
pp ppf t prints the frame t on ppf.
equal a b returns true if frames a and b are equal, false otherwise.
The type of possible errors during decoding
Too_short if the provided buffer is not long enoughUnusable if the protocol or hardware address type is not IPv4 and EthernetUnknown_operation if it is neither a request nor a replypp_error ppf err prints the error err on ppf.
decode buf attempts to decode the buffer into an ARP frame t.
encode t is a buf, a freshly allocated buffer, which contains the encoded ARP frame t.