| 1292 | } |
| 1293 | |
| 1294 | static uint32_t |
| 1295 | acl_build_index(const struct rte_acl_config *config, uint32_t *data_index) |
| 1296 | { |
| 1297 | uint32_t n, m; |
| 1298 | int32_t last_header; |
| 1299 | |
| 1300 | m = 0; |
| 1301 | last_header = -1; |
| 1302 | |
| 1303 | for (n = 0; n < config->num_fields; n++) { |
| 1304 | if (last_header != config->defs[n].input_index) { |
| 1305 | last_header = config->defs[n].input_index; |
| 1306 | data_index[m++] = config->defs[n].offset; |
| 1307 | if (config->defs[n].size > sizeof(uint32_t)) |
| 1308 | data_index[m++] = config->defs[n].offset + |
| 1309 | sizeof(uint32_t); |
| 1310 | } |
| 1311 | } |
| 1312 | |
| 1313 | return m; |
| 1314 | } |
| 1315 | |
| 1316 | static struct rte_acl_build_rule * |
| 1317 | build_one_trie(struct acl_build_context *context, |