enhance: rename session manager stat iterm name
This commit is contained in:
@@ -49,52 +49,52 @@ struct session_manager
|
||||
* Session Manager Stat
|
||||
******************************************************************************/
|
||||
|
||||
#define SESS_MGR_STAT_INC(stat, state, proto) \
|
||||
{ \
|
||||
switch ((state)) \
|
||||
{ \
|
||||
case SESSION_STATE_OPENING: \
|
||||
(stat)->curr_nr_##proto##_sess_opening++; \
|
||||
break; \
|
||||
case SESSION_STATE_ACTIVE: \
|
||||
(stat)->curr_nr_##proto##_sess_active++; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSING: \
|
||||
(stat)->curr_nr_##proto##_sess_closing++; \
|
||||
break; \
|
||||
case SESSION_STATE_DISCARD: \
|
||||
(stat)->curr_nr_##proto##_sess_discard++; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSED: \
|
||||
(stat)->curr_nr_##proto##_sess_closed++; \
|
||||
break; \
|
||||
default: \
|
||||
break; \
|
||||
} \
|
||||
#define SESS_MGR_STAT_INC(stat, state, proto) \
|
||||
{ \
|
||||
switch ((state)) \
|
||||
{ \
|
||||
case SESSION_STATE_OPENING: \
|
||||
(stat)->curr_##proto##_sess_opening++; \
|
||||
break; \
|
||||
case SESSION_STATE_ACTIVE: \
|
||||
(stat)->curr_##proto##_sess_active++; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSING: \
|
||||
(stat)->curr_##proto##_sess_closing++; \
|
||||
break; \
|
||||
case SESSION_STATE_DISCARD: \
|
||||
(stat)->curr_##proto##_sess_discard++; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSED: \
|
||||
(stat)->curr_##proto##_sess_closed++; \
|
||||
break; \
|
||||
default: \
|
||||
break; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define SESS_MGR_STAT_DEC(stat, state, proto) \
|
||||
{ \
|
||||
switch ((state)) \
|
||||
{ \
|
||||
case SESSION_STATE_OPENING: \
|
||||
(stat)->curr_nr_##proto##_sess_opening--; \
|
||||
break; \
|
||||
case SESSION_STATE_ACTIVE: \
|
||||
(stat)->curr_nr_##proto##_sess_active--; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSING: \
|
||||
(stat)->curr_nr_##proto##_sess_closing--; \
|
||||
break; \
|
||||
case SESSION_STATE_DISCARD: \
|
||||
(stat)->curr_nr_##proto##_sess_discard--; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSED: \
|
||||
(stat)->curr_nr_##proto##_sess_closed--; \
|
||||
break; \
|
||||
default: \
|
||||
break; \
|
||||
} \
|
||||
#define SESS_MGR_STAT_DEC(stat, state, proto) \
|
||||
{ \
|
||||
switch ((state)) \
|
||||
{ \
|
||||
case SESSION_STATE_OPENING: \
|
||||
(stat)->curr_##proto##_sess_opening--; \
|
||||
break; \
|
||||
case SESSION_STATE_ACTIVE: \
|
||||
(stat)->curr_##proto##_sess_active--; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSING: \
|
||||
(stat)->curr_##proto##_sess_closing--; \
|
||||
break; \
|
||||
case SESSION_STATE_DISCARD: \
|
||||
(stat)->curr_##proto##_sess_discard--; \
|
||||
break; \
|
||||
case SESSION_STATE_CLOSED: \
|
||||
(stat)->curr_##proto##_sess_closed--; \
|
||||
break; \
|
||||
default: \
|
||||
break; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define SESS_MGR_STAT_UPDATE(stat, curr, next, proto) \
|
||||
@@ -250,7 +250,7 @@ static void tcp_clean(struct session_manager *mgr, struct session *sess)
|
||||
{
|
||||
session_inc_stat(sess, FLOW_DIRECTION_C2S, STAT_TCP_SEGMENTS_RELEASED, 1);
|
||||
session_inc_stat(sess, FLOW_DIRECTION_C2S, STAT_TCP_PAYLOADS_RELEASED, seg->len);
|
||||
mgr->stat.nr_tcp_seg_released++;
|
||||
mgr->stat.tcp_seg_released++;
|
||||
tcp_segment_free(seg);
|
||||
}
|
||||
tcp_reassembly_free(c2s_ssembler);
|
||||
@@ -261,7 +261,7 @@ static void tcp_clean(struct session_manager *mgr, struct session *sess)
|
||||
{
|
||||
session_inc_stat(sess, FLOW_DIRECTION_S2C, STAT_TCP_SEGMENTS_RELEASED, 1);
|
||||
session_inc_stat(sess, FLOW_DIRECTION_S2C, STAT_TCP_PAYLOADS_RELEASED, seg->len);
|
||||
mgr->stat.nr_tcp_seg_released++;
|
||||
mgr->stat.tcp_seg_released++;
|
||||
tcp_segment_free(seg);
|
||||
}
|
||||
tcp_reassembly_free(s2c_ssembler);
|
||||
@@ -315,11 +315,11 @@ static void tcp_update(struct session_manager *mgr, struct session *sess, enum f
|
||||
{
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_RECEIVED, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_RECEIVED, len);
|
||||
mgr->stat.nr_tcp_seg_received++;
|
||||
mgr->stat.tcp_seg_received++;
|
||||
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_INORDER, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_INORDER, len);
|
||||
mgr->stat.nr_tcp_seg_inorder++;
|
||||
mgr->stat.tcp_seg_inorder++;
|
||||
|
||||
half->in_order.data = tcp_layer->pld_ptr;
|
||||
half->in_order.len = len;
|
||||
@@ -339,11 +339,11 @@ static void tcp_update(struct session_manager *mgr, struct session *sess, enum f
|
||||
{
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_EXPIRED, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_EXPIRED, seg->len);
|
||||
mgr->stat.nr_tcp_seg_expired++;
|
||||
mgr->stat.tcp_seg_expired++;
|
||||
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_RELEASED, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_RELEASED, seg->len);
|
||||
mgr->stat.nr_tcp_seg_released++;
|
||||
mgr->stat.tcp_seg_released++;
|
||||
|
||||
tcp_segment_free(seg);
|
||||
}
|
||||
@@ -352,7 +352,7 @@ static void tcp_update(struct session_manager *mgr, struct session *sess, enum f
|
||||
{
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_RECEIVED, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_RECEIVED, len);
|
||||
mgr->stat.nr_tcp_seg_received++;
|
||||
mgr->stat.tcp_seg_received++;
|
||||
|
||||
uint32_t rcv_nxt = tcp_reassembly_get_recv_next(half->assembler);
|
||||
// in order
|
||||
@@ -360,7 +360,7 @@ static void tcp_update(struct session_manager *mgr, struct session *sess, enum f
|
||||
{
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_INORDER, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_INORDER, len);
|
||||
mgr->stat.nr_tcp_seg_inorder++;
|
||||
mgr->stat.tcp_seg_inorder++;
|
||||
|
||||
half->in_order.data = tcp_layer->pld_ptr;
|
||||
half->in_order.len = len;
|
||||
@@ -372,7 +372,7 @@ static void tcp_update(struct session_manager *mgr, struct session *sess, enum f
|
||||
{
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_RETRANSMIT, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_RETRANSMIT, len);
|
||||
mgr->stat.nr_tcp_seg_retransmit++;
|
||||
mgr->stat.tcp_seg_retransmit++;
|
||||
}
|
||||
else if ((seg = tcp_segment_new(half->seq, tcp_layer->pld_ptr, len)))
|
||||
{
|
||||
@@ -381,28 +381,28 @@ static void tcp_update(struct session_manager *mgr, struct session *sess, enum f
|
||||
case -2:
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_RETRANSMIT, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_RETRANSMIT, len);
|
||||
mgr->stat.nr_tcp_seg_retransmit++;
|
||||
mgr->stat.tcp_seg_retransmit++;
|
||||
tcp_segment_free(seg);
|
||||
break;
|
||||
case -1:
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_NOSPACE, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_NOSPACE, len);
|
||||
mgr->stat.nr_tcp_seg_no_space++;
|
||||
mgr->stat.tcp_seg_no_space++;
|
||||
tcp_segment_free(seg);
|
||||
break;
|
||||
case 0:
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_BUFFERED, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_BUFFERED, len);
|
||||
mgr->stat.nr_tcp_seg_buffered++;
|
||||
mgr->stat.tcp_seg_buffered++;
|
||||
break;
|
||||
case 1:
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_OVERLAP, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_OVERLAP, len);
|
||||
mgr->stat.nr_tcp_seg_overlap++;
|
||||
mgr->stat.tcp_seg_overlap++;
|
||||
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_BUFFERED, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_BUFFERED, len);
|
||||
mgr->stat.nr_tcp_seg_buffered++;
|
||||
mgr->stat.tcp_seg_buffered++;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
@@ -413,7 +413,7 @@ static void tcp_update(struct session_manager *mgr, struct session *sess, enum f
|
||||
{
|
||||
session_inc_stat(sess, dir, STAT_TCP_SEGMENTS_NOSPACE, 1);
|
||||
session_inc_stat(sess, dir, STAT_TCP_PAYLOADS_NOSPACE, len);
|
||||
mgr->stat.nr_tcp_seg_no_space++;
|
||||
mgr->stat.tcp_seg_no_space++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -459,9 +459,9 @@ static enum flow_direction identify_direction_by_history(const struct session *s
|
||||
// on new session
|
||||
static int tcp_overload_bypass(struct session_manager *mgr, const struct tuple6 *key)
|
||||
{
|
||||
if (key->ip_proto == IPPROTO_TCP && mgr->stat.curr_nr_tcp_sess_used >= mgr->opts.max_tcp_session_num)
|
||||
if (key->ip_proto == IPPROTO_TCP && mgr->stat.curr_tcp_sess_used >= mgr->opts.max_tcp_session_num)
|
||||
{
|
||||
mgr->stat.nr_tcp_pkts_nospace_bypass++;
|
||||
mgr->stat.tcp_pkts_nospace_bypass++;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@@ -469,9 +469,9 @@ static int tcp_overload_bypass(struct session_manager *mgr, const struct tuple6
|
||||
|
||||
static int udp_overload_bypass(struct session_manager *mgr, const struct tuple6 *key)
|
||||
{
|
||||
if (key->ip_proto == IPPROTO_UDP && mgr->stat.curr_nr_udp_sess_used >= mgr->opts.max_udp_session_num)
|
||||
if (key->ip_proto == IPPROTO_UDP && mgr->stat.curr_udp_sess_used >= mgr->opts.max_udp_session_num)
|
||||
{
|
||||
mgr->stat.nr_udp_pkts_nospace_bypass++;
|
||||
mgr->stat.udp_pkts_nospace_bypass++;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@@ -481,7 +481,7 @@ static int evicted_session_bypass(struct session_manager *mgr, const struct tupl
|
||||
{
|
||||
if (mgr->opts.evicted_session_filter_enable && evicted_session_filter_lookup(mgr->evicte_sess_filter, key, mgr->now_ms))
|
||||
{
|
||||
mgr->stat.nr_udp_pkts_evctd_bypass++;
|
||||
mgr->stat.udp_pkts_evctd_bypass++;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -506,10 +506,10 @@ static int duplicated_packet_bypass(struct session_manager *mgr, struct session
|
||||
switch (session_get_type(sess))
|
||||
{
|
||||
case SESSION_TYPE_TCP:
|
||||
mgr->stat.nr_tcp_pkts_duped_bypass++;
|
||||
mgr->stat.tcp_pkts_duped_bypass++;
|
||||
break;
|
||||
case SESSION_TYPE_UDP:
|
||||
mgr->stat.nr_udp_pkts_duped_bypass++;
|
||||
mgr->stat.udp_pkts_duped_bypass++;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
@@ -632,7 +632,7 @@ static void session_manager_evicte_session(struct session_manager *mgr, struct s
|
||||
SESSION_LOG_DEBUG("evicte tcp old session: %lu", session_get_id(sess));
|
||||
session_table_del(mgr->tcp_sess_table, sess);
|
||||
SESS_MGR_STAT_UPDATE(&mgr->stat, curr_state, next_state, tcp);
|
||||
mgr->stat.nr_tcp_sess_evicted++;
|
||||
mgr->stat.tcp_sess_evicted++;
|
||||
break;
|
||||
case SESSION_TYPE_UDP:
|
||||
SESSION_LOG_DEBUG("evicte udp old session: %lu", session_get_id(sess));
|
||||
@@ -642,7 +642,7 @@ static void session_manager_evicte_session(struct session_manager *mgr, struct s
|
||||
evicted_session_filter_add(mgr->evicte_sess_filter, session_get_tuple6(sess), mgr->now_ms);
|
||||
}
|
||||
SESS_MGR_STAT_UPDATE(&mgr->stat, curr_state, next_state, udp);
|
||||
mgr->stat.nr_udp_sess_evicted++;
|
||||
mgr->stat.udp_sess_evicted++;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
@@ -689,12 +689,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_nosess_bypass++;
|
||||
mgr->stat.tcp_pkts_nosess_bypass++;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// tcp table full evict old session
|
||||
if (mgr->opts.tcp_overload_evict_old_sess && mgr->stat.curr_nr_tcp_sess_used >= mgr->opts.max_tcp_session_num - EVICTE_SESSION_BURST)
|
||||
if (mgr->opts.tcp_overload_evict_old_sess && mgr->stat.curr_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, LRU_EVICT);
|
||||
@@ -733,8 +733,8 @@ static struct session *session_manager_new_tcp_session(struct session_manager *m
|
||||
}
|
||||
|
||||
SESS_MGR_STAT_INC(&mgr->stat, next_state, tcp);
|
||||
mgr->stat.curr_nr_tcp_sess_used++;
|
||||
mgr->stat.total_nr_tcp_sess_used++;
|
||||
mgr->stat.curr_tcp_sess_used++;
|
||||
mgr->stat.total_tcp_sess_used++;
|
||||
|
||||
return sess;
|
||||
}
|
||||
@@ -742,7 +742,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)
|
||||
{
|
||||
// udp table full evict old session
|
||||
if (mgr->opts.udp_overload_evict_old_sess && mgr->stat.curr_nr_udp_sess_used >= mgr->opts.max_udp_session_num - EVICTE_SESSION_BURST)
|
||||
if (mgr->opts.udp_overload_evict_old_sess && mgr->stat.curr_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, LRU_EVICT);
|
||||
@@ -767,8 +767,8 @@ static struct session *session_manager_new_udp_session(struct session_manager *m
|
||||
session_table_add(mgr->udp_sess_table, sess);
|
||||
|
||||
SESS_MGR_STAT_INC(&mgr->stat, next_state, udp);
|
||||
mgr->stat.curr_nr_udp_sess_used++;
|
||||
mgr->stat.total_nr_udp_sess_used++;
|
||||
mgr->stat.curr_udp_sess_used++;
|
||||
mgr->stat.total_udp_sess_used++;
|
||||
|
||||
return sess;
|
||||
}
|
||||
@@ -1033,7 +1033,7 @@ void session_manager_free_session(struct session_manager *mgr, struct session *s
|
||||
session_table_del(mgr->tcp_sess_table, sess);
|
||||
}
|
||||
SESS_MGR_STAT_DEC(&mgr->stat, session_get_current_state(sess), tcp);
|
||||
mgr->stat.curr_nr_tcp_sess_used--;
|
||||
mgr->stat.curr_tcp_sess_used--;
|
||||
break;
|
||||
case SESSION_TYPE_UDP:
|
||||
if (session_table_find_sessid(mgr->udp_sess_table, session_get_id(sess), 0) == sess)
|
||||
@@ -1041,7 +1041,7 @@ void session_manager_free_session(struct session_manager *mgr, struct session *s
|
||||
session_table_del(mgr->udp_sess_table, sess);
|
||||
}
|
||||
SESS_MGR_STAT_DEC(&mgr->stat, session_get_current_state(sess), udp);
|
||||
mgr->stat.curr_nr_udp_sess_used--;
|
||||
mgr->stat.curr_udp_sess_used--;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
|
||||
Reference in New Issue
Block a user