Modify the stat of session manager
This commit is contained in:
@@ -200,7 +200,8 @@ struct tcp_segment *session_get_tcp_segment(struct session *sess)
|
||||
struct tcp_segment *seg = tcp_reassembly_pop(half->assembler);
|
||||
if (seg)
|
||||
{
|
||||
half->nr_seg_reorded++;
|
||||
sess->mgr_stat->nr_tcp_seg_reorded++;
|
||||
half->nr_tcp_seg_reorded++;
|
||||
}
|
||||
return seg;
|
||||
}
|
||||
@@ -231,7 +232,8 @@ void session_free_tcp_segment(struct session *sess, struct tcp_segment *seg)
|
||||
}
|
||||
else
|
||||
{
|
||||
half->nr_seg_released++;
|
||||
sess->mgr_stat->nr_tcp_seg_released++;
|
||||
half->nr_tcp_seg_released++;
|
||||
tcp_segment_free(seg);
|
||||
}
|
||||
}
|
||||
@@ -431,15 +433,15 @@ void tcp_half_dump(const struct tcp_half *half)
|
||||
{
|
||||
used += snprintf(buffer + used, sizeof(buffer) - used, "RST ");
|
||||
}
|
||||
printf(" flags : %s\n", buffer);
|
||||
printf(" nr_seg_received : %lu\n", half->nr_seg_received);
|
||||
printf(" nr_seg_expired : %lu\n", half->nr_seg_expired);
|
||||
printf(" nr_seg_overlap : %lu\n", half->nr_seg_overlap);
|
||||
printf(" nr_seg_no_space : %lu\n", half->nr_seg_no_space);
|
||||
printf(" nr_seg_inorder : %lu\n", half->nr_seg_inorder);
|
||||
printf(" nr_seg_reorded : %lu\n", half->nr_seg_reorded);
|
||||
printf(" nr_seg_buffered : %lu\n", half->nr_seg_buffered);
|
||||
printf(" nr_seg_released : %lu\n", half->nr_seg_released);
|
||||
printf(" flags : %s\n", buffer);
|
||||
printf(" nr_tcp_seg_received : %lu\n", half->nr_tcp_seg_received);
|
||||
printf(" nr_tcp_seg_expired : %lu\n", half->nr_tcp_seg_expired);
|
||||
printf(" nr_tcp_seg_overlap : %lu\n", half->nr_tcp_seg_overlap);
|
||||
printf(" nr_tcp_seg_no_space : %lu\n", half->nr_tcp_seg_no_space);
|
||||
printf(" nr_tcp_seg_inorder : %lu\n", half->nr_tcp_seg_inorder);
|
||||
printf(" nr_tcp_seg_reorded : %lu\n", half->nr_tcp_seg_reorded);
|
||||
printf(" nr_tcp_seg_buffered : %lu\n", half->nr_tcp_seg_buffered);
|
||||
printf(" nr_tcp_seg_released : %lu\n", half->nr_tcp_seg_released);
|
||||
}
|
||||
|
||||
void session_dump(struct session *sess)
|
||||
|
||||
@@ -14,6 +14,7 @@ extern "C"
|
||||
#include "timeout.h"
|
||||
#include "uthash.h"
|
||||
#include "tcp_reassembly.h"
|
||||
#include "session_manager.h"
|
||||
|
||||
#define EX_DATA_MAX_COUNT 16
|
||||
|
||||
@@ -80,16 +81,16 @@ struct tcp_half
|
||||
struct tcp_reassembly *assembler;
|
||||
struct tcp_segment order;
|
||||
|
||||
uint64_t nr_seg_received;
|
||||
uint64_t nr_seg_expired;
|
||||
uint64_t nr_seg_overlap; //(retransmission)
|
||||
uint64_t nr_seg_no_space;
|
||||
uint64_t nr_tcp_seg_received;
|
||||
uint64_t nr_tcp_seg_expired;
|
||||
uint64_t nr_tcp_seg_overlap; //(retransmission)
|
||||
uint64_t nr_tcp_seg_no_space;
|
||||
|
||||
uint64_t nr_seg_inorder;
|
||||
uint64_t nr_seg_reorded;
|
||||
uint64_t nr_tcp_seg_inorder;
|
||||
uint64_t nr_tcp_seg_reorded;
|
||||
|
||||
uint64_t nr_seg_buffered;
|
||||
uint64_t nr_seg_released;
|
||||
uint64_t nr_tcp_seg_buffered;
|
||||
uint64_t nr_tcp_seg_released;
|
||||
|
||||
uint32_t seq;
|
||||
uint32_t ack;
|
||||
@@ -130,6 +131,7 @@ struct session
|
||||
void *user_data;
|
||||
|
||||
struct tcp_pcb tcp_pcb;
|
||||
struct session_manager_stat *mgr_stat;
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
@@ -30,6 +30,80 @@ struct session_manager
|
||||
|
||||
#define EVICTE_SESSION_BURST (RX_BURST_MAX)
|
||||
|
||||
/******************************************************************************
|
||||
* Stat
|
||||
******************************************************************************/
|
||||
|
||||
#define NR_SESS_STAT_INC(stat, state, type) \
|
||||
{ \
|
||||
switch ((state)) \
|
||||
{ \
|
||||
case SESSION_STATE_OPENING: \
|
||||
(stat)->nr_##type##_sess_opening++; \
|
||||
break; \
|
||||
case SESSION_STATE_ACTIVE: \
|
||||
(stat)->nr_##type##_sess_active++; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSING: \
|
||||
(stat)->nr_##type##_sess_closing++; \
|
||||
break; \
|
||||
case SESSION_STATE_DISCARD: \
|
||||
(stat)->nr_##type##_sess_discard++; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSED: \
|
||||
(stat)->nr_##type##_sess_closed++; \
|
||||
break; \
|
||||
default: \
|
||||
break; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NR_SESS_STAT_DEC(stat, state, type) \
|
||||
{ \
|
||||
switch ((state)) \
|
||||
{ \
|
||||
case SESSION_STATE_OPENING: \
|
||||
(stat)->nr_##type##_sess_opening--; \
|
||||
break; \
|
||||
case SESSION_STATE_ACTIVE: \
|
||||
(stat)->nr_##type##_sess_active--; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSING: \
|
||||
(stat)->nr_##type##_sess_closing--; \
|
||||
break; \
|
||||
case SESSION_STATE_DISCARD: \
|
||||
(stat)->nr_##type##_sess_discard--; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSED: \
|
||||
(stat)->nr_##type##_sess_closed--; \
|
||||
break; \
|
||||
default: \
|
||||
break; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NR_SESS_STAT_UPDATE(stat, curr, next, type) \
|
||||
{ \
|
||||
if (curr != next) \
|
||||
{ \
|
||||
NR_SESS_STAT_DEC(stat, curr, type); \
|
||||
NR_SESS_STAT_INC(stat, next, type); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NR_TCP_SESS_STAT_INC(stat, state) NR_SESS_STAT_INC(stat, state, tcp)
|
||||
#define NR_UDP_SESS_STAT_INC(stat, state) NR_SESS_STAT_INC(stat, state, udp)
|
||||
|
||||
#define NR_TCP_SESS_STAT_DEC(stat, state) NR_SESS_STAT_DEC(stat, state, tcp)
|
||||
#define NR_UDP_SESS_STAT_DEC(stat, state) NR_SESS_STAT_DEC(stat, state, udp)
|
||||
|
||||
#define NR_TCP_SESS_STAT_UPDATE(stat, curr, next) NR_SESS_STAT_UPDATE(stat, curr, next, tcp)
|
||||
#define NR_UDP_SESS_STAT_UPDATE(stat, curr, next) NR_SESS_STAT_UPDATE(stat, curr, next, udp)
|
||||
|
||||
/******************************************************************************
|
||||
* Options
|
||||
******************************************************************************/
|
||||
|
||||
static int check_options(const struct session_manager_options *opts)
|
||||
{
|
||||
if (opts == NULL)
|
||||
@@ -155,6 +229,10 @@ static int check_options(const struct session_manager_options *opts)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* TCP protocol control block
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* The next routines deal with comparing 32 bit unsigned ints
|
||||
* and worry about wraparound (automatic with unsigned arithmetic).
|
||||
@@ -193,7 +271,7 @@ static int tcp_pcb_init(struct tcp_pcb *pcb, uint8_t tcp_reassembly_enable, uint
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void tcp_pcb_update(struct tcp_pcb *pcb, enum session_dir dir, const struct pkt_layer *tcp_layer, uint64_t now)
|
||||
static void tcp_pcb_update(struct session_manager_stat *stat, struct tcp_pcb *pcb, enum session_dir dir, const struct pkt_layer *tcp_layer, uint64_t now)
|
||||
{
|
||||
struct tcp_segment *seg;
|
||||
struct tcphdr *hdr = (struct tcphdr *)tcp_layer->hdr_ptr;
|
||||
@@ -208,8 +286,10 @@ static void tcp_pcb_update(struct tcp_pcb *pcb, enum session_dir dir, const stru
|
||||
{
|
||||
if (tcp_layer->pld_len)
|
||||
{
|
||||
half->nr_seg_received++;
|
||||
half->nr_seg_inorder++;
|
||||
half->nr_tcp_seg_received++;
|
||||
half->nr_tcp_seg_inorder++;
|
||||
stat->nr_tcp_seg_received++;
|
||||
stat->nr_tcp_seg_inorder++;
|
||||
half->order.data = tcp_layer->pld_ptr;
|
||||
half->order.len = tcp_layer->pld_len;
|
||||
}
|
||||
@@ -224,42 +304,51 @@ static void tcp_pcb_update(struct tcp_pcb *pcb, enum session_dir dir, const stru
|
||||
seg = tcp_reassembly_expire(half->assembler, now);
|
||||
if (seg)
|
||||
{
|
||||
half->nr_seg_expired++;
|
||||
half->nr_seg_released++;
|
||||
half->nr_tcp_seg_expired++;
|
||||
half->nr_tcp_seg_released++;
|
||||
stat->nr_tcp_seg_expired++;
|
||||
stat->nr_tcp_seg_released++;
|
||||
tcp_segment_free(seg);
|
||||
}
|
||||
|
||||
if (tcp_layer->pld_len)
|
||||
{
|
||||
half->nr_seg_received++;
|
||||
half->nr_tcp_seg_received++;
|
||||
stat->nr_tcp_seg_received++;
|
||||
|
||||
uint32_t rcv_nxt = tcp_reassembly_get_recv_next(half->assembler);
|
||||
if (half->seq == rcv_nxt)
|
||||
{
|
||||
half->nr_seg_inorder++;
|
||||
half->nr_tcp_seg_inorder++;
|
||||
stat->nr_tcp_seg_inorder++;
|
||||
|
||||
half->order.data = tcp_layer->pld_ptr;
|
||||
half->order.len = tcp_layer->pld_len;
|
||||
tcp_reassembly_inc_recv_next(half->assembler, tcp_layer->pld_len);
|
||||
}
|
||||
else if (before(half->seq, rcv_nxt))
|
||||
{
|
||||
// TODO add metric (overlap)
|
||||
half->nr_seg_overlap++;
|
||||
half->nr_tcp_seg_overlap++;
|
||||
stat->nr_tcp_seg_overlap++;
|
||||
}
|
||||
else if ((seg = tcp_segment_new(half->seq, tcp_layer->pld_ptr, tcp_layer->pld_len)))
|
||||
{
|
||||
switch (tcp_reassembly_push(half->assembler, seg, now))
|
||||
{
|
||||
case -1:
|
||||
half->nr_seg_no_space++;
|
||||
half->nr_tcp_seg_no_space++;
|
||||
stat->nr_tcp_seg_no_space++;
|
||||
tcp_segment_free(seg);
|
||||
break;
|
||||
case 0:
|
||||
half->nr_seg_buffered++;
|
||||
half->nr_tcp_seg_buffered++;
|
||||
stat->nr_tcp_seg_buffered++;
|
||||
break;
|
||||
case 1:
|
||||
half->nr_seg_buffered++;
|
||||
half->nr_seg_overlap++;
|
||||
half->nr_tcp_seg_buffered++;
|
||||
half->nr_tcp_seg_overlap++;
|
||||
stat->nr_tcp_seg_buffered++;
|
||||
stat->nr_tcp_seg_overlap++;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
@@ -268,86 +357,12 @@ static void tcp_pcb_update(struct tcp_pcb *pcb, enum session_dir dir, const stru
|
||||
}
|
||||
else
|
||||
{
|
||||
half->nr_seg_no_space++;
|
||||
half->nr_tcp_seg_no_space++;
|
||||
stat->nr_tcp_seg_no_space++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* Stat
|
||||
******************************************************************************/
|
||||
|
||||
static void session_stat_inc(struct session_stat *stat, enum session_state state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case SESSION_STATE_INIT:
|
||||
stat->nr_sess_init++;
|
||||
break;
|
||||
case SESSION_STATE_OPENING:
|
||||
stat->nr_sess_opening++;
|
||||
break;
|
||||
case SESSION_STATE_ACTIVE:
|
||||
stat->nr_sess_active++;
|
||||
break;
|
||||
case SESSION_STATE_CLOSING:
|
||||
stat->nr_sess_closing++;
|
||||
break;
|
||||
case SESSION_STATE_DISCARD:
|
||||
stat->nr_sess_discard++;
|
||||
break;
|
||||
case SESSION_STATE_CLOSED:
|
||||
stat->nr_sess_closed++;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void session_stat_dec(struct session_stat *stat, enum session_state state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case SESSION_STATE_INIT:
|
||||
stat->nr_sess_init--;
|
||||
break;
|
||||
case SESSION_STATE_OPENING:
|
||||
stat->nr_sess_opening--;
|
||||
break;
|
||||
case SESSION_STATE_ACTIVE:
|
||||
stat->nr_sess_active--;
|
||||
break;
|
||||
case SESSION_STATE_CLOSING:
|
||||
stat->nr_sess_closing--;
|
||||
break;
|
||||
case SESSION_STATE_DISCARD:
|
||||
stat->nr_sess_discard--;
|
||||
break;
|
||||
case SESSION_STATE_CLOSED:
|
||||
stat->nr_sess_closed--;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void session_stat_update(struct session_manager *mgr, struct session *sess, enum session_state curr_state, enum session_state next_state)
|
||||
{
|
||||
switch (session_get_type(sess))
|
||||
{
|
||||
case SESSION_TYPE_TCP:
|
||||
session_stat_dec(&mgr->stat.tcp_sess, curr_state);
|
||||
session_stat_inc(&mgr->stat.tcp_sess, next_state);
|
||||
break;
|
||||
case SESSION_TYPE_UDP:
|
||||
session_stat_dec(&mgr->stat.udp_sess, curr_state);
|
||||
session_stat_inc(&mgr->stat.udp_sess, next_state);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* Session Direction
|
||||
******************************************************************************/
|
||||
@@ -405,20 +420,16 @@ static int session_manager_self_protection(struct session_manager *mgr, struct s
|
||||
switch (key->ip_proto)
|
||||
{
|
||||
case IPPROTO_TCP:
|
||||
if (stat->tcp_sess.nr_sess_used >= mgr->opts.max_tcp_session_num)
|
||||
if (stat->nr_tcp_sess_used >= mgr->opts.max_tcp_session_num)
|
||||
{
|
||||
stat->evc_pkt.nr_pkts++;
|
||||
stat->evc_pkt.nr_bytes += packet_get_len(pkt);
|
||||
stat->tcp_sess.nr_new_sess_evicted++;
|
||||
stat->nr_tcp_pkts_bypass_no_space++;
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case IPPROTO_UDP:
|
||||
if (stat->udp_sess.nr_sess_used >= mgr->opts.max_udp_session_num)
|
||||
if (stat->nr_udp_sess_used >= mgr->opts.max_udp_session_num)
|
||||
{
|
||||
stat->evc_pkt.nr_pkts++;
|
||||
stat->evc_pkt.nr_bytes += packet_get_len(pkt);
|
||||
stat->udp_sess.nr_new_sess_evicted++;
|
||||
stat->nr_udp_pkts_bypass_no_space++;
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
@@ -434,8 +445,7 @@ static int session_manager_filter_evicted_session(struct session_manager *mgr, s
|
||||
{
|
||||
if (mgr->opts.evicted_session_filter_enable && evicted_session_filter_lookup(mgr->evicte_sess_filter, key, now))
|
||||
{
|
||||
mgr->stat.evc_pkt.nr_pkts++;
|
||||
mgr->stat.evc_pkt.nr_bytes += packet_get_len(pkt);
|
||||
mgr->stat.nr_udp_pkts_bypass_hit_evc++;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -457,8 +467,7 @@ static int session_manager_filter_duplicated_packet(struct session_manager *mgr,
|
||||
{
|
||||
if (duplicated_packet_filter_lookup(mgr->dup_pkt_filter, pkt, now))
|
||||
{
|
||||
mgr->stat.dup_pkt.nr_pkts++;
|
||||
mgr->stat.dup_pkt.nr_bytes += packet_get_len(pkt);
|
||||
mgr->stat.nr_tcp_pkts_bypass_hit_dup++;
|
||||
session_set_dup_traffic(sess);
|
||||
return 1;
|
||||
}
|
||||
@@ -570,7 +579,6 @@ static void session_manager_evicte_session(struct session_manager *mgr, struct s
|
||||
enum session_state next_state = session_transition_run(curr_state, LRU_EVICT);
|
||||
session_transition_log(sess, curr_state, next_state, LRU_EVICT);
|
||||
session_set_state(sess, next_state);
|
||||
session_stat_update(mgr, sess, curr_state, next_state);
|
||||
|
||||
session_timer_del(mgr->sess_timer, sess);
|
||||
session_set_closing_reason(sess, CLOSING_BY_EVICTED);
|
||||
@@ -580,17 +588,19 @@ static void session_manager_evicte_session(struct session_manager *mgr, struct s
|
||||
{
|
||||
case SESSION_TYPE_TCP:
|
||||
SESSION_LOG_DEBUG("evicte tcp old session: %lu", session_get_id(sess));
|
||||
mgr->stat.tcp_sess.nr_old_sess_evicted++;
|
||||
session_table_del(mgr->tcp_sess_table, session_get_tuple(sess));
|
||||
NR_TCP_SESS_STAT_UPDATE(&mgr->stat, curr_state, next_state);
|
||||
mgr->stat.nr_tcp_sess_evicted++;
|
||||
break;
|
||||
case SESSION_TYPE_UDP:
|
||||
SESSION_LOG_DEBUG("evicte udp old session: %lu", session_get_id(sess));
|
||||
mgr->stat.udp_sess.nr_old_sess_evicted++;
|
||||
session_table_del(mgr->udp_sess_table, session_get_tuple(sess));
|
||||
if (mgr->opts.evicted_session_filter_enable)
|
||||
{
|
||||
evicted_session_filter_add(mgr->evicte_sess_filter, session_get_tuple(sess), now);
|
||||
}
|
||||
NR_UDP_SESS_STAT_UPDATE(&mgr->stat, curr_state, next_state);
|
||||
mgr->stat.nr_udp_sess_evicted++;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
@@ -605,11 +615,12 @@ static struct session *session_manager_new_tcp_session(struct session_manager *m
|
||||
uint8_t flags = tcp_hdr_get_flags(hdr);
|
||||
if (!(flags & TH_SYN))
|
||||
{
|
||||
mgr->stat.nr_tcp_pkts_bypass_miss_sess++;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// tcp table full evict old session
|
||||
if (mgr->opts.tcp_overload_evict_old_sess && mgr->stat.tcp_sess.nr_sess_used >= mgr->opts.max_tcp_session_num - EVICTE_SESSION_BURST)
|
||||
if (mgr->opts.tcp_overload_evict_old_sess && mgr->stat.nr_tcp_sess_used >= mgr->opts.max_tcp_session_num - EVICTE_SESSION_BURST)
|
||||
{
|
||||
struct session *evic_sess = session_table_find_lru(mgr->tcp_sess_table);
|
||||
session_manager_evicte_session(mgr, evic_sess, now);
|
||||
@@ -623,6 +634,7 @@ static struct session *session_manager_new_tcp_session(struct session_manager *m
|
||||
return NULL;
|
||||
}
|
||||
session_init(sess);
|
||||
sess->mgr_stat = &mgr->stat;
|
||||
session_set_id(sess, id_generator_alloc());
|
||||
|
||||
if (tcp_pcb_init(&sess->tcp_pcb, mgr->opts.tcp_reassembly_enable, mgr->opts.tcp_reassembly_max_timeout, mgr->opts.tcp_reassembly_max_segments) == -1)
|
||||
@@ -631,12 +643,11 @@ static struct session *session_manager_new_tcp_session(struct session_manager *m
|
||||
session_pool_push(mgr->sess_pool, sess);
|
||||
return NULL;
|
||||
}
|
||||
tcp_pcb_update(&sess->tcp_pcb, dir, tcp_layer, now);
|
||||
tcp_pcb_update(&mgr->stat, &sess->tcp_pcb, dir, tcp_layer, now);
|
||||
|
||||
enum session_state next_state = session_transition_run(SESSION_STATE_INIT, TCP_SYN);
|
||||
session_update(sess, next_state, pkt, key, dir, now);
|
||||
session_transition_log(sess, SESSION_STATE_INIT, next_state, TCP_SYN);
|
||||
session_stat_inc(&mgr->stat.tcp_sess, next_state);
|
||||
|
||||
uint64_t timeout = (flags & TH_ACK) ? mgr->opts.tcp_handshake_timeout : mgr->opts.tcp_init_timeout;
|
||||
session_timer_update(mgr->sess_timer, sess, now + timeout);
|
||||
@@ -648,7 +659,8 @@ static struct session *session_manager_new_tcp_session(struct session_manager *m
|
||||
duplicated_packet_filter_add(mgr->dup_pkt_filter, pkt, now);
|
||||
}
|
||||
|
||||
mgr->stat.tcp_sess.nr_sess_used++;
|
||||
NR_TCP_SESS_STAT_INC(&mgr->stat, next_state);
|
||||
mgr->stat.nr_tcp_sess_used++;
|
||||
|
||||
return sess;
|
||||
}
|
||||
@@ -656,7 +668,7 @@ static struct session *session_manager_new_tcp_session(struct session_manager *m
|
||||
static struct session *session_manager_new_udp_session(struct session_manager *mgr, const struct packet *pkt, const struct tuple6 *key, uint64_t now)
|
||||
{
|
||||
// udp table full evict old session
|
||||
if (mgr->opts.udp_overload_evict_old_sess && mgr->stat.udp_sess.nr_sess_used >= mgr->opts.max_udp_session_num - EVICTE_SESSION_BURST)
|
||||
if (mgr->opts.udp_overload_evict_old_sess && mgr->stat.nr_udp_sess_used >= mgr->opts.max_udp_session_num - EVICTE_SESSION_BURST)
|
||||
{
|
||||
struct session *evic_sess = session_table_find_lru(mgr->udp_sess_table);
|
||||
session_manager_evicte_session(mgr, evic_sess, now);
|
||||
@@ -668,19 +680,21 @@ static struct session *session_manager_new_udp_session(struct session_manager *m
|
||||
assert(sess);
|
||||
return NULL;
|
||||
}
|
||||
mgr->stat.udp_sess.nr_sess_used++;
|
||||
session_init(sess);
|
||||
sess->mgr_stat = &mgr->stat;
|
||||
session_set_id(sess, id_generator_alloc());
|
||||
|
||||
enum session_dir dir = identify_direction_by_port(ntohs(key->src_port), ntohs(key->dst_port));
|
||||
enum session_state next_state = session_transition_run(SESSION_STATE_INIT, UDP_DATA);
|
||||
session_update(sess, next_state, pkt, key, dir, now);
|
||||
session_transition_log(sess, SESSION_STATE_INIT, next_state, UDP_DATA);
|
||||
session_stat_inc(&mgr->stat.udp_sess, next_state);
|
||||
|
||||
session_timer_update(mgr->sess_timer, sess, now + mgr->opts.udp_data_timeout);
|
||||
session_table_add(mgr->udp_sess_table, key, sess);
|
||||
|
||||
NR_UDP_SESS_STAT_INC(&mgr->stat, next_state);
|
||||
mgr->stat.nr_udp_sess_used++;
|
||||
|
||||
return sess;
|
||||
}
|
||||
|
||||
@@ -702,11 +716,10 @@ static int session_manager_update_tcp_session(struct session_manager *mgr, struc
|
||||
|
||||
// update session
|
||||
session_update(sess, next_state, pkt, key, dir, now);
|
||||
session_stat_update(mgr, sess, curr_state, next_state);
|
||||
session_transition_log(sess, curr_state, next_state, inputs);
|
||||
|
||||
// update tcp pcb
|
||||
tcp_pcb_update(&sess->tcp_pcb, dir, tcp_layer, now);
|
||||
tcp_pcb_update(&mgr->stat, &sess->tcp_pcb, dir, tcp_layer, now);
|
||||
|
||||
if (mgr->opts.duplicated_packet_filter_enable)
|
||||
{
|
||||
@@ -770,6 +783,8 @@ static int session_manager_update_tcp_session(struct session_manager *mgr, struc
|
||||
}
|
||||
session_timer_update(mgr->sess_timer, sess, now + timeout);
|
||||
|
||||
NR_TCP_SESS_STAT_UPDATE(&mgr->stat, curr_state, next_state);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -780,9 +795,10 @@ static int session_manager_update_udp_session(struct session_manager *mgr, struc
|
||||
enum session_state next_state = session_transition_run(curr_state, UDP_DATA);
|
||||
session_update(sess, next_state, pkt, key, dir, now);
|
||||
session_transition_log(sess, curr_state, next_state, UDP_DATA);
|
||||
session_stat_update(mgr, sess, curr_state, next_state);
|
||||
session_timer_update(mgr->sess_timer, sess, now + mgr->opts.udp_data_timeout);
|
||||
|
||||
NR_UDP_SESS_STAT_UPDATE(&mgr->stat, curr_state, next_state);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -913,13 +929,13 @@ void session_manager_free_session(struct session_manager *mgr, struct session *s
|
||||
case SESSION_TYPE_TCP:
|
||||
tcp_pcb_clean(&sess->tcp_pcb);
|
||||
session_table_del(mgr->tcp_sess_table, session_get_tuple(sess));
|
||||
session_stat_dec(&mgr->stat.tcp_sess, session_get_state(sess));
|
||||
mgr->stat.tcp_sess.nr_sess_used--;
|
||||
NR_TCP_SESS_STAT_DEC(&mgr->stat, session_get_state(sess));
|
||||
mgr->stat.nr_tcp_sess_used--;
|
||||
break;
|
||||
case SESSION_TYPE_UDP:
|
||||
session_table_del(mgr->udp_sess_table, session_get_tuple(sess));
|
||||
session_stat_dec(&mgr->stat.udp_sess, session_get_state(sess));
|
||||
mgr->stat.udp_sess.nr_sess_used--;
|
||||
NR_UDP_SESS_STAT_DEC(&mgr->stat, session_get_state(sess));
|
||||
mgr->stat.nr_udp_sess_used--;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
@@ -984,7 +1000,22 @@ struct session *session_manager_get_expired_session(struct session_manager *mgr,
|
||||
enum session_state next_state = session_transition_run(curr_state, TIMEOUT);
|
||||
session_transition_log(sess, curr_state, next_state, TIMEOUT);
|
||||
session_set_state(sess, next_state);
|
||||
session_stat_update(mgr, sess, curr_state, next_state);
|
||||
|
||||
uint64_t timeout = 0;
|
||||
switch (session_get_type(sess))
|
||||
{
|
||||
case SESSION_TYPE_TCP:
|
||||
timeout = mgr->opts.tcp_data_timeout;
|
||||
NR_TCP_SESS_STAT_UPDATE(&mgr->stat, curr_state, next_state);
|
||||
break;
|
||||
case SESSION_TYPE_UDP:
|
||||
timeout = mgr->opts.udp_data_timeout;
|
||||
NR_UDP_SESS_STAT_UPDATE(&mgr->stat, curr_state, next_state);
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (next_state == SESSION_STATE_CLOSED)
|
||||
{
|
||||
@@ -998,19 +1029,6 @@ struct session *session_manager_get_expired_session(struct session_manager *mgr,
|
||||
else
|
||||
{
|
||||
// in closing state, only update timeout
|
||||
uint64_t timeout = 0;
|
||||
switch (session_get_type(sess))
|
||||
{
|
||||
case SESSION_TYPE_TCP:
|
||||
timeout = mgr->opts.tcp_data_timeout;
|
||||
break;
|
||||
case SESSION_TYPE_UDP:
|
||||
timeout = mgr->opts.udp_data_timeout;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
break;
|
||||
}
|
||||
session_timer_update(mgr->sess_timer, sess, now + timeout);
|
||||
return NULL;
|
||||
}
|
||||
@@ -1042,17 +1060,14 @@ void session_manager_print_stat(struct session_manager *mgr)
|
||||
{
|
||||
if (mgr)
|
||||
{
|
||||
SESSION_LOG_DEBUG("session_manager_stat->tcp_sess_num: used: %u, init: %u, opening: %u, active: %u, closing: %u, closed: %u, evic_new: %u, evic_old: %u",
|
||||
mgr->stat.tcp_sess.nr_sess_used, mgr->stat.tcp_sess.nr_sess_init, mgr->stat.tcp_sess.nr_sess_opening,
|
||||
mgr->stat.tcp_sess.nr_sess_active, mgr->stat.tcp_sess.nr_sess_closing, mgr->stat.tcp_sess.nr_sess_closed,
|
||||
mgr->stat.tcp_sess.nr_new_sess_evicted, mgr->stat.tcp_sess.nr_old_sess_evicted);
|
||||
SESSION_LOG_DEBUG("session_manager_stat->udp_sess_num: used: %u, init: %u, opening: %u, active: %u, closing: %u, closed: %u, evic_new: %u, evic_old: %u",
|
||||
mgr->stat.udp_sess.nr_sess_used, mgr->stat.udp_sess.nr_sess_init, mgr->stat.udp_sess.nr_sess_opening,
|
||||
mgr->stat.udp_sess.nr_sess_active, mgr->stat.udp_sess.nr_sess_closing, mgr->stat.udp_sess.nr_sess_closed,
|
||||
mgr->stat.udp_sess.nr_new_sess_evicted, mgr->stat.udp_sess.nr_old_sess_evicted);
|
||||
SESSION_LOG_DEBUG("session_manager_stat: dup_pkts: %u, dup_bytes: %u, evic_pkts: %u, evic_bytes: %u",
|
||||
mgr->stat.dup_pkt.nr_pkts, mgr->stat.dup_pkt.nr_bytes,
|
||||
mgr->stat.evc_pkt.nr_pkts, mgr->stat.evc_pkt.nr_bytes);
|
||||
SESSION_LOG_DEBUG("session_manager_stat->tcp_sess: used: %u, opening: %u, active: %u, closing: %u, closed: %u",
|
||||
mgr->stat.nr_tcp_sess_used, mgr->stat.nr_tcp_sess_opening, mgr->stat.nr_tcp_sess_active,
|
||||
mgr->stat.nr_tcp_sess_closing, mgr->stat.nr_tcp_sess_closed);
|
||||
SESSION_LOG_DEBUG("session_manager_stat->udp_sess: used: %u, opening: %u, active: %u, closing: %u, closed: %u",
|
||||
mgr->stat.nr_udp_sess_used, mgr->stat.nr_udp_sess_opening, mgr->stat.nr_udp_sess_active,
|
||||
mgr->stat.nr_udp_sess_closing, mgr->stat.nr_udp_sess_closed);
|
||||
SESSION_LOG_DEBUG("session_manager_stat->evicted_sess: tcp: %u, udp: %u",
|
||||
mgr->stat.nr_tcp_sess_evicted, mgr->stat.nr_udp_sess_evicted);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -51,33 +51,52 @@ struct session_manager_options
|
||||
uint32_t tcp_reassembly_max_segments; // range: [2, 32]
|
||||
};
|
||||
|
||||
struct session_stat
|
||||
{
|
||||
uint64_t nr_sess_used;
|
||||
uint64_t nr_sess_init;
|
||||
uint64_t nr_sess_opening;
|
||||
uint64_t nr_sess_active;
|
||||
uint64_t nr_sess_closing;
|
||||
uint64_t nr_sess_discard;
|
||||
uint64_t nr_sess_closed;
|
||||
|
||||
uint64_t nr_new_sess_evicted;
|
||||
uint64_t nr_old_sess_evicted;
|
||||
};
|
||||
|
||||
struct packet_stat
|
||||
{
|
||||
uint64_t nr_pkts;
|
||||
uint64_t nr_bytes;
|
||||
};
|
||||
|
||||
struct session_manager_stat
|
||||
{
|
||||
struct packet_stat dup_pkt;
|
||||
struct packet_stat evc_pkt;
|
||||
/******************************************************
|
||||
* state count
|
||||
******************************************************/
|
||||
|
||||
struct session_stat tcp_sess;
|
||||
struct session_stat udp_sess;
|
||||
// TCP session
|
||||
uint64_t nr_tcp_sess_used;
|
||||
uint64_t nr_tcp_sess_opening;
|
||||
uint64_t nr_tcp_sess_active;
|
||||
uint64_t nr_tcp_sess_closing;
|
||||
uint64_t nr_tcp_sess_discard;
|
||||
uint64_t nr_tcp_sess_closed;
|
||||
|
||||
// UDP session
|
||||
uint64_t nr_udp_sess_used;
|
||||
uint64_t nr_udp_sess_opening;
|
||||
uint64_t nr_udp_sess_active;
|
||||
uint64_t nr_udp_sess_closing;
|
||||
uint64_t nr_udp_sess_discard;
|
||||
uint64_t nr_udp_sess_closed;
|
||||
|
||||
/******************************************************
|
||||
* sum count
|
||||
******************************************************/
|
||||
|
||||
// Evicted session
|
||||
uint64_t nr_tcp_sess_evicted;
|
||||
uint64_t nr_udp_sess_evicted;
|
||||
|
||||
// Packet
|
||||
uint64_t nr_udp_pkts_bypass_no_space;
|
||||
uint64_t nr_tcp_pkts_bypass_no_space;
|
||||
uint64_t nr_tcp_pkts_bypass_miss_sess;
|
||||
uint64_t nr_tcp_pkts_bypass_hit_dup;
|
||||
uint64_t nr_udp_pkts_bypass_hit_evc;
|
||||
|
||||
// TCP segments
|
||||
uint64_t nr_tcp_seg_received;
|
||||
uint64_t nr_tcp_seg_expired;
|
||||
uint64_t nr_tcp_seg_overlap;
|
||||
uint64_t nr_tcp_seg_no_space;
|
||||
uint64_t nr_tcp_seg_inorder;
|
||||
uint64_t nr_tcp_seg_reorded;
|
||||
uint64_t nr_tcp_seg_buffered;
|
||||
uint64_t nr_tcp_seg_released;
|
||||
};
|
||||
|
||||
struct session_manager;
|
||||
|
||||
@@ -77,8 +77,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SYN_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
// C2S SYN dup Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN dup packet\n");
|
||||
@@ -93,8 +92,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SYN_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 1);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 1);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == sizeof(tcp_pkt1_c2s_syn));
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 1);
|
||||
|
||||
// C2S SYN retransmission Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN retransmission packet\n");
|
||||
@@ -112,8 +110,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SYN_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 1);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 1);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == sizeof(tcp_pkt1_c2s_syn));
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 1);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -143,8 +140,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SYNACK_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
// S2C SYNACK dup Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK dup packet\n");
|
||||
@@ -159,8 +155,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SYNACK_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 1);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 1);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == sizeof(tcp_pkt2_s2c_syn_ack));
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 1);
|
||||
|
||||
// S2C SYNACK retransmission Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK retransmission packet\n");
|
||||
@@ -178,8 +173,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SYNACK_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 1);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 1);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == sizeof(tcp_pkt2_s2c_syn_ack));
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 1);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -210,8 +204,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SKIP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
// C2S SYN retransmission Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN retransmission packet\n");
|
||||
@@ -228,8 +221,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SKIP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
// C2S SYN retransmission Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN retransmission packet\n");
|
||||
@@ -246,8 +238,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SKIP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
// C2S SYN dup Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN dup packet\n");
|
||||
@@ -262,8 +253,7 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SKIP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -296,8 +286,7 @@ TEST(TCP_DUPKT_FILTER_DISABLE, SYN_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
// C2S SYN dup Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN dup packet\n");
|
||||
@@ -312,8 +301,7 @@ TEST(TCP_DUPKT_FILTER_DISABLE, SYN_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -346,8 +334,7 @@ TEST(TCP_DUPKT_FILTER_DISABLE, SYNACK_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
// S2C SYNACK dup Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK dup packet\n");
|
||||
@@ -362,8 +349,7 @@ TEST(TCP_DUPKT_FILTER_DISABLE, SYNACK_DUP)
|
||||
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->dup_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_hit_dup == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ struct session_manager_options opts = {
|
||||
.tcp_reassembly_max_segments = 16,
|
||||
};
|
||||
|
||||
static void packet_set_tcp_src_addr(struct packet *pkt, uint32_t addr)
|
||||
static void packet_set_ip_src_addr(struct packet *pkt, uint32_t addr)
|
||||
{
|
||||
const struct pkt_layer *ipv4_layer = packet_get_innermost_layer(pkt, LAYER_TYPE_IPV4);
|
||||
EXPECT_TRUE(ipv4_layer);
|
||||
@@ -73,23 +73,21 @@ TEST(TCP_OVERLOAD, EVICT_OLD_SESS)
|
||||
// new session
|
||||
for (uint32_t i = 0; i < opts.max_tcp_session_num; i++)
|
||||
{
|
||||
packet_set_tcp_src_addr(&pkt, i);
|
||||
packet_set_ip_src_addr(&pkt, i);
|
||||
EXPECT_TRUE(session_manager_new_session(mgr, &pkt, 1));
|
||||
}
|
||||
printf("=> Session Manager: after add %lu new sessions\n", opts.max_tcp_session_num);
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_init == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closed == RX_BURST_MAX); // have evicted, have't free
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_new_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_old_sess_evicted == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closed == RX_BURST_MAX); // have evicted, have't free
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_evicted == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_no_space == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_miss_sess == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -116,28 +114,26 @@ TEST(TCP_OVERLOAD, EVICT_NEW_SESS)
|
||||
// new session
|
||||
for (uint32_t i = 0; i < opts.max_tcp_session_num; i++)
|
||||
{
|
||||
packet_set_tcp_src_addr(&pkt, i);
|
||||
packet_set_ip_src_addr(&pkt, i);
|
||||
EXPECT_TRUE(session_manager_new_session(mgr, &pkt, 1));
|
||||
}
|
||||
printf("=> Session Manager: after add %lu new sessions\n", opts.max_tcp_session_num);
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_init == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_new_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_old_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_no_space == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_miss_sess == 0);
|
||||
|
||||
// table full, evict new session
|
||||
for (uint32_t i = 0; i < RX_BURST_MAX; i++)
|
||||
{
|
||||
packet_set_tcp_src_addr(&pkt, opts.max_tcp_session_num + i);
|
||||
packet_set_ip_src_addr(&pkt, opts.max_tcp_session_num + i);
|
||||
EXPECT_TRUE(session_manager_lookup_session(mgr, &pkt) == NULL);
|
||||
EXPECT_TRUE(session_manager_new_session(mgr, &pkt, 1) == NULL);
|
||||
}
|
||||
@@ -145,16 +141,14 @@ TEST(TCP_OVERLOAD, EVICT_NEW_SESS)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_init == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_new_sess_evicted == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_old_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_pkts == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_bytes == RX_BURST_MAX * sizeof(tcp_pkt1_c2s_syn));
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == opts.max_tcp_session_num);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_no_space == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_tcp_pkts_bypass_miss_sess == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ struct session_manager_options opts = {
|
||||
.tcp_reassembly_max_segments = 16,
|
||||
};
|
||||
|
||||
static void packet_set_tcp_src_addr(struct packet *pkt, uint32_t addr)
|
||||
static void packet_set_ip_src_addr(struct packet *pkt, uint32_t addr)
|
||||
{
|
||||
const struct pkt_layer *ipv4_layer = packet_get_innermost_layer(pkt, LAYER_TYPE_IPV4);
|
||||
EXPECT_TRUE(ipv4_layer);
|
||||
@@ -74,23 +74,21 @@ TEST(UDP_OVERLOAD, EVICT_OLD_SESS)
|
||||
// new session
|
||||
for (uint32_t i = 0; i < opts.max_udp_session_num; i++)
|
||||
{
|
||||
packet_set_tcp_src_addr(&pkt, i);
|
||||
packet_set_ip_src_addr(&pkt, i);
|
||||
EXPECT_TRUE(session_manager_new_session(mgr, &pkt, 1));
|
||||
}
|
||||
printf("=> Session Manager: after add %lu new sessions\n", opts.max_udp_session_num);
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_init == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closed == RX_BURST_MAX); // have evicted, have't free
|
||||
EXPECT_TRUE(stat->udp_sess.nr_new_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_old_sess_evicted == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closed == RX_BURST_MAX); // have evicted, have't free
|
||||
EXPECT_TRUE(stat->nr_udp_sess_evicted == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_no_space == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_hit_evc == 0);
|
||||
|
||||
// evicted session
|
||||
while (1)
|
||||
@@ -108,7 +106,7 @@ TEST(UDP_OVERLOAD, EVICT_OLD_SESS)
|
||||
|
||||
for (uint32_t i = 0; i < RX_BURST_MAX; i++)
|
||||
{
|
||||
packet_set_tcp_src_addr(&pkt, i);
|
||||
packet_set_ip_src_addr(&pkt, i);
|
||||
EXPECT_TRUE(session_manager_lookup_session(mgr, &pkt) == NULL);
|
||||
EXPECT_TRUE(session_manager_new_session(mgr, &pkt, 1) == NULL); // hit evicted session, can't renew session
|
||||
}
|
||||
@@ -116,35 +114,31 @@ TEST(UDP_OVERLOAD, EVICT_OLD_SESS)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_init == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_new_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_old_sess_evicted == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_pkts == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_bytes == RX_BURST_MAX * sizeof(udp_pkt1_dns_req));
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_evicted == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_no_space == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_hit_evc == RX_BURST_MAX);
|
||||
|
||||
// evicted session timeout
|
||||
packet_set_tcp_src_addr(&pkt, 0);
|
||||
packet_set_ip_src_addr(&pkt, 0);
|
||||
EXPECT_TRUE(session_manager_lookup_session(mgr, &pkt) == NULL);
|
||||
EXPECT_TRUE(session_manager_new_session(mgr, &pkt, 1 + opts.evicted_session_filter_timeout));
|
||||
printf("=> Session Manager: after evicted session timeout\n");
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == RX_BURST_MAX + 1);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_init == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closed == 1); // have evicted, have't free
|
||||
EXPECT_TRUE(stat->udp_sess.nr_new_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_old_sess_evicted == RX_BURST_MAX + 1);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_pkts == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_bytes == RX_BURST_MAX * sizeof(udp_pkt1_dns_req));
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == RX_BURST_MAX + 1);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closed == 1); // have evicted, have't free
|
||||
EXPECT_TRUE(stat->nr_udp_sess_evicted == RX_BURST_MAX + 1);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_no_space == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_hit_evc == RX_BURST_MAX);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -171,23 +165,21 @@ TEST(UDP_OVERLOAD, EVICT_NEW_SESS)
|
||||
// new session
|
||||
for (uint32_t i = 0; i < opts.max_udp_session_num; i++)
|
||||
{
|
||||
packet_set_tcp_src_addr(&pkt, i);
|
||||
packet_set_ip_src_addr(&pkt, i);
|
||||
EXPECT_TRUE(session_manager_new_session(mgr, &pkt, 1));
|
||||
}
|
||||
printf("=> Session Manager: after add %lu new sessions\n", opts.max_udp_session_num);
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_init == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_new_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_old_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_pkts == 0);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_bytes == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_no_space == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_hit_evc == 0);
|
||||
|
||||
// evicted session
|
||||
EXPECT_TRUE(session_manager_get_evicted_session(mgr) == NULL);
|
||||
@@ -195,7 +187,7 @@ TEST(UDP_OVERLOAD, EVICT_NEW_SESS)
|
||||
// table full, evict new session
|
||||
for (uint32_t i = 0; i < RX_BURST_MAX; i++)
|
||||
{
|
||||
packet_set_tcp_src_addr(&pkt, opts.max_udp_session_num + i);
|
||||
packet_set_ip_src_addr(&pkt, opts.max_udp_session_num + i);
|
||||
EXPECT_TRUE(session_manager_lookup_session(mgr, &pkt) == NULL);
|
||||
EXPECT_TRUE(session_manager_new_session(mgr, &pkt, 1) == NULL);
|
||||
}
|
||||
@@ -203,16 +195,14 @@ TEST(UDP_OVERLOAD, EVICT_NEW_SESS)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_init == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_new_sess_evicted == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_old_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_pkts == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->evc_pkt.nr_bytes == RX_BURST_MAX * sizeof(udp_pkt1_dns_req));
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == opts.max_udp_session_num);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closed == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_evicted == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_no_space == RX_BURST_MAX);
|
||||
EXPECT_TRUE(stat->nr_udp_pkts_bypass_hit_evc == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
@@ -138,10 +138,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_FIN_FIN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 3 + opts.tcp_time_wait_timeout);
|
||||
@@ -156,10 +156,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_FIN_FIN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -226,10 +226,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_RST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 3 + opts.tcp_unverified_rst_timeout);
|
||||
@@ -244,10 +244,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_RST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -314,10 +314,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_RST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 3 + opts.tcp_unverified_rst_timeout);
|
||||
@@ -332,10 +332,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_RST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -362,10 +362,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_DATA_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.tcp_data_timeout) == NULL);
|
||||
@@ -381,10 +381,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_DATA_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -444,10 +444,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_HALF_CLOSED_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 3 + opts.tcp_half_closed_timeout);
|
||||
@@ -462,10 +462,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_HALF_CLOSED_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -525,10 +525,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_HALF_CLOSED_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 3 + opts.tcp_half_closed_timeout);
|
||||
@@ -543,10 +543,10 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_HALF_CLOSED_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
@@ -97,10 +97,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 1 + opts.tcp_init_timeout) == NULL); // opening -> closing
|
||||
@@ -116,10 +116,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -176,10 +176,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 1 + opts.tcp_handshake_timeout) == NULL);
|
||||
@@ -195,10 +195,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -266,10 +266,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.tcp_handshake_timeout) == NULL);
|
||||
@@ -285,10 +285,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -367,10 +367,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK_ACK)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 3 + opts.tcp_data_timeout) == NULL);
|
||||
@@ -386,10 +386,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK_ACK)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -464,10 +464,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_RETRANSMISSION)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.tcp_init_timeout) == NULL);
|
||||
@@ -483,10 +483,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_RETRANSMISSION)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -562,10 +562,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK_RETRANSMISSION)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.tcp_handshake_timeout) == NULL);
|
||||
@@ -581,10 +581,10 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK_RETRANSMISSION)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -652,10 +652,10 @@ TEST(TCP_INIT_TO_OPENING, BY_C2S_ASMMETRIC)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.tcp_data_timeout) == NULL);
|
||||
@@ -671,10 +671,10 @@ TEST(TCP_INIT_TO_OPENING, BY_C2S_ASMMETRIC)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -742,10 +742,10 @@ TEST(TCP_INIT_TO_OPENING, BY_S2C_ASMMETRIC)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.tcp_data_timeout) == NULL);
|
||||
@@ -761,10 +761,10 @@ TEST(TCP_INIT_TO_OPENING, BY_S2C_ASMMETRIC)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
@@ -402,10 +402,10 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 11 + opts.tcp_time_wait_timeout);
|
||||
@@ -420,10 +420,10 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
@@ -107,10 +107,10 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYN_C2S_DATA)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.tcp_data_timeout) == NULL);
|
||||
@@ -126,10 +126,10 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYN_C2S_DATA)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -197,10 +197,10 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYNACK_S2C_DATA)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.tcp_data_timeout) == NULL);
|
||||
@@ -216,10 +216,10 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYNACK_S2C_DATA)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
@@ -119,10 +119,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_FIN_FIN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 3 + opts.tcp_time_wait_timeout);
|
||||
@@ -137,10 +137,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_FIN_FIN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -215,10 +215,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_RST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 2 + opts.tcp_unverified_rst_timeout);
|
||||
@@ -233,10 +233,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_RST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -311,10 +311,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_RST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 2 + opts.tcp_unverified_rst_timeout);
|
||||
@@ -329,10 +329,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_RST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -368,10 +368,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_INIT_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 1 + opts.tcp_init_timeout) == NULL);
|
||||
@@ -387,10 +387,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_INIT_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -458,10 +458,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_HANDSHAKE_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.tcp_handshake_timeout) == NULL);
|
||||
@@ -477,10 +477,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_HANDSHAKE_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -559,10 +559,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_DATA_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 3 + opts.tcp_data_timeout) == NULL);
|
||||
@@ -578,10 +578,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_DATA_TIMEOUT)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -649,10 +649,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_HALF_FIN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 2 + opts.tcp_half_closed_timeout);
|
||||
@@ -667,10 +667,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_HALF_FIN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -738,10 +738,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_HALF_FIN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 1);
|
||||
|
||||
// expire session
|
||||
sess = session_manager_get_expired_session(mgr, 2 + opts.tcp_half_closed_timeout);
|
||||
@@ -756,10 +756,10 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_HALF_FIN)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->tcp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
@@ -122,10 +122,10 @@ TEST(UDP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING, TEST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 1);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 1);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 2 + opts.udp_data_timeout) == NULL); // active -> closing
|
||||
@@ -141,10 +141,10 @@ TEST(UDP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING, TEST)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
@@ -97,10 +97,10 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_C2S)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 1 + opts.udp_data_timeout) == NULL); // opening -> closing
|
||||
@@ -116,10 +116,10 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_C2S)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
@@ -177,10 +177,10 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_S2C)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == 1);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == 1);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
|
||||
// expire session
|
||||
EXPECT_TRUE(session_manager_get_expired_session(mgr, 1 + opts.udp_data_timeout) == NULL); // opening -> closing
|
||||
@@ -198,10 +198,10 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_S2C)
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_used == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_active == 0);
|
||||
EXPECT_TRUE(stat->udp_sess.nr_sess_closing == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_opening == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_active == 0);
|
||||
EXPECT_TRUE(stat->nr_udp_sess_closing == 0);
|
||||
|
||||
session_manager_free(mgr);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user