Module Ip.Pdu

module Pdu: sig .. end
(Un)Packing an IP packet.

val id_seq : int Batteries.ref
val next_id : unit -> int
type t = {
   tos : int;
   tot_len : int;
   id : int;
   dont_frag : bool;
   more_frags : bool;
   frag_offset : int;
   ttl : int;
   proto : Ip.Proto.t;
   src : Ip.Addr.t;
   dst : Ip.Addr.t;
   options : Bitstring.bitstring;
   payload : Tools.Payload.t;
}
val make : ?tos:int ->
?tot_len:int ->
?id:int ->
?dont_frag:bool ->
?more_frags:bool ->
?frag_offset:int ->
?ttl:int ->
?options:Bitstring.bitstring ->
Ip.Proto.t -> Ip.Addr.t -> Ip.Addr.t -> Bitstring.bitstring -> t
val random : unit -> t
val pseudo_header : t -> unit -> Bitstring.bitstring
val patch_checksum : ?fixit:(int -> int) ->
int -> (unit -> Bitstring.bitstring) -> Tools.Payload.t -> Tools.Payload.t
val pack : t -> Bitstring.bitstring
val unpack : string * int * int -> t option
val unpack_with_ports : string * int * int -> (t * int * int) option
Unpack an ip packets and return the ip PDU, source port and dest port.