All notable changes to this project will be documented in this file.
0.1.1 - 2026-03-10
- (cli) Add build_features to long_version - (906dae5)
- (build) Adjust dependencies - (caf112b)
- (test) Add build deps - (71e821b)
- (test) Change feature to use - (96711b4)
0.1.0 - 2026-03-05
- (boot) Add basic boot process - (e9bd3fd)
- (cell) Wait for notify before start - (05a34ac)
- (cell) Add notify channel to cell - (ebd67e7)
- (cell) Add
Spycell to dump packets at any point (#126) - (758592e) - (cell) Add
DelayPerPacketcells that can reorder packets (#122) - (56b23ee) - (cell) Add token bucket cell (#96) - (44db3a8)
- (cli) Add trace visualization and log conversion - (338bda7)
- (cli) Add nat feature to support optional dependencies - (0810755)
- (cli) Add option to disable NAT in compatible mode - (5e17599)
- (cli) Add NAT management using nftnl - (bb30454)
- (cli) Allow stdout/stderr in isolated mode - (84dec98)
- (cli) Overwrite config with CLI arguments - (712b922)
- (cli) Change exit code on task failure - (f219388)
- (cli) Add prompt for bash - (886c894)
- (cli) Make shutdown more elegant - (e4ae6f5)
- (cli) Add isolated mode - (5a00852)
- (cli) Add subcommand generate - (ddedd17)
- (cli) Change default log level to warning - (e3ae66d)
- (cli) Add cli interface for queue - (8da88e7)
- (cli) Test connectivity before starting - (2a682a5)
- (cli) Add args for executing command - (3b6bc51)
- (cli) Add compatible mode rattan cli - (90dbcac)
- (config) Support env var in trace - (59e6b67)
- (config) Skip serializing none values - (b59c6bb)
- (control) Add http control endpoint - (7c1d47a)
- (core) Add logical timestamp to packet - (de31573)
- (core) Upgrade packet-log to new infra - (9a10d17)
- (core) Calibrate trace start time - (ac189e4)
- (core) Add task notifier for isolated mode - (88eb5c2)
- (core) Add Clone trait to StdPacket - (c85b9ec)
- (core) Add id to identify rattan instance - (4132330)
- (core) Support runtime topo construction - (d6bed6d)
- (core) Add a core loop to start a delay shell - (99d6d75)
- (device) Add router and shadow devices - (ca15b51)
- (device) Warn on linking non-existent device - (2167d1b)
- (device) Add state to enable mode switching - (206d7f4)
- (device) Add device to replay loss trace - (2b3c4bd)
- (device) Add device to replay delay trace - (3ba9a77)
- (device) Add
BandwidthReplayDevice(#25) - (cb3c132) - (device) Add packet queues to bandwidth device (#6) - (9b6a0e5)
- (device) Add i.i.d loss device - (2b2624d)
- (device) Replace timerfd impl in bandwidth - (f7d4246)
- (device) Add bandwidth device - (766e2bc)
- (device) Add loss device - (8f656fc)
- (device) Add control interface - (dc17ef3)
- (device) Add config interface - (993e4e2)
- (device) Add draft API design for external devices - (134a679)
- (device) Add delay device as an example for device API design - (11ffb61)
- (env) Expose internal id in env var RATTAN_ID - (07bb7b6)
- (env) Support multiple veth for StdNetEnv - (6344448)
- (env) Optimize the process of obtaining veth address - (fc52e9f)
- (env) Add mode config for std_env - (7cb1c9a)
- (http) Shutdown core loop if server exits - (8e2cd31)
- (io) Add AF_XDP support - (60a66f7)
- (log) Extract log facilities to separate crate - (a55fe59)
- (log) Add frag flags and dataofs for tcp log entry - (3952eea)
- (log) Impl plain for entry struct - (d90a654)
- (log) Add compressed packet log - (242dbc3)
- (log) Change packet log to core file log - (4d7f00b)
- (log) Add detailed description in packet log - (53e65ac)
- (log) Separate out packet related events - (d9dec2a)
- (log) Add facilities for packet-level logging - (803bfb5)
- (metal) Use interface id to add route - (8c00905)
- (metal) Bring loopback interface up (#26) - (907ba53)
- (metal) Add timerfd based timer - (80ee022)
- (netns) Refactor netns - (c885d12)
- (radix) Remove affinity temporarily - (6d31c4c)
- (radix) Reduce env build retry max times - (e308f61)
- (scripts) Add rattan log converter - (7eba046)
- (trace) Add humanized format for bandwidth - (1e888d3)
- (veth) Make external veth optional - (a2fb7e6)
- (veth) Unify base_ts for an instance - (dc8a885)
- (veth) Use ioctl to disable checksum offload - (f3a05d9)
- (veth) Add veth based on rtnetlink - (6e80aaa)
- (veth) Apply the builder pattern on veth configurations - (eb927c2)
- (veth) Add interface index - (9abfa1c)
- Make build_rattan_config generic on P to add main-xdp binary - (8968ad4)
- Automatically set address during creation (#28) - (20e592c)
- Add docker mode (#5) - (a660b70)
- Install the latest mainline kernel on all test machines - (f5d150e)
- Add packet-dump feature - (442a50b)
- Add tracing - (f7f17d3)
- (bw) Correct transfer time calculation - (bf341d5)
- (cell) Correct a snake_case naming of the per-packet delay config (#125) - (677396d)
- (cli) Resolve clap error of
Arguments- (32ad049) - (cli) Sleep before tokio runtime creation (#34) - (7566201)
- (config) Support env var in delay and loss trace - (753c35a)
- (config) Allow to load mahimahi trace file without filename extension - (f7eae09)
- (control) Use varied ports to run tests concurrently - (8268463)
- (core) Resolve some issue with serde feature - (1fb6373)
- (core) Support multiple entries - (bb41736)
- (core) Handle mpsc channel send error - (40dcff8)
- (device) Add serde default value to bw_type - (06d3e2e)
- (device) Replace sleep impl in delay - (00c05bb)
- (device) Remove unused Sync bound - (cac3aac)
- (env) Lock suffix with right veth group - (fb5246c)
- (env) Create better route table (#83) - (8e3e4f0)
- (env) Sleep between creating veth and adding route - (0da7b07)
- (env) Randomize the name for concurrent - (7e7c6c0)
- (http) Keep health-check api available - (ffa958e)
- (log) Correct timestamp to unix repr (#161) - (cb47212)
- (log) Rearrange the bit range according to the spec - (16f4c25)
- (metal) Fix blocking io in timer - (e5ee176)
- (netns) Avoid double-close persistent file - (b0f8552)
- (radix) Sleep between namespace entering and process spawning - (675604a)
- (spycell) Change file creation process (#130) - (b16f3fe)
- (test) Use [[ instead of [ to fix a syntax error complain - (11708a9)
- (veth) Avoid panicking again when thread is currently panicking - (ed0a6f9)
- (veth) Compatible with lower version ethtool - (5ecc44e)
- Remove redundant memset on af_packet recv - (f3ac476)
- Only allow workflows from the main repository - (acb2cb6)
- Fix clippy warnings - (b0699b8)
- Change to collect the data of iperf3 receiver - (0a299d0)
- Drop veth without thread spawn - (e0146d2)
- Clean the veth external test - (15c7bb2)
- (cell) Change to use logical timestamp - (2f2c12a)
- (cell) Redesign token bucket cell - (d1af2de)
- (cli) Divide into different subcommands - (440fd65)
- (config) Flatten RattanCoreConfig - (16d9635)
- (control) Make it as conditional feature - (755124a)
- (device) Improve internal logic - (5629aa3)
- (device) Remove legacy LossPacket - (2cd88a6)
- (device) Remove IIDLossDevice - (284c116)
- (device) Change config of delay device - (b7165c7)
- (env) Seperate env-related code - (5309e13)
- (env) Improve error handling for env creation (#43) - (6b09b1c)
- (script) Update log_converter.py to new spec - (fd0701b)
- (veth) Use once_cell instead of mutex to implement veth pair - (2adb9b6)
- (veth) Change the build function to async - (c520e3a)
- (veth) Add builder to create VethPair and VethDevice - (0636354)
- Rename device to cell - (ccb10e5)
- Change code structure - (be32cdf)
- Change ws structure and crate name - (c126098)
- Improve error message printing - (aaf02ed)
- Redesign rattan for easy configuration - (56a3f3d)
- Refactor the usage of rtnetlink - (8227f89)
- Move global mutex into lib - (4491daf)
- Change to workspace structure - (9b8b60b)
- Move standard environment preparation to a module - (de2cc78)
- (README) Add arxiv citation bibtex - (2c05c67)
- (env) Fix address in env ascii art - (761bd66)
- (guid) Fix wrong github link - (2bae740)
- (guide) Explain how Rattan synchronize trace (#158) - (f7bb2e0)
- (guide) Update to new packet-log spec - (61a40b4)
- (guide) Fix typo of link path - (6526101)
- (guide) Add illustration example - (e00d9f8)
- (guide) Fix installation deps - (acd3e01)
- (guide) Improve and clarify the doc for packet log - (c1a8adc)
- (guide) Add arxiv citation to guide - (66b9830)
- (guide) Correct wrong example command - (9b05731)
- (readme) Update logo - (82f31b3)
- Add case examples to guide - (2e87ef2)
- Add new-cell guide (#97) - (ce0384a)
- Update guide with deps - (bcae92c)
- Update some expressions - (d854465)
- Add user guide - (85a0742)
- Start to write document - (ac4bfbc)
- Improve task scheduling during core loop - (144d3c0)
- (cli) Remove unused import - (6a14967)
- (clippy) Correct some linting error - (5a6f7c1)
- (clippy) Resolve clippy warnings - (2677f3f)
- (clippy) Resolve clippy warnings - (e6c6b23)
- (clippy) Resolve clippy warnings - (3901dfc)
- (clippy) Resolve clippy warnings - (4580141)
- (clippy) Resolve clippy warnings - (99f3ea9)
- Fix typos - (20afbb1)
- Correct typos and format code (#124) - (42e8eb1)
- Format the Rust code - (1ed27f2)
- Fix typos - (db0e105)
- Fix typos - (2097f3e)
- Resolve clippy lint warnings - (e38052d)
- Format code - (f88fcc1)
- Remove frequent log - (ac2b751)
- (bandwidth) Fix cport of iperf3 - (a2c279a)
- (bw) Fix which side iperf samples in test_replay - (d28e5de)
- (bw) Add integration test for bw channel - (33be208)
- (delay) Add integration test for delay channel - (00c08f0)
- (device) Avoid depends on DeviceFactory - (80778b6)
- (device) Add unit test for replayed loss - (3787642)
- (device) Add unit test for replayed delay - (043bcaa)
- (device) Add unit tests for delay and loss - (d270e27)
- (http) Add http control endpoint test - (942c219)
- (ioctl) Add test for ioctl - (6a80901)
- (loss) Enlarge noise tolerate range - (f226302)
- (loss) Add integration test for loss channel - (83873be)
- (net) Add a external test for af_packet interface - (a72eabd)
- (net) Add netns creation with veth - (88286de)
- (net) Test veth creation and destruction using: rtnetlink - (78a2176)
- (spy) Improve tempfile handling and reduce packet count - (303ced1)
- Update integration tests - (bc4a691)
- Add slow timeout for tests - (27dd66a)
- Add feature flag for http tests - (2ad5fd8)
- Fix leaky subprocess - (25d4181)
- Use nextest as our test suite - (7163792)
- Use NetNsGuard to switch netns - (f4c39fb)
- Add global mutex for getting std_env - (20d3240)
- (audit) Ignore unmaintained crate paste - (156416d)
- (build) Remove redundance workflow runs - (943ad19)
- (cli) Warn if config specified but not exist - (bdb7d66)
- (docs) Remove out-of-date docs - (7320a10)
- (libvirt) Increase the VM cpu num to 8 - (56b4da8)
- (libvirt) Reduce the VM memory to 8 GiB - (e7d00e0)
- (lint) Use clippy directly - (5369d02)
- (log) Add test log for easy debugging - (c82affc)
- (scripts) Change inner function name - (8fce7f9)
- (scripts) Add sudo for installation - (ff6b62e)
- (scripts) Grant privileges for installed rattan-cli - (f2b8b0a)
- (test) Allow parallel running for matrix test - (fd9237c)
- (test) Remove packet-dump feature in ci test - (f489b09)
- (test) Allow tests from forks - (849d686)
- (test) Reduce test concurrency - (ad463c4)
- (test) Allow parallel running for matrix test - (4d22c96)
- (test) Limit parallel number of matrix test - (3d8ad90)
- (verify) Update to new cli format - (a3b0820)
- Enable caching for LLVM installation to speed up CI - (6b8a2d0)
- Use KyleMayes/install-llvm-action to install LLVM - (4652d87)
- Remove common-utils from the devcontainer specification - (6b083e5)
- Remove remoteUser property on the devcontainer specification - (32fb1aa)
- Run actions on pull_request - (b9f8301)
- Bump nightly kernel version to 6.12 - (4a5c9a9)
- Update test tigger events - (34307f8)
- Add mdbook-alerts to guide build process - (7897223)
- Allow schedule event for verify - (01f3bbd)
- Bump latest kernel to 6.11 - (c3514fe)
- Allow workflow dispatch running - (014370b)
- Make FlowEntry public - (6ea0008)
- Rename CONTRIBUTING.md - (3847f3f)
- Update scripts to latest cli arguments - (a6c8395)
- Upgrade the latest kernel to 6.10 - (eecca02)
- Add cli test - (e2ebd50)
- Fix iperf verification error - (d5628ba)
- Allow building CI machines without github runners - (59cc5f0)
- Fix bbr loading - (adfface)
- Fix bugs on github runner configurations - (9ff2a1f)
- Run verification on CST 1:00 AM (UTC 5:00 PM) - (48647b1)
- Activate our 6.9 machine - (ecd50ba)
- One more upstream kernel machine - (c0498fa)
- Reduce the time usage of verification test - (e22244e)
- Update CI machines - (f9645f0)
- Use v4 of upload-artifact - (51b74af)
- Remove tests on kernel v6.6 temporarily - (c8bec59)
- Load bbr for verify - (4f88b85)
- Cache rust target for faster build - (d56ffe8)
- Add runner configuration for test - (aae9b88)
- Avoid running for non-code changes - (9fd993a)
- Improve cargo-clippy and add cargo-fmt - (9c1c0d1)
- Rewrite our slogan - (15aba43)
- Cancel in progress jobs on the same branch - (4bc8616)
- Bump to checkout@v4 - (1d51a66)
- Add cargo audit - (c78fe3c)
- Ignore .vscode - (3f2fd8b)
- Add a mantic/6.6 VM (#8) - (805b5a7)
- Tune TCP parameters of ci machines - (0298d0f)
- Add performance verification - (655e68f)
- Update test environments - (de9d83d)
- Clear unused log - (3d126ba)
- Add CI badge - (e95d2ac)
- Add a compound test that uses multiple devices - (035feb0)
- Add synthetic delay between iperf client/server to stablize ci - (19aaf86)
- Reduce unnecessary output - (e8e175e)
- Allow concurrent running of jobs (again) - (5f91559)
- Add trigger of workflow_dispatch - (6d0c659)
- Limit the number of concurrency - (b90b0fd)
- Disable fast-fail to test different kernels - (62d8ed7)
- Fix bandwidth test - (5808d7d)
- Install iperf3 instead of iperf - (c0b88b9)
- Add 5.4 and 6.1 kernels - (14ee23e)
- Add missing cli tools - (4f12e55)
- Grant required capabilities to ci containers - (f6708fe)
- Add ci workflow - (66a510e)
- Clean codebase - (60156d4)
- Add provision artifacts of ci machines - (2700a3d)
- Add rattan logo - (541fa5e)
- Move bandwidth upper bound test to benches - (fd6bddf)
- (cargo) Remove nat from default features - (50896ac)
- (cargo) Re-add Cargo.lock to version control - (dae607e)
- (cargo) Raise MSRV to v1.86 - (8cf43f7)
- (cli) Add more metadata to long version - (c7acbf4)
- (deps) Bump nix from 0.29.0 to 0.31.1 (#173) - (cbcace6)
- (deps) Update rtnetlink requirement from 0.17.0 to 0.20.0 - (9c5a89b)
- (deps) Bump syn, libbpf-sys and unicode-ident - (3824584)
- (deps) Bump rand from 0.9.2 to 0.10.0 (#168) - (745953b)
- (deps) Bump toml from 0.9.12+spec-1.1.0 to 1.0.1+spec-1.1.0 (#171) - (09b6af4)
- (deps) Bump ctrlc from 3.5.1 to 3.5.2 - (12512cd)
- (deps) Bump futures from 0.3.31 to 0.3.32 - (a6a403a)
- (deps) Bump serde_with from 3.11.0 to 3.16.1 - (2dd8d5b)
- (deps) Update reqwest requirement from 0.12.9 to 0.13.1 - (0e5efca)
- (deps) Update etherparse requirement from 0.18.0 to 0.19.0 - (620efa6)
- (deps) Update criterion requirement from 0.7.0 to 0.8.1 - (c18372e)
- (deps) Clean up unused dependencies - (76ef4ab)
- (deps) Update criterion requirement from 0.6.0 to 0.7.0 - (4af1a79)
- (deps) Update toml requirement from 0.8.12 to 0.9.2 - (9bd034d)
- (deps) Update rtnetlink requirement from 0.16.0 to 0.17.0 - (d38b9e6)
- (deps) Update criterion requirement from 0.5.1 to 0.6.0 - (ac6fe0e)
- (deps) Update etherparse requirement from 0.17.0 to 0.18.0 - (9813f5e)
- (deps) Update rtnetlink requirement from 0.15.0 to 0.16.0 - (5879e6a)
- (deps) Replace humantime with jiff - (7714bc0)
- (deps) Update rtnetlink requirement to 0.15.0 - (615f18c)
- (deps) Update bytesize requirement from 1.3.0 to 2.0.1 - (b33f283)
- (deps) Add 'derive' feature to clap - (818504b)
- (deps) Update bitfield requirement from 0.18.1 to 0.19.0 - (8a99d05)
- (deps) Update bitfield requirement from 0.17.0 to 0.18.1 - (581ce75)
- (deps) Update rand requirement from 0.8.5 to 0.9.0 - (ec7dc03)
- (deps) Update dirs requirement from 5.0.1 to 6.0.0 - (cdfc190)
- (deps) Update etherparse requirement from 0.16.0 to 0.17.0 - (030fb94)
- (deps) Update netem-trace requirement from 0.3.3 to 0.4.0 - (08f1b87)
- (deps) Update itertools requirement from 0.13.0 to 0.14.0 - (c1773db)
- (deps) Add 'signal' feature to nix dependency - (9a8f256)
- (deps) Update nix requirement from 0.26.2 to 0.29.0 - (0de0617)
- (deps) Update backon requirement from 0.4.4 to 1.2.0 - (1d0e1dd)
- (deps) Update bitfield requirement from 0.16.1 to 0.17.0 - (487e5ca)
- (deps) Update etherparse requirement from 0.14.3 to 0.16.0 - (8247787)
- (deps) Update thiserror requirement from 1.0.40 to 2.0.0 - (2d3591e)
- (deps) Update reqwest requirement from 0.11.16 to 0.12.9 - (2ebb7e9)
- Add af_packet rattan as default run - (182480f)
- Config systemd networkd for stable mac address - (0e0d1c1)
- Set cargo resolver to 2 - (7df9cf5)
- Update broken dependency rtnetlink - (cbc0692)
- Add devcontainer - (50ef752)