aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/classify/flow_classify_node.c
diff options
context:
space:
mode:
Diffstat (limited to 'vnet/vnet/classify/flow_classify_node.c')
-rw-r--r--vnet/vnet/classify/flow_classify_node.c28
1 files changed, 5 insertions, 23 deletions
diff --git a/vnet/vnet/classify/flow_classify_node.c b/vnet/vnet/classify/flow_classify_node.c
index 5c9e0820a26..d3261d33bca 100644
--- a/vnet/vnet/classify/flow_classify_node.c
+++ b/vnet/vnet/classify/flow_classify_node.c
@@ -228,35 +228,17 @@ flow_classify_inline (vlib_main_t * vm,
hash0 = vnet_buffer(b0)->l2_classify.hash;
t0 = pool_elt_at_index (vcm->tables, table_index0);
e0 = vnet_classify_find_entry (t0, (u8 *) h0, hash0, now);
-
if (e0)
{
hits++;
}
else
{
- while (1)
- {
- if (PREDICT_TRUE(t0->next_table_index != ~0))
- {
- t0 = pool_elt_at_index (vcm->tables,
- t0->next_table_index);
- }
- else
- {
- misses++;
- break;
- }
-
- hash0 = vnet_classify_hash_packet (t0, (u8 *) h0);
- e0 = vnet_classify_find_entry (t0, (u8 *) h0, hash0, now);
- if (e0)
- {
- hits++;
- chain_hits++;
- break;
- }
- }
+ misses++;
+ vnet_classify_add_del_session (vcm, table_index0,
+ h0, ~0, 0, 0, 0, 0, 1);
+ /* increment counter */
+ vnet_classify_find_entry (t0, (u8 *) h0, hash0, now);
}
}
if (PREDICT_FALSE((node->flags & VLIB_NODE_FLAG_TRACE)