Skip to content

Releases: mirage/mirage-tcpip

6.4.0

11 Nov 11:19
6681eda
Compare
Choose a tag to compare

CHANGES:

  • Adapt to mirage-protocols 6.0.0 API (#457 @hannesm)
  • TCP and UDP now have a listen and unlisten function (fixes #452)
  • type ipinput (in TCP and UDP) and listener (in TCP) have been removed

6.3.0

25 Oct 17:23
Compare
Choose a tag to compare

CHANGES:

v6.2.0

19 Jul 20:50
Compare
Choose a tag to compare

CHANGES:

  • This allows to listen on the same port as sending via UDP in the dual socket
    stack, and avoids file descriptor leaks in the socket stack.
  • Socket stack: avoid file descriptor leaks (remember opened file descriptors in
    data structure, close them in disconnect)
    (#449 @reynir @hannesm, fixes #446 #450)
  • Socket stack: convert an incoming packet on a dual socket to v4 source IP if
    received via IPv4 (#451 @reynir @hannesm)
  • Allow freestanding compilation without opam (#447 @sternenseemann)
  • Adapt to alcotest 1.4.0 breaking change (#448 @craigfe)

v6.1.0

29 Mar 09:54
Compare
Choose a tag to compare

CHANGES:

  • checksum stubs: Drop caml_ from their name (@hannesm, #445)
  • Add cancelation on tcpip.stack-socket (@dinosaure, @talex5, @hannesm, #443)
  • Ensure that listen really binds the given socket before
    creating a task on tcpip.stack-socket (@dinosaure, @hannesm, #439)
  • Add ppx_cstruct as a dependency (@hannesm, @dinosaure, #439)
  • Upgrade to ocamlformat.0.17.0 (@dinosaure, #442)
  • Drop the support of OCaml 4.08.0 (@dinosaure, #442)
  • Use the usual layout to compile freestanding C stubs and link them to
    a Solo5 unikernel (@dinosaure, @hannesm, #441)
    breaking changes
    C stubs are prepended by mirage_. Symbols such as checksum's
    symbols are caml_mirage_tcpip_* instead of caml_tcpip_*
    tcpip.unix is a fake sub-package and user does not it anymore, he can
    safely remove it from its project.
  • Conflict with < ocaml-freestanding.0.4.1 (@hannesm, #441)

v6.0.0

30 Nov 12:51
Compare
Choose a tag to compare

CHANGES:

  • Dual IPv4 and IPv6 socket and direct stack support, now requires
    mirage-stack 2.2.0 and mirage-protocols 5.0.0 (#433 @hannesm)
  • The above change also unified arguments passed to connect functions which
    are API-breaking changes
  • IPv6 waits for timeout after sending neighbour advertisement (for duplicate
    address detection)
  • Remove Xen cross-compilation runes, with mirage-xen 6.0.0 they're provided
    by mirage-xen (#434 @hannesm)
  • Move to dune 2.7.0 (and bisect instrumentation if desired) (#436 @hannesm)

v5.0.1

22 Sep 13:13
Compare
Choose a tag to compare

CHANGES:

  • Assorted IPv6 improvements (#428 #431 #432 @MagnusS @hannesm)
    • set length in packets to be sent
    • preserve updated ctx from Ndv6.handle
    • fix ICMP checksum computation
    • implement Mirage_stack.V6 signature
    • add connect, mtu, iperf tests
    • fix DAD protocol implementation (and test it)
    • avoid out of bounds accesses of IPv6 packets (check length before accessing)
  • Fix 32 bit issues (@MagnusS)
  • Implement stack-direct and tcp disconnect: tear down existing connections (#429 @hannesm)
  • Treat broadcast address of network as broadcast as well (#430 @hannesm, reported in #427)

v5.0.0

19 Jun 18:00
Compare
Choose a tag to compare

CHANGES:

  • Static_ipv4.connect API change: takes a cidr:Ipaddr.V4.Prefix.t instead of
    ip:Ipaddr.V4.t and network:Ipaddr.V4.Prefix.t (#426 @hannesm)
  • Adapt to ipaddr 5.0.0 API changes (#426 @hannesm)

v4.1.0

08 Feb 10:45
Compare
Choose a tag to compare

CHANGES:

  • Revert "Ipv4.Fragments use a Lru.M.t instead of Lru.F.t" (#423 by @hannesm)
    A Lru.M.t allocates a Hashtbl.t of size = capacity (= 256 * 1024 in our case),
    this leads to excessive ~2MB memory consumption for each Fragment cache,
    reported by @xaki23 in mirage/qubes-mirage-firewall#93
  • use SOCK_RAW for an ICMP socket in the unix sockets API (previously used
    SOCK_DGRAM which did not work)
    reported by @justinc1 in #358, fixed in #424 by @hannesm
  • tcp is now compatible with lwt >= 5.0.0 (where Lwt.async requires a function
    of (unit -> unit Lwt.t) (#370 #425 @cfcs @hannesm, issue #392 @emillon)
  • Add a dependency on dune-configurator to support dune 2.0.0 (#421 @avsm)

v4.0.0

01 Nov 09:58
Compare
Choose a tag to compare

CHANGES:

  • Adapt to mirage-protocols 4.0.0, mirage-net 3.0.0, mirage-time 2.0.0,
    mirage-clock 3.0.0, mirage-stack 2.0.0 interface changes (#420 @hannesm)
  • Revise Static_ipv4.connect signature (for more safety):
    val connect : ip:(Ipaddr.V4.Prefix.t * Ipaddr.V4.t) -> ?gateway:Ipaddr.V4.t ->
    ?fragment_cache_size:int -> E.t -> A.t -> t Lwt.t
    it used to be:
    val connect : ?ip:Ipaddr.V4.t -> ?network:Ipaddr.V4.Prefix.t ->
    ?gateway:Ipaddr.V4.t option -> C.t -> E.t -> A.t -> t Lwt.t
    The clock C.t is gone (due to mirage-clock 3.0.0), ~ip and ~network are
    now required and passed as pair ~ip. The optional argument ?gateway is
    of type Ipaddr.V4.t. The new optional labeled argument ~fragment_cache_size
    specifies the byte size of the IPv4 fragment cache (#420 @hannesm)

v3.7.9

15 Oct 15:49
5c496b1
Compare
Choose a tag to compare

CHANGES:

  • Add ?ttl:int parameter to Udp and Icmp write (#416 @phaer)
  • Ipv4.Fragments use a Lru.M.t instead of Lru.F.t (#418 @hannesm)
  • Adapt to mirage-protocols 3.1.0 changes (#419 @hannesm)
    • removed IP.set_ip
    • added `Would_fragment to Ip.error