1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071moduletypeV4=sigtypeipv4addr(** The type for IPv4 addresses. *)typebuffer(** The type for memory buffers. *)typeudpv4(** The type for UDPv4 implementations. *)typetcpv4(** The type for TCPv4 implementations. *)typeipv4(** The type for IPv4 implementations. *)includeMirage_device.SmoduleUDPV4:Mirage_protocols.UDPwithtype+'aio='aioandtypeipaddr=ipv4addrandtypebuffer=bufferandtypet=udpv4moduleTCPV4:Mirage_protocols.TCPwithtype+'aio='aioandtypeipaddr=ipv4addrandtypebuffer=bufferandtypet=tcpv4moduleIPV4:Mirage_protocols.IPV4withtype+'aio='aioandtypeipaddr=ipv4addrandtypebuffer=bufferandtypet=ipv4valudpv4:t->udpv4(** [udpv4 t] obtains a descriptor for use with the [UDPV4] module,
usually to transmit traffic. *)valtcpv4:t->tcpv4(** [tcpv4 t] obtains a descriptor for use with the [TCPV4] module,
usually to initiate outgoing connections. *)valipv4:t->ipv4(** [ipv4 t] obtains a descriptor for use with the [IPV4] module,
which can handle raw IPv4 frames, or manipulate IP address
configuration on the stack interface. *)vallisten_udpv4:t->port:int->UDPV4.callback->unit(** [listen_udpv4 t ~port cb] registers the [cb] callback on the
UDPv4 [port] and immediately return. If [port] is invalid (not
between 0 and 65535 inclusive), it raises [Invalid_argument].
Multiple bindings to the same port will overwrite previous
bindings, so callbacks will not chain if ports clash. *)vallisten_tcpv4:?keepalive:Mirage_protocols.Keepalive.t->t->port:int->(TCPV4.flow->unitio)->unit(** [listen_tcpv4 ~keepalive t ~port cb] registers the [cb] callback
on the TCPv4 [port] and immediatey return. If [port] is invalid (not
between 0 and 65535 inclusive), it raises [Invalid_argument].
Multiple bindings to the same port will overwrite previous
bindings, so callbacks will not chain if ports clash.
If [~keepalive] is provided then these keepalive settings will be
applied to the accepted connections before the callback is called. *)vallisten:t->unitio(** [listen t] requests that the stack listen for traffic on the
network interface associated with the stack, and demultiplex
traffic to the appropriate callbacks. *)end