package macaddr

  1. Overview
  2. Docs
A library for manipulation of MAC address representations

Install

Dune Dependency

Authors

Maintainers

Sources

ipaddr-5.3.1.tbz
sha256=9820bcbccadb6e6d9e22fe26b2f9a044897c8f47c29d157f464b41a2f191e7d4
sha512=1d400f8344d1a8c2ac1c55e4a7167484034094e2227ce7c8f2f45843b0875a83030851400ceb96b5cdb756fa8798d83c77d839705fcb9e3f2bd5e46d337d63d0

Description

A library for manipulation of MAC address representations.

Features:

  • ounit2-based tests
  • MAC-48 (Ethernet) address support
  • Macaddr is a Map.OrderedType
  • All types have sexplib serializers/deserializers optionally via the Macaddr_sexp library.

Tags

org:mirage org:xapi-project

Published: 04 Jul 2022

README

ipaddr: IP and MAC address manipulation

A library for manipulation of IP and MAC address representations.

Features:

  • ounit2-based tests

  • IPv4 and IPv6 support

  • IPv4 and IPv6 CIDR prefix support

  • IPv4 and IPv6 CIDR-scoped address support

  • Ipaddr.V4 and Ipaddr.V4.Prefix modules are Map.OrderedType

  • Ipaddr.V6 and Ipaddr.V6.Prefix modules are Map.OrderedType

  • Ipaddr and Ipaddr.Prefix modules are Map.OrderedType

  • Ipaddr_unix in findlib subpackage ipaddr.unix provides compatibility with the standard library Unix module

  • Ipaddr_top in findlib subpackage ipaddr.top provides top-level pretty printers

  • IP address scope classification

  • IPv4-mapped addresses in IPv6 (::ffff:0:0/96) are an embedding of IPv4

  • MAC-48 (Ethernet) address support

  • Macaddr is a Map.OrderedType

  • All types have sexplib serializers/deserializers optionally via the Ipaddr_sexp and Macaddr_sexp libraries.

Usage

There are the following opam packages included:

  • ipaddr: the Ipaddr and associated modules

  • ipaddr-sexp

  • ipaddr-cstruct

  • macaddr: the Macaddr and associated modules.

  • macaddr-sexp

  • macaddr-cstruct

There are the following ocamlfind libraries included as part of this repository, included as part of the respective opam packages.

  • ipaddr: The Ipaddr module for IPv4/6 manipulation.

  • ipaddr.top: Toplevel printers for Ipaddr.

  • ipaddr-cstruct: The Ipaddr_cstruct module

  • macaddr: The Macaddr module for MAC address manipulation.

  • macaddr.top: Toplevel printers for Macaddr.

  • macaddr-cstruct: The Macaddr_cstruct module

  • ipaddr-sexp: S-expression converters for Ipaddr.

  • macaddr-sexp: S-expression converters for Macaddr.

Installation and development

The packages are released to the opam-repository. An opam install ipaddr (or any other above mentioned package) will install it. If you want to install the latest development commit, opam pin add ipaddr --dev will do this.

A local build, after a git clone can be done with dune build, a dune runtest compiles and executes the testsuite. If dependencies are missing, opam install (-t) --deps-only . in the cloned directory will install them.

The auto-formatter ocamlformat is used, please execute dune build @fmt --auto-promote before submitting a pull request.

Contact

Dependencies (2)

  1. dune >= "1.9.0"
  2. ocaml >= "4.08.0"

Dev Dependencies (2)

  1. ppx_sexp_conv with-test & >= "v0.9.0"
  2. ounit2 with-test

Used by (23)

  1. arp >= "2.1.0"
  2. charrua
  3. charrua-client >= "0.12.0"
  4. charrua-core >= "0.11.1"
  5. charrua-server
  6. ethernet >= "2.1.0"
  7. ipaddr = "5.3.1"
  8. macaddr-cstruct = "5.3.1"
  9. macaddr-sexp = "5.3.1"
  10. mirage-net >= "3.0.0"
  11. mirage-net-lwt >= "1.2.0"
  12. mirage-net-macosx >= "1.5.0"
  13. mirage-net-solo5 >= "0.4.3"
  14. mirage-net-unix >= "2.6.0"
  15. mirage-net-xen >= "2.1.4"
  16. mirage-protocols >= "4.0.0" & < "8.0.0"
  17. mirage-protocols-lwt >= "1.4.1"
  18. mirage-vnetif >= "0.4.1"
  19. mirage-vnetif-stack
  20. netchannel >= "2.1.0"
  21. tcpip >= "3.7.7"
  22. tuntap >= "1.8.0"
  23. vmnet >= "1.3.3"

Conflicts (1)

  1. ipaddr < "3.0.0"
OCaml

Innovation. Community. Security.