package mirage-protocols
Library
Module
Module type
Parameter
Class
Class type
Ethernet (IEEE 802.3) is a widely used data link layer. The hardware is usually a twisted pair or fibre connection, on the software side it consists of an Ethernet header where source and destination mac addresses, and a type field, indicating the type of the next layer, are present. The Ethernet layer consists of network card mac address and MTU information, and provides decapsulation and encapsulation.
The type for ethernet interface errors.
val pp_error : error Fmt.t
pp_error
is the pretty-printer for errors.
val write :
t ->
?src:macaddr ->
macaddr ->
Ethernet.proto ->
?size:int ->
(buffer -> int) ->
(unit, error) Pervasives.result io
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 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.