Giter VIP home page Giter VIP logo

high-precision-congestion-control's Introduction

HPCC NS-3 simulator

This is an NS-3 simulator for HPCC: High Precision Congestion Control (SIGCOMM'19). It also includes the implementation of DCQCN, TIMELY, DCTCP, PFC, ECN and Broadcom shared buffer switch. The full paper can be found at: https://rmiao.github.io/publications/hpcc-li.pdf

It is based on NS-3 version 3.17.

If you have any questions, please contact Rui Miao ([email protected]).

Quick Start

Build

./waf configure

Please note if gcc version > 5, compilation will fail due to some ns3 code style. If this what you encounter, please use:

CC='gcc-5' CXX='g++-5' ./waf configure

Experiment config

Please see mix/config.txt for example.

mix/config_doc.txt is a explanation of the example (texts in {..} are explanations).

Run

The direct command to run is: ./waf --run 'scratch/third mix/config.txt'

We provide a run.py for automatically generating config and running experiment. Please python run.py -h for usage. Example usage: python run.py --cc hp --trace flow --bw 100 --topo topology --hpai 50

Files added/edited based on NS3

The major ones are listed here. There could be some files not listed here that are not important or not related to core logic.

point-to-point/model/qbb-net-device.cc/h: the net-device RDMA

point-to-point/model/pause-header.cc/h: the header of PFC packet

point-to-point/model/cn-header.cc/h: the header of CNP

point-to-point/model/qbb-header.cc/h: the header of ACK

point-to-point/model/qbb-channel.cc/h: the channel of qbb-net-device

point-to-point/model/qbb-remote-channel.cc/h

point-to-point/model/rdma-driver.cc/h: layer of assigning qp and manage multiple NICs

point-to-point/model/rdma-queue-pair.cc/h: queue pair

point-to-point/model/rdma-hw.cc/h: the core logic of congestion control

point-to-point/model/switch-node.cc/h: the node class for switch

point-to-point/model/switch-mmu.cc/h: the mmu module of switch

network/utils/broadcom-egress-queue.cc/h: the multi-queue implementation of a switch port

network/utils/custom-header.cc/h: a customized header class for speeding up header parsing

network/utils/int-header.cc/h: the header of INT

applications/model/rdma-client.cc/h: the application of generating RDMA traffic

high-precision-congestion-control's People

Contributors

alibaba-oss avatar ryanhuang1014 avatar rmiao avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.