| 330 | } |
| 331 | |
| 332 | static inline int |
| 333 | try_insert(struct member_ht_bucket *buckets, uint32_t prim, uint32_t sec, |
| 334 | member_sig_t sig, member_set_t set_id) |
| 335 | { |
| 336 | int i; |
| 337 | /* If not full then insert into one slot */ |
| 338 | for (i = 0; i < RTE_MEMBER_BUCKET_ENTRIES; i++) { |
| 339 | if (buckets[prim].sets[i] == RTE_MEMBER_NO_MATCH) { |
| 340 | buckets[prim].sigs[i] = sig; |
| 341 | buckets[prim].sets[i] = set_id; |
| 342 | return 0; |
| 343 | } |
| 344 | } |
| 345 | /* If prim failed, we need to access second bucket */ |
| 346 | for (i = 0; i < RTE_MEMBER_BUCKET_ENTRIES; i++) { |
| 347 | if (buckets[sec].sets[i] == RTE_MEMBER_NO_MATCH) { |
| 348 | buckets[sec].sigs[i] = sig; |
| 349 | buckets[sec].sets[i] = set_id; |
| 350 | return 0; |
| 351 | } |
| 352 | } |
| 353 | return -1; |
| 354 | } |
| 355 | |
| 356 | static inline int |
| 357 | try_update(struct member_ht_bucket *buckets, uint32_t prim, uint32_t sec, |