type ipaddr = Ipaddr.V4.t
type ip = Ipaddr.V4.t option
type ipinput = unit Lwt.t
type callback = src:ipaddr -> dst:ipaddr -> src_port:int -> Cstruct.t -> unit Lwt.t
type t = {
interface : Unix.inet_addr;
listen_fds : ( Unix.inet_addr * int, Lwt_unix.file_descr ) Hashtbl.t;
}
val get_udpv4_listening_fd : t -> int -> Lwt_unix.file_descr Lwt.t
type error = [
| `Sendto_failed
]
val pp_error : Format.formatter -> [< `Sendto_failed ] -> unit
val connect : ip -> t Lwt.t
val disconnect : 'a -> unit Lwt.t
val id : t -> Ipaddr.V4.t option
val input : listeners:'a -> 'b -> 'c Lwt.t
val write : ?src_port:int -> ?ttl:'a -> dst:Ipaddr.V4.t -> dst_port:int -> t -> Cstruct.t -> ( unit, [> `Sendto_failed ] ) result Lwt.t