| 108 | }; |
| 109 | |
| 110 | static int |
| 111 | test_toeplitz_hash_calc(void) |
| 112 | { |
| 113 | uint32_t i, j; |
| 114 | union rte_thash_tuple tuple; |
| 115 | uint32_t rss_l3, rss_l3l4; |
| 116 | uint8_t rss_key_be[RTE_DIM(default_rss_key)]; |
| 117 | struct rte_ipv6_hdr ipv6_hdr; |
| 118 | |
| 119 | /* Convert RSS key*/ |
| 120 | rte_convert_rss_key((uint32_t *)&default_rss_key, |
| 121 | (uint32_t *)rss_key_be, RTE_DIM(default_rss_key)); |
| 122 | |
| 123 | |
| 124 | for (i = 0; i < RTE_DIM(v4_tbl); i++) { |
| 125 | tuple.v4.src_addr = v4_tbl[i].src_ip; |
| 126 | tuple.v4.dst_addr = v4_tbl[i].dst_ip; |
| 127 | tuple.v4.sport = v4_tbl[i].src_port; |
| 128 | tuple.v4.dport = v4_tbl[i].dst_port; |
| 129 | /*Calculate hash with original key*/ |
| 130 | rss_l3 = rte_softrss((uint32_t *)&tuple, |
| 131 | RTE_THASH_V4_L3_LEN, default_rss_key); |
| 132 | rss_l3l4 = rte_softrss((uint32_t *)&tuple, |
| 133 | RTE_THASH_V4_L4_LEN, default_rss_key); |
| 134 | if ((rss_l3 != v4_tbl[i].hash_l3) || |
| 135 | (rss_l3l4 != v4_tbl[i].hash_l3l4)) |
| 136 | return -TEST_FAILED; |
| 137 | /*Calculate hash with converted key*/ |
| 138 | rss_l3 = rte_softrss_be((uint32_t *)&tuple, |
| 139 | RTE_THASH_V4_L3_LEN, rss_key_be); |
| 140 | rss_l3l4 = rte_softrss_be((uint32_t *)&tuple, |
| 141 | RTE_THASH_V4_L4_LEN, rss_key_be); |
| 142 | if ((rss_l3 != v4_tbl[i].hash_l3) || |
| 143 | (rss_l3l4 != v4_tbl[i].hash_l3l4)) |
| 144 | return -TEST_FAILED; |
| 145 | } |
| 146 | for (i = 0; i < RTE_DIM(v6_tbl); i++) { |
| 147 | /*Fill ipv6 hdr*/ |
| 148 | for (j = 0; j < RTE_DIM(ipv6_hdr.src_addr); j++) |
| 149 | ipv6_hdr.src_addr[j] = v6_tbl[i].src_ip[j]; |
| 150 | for (j = 0; j < RTE_DIM(ipv6_hdr.dst_addr); j++) |
| 151 | ipv6_hdr.dst_addr[j] = v6_tbl[i].dst_ip[j]; |
| 152 | /*Load and convert ipv6 address into tuple*/ |
| 153 | rte_thash_load_v6_addrs(&ipv6_hdr, &tuple); |
| 154 | tuple.v6.sport = v6_tbl[i].src_port; |
| 155 | tuple.v6.dport = v6_tbl[i].dst_port; |
| 156 | /*Calculate hash with original key*/ |
| 157 | rss_l3 = rte_softrss((uint32_t *)&tuple, |
| 158 | RTE_THASH_V6_L3_LEN, default_rss_key); |
| 159 | rss_l3l4 = rte_softrss((uint32_t *)&tuple, |
| 160 | RTE_THASH_V6_L4_LEN, default_rss_key); |
| 161 | if ((rss_l3 != v6_tbl[i].hash_l3) || |
| 162 | (rss_l3l4 != v6_tbl[i].hash_l3l4)) |
| 163 | return -TEST_FAILED; |
| 164 | /*Calculate hash with converted key*/ |
| 165 | rss_l3 = rte_softrss_be((uint32_t *)&tuple, |
| 166 | RTE_THASH_V6_L3_LEN, rss_key_be); |
| 167 | rss_l3l4 = rte_softrss_be((uint32_t *)&tuple, |
nothing calls this directly
no test coverage detected