Module Icmpv4.Make

Parameters

module I : Tcpip.Ip.S with type ipaddr = Ipaddr.V4.t

Signature

include S
type t

The type representing the internal state of the ICMP layer.

val disconnect : t -> unit Lwt.t

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

type ipaddr = Ipaddr.V4.t

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 -> ?src:ipaddr -> dst:ipaddr -> ?ttl:int -> Cstruct.t -> (unit, error) Stdlib.result Lwt.t

write t ~src ~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.

val connect : I.t -> t Lwt.t