+ static char hash_name[30];
+ sprintf(hash_name, "lb_hash_table_%03d", targ->lconf->id);
+
+ // The key offset in the real packets might depend of the packet type; hence we need to extract the
+ // keys and copy them.
+ // The packets will be parsed runtime and keys will be created and stored in the metadata of fake mbufs.
+ // Then hash functions will be used on the fake mbufs.
+ // Keys are stored in (metadata of) fake mbufs to reduce the memory/cache usage: in this way we use only
+ // 64 cache lines for all keys (we always use the same fake mbufs). If using metadata of real packets/mbufs,
+ // we would use as many cache lines as there are mbufs, which might be very high in if QoS is supported for instance.
+ //
+ struct prox_rte_table_params table_hash_params = {
+ .name = hash_name,