sig
type port_range = int * int
val port_in_range : 'a -> 'a * 'a -> bool
type route = {
iface_num : int option;
src_mask : Ip.Cidr.t option;
dst_mask : Ip.Cidr.t option;
ip_proto : Ip.Proto.t option;
src_port : Router.Router.port_range option;
dst_port : Router.Router.port_range option;
}
val test_route :
Router.Router.route ->
int ->
Ip.Addr.t option ->
Ip.Addr.t option -> Ip.Proto.t option -> int option -> int option -> bool
type t = {
trxs : Tools.trx array;
route_tbl : (Router.Router.route * int) array;
}
val route : int -> Router.Router.t -> Bitstring.bitstring -> unit
val set_read :
int -> Router.Router.t -> (Bitstring.bitstring -> unit) -> unit
val make :
Tools.trx array -> (Router.Router.route * int) array -> Router.Router.t
val make_from_addrs :
(Ip.Addr.t * Eth.Addr.t) BatEnum.t ->
(Router.Router.route * int) array -> Router.Router.t * Tools.trx array
end