nat44_session_update_counters (s0, now,
vlib_buffer_length_in_chain
(sm->vlib_main, b0));
+ /* Per-user LRU list maintenance */
+ nat44_session_update_lru (sm, s0, thread_index);
}
return next0;
}
{
ed_key.l_addr = s->in2out.addr;
ed_key.r_addr = s->ext_host_addr;
- ed_key.fib_index = s->out2in.fib_index;
+ ed_key.fib_index = s->in2out.fib_index;
if (snat_is_unk_proto_session (s))
{
ed_key.proto = s->in2out.port;
return 0;
}
- s = nat_ed_session_alloc (sm, u, thread_index);
+ s = nat_ed_session_alloc (sm, u, thread_index, now);
if (!s)
{
nat44_delete_user_with_no_session (sm, u, thread_index);
return;
}
- s = nat_ed_session_alloc (sm, u, thread_index);
+ s = nat_ed_session_alloc (sm, u, thread_index, now);
if (!s)
{
nat44_delete_user_with_no_session (sm, u, thread_index);
/* Accounting */
nat44_session_update_counters (s, now, 0);
+ /* Per-user LRU list maintenance */
+ nat44_session_update_lru (sm, s, thread_index);
}
u32
}
/* Create a new session */
- s = nat_ed_session_alloc (sm, u, thread_index);
+ s = nat_ed_session_alloc (sm, u, thread_index, now);
if (!s)
{
nat44_delete_user_with_no_session (sm, u, thread_index);
/* Accounting */
nat44_session_update_counters (s, now, vlib_buffer_length_in_chain (vm, b));
+ /* Per-user LRU list maintenance */
+ nat44_session_update_lru (sm, s, thread_index);
return s;
}
nat44_session_update_counters (s0, now,
vlib_buffer_length_in_chain (vm,
b0));
+ /* Per-user LRU list maintenance */
+ nat44_session_update_lru (sm, s0, thread_index);
trace00:
if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE)
nat44_session_update_counters (s1, now,
vlib_buffer_length_in_chain (vm,
b1));
+ /* Per-user LRU list maintenance */
+ nat44_session_update_lru (sm, s1, thread_index);
trace01:
if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE)
nat44_session_update_counters (s0, now,
vlib_buffer_length_in_chain (vm,
b0));
+ /* Per-user LRU list maintenance */
+ nat44_session_update_lru (sm, s0, thread_index);
trace0:
if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE)
nat44_session_update_counters (s0, now,
vlib_buffer_length_in_chain (vm,
b0));
+ /* Per-user LRU list maintenance */
+ nat44_session_update_lru (sm, s0, thread_index);
trace0:
if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE)