xref: /dpdk/drivers/net/nfp/nfpcore/nfp_crc.h (revision c7e9729da6b521ee8a1f8bb3a1fa4c156f059ced)
1*c7e9729dSAlejandro Lucero /* SPDX-License-Identifier: BSD-3-Clause
2*c7e9729dSAlejandro Lucero  * Copyright(c) 2018 Netronome Systems, Inc.
3*c7e9729dSAlejandro Lucero  * All rights reserved.
4*c7e9729dSAlejandro Lucero  */
5*c7e9729dSAlejandro Lucero 
6*c7e9729dSAlejandro Lucero #ifndef __NFP_CRC_H__
7*c7e9729dSAlejandro Lucero #define __NFP_CRC_H__
8*c7e9729dSAlejandro Lucero 
9*c7e9729dSAlejandro Lucero /*
10*c7e9729dSAlejandro Lucero  * There are multiple 16-bit CRC polynomials in common use, but this is
11*c7e9729dSAlejandro Lucero  * *the* standard CRC-32 polynomial, first popularized by Ethernet.
12*c7e9729dSAlejandro Lucero  * x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0
13*c7e9729dSAlejandro Lucero  */
14*c7e9729dSAlejandro Lucero #define CRCPOLY_LE 0xedb88320
15*c7e9729dSAlejandro Lucero #define CRCPOLY_BE 0x04c11db7
16*c7e9729dSAlejandro Lucero 
17*c7e9729dSAlejandro Lucero uint32_t nfp_crc32_posix(const void *buff, size_t len);
18*c7e9729dSAlejandro Lucero 
19*c7e9729dSAlejandro Lucero #endif
20