Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
IPSEC-GRE: fixes and API update to common types.
[vpp.git]
/
src
/
vnet
/
crypto
/
crypto.h
diff --git
a/src/vnet/crypto/crypto.h
b/src/vnet/crypto/crypto.h
index
4ce4d25
..
2bd40dc
100644
(file)
--- a/
src/vnet/crypto/crypto.h
+++ b/
src/vnet/crypto/crypto.h
@@
-70,16
+70,18
@@
typedef enum
VNET_CRYPTO_OP_STATUS_PENDING,
VNET_CRYPTO_OP_STATUS_COMPLETED,
VNET_CRYPTO_OP_STATUS_FAIL_NO_HANDLER,
VNET_CRYPTO_OP_STATUS_PENDING,
VNET_CRYPTO_OP_STATUS_COMPLETED,
VNET_CRYPTO_OP_STATUS_FAIL_NO_HANDLER,
+ VNET_CRYPTO_OP_STATUS_FAIL_BAD_HMAC,
} vnet_crypto_op_status_t;
typedef struct
{
CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
} vnet_crypto_op_status_t;
typedef struct
{
CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
- vnet_crypto_op_type_t op:
16
;
+ vnet_crypto_op_type_t op:
8
;
vnet_crypto_op_status_t status:8;
u8 key_len, hmac_trunc_len;
u16 flags;
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;
u32 len;
u8 *key;
u8 *iv;
@@
-140,6
+142,8
@@
typedef struct
vnet_crypto_ops_handler_t **ops_handlers;
vnet_crypto_op_type_data_t opt_data[VNET_CRYPTO_N_OP_TYPES];
vnet_crypto_engine_t *engines;
vnet_crypto_ops_handler_t **ops_handlers;
vnet_crypto_op_type_data_t opt_data[VNET_CRYPTO_N_OP_TYPES];
vnet_crypto_engine_t *engines;
+ uword *engine_index_by_name;
+ uword *ops_handler_index_by_name;
} vnet_crypto_main_t;
extern vnet_crypto_main_t crypto_main;
} vnet_crypto_main_t;
extern vnet_crypto_main_t crypto_main;
@@
-150,10
+154,23
@@
u32 vnet_crypto_submit_ops (vlib_main_t * vm, vnet_crypto_op_t ** jobs,
u32 vnet_crypto_process_ops (vlib_main_t * vm, vnet_crypto_op_t ops[],
u32 n_ops);
u32 vnet_crypto_process_ops (vlib_main_t * vm, vnet_crypto_op_t ops[],
u32 n_ops);
+
+int vnet_crypto_set_handler (char *ops_handler_name, char *engine);
+
format_function_t format_vnet_crypto_alg;
format_function_t format_vnet_crypto_engine;
format_function_t format_vnet_crypto_op;
format_function_t format_vnet_crypto_alg;
format_function_t format_vnet_crypto_engine;
format_function_t format_vnet_crypto_op;
+
+static_always_inline void
+vnet_crypto_op_init (vnet_crypto_op_t * op, vnet_crypto_op_type_t type)
+{
+ if (CLIB_DEBUG > 0)
+ clib_memset (op, 0xfe, sizeof (*op));
+ op->op = type;
+ op->flags = 0;
+}
+
#endif /* included_vnet_crypto_crypto_h */
/*
#endif /* included_vnet_crypto_crypto_h */
/*