package tcpip

  1. Overview
  2. Docs

Parameters

module E : Mirage_protocols_lwt.ETHIF
module R : Mirage_random.C
module T : Mirage_time_lwt.S
module Clock : Mirage_clock_lwt.MCLOCK

Signature

include Mirage_protocols_lwt.IPV6 with type ethif = E.t
type error = private [>
  1. | Mirage_protocols.Ip.error
]
val pp_error : error Fmt.t
type buffer = Cstruct.t
type ethif = E.t
type ipaddr = Ipaddr.V6.t
type prefix = Ipaddr.V6.Prefix.t
type 'a io = 'a Lwt.t
type t
val disconnect : t -> unit io
type callback = src:ipaddr -> dst:ipaddr -> buffer -> unit io
val input : t -> tcp:callback -> udp:callback -> default:(proto:int -> callback) -> buffer -> unit io
val allocate_frame : t -> dst:ipaddr -> proto:[ `ICMP | `TCP | `UDP ] -> buffer * int
val write : t -> buffer -> buffer -> (unit, error) Pervasives.result io
val writev : t -> buffer -> buffer list -> (unit, error) Pervasives.result io
val checksum : buffer -> buffer list -> int
val pseudoheader : t -> dst:ipaddr -> proto:[< `TCP | `UDP ] -> int -> buffer
val src : t -> dst:ipaddr -> ipaddr
val set_ip : t -> ipaddr -> unit io
val get_ip : t -> ipaddr list
type uipaddr = Ipaddr.t
val to_uipaddr : ipaddr -> uipaddr
val of_uipaddr : uipaddr -> ipaddr option
val mtu : t -> int
val connect : ?ip:Ipaddr.V6.t list -> ?netmask:Ipaddr.V6.Prefix.t list -> ?gateways:Ipaddr.V6.t list -> ethif -> Clock.t -> t Lwt.t
OCaml

Innovation. Community. Security.