This is the simulation code for NSDI'23 paper:
This repository is developed based on HPCC simulation code (base repo). The original HPCC ns3 code is lossless. We integrate an IRN-like selective retransmission into this code. In addition, we add a timeout checking to retransmit a long-term non-acked packet to handle the last packet loss event.
Note: We didn't simulate the SRNIC's SW-HW co-design architecture here; we evaluate it in testbed experiments.
You can write your experiment setting in run.sh
, and use myrun.py
to simultaneously start them. It is run.py
that physically compiles and runs this repo.
$ cd simulation
$ python myrun.py
The modified src code files compared with the base repo mainly consist of below:
- simulation/src/point-to-point/rdma-queue-pair.cc
- simulation/src/point-to-point/switch-node.cc
- simulation/src/point-to-point/switch-mmu.cc
- simulation/src/point-to-point/rdma-hw.cc
- simulation/src/point-to-point/qbb-net-device.cc
You can use the fct_analysis.py
to analyze the result files in simulation/mix
.
You can use gene.sh
to generate workload files for specific topology and traffic distribution. We have provided the CacheFollower distribution.