package tcpip

  1. Overview
  2. Docs
include Mirage_protocols_lwt.ICMPV4
include Mirage_device.S with type 'a io = 'a Lwt.t
type 'a io = 'a Lwt.t

The type for potentially blocking I/O operation

type t

The type representing the internal state of the device

val disconnect : t -> unit io

Disconnect from the device. 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 buffer = Cstruct.t

The type for buffers.

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 -> buffer -> unit io

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

val write : t -> dst:ipaddr -> buffer -> (unit, error) Pervasives.result io

write t dst buffer sends the ICMP message in buffer to dst over IP.

val connect : unit -> t io
val listen : t -> ipaddr -> (buffer -> unit io) -> unit io

listen t addr fn attempts to create an unprivileged listener on IP address addr. * It will take any incoming ICMP packets and process them with the provided fn.

OCaml

Innovation. Community. Security.