Skip to content

Twenty Years After: Hierarchical Core-Stateless Fair Queueing

Notifications You must be signed in to change notification settings

netx-repo/HCSFQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Twenty Years After: Hierarchical Core-Stateless Fair Queueing

0. Introduction

HCSFQ is to the best of our knowledge, the first scalable practical solution to implement hierarchical fair queueing on commodity hardware at line rate with no per-flow state and no hierarchical queue management.

The details of the design are available in our NSDI'21 paper "Twenty Years After: Hierarchical Core-Stateless Fair Queueing". [Paper]

This repo contains our code for the hardware prototype and the large-scale simulations. Below we show how to configure the environment, how to run the system, and how to reproduce the results.

1. Content

  • simulation_code/: contains the Java-based implementation built on top of NetBench. Check this
  • testbed_code/
    • client_dpdk/: dpdk code to run on clients (for UDP experiments).
    • hcsfq/
      • controller_init/: control-plane module for HCSFQ.
      • p4src/: data-plane module (p4 code) for HCSFQ.
    • simple_switch/
      • controller_init/: control-plane module for simple switch.
      • p4src/: data-plane module (p4 code) for simple switch.
    • console.py: A script to help config and run different set of evaluations.
  • README.md: This file.

2. Testbed environment requirement

  • Hardware
    • A Barefoot Tofino switch.
    • Servers with a DPDK-compatible NIC (we used an Intel XL710 for 40GbE QSFP+) and multi-core CPU.
  • Software
    The current version of HCSFQ is tested on:
    • Tofino SDK (version after 8.2.2) on the switch.
    • DPDK (16.11.1) on the servers.
      You can either refer to the official guige or use the tools.sh script in dpdk_code/.
      cd dpdk_code
      ./tools.sh install_dpdk
    We provide easy-to-use scripts to run the experiments and to analyze the results. To use the scripts, you need:
    • Python2.7, Paramiko at your endhost.
      pip install paramiko

3. How to run

Please refer to testbed_code for testbed experiements and simulation_code for simulations.

4. Contact

You can email us at zhuolong at cs dot jhu dot edu if you have any questions.

About

Twenty Years After: Hierarchical Core-Stateless Fair Queueing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published