DPDK 25.03.0-rc1
rte_net_crc.h
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2017-2020 Intel Corporation
3 */
4
5#ifndef _RTE_NET_CRC_H_
6#define _RTE_NET_CRC_H_
7
8#include <stdint.h>
9#include <rte_common.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
16enum rte_net_crc_type {
17 RTE_NET_CRC16_CCITT = 0,
18 RTE_NET_CRC32_ETH,
19 RTE_NET_CRC_REQS
20};
21
23enum rte_net_crc_alg {
24 RTE_NET_CRC_SCALAR = 0,
25 RTE_NET_CRC_SSE42,
26 RTE_NET_CRC_NEON,
27 RTE_NET_CRC_AVX512,
28};
29
31struct rte_net_crc;
32
40void
41rte_net_crc_free(struct rte_net_crc *crc);
42
60struct rte_net_crc *
61rte_net_crc_set_alg(enum rte_net_crc_alg alg, enum rte_net_crc_type type)
62 __rte_malloc __rte_dealloc(rte_net_crc_free, 1);
63
81uint32_t
82rte_net_crc_calc(const struct rte_net_crc *ctx,
83 const void *data, const uint32_t data_len);
84
85#ifdef __cplusplus
86}
87#endif
88
89
90#endif /* _RTE_NET_CRC_H_ */
#define __rte_dealloc(dealloc, argno)
Definition: rte_common.h:301
#define __rte_malloc
Definition: rte_common.h:290