package tcpip

  1. Overview
  2. No Docs
OCaml TCP/IP networking stack, used in MirageOS

Install

Dune Dependency

Authors

Maintainers

Sources

tcpip-9.0.1.tbz
sha256=fac07ce986811cf5e3d71373d92b631cc30fbef548d6da21b0917212dcf90b03
sha512=01de13f560d58b1524c39619e4e4cb6ebbf069155eb43d0f264aa12b00e0cc8c39792719e3ca46585dd596b692b8e1e3f8c132f005ed9e2d77747c0c158bf4d9

doc/tcpip.stack-direct/Tcpip_stack_direct/MakeV4V6/argument-2-Ethernet/index.html

Parameter MakeV4V6.Ethernet

type nonrec error = private [>
  1. | `Exceeds_mtu
]

The type for ethernet interface errors.

val pp_error : error Fmt.t

pp_error is the pretty-printer for errors.

type t

The type representing the internal state of the ethernet layer.

val disconnect : t -> unit Lwt.t

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

val write : t -> ?src:Macaddr.t -> Macaddr.t -> Ethernet.Packet.proto -> ?size:int -> (Cstruct.t -> int) -> (unit, error) result Lwt.t

write eth ~src dst proto ~size payload outputs an ethernet frame which header is filled by eth, and its payload is the buffer from the call to payload. Payload gets a buffer of size (defaults to mtu) to fill with their payload. If size exceeds mtu, an error is returned.

val mac : t -> Macaddr.t

mac eth is the MAC address of eth.

val mtu : t -> int

mtu eth is the Maximum Transmission Unit of the eth i.e. the maximum size of the payload, excluding the ethernet frame header.

val input : arpv4:(Cstruct.t -> unit Lwt.t) -> ipv4:(Cstruct.t -> unit Lwt.t) -> ipv6:(Cstruct.t -> unit Lwt.t) -> t -> Cstruct.t -> unit Lwt.t

input ~arpv4 ~ipv4 ~ipv6 eth buffer decodes the buffer and demultiplexes it depending on the protocol to the callback.

OCaml

Innovation. Community. Security.