sig
  type udp_trx = {
    trx : Tools.trx;
    get_ports : unit -> Udp.Port.t * Udp.Port.t;
  }
  type t = {
    mutable src : Udp.Port.t;
    mutable dst : Udp.Port.t;
    mutable emit : Bitstring.bitstring -> unit;
    mutable recv : Bitstring.bitstring -> unit;
  }
  val tx : Udp.TRX.t -> Tools.Payload.outer_t -> unit
  val rx : Udp.TRX.t -> string * int * int -> unit
  val trx_of : Udp.TRX.t -> Udp.TRX.udp_trx
  val make : Udp.Port.t -> Udp.Port.t -> Udp.TRX.udp_trx
end