classify: use clib_crc32c on supporting uarch
Use clib_crc32c in place of clib_xxhash on supporting uarch.
Type: improvement
#include <vppinfra/error.h>
#include <vppinfra/hash.h>
#include <vppinfra/cache.h>
+#include <vppinfra/crc32.h>
#include <vppinfra/xxhash.h>
extern vlib_node_registration_t ip4_classify_node;
@@ -280,7 +281,11 @@ vnet_classify_hash_packet_inline (vnet_classify_table_t * t, u8 * h)
}
#endif /* CLIB_HAVE_VEC128 */
+#ifdef clib_crc32c_uses_intrinsics
+ return clib_crc32c ((u8 *) & xor_sum, sizeof (xor_sum));
+#else
return clib_xxhash (xor_sum.as_u64[0] ^ xor_sum.as_u64[1]);
+#endif
}
static inline void
