sig
  type payload =
      Ids of int * int * Tools.Payload.t
    | Redirect of Ip.Addr.t * Tools.Payload.t
    | Header of int * Tools.Payload.t
  val random_payload : Icmp.MsgType.t -> Icmp.Pdu.payload
  type t = { msg_type : Icmp.MsgType.t; payload : Icmp.Pdu.payload; }
  val random : unit -> Icmp.Pdu.t
  val make_echo_request : int -> int -> Icmp.Pdu.t
  val make_echo_reply : int -> int -> Icmp.Pdu.t
  val is_echo_request : Icmp.Pdu.t -> bool
  val pack : Icmp.Pdu.t -> Bitstring.bitstring
  val unpack : string * int * int -> Icmp.Pdu.t option
end