sig
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 -> Ip.Pdu.t
val random : unit -> Ip.Pdu.t
val pseudo_header : Ip.Pdu.t -> unit -> Bitstring.bitstring
val patch_checksum :
?fixit:(int -> int) ->
int ->
(unit -> Bitstring.bitstring) -> Tools.Payload.t -> Tools.Payload.t
val pack : Ip.Pdu.t -> Bitstring.bitstring
val unpack : string * int * int -> Ip.Pdu.t option
val unpack_with_ports : string * int * int -> (Ip.Pdu.t * int * int) option
end