Module Macaddr

A library for manipulation of MAC address representations.

v3.1.0 - homepage

exception Parse_error of string * string

Parse_error (err,packet) is raised when parsing of the MAC address syntax fails. err contains a human-readable error and packet is the original octet list that failed to parse.

type t

Type of the hardware address (MAC) of an ethernet interface.

Functions converting MAC addresses to/from bytes/string

val of_bytes_exn : string -> t

of_bytes_exn buf is the hardware address extracted from buf. Raises Parse_error if buf has not length 6.

val of_bytes : string -> (t, [> `Msg of string ]) Stdlib.result

Same as above but returns an option type instead of raising an exception.

val of_string_exn : string -> t

of_string_exn mac_string is the hardware address represented by mac_string. Raises Parse_error if mac_string is not a valid representation of a MAC address.

val of_string : string -> (t, [> `Msg of string ]) Stdlib.result

Same as above but returns an option type instead of raising an exception.

val to_bytes : t -> string

to_bytes mac_addr is a string of size 6 encoding mac_addr.

val to_string : ?⁠sep:char -> t -> string

to_string ?(sep=':') mac_addr is the sep-separated string representation of mac_addr, i.e. xx:xx:xx:xx:xx:xx.

val pp : Stdlib.Format.formatter -> t -> unit

pp f mac_addr outputs a human-readable representation of mac_addr to the formatter f.

val broadcast : t

broadcast is ff:ff:ff:ff:ff:ff.

val make_local : (int -> int) -> t

make_local bytegen creates a unicast, locally administered MAC address given a function mapping octet offset to octet value.

val get_oui : t -> int

get_oui macaddr is the integer organization identifier for macaddr.

val is_local : t -> bool

is_local macaddr is the predicate on the locally administered bit of macaddr.

val is_unicast : t -> bool

is_unicast macaddr the is the predicate on the unicast bit of macaddr.

include Stdlib.Map.OrderedType with type t := t
type t

The type of the map keys.

val compare : t -> t -> int

A total ordering function over the keys. This is a two-argument function f such that f e1 e2 is zero if the keys e1 and e2 are equal, f e1 e2 is strictly negative if e1 is smaller than e2, and f e1 e2 is strictly positive if e1 is greater than e2. Example: a suitable ordering function is the generic structural comparison function Pervasives.compare.