Module Dhcp.Pdu

module Pdu: sig .. end

type t = {
   op : Dhcp.opcode;
   htype : Arp.HwType.t;
   hlen : int;
   hops : int;
   xid : int32;
   secs : int;
   broadcast : bool;
   ciaddr : Ip.Addr.t;
   yiaddr : Ip.Addr.t;
   siaddr : Ip.Addr.t;
   giaddr : Ip.Addr.t;
   chaddr : Bitstring.bitstring;
   sname : string;
   file : string;
   mutable msg_type : Dhcp.MsgType.t option;
   mutable subnet_mask : Ip.Addr.t option;
   mutable router : Ip.Addr.t option;
   mutable ntp_server : Ip.Addr.t option;
   mutable smtp_server : Ip.Addr.t option;
   mutable pop3_server : Ip.Addr.t option;
   mutable name_server : Ip.Addr.t option;
   mutable client_name : string option;
   mutable search_sfx : string option;
   mutable lease_time : int32 option;
   mutable server_id : Ip.Addr.t option;
   mutable requested_ip : Ip.Addr.t option;
   mutable message : string option;
   mutable client_id : Bitstring.bitstring option;
   mutable request_list : string option;
}
val unpack_options : t -> string * int * int -> bool
val unpack : string * int * int -> t option
val pack_options : t -> Bitstring.bitstring
val pack : t -> Bitstring.bitstring
val make_base : ?mac:Eth.Addr.t ->
?xid:Int32.t ->
?name:string -> ?yiaddr:Ip.Addr.t -> Dhcp.MsgType.t -> t
val make_discover : ?mac:Eth.Addr.t -> ?xid:Int32.t -> ?name:string -> unit -> t
val make_offer : ?mac:Eth.Addr.t ->
?xid:Int32.t -> Ip.Addr.t -> Bitstring.bitstring option -> t
val make_request : ?mac:Eth.Addr.t ->
?xid:Int32.t -> ?name:string -> Ip.Addr.t -> Ip.Addr.t option -> t
val make_ack : ?mac:Eth.Addr.t ->
?xid:Int32.t -> Ip.Addr.t -> Bitstring.bitstring option -> t
val random : unit -> t