Arp_packetConversion 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.
val op_to_int : op -> intval int_to_op : int -> op optiontype 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.
val pp : Format.formatter -> t -> unitpp ppf t prints the frame t on ppf.
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 replyval pp_error : Format.formatter -> error -> unitpp_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.