Skip to content

Releases: hack3ric/mimic

v0.6.3

15 Jan 07:03
7e26b4a
Compare
Choose a tag to compare
  • Add libxdp support via dlopen(3)
  • Add --max-window flag for disabling variable window mechanism (mainly for debugging purposes)
  • Add --xdp-mode={skb,native} option for forcing XDP attach mode
    • Some VMs may encounter errors when loading Mimic, similar to that of #11. Use --xdp-mode=skb to work around them.
    • Some Intel NICs have XDP native mode for offloading XDP programs in drivers (e1000e, igb, igc, etc.), but may sometimes experience sudden connection breaks that last for minutes. --xdp-mode=skb may help by disabling offload.
  • Allow IP free bind to enable scenarios like #7.
  • Various bug fixes

v0.6.2

23 Nov 16:33
29c7e19
Compare
Choose a tag to compare

This is a minor release with Debian packaging fixes, in line with Debian upstream packaging effort.

Major changes in v0.6.0 include:

  • Do not depend on bpf_xdp_get_buff_len for payload length; this could be larger than the actual packet length, and the real length should be retrieved from packet headers
  • Add kprobe checksum hacks, along with previous kfunc implementation
  • Enable XDP fragments support
  • RST is now sent to peers when Mimic is shutting down
  • Allow domain names in filters; they are only resolved when Mimic starts, and only resolved IPs are stored
  • Allow fixed or pseudo-random padding in packets

v0.6.1

23 Nov 10:06
03a4c4f
Compare
Choose a tag to compare

This is a minor release with Debian packaging fixes, in line with Debian upstream packaging effort.

Major changes in v0.6.0 include:

  • Do not depend on bpf_xdp_get_buff_len for payload length; this could be larger than the actual packet length, and the real length should be retrieved from packet headers
  • Add kprobe checksum hacks, along with previous kfunc implementation
  • Enable XDP fragments support
  • RST is now sent to peers when Mimic is shutting down
  • Allow domain names in filters; they are only resolved when Mimic starts, and only resolved IPs are stored
  • Allow fixed or pseudo-random padding in packets

v0.6.0

02 Nov 14:16
1e7d5d7
Compare
Choose a tag to compare

This version supports alternative kprobe method for checksum hacks, domain resolution support, packet padding and more!

  • Do not depend on bpf_xdp_get_buff_len for payload length; this could be larger than the actual packet length, and the real length should be retrieved from packet headers
  • Add kprobe checksum hacks, along with previous kfunc implementation
  • Enable XDP fragments support
  • RST is now sent to peers when Mimic is shutting down
  • Allow domain names in filters; they are only resolved when Mimic starts, and only resolved IPs are stored
  • Allow fixed or pseudo-random padding in packets

Full Changelog: v0.5.0...v0.6.0

v0.5.0

05 Aug 12:49
v0.5.0
df9b16c
Compare
Choose a tag to compare

This version consists mostly of new test environments, major fixes and internal changes. Some notable are:

  • Track TCP window size and send window change packets to prevent conntrack failure
  • (distro packages) Tries to extract vmlinux from boot image if vmlinux is not available in module build directory
  • Add passive mode, i.e. "do not initiate handshake", enabled by setting handshake interval to 0

Full Changelog: v0.4.2...v0.5.0

v0.4.2

24 May 13:39
a3a811c
Compare
Choose a tag to compare
  • Fix systemd service file, adding missing [Install] section
  • Fix version display in Mimic CLI

Changes in v0.4.x include:

  • Variable congestion window to better mimic real TCP
  • Notify supervisor when Mimic is ready (currently only systemd)
  • Drop json-c dependency, lock file now uses key=value pair
  • Add handshake and keepalive mechanism, as well as its settings, both global and filter-specific
  • Add mimic(1) manpage
  • Better logging UX, including full TCP traffic trace

v0.4.1

24 May 06:56
6dc4578
Compare
Choose a tag to compare
  • Fix configuration file parsing
  • Make trace output more visible on certain terminals

Changes in v0.4.x include:

  • Variable congestion window to better mimic real TCP
  • Notify supervisor when Mimic is ready (currently only systemd)
  • Drop json-c dependency, lock file now uses key=value pair
  • Add handshake and keepalive mechanism, as well as its settings, both global and filter-specific
  • Add mimic(1) manpage
  • Better logging UX, including full TCP traffic trace

v0.4.0

23 May 16:11
c0c638d
Compare
Choose a tag to compare
  • Variable congestion window to better mimic real TCP
  • Notify supervisor when Mimic is ready (currently only systemd)
  • Drop json-c dependency, lock file now uses key=value pair
  • Add handshake and keepalive mechanism, as well as its settings, both global and filter-specific
  • Add mimic(1) manpage
  • Better logging UX, including full TCP traffic trace

v0.3.1

20 Apr 20:09
1222b6b
Compare
Choose a tag to compare
  • Ubuntu: prebuilt distribution switched from 23.10 (mantic) to 24.04 LTS (noble)
  • Add null checks in pktbuf.c to prevent edge-case segfaults
  • Reduce error message on failing to send buffered packets
  • Fix compiler warnings

v0.3.0

07 Apr 13:29
4827a8e
Compare
Choose a tag to compare

This is a major release of Mimic! Changes include:

  • Proper TCP handshake by actively sending packets using raw socket (see README#Caveats for more information)
  • Only calculate checksum deltas on ingress path
  • Correctly build and install DKMS kernel modules on Debian and Ubuntu