- Fix TX.Request structure decoding and encoding (introduced in 2.1.4, #110 -- fixed by @palainp #112) -- due to this bug, 2.1.4 is marked as unavailable in opam-repository
- Remove mirage-profile dependency (#109 @hannesm)
- Remove sexplib, ppx_sexp_conv and ppx_cstruct dependency (#110 @hannesm)
- Merge netchannel and mirage-net-xen into single opam pacakge (#111 @hannesm)
- xenstore: read_backend now waits for the backend-id key to be written by Xen before reading it to avoid raising an exception (@palainp, #107)
- netback: go to closed state before removing vif from xenstore (@palainp, #105, addresses mirage/qubes-mirage-firewall#157)
- Do not
Lwt.catch
on the listen callback (@hannesm, @dinosaure, #103)
- Lint OPAM file (@hannesm, #100)
- Update the project with
cstruct.6.0.0
(@hannesm, #100) - Rename
OS
byXen_os
(@dinosaure, #101)
- Adapt to mirage-xen 6.0.0 API changes (Solo5 based Xen PVH, #99 @mato)
- MirageOS (mirage-net) defines the MTU as the link-level payload size, adjust from 1514 to 1500 (@hannesm, #98)
- Only pass the sub-buffer of requested size to the fill function (solves mirage/qubes-mirage-firewall#111, @hannesm, #98)
- listen: do not catch out of memory exception (@hannesm, #97)
- Adapt to mirage-xen 5.0.0 API changes (@hannesm, #95)
- Adapt to mirage-net 3.0.0 API changes (@hannesm, #95)
- Cope with frontend moving directly to Closed state (@talex5, #89)
- Remove colons in log prefixes (@yomimono, #91)
- Use mirage-xen.4.0.0
Os_xen
interface (@TheLortex, #90)
- Fix MAC address for netback devices (@talex5, #87).
This changes the
CONFIGURATION
signature to provide bothread_frontend_mac
andread_backend_mac
, and changes the XenStore implementation to returnfe:ff:ff:ff:ff:ff
for backends.
- Use the new grant API provided by mirage-xen (@talex5 and @yomimono, #85).
- Zero buffers before calling fill functions (@yomimono and @hannesm, #83).
- Adapt to mirage-net 2.0.0 changes (@hannesm)
- Port build from jbuilder to dune (@avsm)
- Switch to dune-release from topkg (@avsm)
- Clean up opam build depends and ppx (@avsm)
- Use lwt-dllist to remove deprecated
Lwt_sequence
(@avsm)
- require OCaml 4.03, remove "result" dependency (#77, from @hannesm)
- require ipaddr 3.0 (#79, from @hannesm)
- Support client-initiated shutdown (#67, from @talex5)
- Improve shared ring handling between Netback and Netfront (#68, from @talex5)
- Fix a number of build errors and improve documentation (various, from @djs55 and @talex5)
- Switch to jbuilder
- Add topkg
- Split into mirage-net-xen and netchannel
- Add dependency on io-page-xen
- Build against MirageOS version 3, and drop support for previous versions.
- Log exceptions from the
listen
callback. - Use Cstruct.hexdump_pp to dump frames on error.
- Use the Logs library for logging.
- Use a monotonic counter for the RX id.
- Generate a unique ID for each page shared with Xen for receiving data
- Don't assume the first interface is meant when id can't be decoded
- Remove camlp4 dependency, add OCaml 4.02.ppx dependency
- Add simple xen-build Makefile target which tests via Docker
- Generate a unique ID for each Netfront request. Before, we used the grant ref, but multiple requests may use the same ref. This could lead to pages being returned to the free pool before they had been read by netback.
- Add netback support, allowing mirage-net-xen to provide virtual network interfaces to other domains. This API is currently experimental.
- Add support for fragmented frames, including frames larger than one page.
- Use
Cstruct.fillv
instead of our own copy (which was incorrect, but the buggy path didn't get called unless the frame was fragmented, which we didn't support anyway). - Use the offset field (previously we assumed it was always zero).
listen
now starts and returns the polling thread. Before, it returned a dummy thread that never resolved. This means that errors in thelisten
thread should now be reported.- Errors in the user function passed to
listen
are now handled byLwt.async
(however that is configured). Before, we always printed the exception and then continued. - Don't discard frames sent before
listen
is called. - Split
Shared_page_pool
out into its own module. - Fixed some compiler warnings.
- Require shared-memory-ring >= 1.1.1 (#25).
- Require io-page >= 1.5.0 for
page_size
(#21).
- Wait for the backend network device to enter the
Connected
state before transmitting packets. This fixes a race condition in a fast-booting unikernel that caused the first packet to be lost (#20, #23).
- Add explicit
connect
function to interface (#19).
- When waiting for space in the transmit queue, we would sometimes fail to notice when space became available. (#15)
- Copy out-bound data into pre-shared pages for performance, security and simplicity. (#17)
- Use a centrally sourced Travis file and test OCaml 4.02+ as well.
- Add profiling tracepoints and labels (#13).
Introduces a dependency on
mirage-profile
. - New
opam
file present in source repository for OPAM 1.2 workflow.
- Revert the serialization in 1.1.2 as Xen/ARM (4.5 and backport to 4.4) has been fixed to support granting the same page multiple times. Backport is in https://github.com/mirage/xen-arm-builder.
- Wait for packets to be processed by the backend before returning from
a
writev
call. Without this, the caller has no way to know when it's safe to reuse the buffer (#11).
- Do not send oversized frames to the backend Netfront (#9 from Edwin Torok).
- Depend on the unified io-page library instead of io-page-xen.
- Depend on new
xen-event
andxen-grant
packages.
- Add Travis CI scripts.
- Adapt to V1.NETWORK from mirage-types-0.5.0.
- Initial release based on mirage-platform-0.9.8 Netif.