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.
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.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 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.