DPF: fast, flexible message demultiplexing using dynamic code generation

  • Authors:
  • Dawson R. Engler;M. Frans Kaashoek

  • Affiliations:
  • M.I.T. Laboratory for Computer Science, Cambridge, MA;M.I.T. Laboratory for Computer Science, Cambridge, MA

  • Venue:
  • Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

Fast and flexible message demultiplexing are well-established goals in the networking community [1, 18, 22]. Currently, however, network architects have had to sacrifice one for the other. We present a new packet-filter system, DPF (Dynamic Packet Filters), that provides both the traditional flexibility of packet filters [18] and the speed of hand-crafted demultiplexing routines [3]. DPF filters run 10-50 times faster than the fastest packet filters reported in the literature [1, 17, 18, 27]. DPF's performance is either equivalent to or, when it can exploit runtime information, superior to hand-coded demultiplexors. DPF achieves high performance by using a carefully-designed declarative packet-filter language that is aggressively optimized using dynamic code generation. The contributions of this work are: (1) a detailed description of the DPF design, (2) discussion of the use of dynamic code generation and quantitative results on its performance impact, (3) quantitative results on how DPF is used in the Aegis kernel to export network devices safely and securely to user space so that UDP and TCP can be implemented efficiently as user-level libraries, and (4) the unrestricted release of DPF into the public domain.