package mirage-types
A complete TCP/IPv4 stack that can be used by applications to receive and transmit network traffic.
Abstract type of a network interface that is used to transmit and receive traffic associated with this stack.
Abstract type of the configuration modes associated with this interface. These can consist of the IPv4 address binding, or a DHCP interface.
Abstract type for the collection of user configuration specified to construct a stack.
module UDPV4 :
UDPV4
with type +'a io = 'a io
and type ipv4addr = ipv4addr
and type buffer = buffer
and type t = udpv4
A UDPv4 stack that can send and receive datagrams.
module TCPV4 :
TCPV4
with type +'a io = 'a io
and type ipv4addr = ipv4addr
and type buffer = buffer
and type t = tcpv4
A TCPv4 stack that can send and receive reliable streams using the TCP protocol.
module IPV4 :
IPV4
with type +'a io = 'a io
and type ipv4addr = ipv4addr
and type buffer = buffer
and type t = ipv4
An IPv4 stack that parses Ethernet frames into IPv4 packets
udpv4 t
obtains a descriptor for use with the UDPV4
module, usually to transmit traffic.
tcpv4 t
obtains a descriptor for use with the TCPV4
module, usually to initiate outgoing connections.
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.
val listen_udpv4 : t -> port:int -> UDPV4.callback -> unit
listen_udpv4 t ~port cb
will register the cb
callback on the UDPv4 port
and immediately return. Multiple bindings to the same port will overwrite previous bindings, so callbacks will not chain if ports clash.
val listen_tcpv4 : t -> port:int -> TCPV4.callback -> unit
listen_tcpv4 t ~port cb
will register the cb
callback on the TCPv4 port
and immediately return. Multiple bindings to the same port will overwrite previous bindings, so callbacks will not chain if ports clash.