diff options
Diffstat (limited to 'src/plugins/crypto_sw_scheduler/crypto_sw_scheduler.h')
-rw-r--r-- | src/plugins/crypto_sw_scheduler/crypto_sw_scheduler.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/plugins/crypto_sw_scheduler/crypto_sw_scheduler.h b/src/plugins/crypto_sw_scheduler/crypto_sw_scheduler.h new file mode 100644 index 00000000000..9db42ba18ce --- /dev/null +++ b/src/plugins/crypto_sw_scheduler/crypto_sw_scheduler.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020 Intel and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <vnet/crypto/crypto.h> + +#ifndef __crypto_sw_scheduler_h__ +#define __crypto_sw_scheduler_h__ + +#define CRYPTO_SW_SCHEDULER_QUEUE_SIZE 64 +#define CRYPTO_SW_SCHEDULER_QUEUE_MASK (CRYPTO_SW_SCHEDULER_QUEUE_SIZE - 1) + +typedef struct +{ + CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); + u32 head; + u32 tail; + vnet_crypto_async_frame_t *jobs[0]; +} crypto_sw_scheduler_queue_t; + +typedef struct +{ + CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); + crypto_sw_scheduler_queue_t *queues[VNET_CRYPTO_ASYNC_OP_N_IDS]; + vnet_crypto_op_t *crypto_ops; + vnet_crypto_op_t *integ_ops; + vnet_crypto_op_t *chained_crypto_ops; + vnet_crypto_op_t *chained_integ_ops; + vnet_crypto_op_chunk_t *chunks; + u8 self_crypto_enabled; +} crypto_sw_scheduler_per_thread_data_t; + +typedef struct +{ + u32 crypto_engine_index; + crypto_sw_scheduler_per_thread_data_t *per_thread_data; + vnet_crypto_key_t *keys; +} crypto_sw_scheduler_main_t; + +extern crypto_sw_scheduler_main_t crypto_sw_scheduler_main; + +#endif // __crypto_native_h__ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ |