[dpdk-users] How to find an IPv4 and IPv6 hash function
Ali Volkan Atli
Volkan.Atli at argela.com.tr
Tue Oct 2 21:20:39 CEST 2018
First of all, thanks you Pavel
Actually I didn't ask the question properly. I have already used the l3fwd application as basis for 5-tuple "flows" in my application. Now I just need a data structure to keep 32-bit IPv4 address or 128-bit IPv6 address, just one IP address. I can use jenkins hash, murmurhash, fast fibonacci etc.. Also I have just found out that DPDK has the jenkins hash functions. Before asking the question to this e-mail group, I was thinking of why I did not use a dynamic array for 32-bit IPv4 address instead of hash table. Thus I could fetch the data in one shot. It still makes sense but of course it doesn't work for IPv6. Anyway I asked the question here because DPDK library designed for network and maybe someone could suggest a paper, blog, a DPDK API for just one IP-based data-structure.
I apologize if the e-mail group is the wrong place.
From: Pavel Chuprikov [pschuprikov at gmail.com]
Sent: Tuesday, October 2, 2018 8:32 PM
To: Ali Volkan Atli
Cc: users at dpdk.org
Subject: Re: [dpdk-users] How to find an IPv4 and IPv6 hash function
The l3fwd application  might serve as a starting point and in particular l3fwd_em.c .
Hope it helps,
пн, 1 окт. 2018 г. в 14:37, Ali Volkan Atli <Volkan.Atli at argela.com.tr<mailto:Volkan.Atli at argela.com.tr>>:
Dear DPDK users
I am trying to write a code to monitor user data traffic by using DPDK. Each user has one IP address which can be IPv4 or IPv6. Therefore I'm thinking of creating two hash tables for IPv4 and IPv6. The key of these hash tables will be an IPv4 or IPv6 address and the data of these hash tables will be user traffic (uplink and downlink)
First, is there any API, example etc.. to calculate IPv4 hash and IPv6 hash on DPDK library? If not, does anyone know where I might find any paper or writing how I can calculate IPv4 and IPv6 hash? Also is there a more appropriate data structure than the hash table for the problem?
Thanks in advance.
More information about the users