| 236 | }; |
| 237 | |
| 238 | static int |
| 239 | test_toeplitz_hash_rand_data(void) |
| 240 | { |
| 241 | uint32_t data[2][DATA_SZ]; |
| 242 | uint32_t scalar_data[2][DATA_SZ]; |
| 243 | uint32_t hash[HASH_IDXES] = { 0 }; |
| 244 | uint64_t rss_key_matrixes[RTE_DIM(default_rss_key)]; |
| 245 | int i, j; |
| 246 | uint8_t *bulk_data[2]; |
| 247 | |
| 248 | if (!rte_thash_gfni_supported()) |
| 249 | return TEST_SKIPPED; |
| 250 | |
| 251 | rte_thash_complete_matrix(rss_key_matrixes, default_rss_key, |
| 252 | RTE_DIM(default_rss_key)); |
| 253 | |
| 254 | for (i = 0; i < 2; i++) |
| 255 | bulk_data[i] = (uint8_t *)data[i]; |
| 256 | |
| 257 | for (i = 0; i < ITER; i++) { |
| 258 | for (j = 0; j < DATA_SZ; j++) { |
| 259 | data[0][j] = rte_rand(); |
| 260 | data[1][j] = rte_rand(); |
| 261 | scalar_data[0][j] = rte_cpu_to_be_32(data[0][j]); |
| 262 | scalar_data[1][j] = rte_cpu_to_be_32(data[1][j]); |
| 263 | } |
| 264 | |
| 265 | hash[SCALAR_DATA_BUF_1_HASH_IDX] = rte_softrss(scalar_data[0], |
| 266 | DATA_SZ, default_rss_key); |
| 267 | hash[SCALAR_DATA_BUF_2_HASH_IDX] = rte_softrss(scalar_data[1], |
| 268 | DATA_SZ, default_rss_key); |
| 269 | hash[GFNI_DATA_BUF_1_HASH_IDX] = rte_thash_gfni( |
| 270 | rss_key_matrixes, (uint8_t *)data[0], |
| 271 | DATA_SZ * sizeof(uint32_t)); |
| 272 | hash[GFNI_DATA_BUF_2_HASH_IDX] = rte_thash_gfni( |
| 273 | rss_key_matrixes, (uint8_t *)data[1], |
| 274 | DATA_SZ * sizeof(uint32_t)); |
| 275 | rte_thash_gfni_bulk(rss_key_matrixes, |
| 276 | DATA_SZ * sizeof(uint32_t), bulk_data, |
| 277 | &hash[GFNI_BULK_DATA_BUF_1_HASH_IDX], 2); |
| 278 | |
| 279 | if ((hash[SCALAR_DATA_BUF_1_HASH_IDX] != |
| 280 | hash[GFNI_DATA_BUF_1_HASH_IDX]) || |
| 281 | (hash[SCALAR_DATA_BUF_1_HASH_IDX] != |
| 282 | hash[GFNI_BULK_DATA_BUF_1_HASH_IDX]) || |
| 283 | (hash[SCALAR_DATA_BUF_2_HASH_IDX] != |
| 284 | hash[GFNI_DATA_BUF_2_HASH_IDX]) || |
| 285 | (hash[SCALAR_DATA_BUF_2_HASH_IDX] != |
| 286 | hash[GFNI_BULK_DATA_BUF_2_HASH_IDX])) |
| 287 | |
| 288 | return -TEST_FAILED; |
| 289 | } |
| 290 | |
| 291 | return TEST_SUCCESS; |
| 292 | } |
| 293 | |
| 294 | enum { |
| 295 | RSS_V4_IDX, |
nothing calls this directly
no test coverage detected