hXDP: Efficient Software Packet Processing on FPGA NICs.

Saved in:
Bibliographic Details
Title: hXDP: Efficient Software Packet Processing on FPGA NICs.
Authors: Brunella, Marco Spaziani1 spaziani@axbryd.com, Belocchi, Giacomo1 belocchi@axbryd.com, Bonola, Marco2 salvatore@axbryd.com, Pontarelli, Salvatore3 marco@axbryd.com, Siracusano, Giuseppe4 giuseppe.siracusano@neclab.eu, Bianchi, Giuseppe5 giuseppe.bianchi@uniroma2.it, Cammarano, Aniello6 cammarano@axbryd.com, Palumbo, Alessandro5 palumbo@ing.uniroma2.it, Petrucci, Luca5 luca.petrucci@uniroma2.it, Bifulco, Roberto4 roberto.bifulco@neclab.eu
Source: Communications of the ACM. Aug2022, Vol. 65 Issue 8, p91-100. 8p. 5 Diagrams, 2 Charts, 4 Graphs.
Subjects: Network interface devices, Computer networks, Motherboards, Electronic data processing, Computers, Technological innovations
Abstract: The network interface cards (NICs) of modern computers are changing to adapt to faster data rates and to help with the scaling issues of general-purpose CPU technologies. Among the ongoing innovations, the inclusion of programmable accelerators on the NIC's data path is particularly interesting, since it provides the opportunity to offload some of the CPU's network packet processing tasks to the accelerator. Given the strict latency constraints of packet processing tasks, accelerators are often implemented leveraging platforms such as Field-Programmable Gate Arrays (FPGAs). FPGAs can be re-programmed after deployment, to adapt to changing application requirements, and can achieve both high throughput and low latency when implementing packet processing tasks. However, they have limited resources that may need to be shared among diverse applications, and programming them is difficult and requires hardware design expertise. We present hXDP, a solution to run on FPGAs software packet processing tasks described with the eBPF technology and targeting the Linux's eXpress Data Path. hXDP uses only a fraction of the available FPGA resources, while matching the performance of high-end CPUs. The iterative execution model of eBPF is not a good fit for FPGA accelerators. Nonetheless, we show that many of the instructions of an eBPF program can be compressed, parallelized, or completely removed, when targeting a purpose-built FPGA design, thereby significantly improving performance. We implement hXDP on an FPGA NIC and evaluate it running real-world unmodified eBPF programs. Our implementation runs at 156.25MHz and uses about 15% of the FPGA resources. Despite these modest requirements, it can run dynamically loaded programs, achieves the packet processing throughput of a high-end CPU core, and provides a 10× lower packet forwarding latency. [ABSTRACT FROM AUTHOR]
Copyright of Communications of the ACM is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
FullText Links:
  – Type: pdflink
Text:
  Availability: 0
Header DbId: egs
DbLabel: Engineering Source
An: 158128821
AccessLevel: 6
PubType: Periodical
PubTypeId: serialPeriodical
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: hXDP: Efficient Software Packet Processing on FPGA NICs.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Brunella%2C+Marco+Spaziani%22">Brunella, Marco Spaziani</searchLink><relatesTo>1</relatesTo><i> spaziani@axbryd.com</i><br /><searchLink fieldCode="AR" term="%22Belocchi%2C+Giacomo%22">Belocchi, Giacomo</searchLink><relatesTo>1</relatesTo><i> belocchi@axbryd.com</i><br /><searchLink fieldCode="AR" term="%22Bonola%2C+Marco%22">Bonola, Marco</searchLink><relatesTo>2</relatesTo><i> salvatore@axbryd.com</i><br /><searchLink fieldCode="AR" term="%22Pontarelli%2C+Salvatore%22">Pontarelli, Salvatore</searchLink><relatesTo>3</relatesTo><i> marco@axbryd.com</i><br /><searchLink fieldCode="AR" term="%22Siracusano%2C+Giuseppe%22">Siracusano, Giuseppe</searchLink><relatesTo>4</relatesTo><i> giuseppe.siracusano@neclab.eu</i><br /><searchLink fieldCode="AR" term="%22Bianchi%2C+Giuseppe%22">Bianchi, Giuseppe</searchLink><relatesTo>5</relatesTo><i> giuseppe.bianchi@uniroma2.it</i><br /><searchLink fieldCode="AR" term="%22Cammarano%2C+Aniello%22">Cammarano, Aniello</searchLink><relatesTo>6</relatesTo><i> cammarano@axbryd.com</i><br /><searchLink fieldCode="AR" term="%22Palumbo%2C+Alessandro%22">Palumbo, Alessandro</searchLink><relatesTo>5</relatesTo><i> palumbo@ing.uniroma2.it</i><br /><searchLink fieldCode="AR" term="%22Petrucci%2C+Luca%22">Petrucci, Luca</searchLink><relatesTo>5</relatesTo><i> luca.petrucci@uniroma2.it</i><br /><searchLink fieldCode="AR" term="%22Bifulco%2C+Roberto%22">Bifulco, Roberto</searchLink><relatesTo>4</relatesTo><i> roberto.bifulco@neclab.eu</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22Communications+of+the+ACM%22">Communications of the ACM</searchLink>. Aug2022, Vol. 65 Issue 8, p91-100. 8p. 5 Diagrams, 2 Charts, 4 Graphs.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Network+interface+devices%22">Network interface devices</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+networks%22">Computer networks</searchLink><br /><searchLink fieldCode="DE" term="%22Motherboards%22">Motherboards</searchLink><br /><searchLink fieldCode="DE" term="%22Electronic+data+processing%22">Electronic data processing</searchLink><br /><searchLink fieldCode="DE" term="%22Computers%22">Computers</searchLink><br /><searchLink fieldCode="DE" term="%22Technological+innovations%22">Technological innovations</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: The network interface cards (NICs) of modern computers are changing to adapt to faster data rates and to help with the scaling issues of general-purpose CPU technologies. Among the ongoing innovations, the inclusion of programmable accelerators on the NIC's data path is particularly interesting, since it provides the opportunity to offload some of the CPU's network packet processing tasks to the accelerator. Given the strict latency constraints of packet processing tasks, accelerators are often implemented leveraging platforms such as Field-Programmable Gate Arrays (FPGAs). FPGAs can be re-programmed after deployment, to adapt to changing application requirements, and can achieve both high throughput and low latency when implementing packet processing tasks. However, they have limited resources that may need to be shared among diverse applications, and programming them is difficult and requires hardware design expertise. We present hXDP, a solution to run on FPGAs software packet processing tasks described with the eBPF technology and targeting the Linux's eXpress Data Path. hXDP uses only a fraction of the available FPGA resources, while matching the performance of high-end CPUs. The iterative execution model of eBPF is not a good fit for FPGA accelerators. Nonetheless, we show that many of the instructions of an eBPF program can be compressed, parallelized, or completely removed, when targeting a purpose-built FPGA design, thereby significantly improving performance. We implement hXDP on an FPGA NIC and evaluate it running real-world unmodified eBPF programs. Our implementation runs at 156.25MHz and uses about 15% of the FPGA resources. Despite these modest requirements, it can run dynamically loaded programs, achieves the packet processing throughput of a high-end CPU core, and provides a 10× lower packet forwarding latency. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of Communications of the ACM is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=158128821
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1145/3543668
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 8
        StartPage: 91
    Subjects:
      – SubjectFull: Network interface devices
        Type: general
      – SubjectFull: Computer networks
        Type: general
      – SubjectFull: Motherboards
        Type: general
      – SubjectFull: Electronic data processing
        Type: general
      – SubjectFull: Computers
        Type: general
      – SubjectFull: Technological innovations
        Type: general
    Titles:
      – TitleFull: hXDP: Efficient Software Packet Processing on FPGA NICs.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Brunella, Marco Spaziani
      – PersonEntity:
          Name:
            NameFull: Belocchi, Giacomo
      – PersonEntity:
          Name:
            NameFull: Bonola, Marco
      – PersonEntity:
          Name:
            NameFull: Pontarelli, Salvatore
      – PersonEntity:
          Name:
            NameFull: Siracusano, Giuseppe
      – PersonEntity:
          Name:
            NameFull: Bianchi, Giuseppe
      – PersonEntity:
          Name:
            NameFull: Cammarano, Aniello
      – PersonEntity:
          Name:
            NameFull: Palumbo, Alessandro
      – PersonEntity:
          Name:
            NameFull: Petrucci, Luca
      – PersonEntity:
          Name:
            NameFull: Bifulco, Roberto
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 08
              Text: Aug2022
              Type: published
              Y: 2022
          Identifiers:
            – Type: issn-print
              Value: 00010782
          Numbering:
            – Type: volume
              Value: 65
            – Type: issue
              Value: 8
          Titles:
            – TitleFull: Communications of the ACM
              Type: main
ResultId 1