classify: fix build on systems without crc32f and vector unit 95/34295/2
authorDamjan Marion <damarion@cisco.com>
Sun, 31 Oct 2021 18:53:27 +0000 (19:53 +0100)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 2 Nov 2021 17:33:16 +0000 (17:33 +0000)
Change-Id: I4229239ed6b81c10362faa1aa9f658c3fccfd31b
Type: fix
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/vnet/classify/vnet_classify.h

index ff79c26..60604be 100644 (file)
@@ -196,7 +196,11 @@ typedef struct
 
   CLIB_CACHE_LINE_ALIGN_MARK (cacheline2);
   /* Mask to apply after skipping N vectors */
-  u32x4 mask[8];
+  union
+  {
+    u32x4 mask[8];
+    u32 mask_u32[32];
+  };
 
 } vnet_classify_table_t;
 
@@ -339,7 +343,7 @@ vnet_classify_hash_packet_inline (vnet_classify_table_t *t, const u8 *h)
 #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]);
+  return clib_xxhash (xor_sum);
 #endif
 }