xref: /dpdk/lib/net/net_crc.h (revision 99a2dd955fba6e4cc23b77d590a033650ced9c45)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2020 Intel Corporation
3  */
4 
5 #ifndef _NET_CRC_H_
6 #define _NET_CRC_H_
7 
8 /*
9  * Different implementations of CRC
10  */
11 
12 /* SSE4.2 */
13 
14 void
15 rte_net_crc_sse42_init(void);
16 
17 uint32_t
18 rte_crc16_ccitt_sse42_handler(const uint8_t *data, uint32_t data_len);
19 
20 uint32_t
21 rte_crc32_eth_sse42_handler(const uint8_t *data, uint32_t data_len);
22 
23 /* AVX512 */
24 
25 void
26 rte_net_crc_avx512_init(void);
27 
28 uint32_t
29 rte_crc16_ccitt_avx512_handler(const uint8_t *data, uint32_t data_len);
30 
31 uint32_t
32 rte_crc32_eth_avx512_handler(const uint8_t *data, uint32_t data_len);
33 
34 /* NEON */
35 
36 void
37 rte_net_crc_neon_init(void);
38 
39 uint32_t
40 rte_crc16_ccitt_neon_handler(const uint8_t *data, uint32_t data_len);
41 
42 uint32_t
43 rte_crc32_eth_neon_handler(const uint8_t *data, uint32_t data_len);
44 
45 #endif /* _NET_CRC_H_ */
46