Deep Packet Inspection: compare the performance between libnetfilterqueue, NFHOOK and eBPF XDP

Project Description

The objective is to benchmark 3 different methods to perform deep packet inspection (layer 4 payload string search):

  • Use the userland libnetfilter_queue facility (along with the netfilter NFQUEUE target)
  • Use an in-kernel custom hook (via NF_HOOK)
  • Use an eBPF XDP filter

Performance will be measured with two metrics: - response time - throughput

Goal for this Hackweek

  • Develop the 3 use cases (simple programs)
  • Create a simple benchmark to compare the 3 use cases
  • Obtain metrics for response times and throughput for the 3 use cases.

Resources

  • https://netfilter.org/projects/libnetfilter_queue/index.html
  • https://linux-kernel-labs.github.io/refs/heads/master/labs/networking.html#netfilter-1
  • https://en.wikipedia.org/wiki/ExpressDataPath

Code Repository

  • https://github.com/susenguyen/Hackweek_23

Looking for hackers with the skills:

c ebpf netfilter

This project is part of:

Hack Week 23

Activity

  • 11 months ago: tracy.walker liked this project.
  • 12 months ago: feih liked this project.
  • 12 months ago: nguyens started this project.
  • about 1 year ago: nguyens removed keyword kerneldevelopment from this project.
  • about 1 year ago: nguyens added keyword "c" to this project.
  • about 1 year ago: nguyens added keyword "kerneldevelopment" to this project.
  • about 1 year ago: nguyens added keyword "ebpf" to this project.
  • about 1 year ago: nguyens added keyword "netfilter" to this project.
  • about 1 year ago: nguyens originated this project.

  • Comments

    • feih
      12 months ago by feih | Reply

      This could be interesting for NeuVector engineering team, I could connect you to the network filter engineers if it makes sense.

    • nguyens
      11 months ago by nguyens | Reply

      Thanks sure. Let me know if you'd like me to report my results to anyone

    Similar Projects

    FizzBuzz OS by mssola

    Project Description

    FizzBuzz OS (or just ...