Releases: mirage/mirage-tcpip
Releases · mirage/mirage-tcpip
6.4.0
6.3.0
v6.2.0
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
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 ontcpip.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 bymirage_
. Symbols such as checksum's
symbols arecaml_mirage_tcpip_*
instead ofcaml_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
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
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
v4.1.0
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
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 clockC.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)