sig
type t = {
src : Eth.Addr.t;
gw : Eth.gw_addr option;
proto : Arp.HwProto.t;
mtu : int;
mutable my_addresses : Bitstring.bitstring list;
mutable emit : Bitstring.bitstring -> unit;
mutable recv : Bitstring.bitstring -> unit;
mutable promisc : Bitstring.bitstring -> unit;
arp_cache : Eth.Addr.t option Tools.BitHash.t;
delayed : Bitstring.bitstring Tools.BitHash.t;
}
type eth_trx = {
trx : Tools.trx;
set_promiscuous : (Bitstring.bitstring -> unit) -> unit;
set_addresses : Bitstring.bitstring list -> unit;
get_source : unit -> Eth.Addr.t;
arp_set : Bitstring.bitstring -> Eth.Addr.t option -> unit;
}
val send :
Eth.TRX.t -> Arp.HwProto.t -> Eth.Addr.t -> Tools.Payload.outer_t -> unit
val resolve_proto_addr :
Eth.TRX.t ->
Bitstring.bitstring -> Bitstring.bitstring -> Bitstring.bitstring -> unit
type dst = Delayed | Dst of Eth.Addr.t
val arp_resolve_ipv4 :
Eth.TRX.t ->
Bitstring.bitstring ->
Bitstring.bitstring -> Tools.BitHash.key -> Eth.TRX.dst
val dst_for :
Eth.TRX.t -> Bitstring.bitstring -> Eth.TRX.dst Batteries.Option.Monad.m
val tx : Eth.TRX.t -> Bitstring.bitstring -> unit
val rx : Eth.TRX.t -> string * int * int -> unit
val make :
?mtu:int ->
Eth.Addr.t ->
?gw:Eth.gw_addr ->
?promisc:(Bitstring.bitstring -> unit) ->
Arp.HwProto.t -> Bitstring.bitstring list -> Eth.TRX.eth_trx
end