Skip to content

Releases: mirage/mirage-tcpip

Add IPv6 stack

18 Dec 18:44
Compare
Choose a tag to compare

Add IPv6 support. This changeset minimises interface changes to the existing
STACKV4 interfaces to faciliate a progressive merge. The only visible
interface changes are:

  • IPV4.set_ipv4_* functions have been renamed IPV4.set_ip_* because they
    are shared between IPV4 and IPV6.
  • IPV4.get_ipv4 and get_ipv4_netmask now return a list of Ipaddr.V4.t
    (again because this is the common semantics with IPV6.)
  • Several types that had v4 in their names (like IPV4.ipv4addr) have lost
    that particle.

Improved DHCP logging

12 Dec 14:48
Compare
Choose a tag to compare

Improve console printing for the DHCP client to output line breaks properly on Xen consoles.

Add profile tracing, and better Xen stub compilation

07 Dec 23:08
Compare
Choose a tag to compare
  • Build Xen stubs separately, with CFLAGS from mirage-xen 2.1.0+.
    This allows us to use the red zone under x86_64 Unix again.
  • Adding tracing labels and counters, which introduces a new dependency on the
    mirage-profile package.

Remove ARP race condition and simplify DHCP client

05 Dec 19:11
Compare
Choose a tag to compare
  • Fixed race waiting for ARP response (#86).
  • Move the the code that configures IPv4 address, netmask and gateways
    after receiving a successful lease out of the Dhcp_clientv4 module
    and into Stackv4 (#87)

Support IPv4 multicast addresses and stability fixes

01 Dec 19:07
Compare
Choose a tag to compare
  • Add IPv4 multicast to MAC address mapping in IPv4 output processing (#81 from Luke Dunstan).
  • Improve formatting of DHCP console logging, including printing out options (#83).
  • Build with -mno-red-zone on x86_64 to avoid stack corruption on Xen (#80).

Improve behaviour under heavy load

03 Nov 16:24
Compare
Choose a tag to compare
  • Fixed race condition in the signalling between the rx/tx threads under load.
  • Experimentally switch to immediate ACKs in TCPv4 by default instead of delayed ones.

Mirage 2.0 compatible TCP/IP release, and socket backend fixes

03 Nov 00:23
Compare
Choose a tag to compare
  • Moved 1s complement checksum C code here from mirage-platform.
  • Depend on Console_unix and Console_xen instead of Console.
  • [socket] Do not return an Eof when writing 0-length buffer (#76).
  • [socket] Accept callbacks now run in async threads instead of being serialised (#75).

More robust TCP options parsing

20 Jul 22:53
Compare
Choose a tag to compare
  • Quieten down the stack logging rate by not announcing IPv6 packet discards.
  • Raise exception Bad_option for unparseable or invalid TCPv4 options (#57).
  • Fix linking error with module Tcp_checksum by lifting it into top library (#60).
  • Add opam file to permit easier local pinning, and fix Travis to use this.

Stability fixes to TCPv4 and DHCP handling

01 Jul 12:22
Compare
Choose a tag to compare
  • Ensure that DHCP completes before the application is started, so that
    unikernels that establish outgoing connections can do so without a race.
    (fix from Mindy Preston in #53, followup in #55)
  • Add echo, chargen and discard services into the examples/
    directory. (from Mindy Preston in #52).
  • [tcp] Fully process the last ACK in a 3-way handshake for server connections.
    This ensures that a FIN is correctly transmitted upon application-initiated
    connection close. (fix from Mindy Preston in #51).

Expose IPV4 module in the STACKV4 functor

29 Apr 21:39
Compare
Choose a tag to compare
  • Expose IPV4 through the STACKV4 interface.

This requires the corresponding mirage-types package in Mirage 1.1.2