Internet Control Message Protocol: error messages and operational information.

include Mirage_device.S
type t

The type representing the internal state of the device

val disconnect : t -> unit Lwt.t

Disconnect from the device. While this might take some time to complete, it can never result in an error.

type ipaddr

The type for IP addresses.

type error

The type for ICMP errors.

val pp_error : error Fmt.t

pp_error is the pretty-printer for errors.

val input : t -> src:ipaddr -> dst:ipaddr -> Cstruct.t -> unit Lwt.t

input t src dst buffer reacts to the ICMP message in buffer.

val write : t -> dst:ipaddr -> ?ttl:int -> Cstruct.t -> (unit, error) result Lwt.t

write t dst ~ttl buffer sends the ICMP message in buffer to dst over IP. Passes the time-to-live (ttl) to the IP stack if given.