Hashing the DPDK way!!
Hashing is an important aspect when you need fast-lookups.
Fast lookups are inheritently important when you need fast packet performance.

Just to give you a metric
1Gbps throughput for 64byte pkt requires 1,488,095 pps(packets per sec).aka 1,488,095 lookups/sec
A std latest linux kernel would give you 153840 pps for 64byte pkt.
So more than 10x performance hike needs a very fast-lookup.

Time taken to do a lookup depends highly on lookup table size.

Networking gears are asic based with firmware designed and optimised for veryfast lookup,Hence very fastlookups.

When General purpose computing is used to implement telecom solutions, Hashing is a tradeoff.
Larger the hash table slower is the lookup, this is where a proper design is required.
Design aspects include.

  1. Hash key.
  2. Hashing algorithm.
  3. Bucket size.
  4. Hash function.

Usecase for DPDK -hashing :So where do we use hashing in genral purpose computing?
1.OPenVswitch!! Our OVS datapath implementation requires matching a ingress pkt to

2.Data-Plane for LTE, 5G requires very fast lookups to map pdcp, and gtpu headers.

  1. Sample Application Like L3 Lookup

What is Hash key?

What is Hash algorithm

What is Bucket-size

What is Cuckoo Hash? and Why!

Design your DPDK Hashing Application.
1.Hash table size <32k>
2.Hash Algorithm
3.Hash KEY<> //Need C structure, else default struct will be used.
4.Hash Node <> // Need C struct

  1. Download<>
    6.Cmd line arguments for application
5 3 votes
Article Rating
Previous articleDPDK RTE-FLOWS
Next articleSocialism, Open Source & Openstack
Notify of
Inline Feedbacks
View all comments