update session_manager_stat

This commit is contained in:
luwenpeng
2024-03-11 15:04:18 +08:00
parent 512dfddd03
commit 639614622b
4 changed files with 135 additions and 140 deletions

View File

@@ -46,35 +46,6 @@ struct session_manager_options
double evicted_session_filter_error_rate;
};
struct session_manager;
struct session_manager *session_manager_new(struct session_manager_options *opts);
void session_manager_free(struct session_manager *mgr);
struct session *session_manager_lookup_session(struct session_manager *mgr, const struct packet *pkt);
/*
* return NULL following case:
* 1.Not TCP or UDP
* 2.UDP eviction packet
* 3.UDP overloading and config to bypass new session
* 4.TCP no SYN flag
* 5.UDP overloading and config to bypass new session
*/
struct session *session_manager_new_session(struct session_manager *mgr, const struct packet *pkt);
void session_manager_free_session(struct session_manager *mgr, struct session *sess);
/*
* return NULL following case:
* 1.Not TCP or UDP
* 2.TCP duplicate packet
*/
int session_manager_update_session(struct session_manager *mgr, struct session *sess, const struct packet *pkt);
// return session need free by session_manager_free_session()
struct session *session_manager_get_expired_session(struct session_manager *mgr);
// return session need free by session_manager_free_session()
struct session *session_manager_get_evicted_session(struct session_manager *mgr);
// return 0: have already timeout session
// return >0: next expire interval
uint64_t session_manager_get_expire_interval(struct session_manager *mgr);
struct session_manager_stat
{
uint64_t tcp_sess_num;
@@ -93,8 +64,26 @@ struct session_manager_stat
uint64_t udp_overload_evict_new_sess_num;
};
struct session_manager;
struct session_manager *session_manager_new(struct session_manager_options *opts);
void session_manager_free(struct session_manager *mgr);
struct session *session_manager_new_session(struct session_manager *mgr, const struct packet *pkt);
void session_manager_free_session(struct session_manager *mgr, struct session *sess);
struct session *session_manager_lookup_session(struct session_manager *mgr, const struct packet *pkt);
int session_manager_update_session(struct session_manager *mgr, struct session *sess, const struct packet *pkt);
// return session need free by session_manager_free_session()
struct session *session_manager_get_expired_session(struct session_manager *mgr);
struct session *session_manager_get_evicted_session(struct session_manager *mgr);
// return 0: have already timeout session
// return >0: next expire interval
uint64_t session_manager_get_expire_interval(struct session_manager *mgr);
void session_manager_print_stat(struct session_manager *mgr);
void session_manager_get_stat(struct session_manager *mgr, struct session_manager_stat *out);
struct session_manager_stat *session_manager_get_stat(struct session_manager *mgr);
#ifdef __cpluscplus
}