Library
Module
Module type
Parameter
Class
Class type
module N : Mirage_net.S
include Mirage_protocols.ETHERNET
The type for ethernet interface errors.
val pp_error : error Fmt.t
pp_error
is the pretty-printer for errors.
include Mirage_device.S
val disconnect : t -> unit Lwt.t
Disconnect from the device. While this might take some time to complete, it can never result in an error.
val write :
t ->
?src:Macaddr.t ->
Macaddr.t ->
Mirage_protocols.Ethernet.proto ->
?size:int ->
(Cstruct.t -> int) ->
(unit, error) Stdlib.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.
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.