Library
Module
Module type
Parameter
Class
Class type
Conversion 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 -> int
val int_to_op : int -> op option
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.
val pp : Stdlib.Format.formatter -> t -> unit
pp 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 : Stdlib.Format.formatter -> error -> unit
pp_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
.