Module Arpv4.Make

Parameters

Signature

include Mirage_protocols_lwt.ARP
include Mirage_device.S
type +'a io

The type for potentially blocking I/O operation

type t

The type representing the internal state of the device

val disconnect : t ‑> unit io

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

type ipaddr = Ipaddr.V4.t
type buffer = Cstruct.t
type macaddr = Macaddr.t
type repr
type error#row

The type for ARP errors.

type error = private [>
| Mirage_protocols.Arp.error
]

The type for ARP errors.

val pp_error : error Fmt.t

pp_error is the pretty-printer for errors.

val to_repr : t ‑> repr io

Prettyprint cache contents

val pp : repr Fmt.t
val get_ips : t ‑> ipaddr list

get_ips arp gets the bound IP address list in the arp value.

val set_ips : t ‑> ipaddr list ‑> unit io

set_ips arp sets the bound IP address list, which will transmit a GARP packet also.

val remove_ip : t ‑> ipaddr ‑> unit io

remove_ip arp ip removes ip to the bound IP address list in the arp value, which will transmit a GARP packet for any remaining IPs in the bound IP address list after the removal.

val add_ip : t ‑> ipaddr ‑> unit io

add_ip arp ip adds ip to the bound IP address list in the arp value, which will transmit a GARP packet also.

val query : t ‑> ipaddr ‑> (macaddrerrorPervasives.result io

query arp ip queries the cache in arp for an ARP entry corresponding to ip, which may result in the sender sleeping waiting for a response.

val input : t ‑> buffer ‑> unit io

input arp frame will handle an ARP frame. If it is a response, it will update its cache, otherwise will try to satisfy the request.

type ethif = Ethif.t
val connect : ethif ‑> Clock.t ‑> t Lwt.t

connect creates a value of type t.