GithubHelp home page GithubHelp logo

opencloudnext / dhl Goto Github PK

View Code? Open in Web Editor NEW
11.0 6.0 2.0 136 KB

An FPGA-CPU co-design framework for accelerating software NFs (Network Functions) with Intel DPDK

Home Page: https://fangmingliu.github.io/files/icdcs18-DHL-FPGA-FangmingLiu.pdf

Makefile 5.65% C 83.81% Shell 1.24% C++ 9.30%
nfv software-network fpga-acceleration dpdk

dhl's Introduction

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.

dhl's People

Contributors

calmisi avatar fangmingliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  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.