session add API support get/set closing reasion
This commit is contained in:
@@ -88,6 +88,17 @@ enum session_type session_get_type(const struct session *sess)
|
|||||||
return sess->type;
|
return sess->type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// closing reasion
|
||||||
|
void session_set_closing_reasion(struct session *sess, enum closing_reasion reasion)
|
||||||
|
{
|
||||||
|
sess->closing_reasion = reasion;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum closing_reasion session_get_closing_reasion(const struct session *sess)
|
||||||
|
{
|
||||||
|
return sess->closing_reasion;
|
||||||
|
}
|
||||||
|
|
||||||
// session metrics
|
// session metrics
|
||||||
void session_inc_c2s_metrics(struct session *sess, uint64_t packets, uint64_t bytes)
|
void session_inc_c2s_metrics(struct session *sess, uint64_t packets, uint64_t bytes)
|
||||||
{
|
{
|
||||||
@@ -388,6 +399,27 @@ static void udp_ex_data_tostring(uint64_t ex_data, char *buffer, size_t buffer_l
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *session_closing_reasion_tostring(enum closing_reasion reasion)
|
||||||
|
{
|
||||||
|
switch (reasion)
|
||||||
|
{
|
||||||
|
case CLOSING_BY_TIMEOUT:
|
||||||
|
return "CLOSING_BY_TIMEOUT";
|
||||||
|
case CLOSING_BY_EVICTED:
|
||||||
|
return "CLOSING_BY_EVICTED";
|
||||||
|
case CLOSING_BY_CLIENT_FIN:
|
||||||
|
return "CLOSING_BY_CLIENT_FIN";
|
||||||
|
case CLOSING_BY_CLIENT_RST:
|
||||||
|
return "CLOSING_BY_CLIENT_RST";
|
||||||
|
case CLOSING_BY_SERVER_FIN:
|
||||||
|
return "CLOSING_BY_SERVER_FIN";
|
||||||
|
case CLOSING_BY_SERVER_RST:
|
||||||
|
return "CLOSING_BY_SERVER_RST";
|
||||||
|
default:
|
||||||
|
return "unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const char *session_state_tostring(enum session_state state)
|
const char *session_state_tostring(enum session_state state)
|
||||||
{
|
{
|
||||||
switch (state)
|
switch (state)
|
||||||
@@ -445,6 +477,7 @@ void session_dump(struct session *sess)
|
|||||||
printf("session tuple6 dir : %s\n", session_dir_tostring(session_get_tuple6_dir(sess)));
|
printf("session tuple6 dir : %s\n", session_dir_tostring(session_get_tuple6_dir(sess)));
|
||||||
printf("session state : %s\n", session_state_tostring(session_get_state(sess)));
|
printf("session state : %s\n", session_state_tostring(session_get_state(sess)));
|
||||||
printf("session type : %s\n", session_type_tostring(session_get_type(sess)));
|
printf("session type : %s\n", session_type_tostring(session_get_type(sess)));
|
||||||
|
printf("session closing reasion : %s\n", session_closing_reasion_tostring(session_get_closing_reasion(sess)));
|
||||||
printf("session c2s packets : %" PRIu64 "\n", session_get_c2s_packets(sess));
|
printf("session c2s packets : %" PRIu64 "\n", session_get_c2s_packets(sess));
|
||||||
printf("session c2s bytes : %" PRIu64 "\n", session_get_c2s_bytes(sess));
|
printf("session c2s bytes : %" PRIu64 "\n", session_get_c2s_bytes(sess));
|
||||||
printf("session s2c packets : %" PRIu64 "\n", session_get_s2c_packets(sess));
|
printf("session s2c packets : %" PRIu64 "\n", session_get_s2c_packets(sess));
|
||||||
|
|||||||
@@ -20,12 +20,6 @@ enum session_state
|
|||||||
SESSION_STATE_CLOSED,
|
SESSION_STATE_CLOSED,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum session_action
|
|
||||||
{
|
|
||||||
SESSION_ACTION_DISCARD,
|
|
||||||
SESSION_ACTION_FASTFORWARD,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum session_type
|
enum session_type
|
||||||
{
|
{
|
||||||
SESSION_TYPE_TCP = 0x1,
|
SESSION_TYPE_TCP = 0x1,
|
||||||
@@ -39,6 +33,16 @@ enum session_dir
|
|||||||
SESSION_DIR_S2C = 2,
|
SESSION_DIR_S2C = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum closing_reasion
|
||||||
|
{
|
||||||
|
CLOSING_BY_TIMEOUT = 1,
|
||||||
|
CLOSING_BY_EVICTED = 2,
|
||||||
|
CLOSING_BY_CLIENT_FIN = 3,
|
||||||
|
CLOSING_BY_CLIENT_RST = 4,
|
||||||
|
CLOSING_BY_SERVER_FIN = 5,
|
||||||
|
CLOSING_BY_SERVER_RST = 6,
|
||||||
|
};
|
||||||
|
|
||||||
struct session;
|
struct session;
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@@ -65,6 +69,10 @@ enum session_state session_get_state(const struct session *sess);
|
|||||||
void session_set_type(struct session *sess, enum session_type type);
|
void session_set_type(struct session *sess, enum session_type type);
|
||||||
enum session_type session_get_type(const struct session *sess);
|
enum session_type session_get_type(const struct session *sess);
|
||||||
|
|
||||||
|
// closing reasion
|
||||||
|
void session_set_closing_reasion(struct session *sess, enum closing_reasion reasion);
|
||||||
|
enum closing_reasion session_get_closing_reasion(const struct session *sess);
|
||||||
|
|
||||||
// session metrics
|
// session metrics
|
||||||
void session_inc_c2s_metrics(struct session *sess, uint64_t packets, uint64_t bytes);
|
void session_inc_c2s_metrics(struct session *sess, uint64_t packets, uint64_t bytes);
|
||||||
void session_inc_s2c_metrics(struct session *sess, uint64_t packets, uint64_t bytes);
|
void session_inc_s2c_metrics(struct session *sess, uint64_t packets, uint64_t bytes);
|
||||||
@@ -140,6 +148,7 @@ void session_run_expirecb(struct session *sess);
|
|||||||
* session dump
|
* session dump
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
|
const char *session_closing_reasion_tostring(enum closing_reasion reasion);
|
||||||
const char *session_state_tostring(enum session_state state);
|
const char *session_state_tostring(enum session_state state);
|
||||||
const char *session_type_tostring(enum session_type type);
|
const char *session_type_tostring(enum session_type type);
|
||||||
const char *session_dir_tostring(enum session_dir dir);
|
const char *session_dir_tostring(enum session_dir dir);
|
||||||
|
|||||||
@@ -49,6 +49,9 @@ struct session
|
|||||||
// session type
|
// session type
|
||||||
enum session_type type;
|
enum session_type type;
|
||||||
|
|
||||||
|
// closing reasion
|
||||||
|
enum closing_reasion closing_reasion;
|
||||||
|
|
||||||
// session metrics
|
// session metrics
|
||||||
uint64_t c2s_bytes;
|
uint64_t c2s_bytes;
|
||||||
uint64_t s2c_bytes;
|
uint64_t s2c_bytes;
|
||||||
|
|||||||
Reference in New Issue
Block a user