2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-29 15:28:56 +00:00

miniflow: Use 64-bit map.

Signed-off By: Jarno Rajahalme <jrajahalme@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
Jarno Rajahalme
2013-11-18 09:28:44 -08:00
parent cc4c738e12
commit 080e28d0f0
3 changed files with 92 additions and 154 deletions

View File

@@ -1173,17 +1173,12 @@ minimatch_matches_flow(const struct minimatch *match,
const uint32_t *target_u32 = (const uint32_t *) target;
const uint32_t *flowp = match->flow.values;
const uint32_t *maskp = match->mask.masks.values;
int i;
uint64_t map;
for (i = 0; i < MINI_N_MAPS; i++) {
uint32_t map;
for (map = match->flow.map[i]; map; map = zero_rightmost_1bit(map)) {
if ((*flowp++ ^ target_u32[raw_ctz(map)]) & *maskp++) {
return false;
}
for (map = match->flow.map; map; map = zero_rightmost_1bit(map)) {
if ((*flowp++ ^ target_u32[raw_ctz64(map)]) & *maskp++) {
return false;
}
target_u32 += 32;
}
return true;