tcpip
Library
Module
Module type
Parameter
Class
Class type
Parameters
module Time : Mirage_time.S
module Random : Mirage_random.S
module Netif : Mirage_net.S
module Ethernet : Mirage_protocols.ETHERNET
module Ipv6 : Mirage_protocols.IP with type ipaddr = Ipaddr.V6.t
module Udpv6 : UDPV6_DIRECT
module Tcpv6 : TCPV6_DIRECT
Signature
include Mirage_stack.V6
with module IP = Ipv6
and module TCP = Tcpv6
and module UDP = Udpv6
Disconnect from the IPv6 stack. While this might take some time to complete, it can never result in an error.
module UDP = Udpv6
module TCP = Tcpv6
module IP = Ipv6
udp t
obtains a descriptor for use with the UDPV6
module, usually to transmit traffic.
tcp t
obtains a descriptor for use with the TCPV6
module, usually to initiate outgoing connections.
ip t
obtains a descriptor for use with the IPV6
module, which can handle raw IPv6 frames, or manipulate IP address configuration on the stack interface.
val listen_udp : t -> port:int -> UDP.callback -> unit
listen_udp t ~port cb
registers the cb
callback on the UDPv6 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.
val listen_tcp :
?keepalive:Mirage_protocols.Keepalive.t ->
t ->
port:int ->
( TCP.flow -> unit Lwt.t ) ->
unit
listen_tcp ~keepalive t ~port cb
registers the cb
callback on the TCPv6 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. If ~keepalive
is provided then these keepalive settings will be applied to the accepted connections before the callback is called.
connect
assembles the arguments into a network stack, then calls `listen` on the assembled stack before returning it to the caller. The initial `listen` functions to ensure that the lower-level layers are functioning, so that if the user wishes to establish outbound connections, they will be able to do so.