Skip to content
An FPGA-CPU co-design framework for accelerating software NFs (Network Functions) with Intel DPDK
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
dhl_manager
docs
examples
fpga_drivers
hw
lib
mk
scripts
.gitignore
Makefile
README.md

README.md

DHL

DHL (Dynamic Hardware Function Libraries) is a high performance FPGA-CPU co-design framework for accelerating software NFs (Network Functions) with Intel DPDK.

About

DPDK is capable of manipulating the network traffic at line-rate of 40 ~ 100 Gbps, for the network functions like L2-forward and L3-forward. That indeed improves the power of software NFs, however, when it comes to the complicated NFs containing computation-intensive operations, like IPsec gateway, the only-DPDK/only-CPU solution is facing the price of a lot of CPU cores. On the other hand, owing to its high concurrency and programmability, there are a lot of works implement NFs in FPGA. However, the programmable logic blocks on an FPGA board are very limited and expensive. Deploying the entire NF on FPGA is thus resource-demanding. Further, FPGA needs to be reprogrammed when the NF logic changes which can take hours to synthesize the code to generate new programs, hindering the rapid deployment of NFs.

Under this circumstances, it calls for DHL framework which flexibly offloads server cycles of computation-intensive to FPGA gates. DHL framework abstracts accelerator modules in FPGA as a hardware function library, and provides a set of transparent APIs for software developers. Moreover, DHL framework provides orchestration and management of different accelerator modules (hardware functions) among multiple FPGA cards.

If you are interested in DHL framework, detailed description can be got in our ICDCS 2018 paper.

Installation

To install DHL, please see the DHL Installation guide for a specific walkthrough.

Using DHL framework

  1. Software NF developing

    DHL comes with several sample network functions. To get started with these examples, please see the Example Uses guide.

  2. Hardware Accelerator module developing

    There are two pre-designed hardware accelerator modules (ipsec-crypto and pattern-matching) along with DHL framework. Of course, you can customize your own accelerator module based on the requirement of your software NF. Please see the Customizing Hardware Accelerator guide for detailed information.

Citing DHL

If you use DHL in your work, please cite our paper:

@inproceedings{Li2018DHL,
  title={DHL: Enabling Flexible Software Network Functions with FPGA Acceleration},
  author={Li, Xiaoyao and Wang, Xiuxiu and Liu, Fangming and Xu, Hong},
  booktitle={Distributed Computing Systems (ICDCS), 2018 IEEE 38th International Conference on},
  year={2018},
  organization={IEEE}
}

Please inform us if you use DHL in you research by emailing us.

You can’t perform that action at this time.