This is an official Github repository for the EuroSys '23 paper "FlexPass: A Case for Flexible Credit-based Transport for Datacenter Networks". The repository includes our implementation of FlexPass on the ns-2 simulator.
We provide a pre-built docker image at ghcr.io/kaist-ina/ns2-flexpass. Use the following command to set-up the docker image.
docker pull ghcr.io/kaist-ina/ns2-flexpass-
We provide a python script named
runs_simulations.pyto automate simulations. Use following command to run all simulations.docker run --rm -it \ -v $(pwd)/result:/ns-allinone-2.35/ns-2.35/outputs \ ghcr.io/kaist-ina/ns2-flexpass \ python ./run_simulations.pyThe result will be stored in
resultdirectory. -
We provide a python script named
generate_figure.pyto analyze results and generate figures from it.docker run --rm -it \ -v $(pwd)/result:/ns-allinone-2.35/ns-2.35/outputs \ ghcr.io/kaist-ina/ns2-flexpass \ python ./generate_figure.pyThe CSV files and figures (in PNG) will be stored in the
resultdirectory.
-
Files in
xpass:Core FlexPass and ExpressPass implementation.
-
Files in
workloads:Example workload files for the simulation.
-
queue/broadcom-node.ccandqueue/broadcom-node.h:Implementation for a Broadcom ASIC switch model. These includes selective dropping for TLT, dynamic buffer management. This is the ns-2 backport from here.
Disclaimer: this module is purely based on authors' personal understanding of Broadcom ASIC. It does not reflect any official confirmation from either Microsoft or Broadcom.
-
Other files in
queue:Implementation of queues that support ExpressPass and FlexPass.
-
tcp/tcp-xpass.ccandtcp/tcp-xpass.h:Layering (LY) implementation of ExpressPass.
This code repository is based on https://github.com/kaist-ina/ns2-xpass.