ipsec: esp-decrypt rework
[vpp.git] / src / vnet / crypto / crypto.h
index 7a9ca2c..2bd40dc 100644 (file)
@@ -57,12 +57,9 @@ typedef enum
   foreach_hmac_alg
 #undef _
     VNET_CRYPTO_N_OP_TYPES,
-} __attribute__ ((packed)) vnet_crypto_op_type_t;
+} vnet_crypto_op_type_t;
 /* *INDENT-ON* */
 
-STATIC_ASSERT (sizeof (vnet_crypto_op_type_t) <= 2,
-              "crypto op type > 2 bytes");
-
 typedef struct
 {
   char *name;
@@ -73,19 +70,18 @@ typedef enum
   VNET_CRYPTO_OP_STATUS_PENDING,
   VNET_CRYPTO_OP_STATUS_COMPLETED,
   VNET_CRYPTO_OP_STATUS_FAIL_NO_HANDLER,
-} __attribute__ ((packed)) vnet_crypto_op_status_t;
-
-STATIC_ASSERT (sizeof (vnet_crypto_op_status_t) == 1,
-              "crypto op status > 1 byte");
+  VNET_CRYPTO_OP_STATUS_FAIL_BAD_HMAC,
+} vnet_crypto_op_status_t;
 
 typedef struct
 {
   CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
-  vnet_crypto_op_type_t op;
-  vnet_crypto_op_status_t status;
+  vnet_crypto_op_type_t op:8;
+  vnet_crypto_op_status_t status:8;
   u8 key_len, hmac_trunc_len;
   u16 flags;
-#define VNET_CRYPTO_OP_FLAG_INIT_IV 1
+#define VNET_CRYPTO_OP_FLAG_INIT_IV (1 << 0)
+#define VNET_CRYPTO_OP_FLAG_HMAC_CHECK (1 << 1)
   u32 len;
   u8 *key;
   u8 *iv;