package tcpip

  1. Overview
  2. Docs

Parameters

Signature

include V1_LWT.STACKV4 with type console = Console.t and type netif = Ipaddr.V4.t list and type mode = unit and type tcpv4 = Tcpv4_socket.t and type udpv4 = Udpv4_socket.t and type ipv4 = Ipaddr.V4.t option and module UDPV4 = Udpv4_socket and module TCPV4 = Tcpv4_socket and module IPV4 = Ipv4_socket
type console = Console.t

The type for console logger.

type netif = Ipaddr.V4.t list

The type for network interface that is used to transmit and receive traffic associated with this stack.

type mode = unit

The type for configuration modes associated with this interface. These can consist of the IPv4 address binding, or a DHCP interface.

type ('a, 'b, 'c) config = ('a, 'b, 'c) V1_LWT.stackv4_config

The type for the collection of user configuration specified to construct a stack.

type ipv4addr = Ipaddr.V4.t

The type for IPv4 addresses.

type buffer = Cstruct.t

The type for memory buffers.

type udpv4 = Udpv4_socket.t

The type for UDPv4 stacks.

type tcpv4 = Tcpv4_socket.t

The type for TCPv4 stacks.

type ipv4 = Ipaddr.V4.t option

The type for IPv4 stacks.

type error = [
  1. | `Unknown of string
]

The type for I/O operation errors.

include V1.DEVICE with type error := error and type id = (console, netif, mode) config with type 'a io = 'a Lwt.t
type 'a io = 'a Lwt.t

The type for potentially blocking I/O operation

type t

The type representing the internal state of the device

type id = (console, netif, mode) config

This type is no longer used and will be removed once other * modules stop using it in their type signatures.

val disconnect : t -> unit io

Disconnect from the device. While this might take some time to complete, it can never result in an error.

module UDPV4 = Udpv4_socket
module TCPV4 = Tcpv4_socket
module IPV4 = Ipv4_socket
val udpv4 : t -> udpv4

udpv4 t obtains a descriptor for use with the UDPV4 module, usually to transmit traffic.

val tcpv4 : t -> tcpv4

tcpv4 t obtains a descriptor for use with the TCPV4 module, usually to initiate outgoing connections.

val ipv4 : 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.

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. 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_tcpv4 : t -> port:int -> TCPV4.callback -> unit

listen_tcpv4 t ~port cb will register 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.

val listen : t -> unit io

listen t will cause the stack to listen for traffic on the network interface associated with the stack, and demultiplex traffic to the appropriate callbacks.

val connect : (console, netif, mode) V1_LWT.stackv4_config -> Udpv4_socket.t -> Tcpv4_socket.t -> [> `Ok of t | `Error of error ] Lwt.t