Export tuple.h / packet.h / session.h to the include directory
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#include <assert.h>
|
||||
|
||||
#include "session.h"
|
||||
#include "session_private.h"
|
||||
#include "tcp_utils.h"
|
||||
#include "tcp_reassembly.h"
|
||||
|
||||
@@ -50,22 +50,27 @@ const struct tuple6 *session_get_tuple(const struct session *sess)
|
||||
return &sess->tuple;
|
||||
}
|
||||
|
||||
void session_set_tuple_dir(struct session *sess, enum session_dir dir)
|
||||
void session_set_tuple_direction(struct session *sess, enum session_direction dir)
|
||||
{
|
||||
sess->tuple_dir = dir;
|
||||
}
|
||||
|
||||
enum session_dir session_get_tuple_dir(const struct session *sess)
|
||||
enum session_direction session_get_tuple_direction(const struct session *sess)
|
||||
{
|
||||
return sess->tuple_dir;
|
||||
}
|
||||
|
||||
void session_set_current_dir(struct session *sess, enum session_dir dir)
|
||||
const char *session_get_tuple_str(const struct session *sess)
|
||||
{
|
||||
return sess->tuple_str;
|
||||
}
|
||||
|
||||
void session_set_current_direction(struct session *sess, enum session_direction dir)
|
||||
{
|
||||
sess->cur_dir = dir;
|
||||
}
|
||||
|
||||
enum session_dir session_get_current_dir(const struct session *sess)
|
||||
enum session_direction session_get_current_direction(const struct session *sess)
|
||||
{
|
||||
return sess->cur_dir;
|
||||
}
|
||||
@@ -110,32 +115,32 @@ enum closing_reason session_get_closing_reason(const struct session *sess)
|
||||
return sess->reason;
|
||||
}
|
||||
|
||||
void session_inc_stat(struct session *sess, enum session_dir dir, enum session_stat stat, uint64_t val)
|
||||
void session_inc_stat(struct session *sess, enum session_direction dir, enum session_stat stat, uint64_t val)
|
||||
{
|
||||
sess->stats[dir][stat] += val;
|
||||
}
|
||||
|
||||
uint64_t session_get_stat(const struct session *sess, enum session_dir dir, enum session_stat stat)
|
||||
uint64_t session_get_stat(const struct session *sess, enum session_direction dir, enum session_stat stat)
|
||||
{
|
||||
return sess->stats[dir][stat];
|
||||
}
|
||||
|
||||
void session_set_timestamp(struct session *sess, enum session_timestamp idx, uint64_t timestamp)
|
||||
void session_set_timestamp(struct session *sess, enum session_timestamp type, uint64_t value)
|
||||
{
|
||||
sess->timestamps[idx] = timestamp;
|
||||
sess->timestamps[type] = value;
|
||||
}
|
||||
|
||||
uint64_t session_get_timestamp(const struct session *sess, enum session_timestamp idx)
|
||||
uint64_t session_get_timestamp(const struct session *sess, enum session_timestamp type)
|
||||
{
|
||||
return sess->timestamps[idx];
|
||||
return sess->timestamps[type];
|
||||
}
|
||||
|
||||
void session_set_1st_packet(struct session *sess, enum session_dir dir, const struct packet *pkt)
|
||||
void session_set_1st_packet(struct session *sess, enum session_direction dir, const struct packet *pkt)
|
||||
{
|
||||
sess->first_pkt[dir] = packet_dup(pkt);
|
||||
}
|
||||
|
||||
const struct packet *session_get_1st_packet(const struct session *sess, enum session_dir dir)
|
||||
const struct packet *session_get_1st_packet(const struct session *sess, enum session_direction dir)
|
||||
{
|
||||
return sess->first_pkt[dir];
|
||||
}
|
||||
@@ -162,7 +167,7 @@ void *session_get_user_data(const struct session *sess)
|
||||
|
||||
struct tcp_segment *session_get_tcp_segment(struct session *sess)
|
||||
{
|
||||
enum session_dir dir = session_get_current_dir(sess);
|
||||
enum session_direction dir = session_get_current_direction(sess);
|
||||
struct tcp_half *half = &sess->tcp_halfs[dir];
|
||||
|
||||
if (half->in_order.data != NULL && half->in_order.len > 0)
|
||||
@@ -190,7 +195,7 @@ void session_free_tcp_segment(struct session *sess, struct tcp_segment *seg)
|
||||
return;
|
||||
}
|
||||
|
||||
enum session_dir dir = session_get_current_dir(sess);
|
||||
enum session_direction dir = session_get_current_direction(sess);
|
||||
struct tcp_half *half = &sess->tcp_halfs[dir];
|
||||
|
||||
if (seg == &half->in_order)
|
||||
@@ -370,20 +375,20 @@ const char *session_type_to_str(enum session_type type)
|
||||
}
|
||||
}
|
||||
|
||||
const char *session_dir_to_str(enum session_dir dir)
|
||||
const char *session_direction_to_str(enum session_direction dir)
|
||||
{
|
||||
switch (dir)
|
||||
{
|
||||
case SESSION_DIR_C2S:
|
||||
case SESSION_DIRECTION_C2S:
|
||||
return "C2S";
|
||||
case SESSION_DIR_S2C:
|
||||
case SESSION_DIRECTION_S2C:
|
||||
return "S2C";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
void tcp_flags_to_str(uint8_t flags, char *buffer, size_t len)
|
||||
static void tcp_flags_to_str(uint8_t flags, char *buffer, size_t len)
|
||||
{
|
||||
int used = 0;
|
||||
|
||||
@@ -411,21 +416,68 @@ void session_dump(struct session *sess)
|
||||
tuple6_to_str(session_get_tuple(sess), buffer, sizeof(buffer));
|
||||
|
||||
printf("session id : %" PRIu64 "\n", session_get_id(sess));
|
||||
printf("session tuple : %s\n", buffer);
|
||||
printf("session tuple dir : %s\n", session_dir_to_str(session_get_tuple_dir(sess)));
|
||||
printf("session state : %s\n", session_state_to_str(session_get_state(sess)));
|
||||
printf("session timestamp : %" PRIu64 " -> %" PRIu64 "\n", session_get_timestamp(sess, SESSION_TIMESTAMP_START), session_get_timestamp(sess, SESSION_TIMESTAMP_LAST));
|
||||
printf("session tuple : %s (%s)\n", buffer, session_direction_to_str(session_get_tuple_direction(sess)));
|
||||
printf("session type : %s\n", session_type_to_str(session_get_type(sess)));
|
||||
printf("session dup traffic : %d\n", session_has_dup_traffic(sess));
|
||||
printf("session state : %s\n", session_state_to_str(session_get_state(sess)));
|
||||
printf("session closing reason : %s\n", closing_reason_to_str(session_get_closing_reason(sess)));
|
||||
printf("session new time : %" PRIu64 "\n", session_get_timestamp(sess, SESSION_TIMESTAMP_NEW));
|
||||
printf("session last time : %" PRIu64 "\n", session_get_timestamp(sess, SESSION_TIMESTAMP_LAST));
|
||||
printf("session current packet dir : %s\n", session_dir_to_str(session_get_current_dir(sess)));
|
||||
printf("session dup traffic : %d\n", session_has_dup_traffic(sess));
|
||||
printf("session C2S first packet : %p\n", session_get_1st_packet(sess, SESSION_DIRECTION_C2S));
|
||||
printf("session S2C first packet : %p\n", session_get_1st_packet(sess, SESSION_DIRECTION_S2C));
|
||||
printf("session current packet : %p (%s)\n", session_get_current_packet(sess), session_direction_to_str(session_get_current_direction(sess)));
|
||||
if (session_get_type(sess) == SESSION_TYPE_TCP)
|
||||
{
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
tcp_flags_to_str(sess->tcp_halfs[SESSION_DIRECTION_C2S].flags, buffer, sizeof(buffer));
|
||||
printf("TCP C2S half: seq: %u, ack: %u, flags: %s\n", sess->tcp_halfs[SESSION_DIRECTION_C2S].seq, sess->tcp_halfs[SESSION_DIRECTION_C2S].ack, buffer);
|
||||
|
||||
// TODO session stat
|
||||
|
||||
printf("session ex data:\n");
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
tcp_flags_to_str(sess->tcp_halfs[SESSION_DIRECTION_S2C].flags, buffer, sizeof(buffer));
|
||||
printf("TCP S2C half: seq: %u, ack: %u, flags: %s\n", sess->tcp_halfs[SESSION_DIRECTION_S2C].seq, sess->tcp_halfs[SESSION_DIRECTION_S2C].ack, buffer);
|
||||
}
|
||||
// exdata
|
||||
printf("session exdata:\n");
|
||||
for (uint8_t i = 0; i < g_ex_manager.count; i++)
|
||||
{
|
||||
printf(" ex_idx: %d, ex_key: %s, ex_data: %p\n", i, g_ex_manager.schemas[i].key, sess->ex_data[i]);
|
||||
printf(" idx: %d, key: %s, data: %p\n", i, g_ex_manager.schemas[i].key, sess->ex_data[i]);
|
||||
}
|
||||
// stats
|
||||
printf("session stats:\n");
|
||||
printf("+------------------------------------------------+\n");
|
||||
printf("| %-20s | %-10s | %-10s |\n", "stat", "C2S", "S2C");
|
||||
printf("+------------------------------------------------+\n");
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "RAW_PKTS_RX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "RAW_BYTES_RX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_RX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "RAW_PKTS_TX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_TX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_TX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "RAW_BYTES_TX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_TX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_TX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "RAW_PKTS_DROP", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_DROP), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_DROP));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "RAW_BYTES_DROP", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_DROP), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_DROP));
|
||||
printf("+------------------------------------------------+\n");
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "DUP_PKTS_BYPASS", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_DUP_PKTS_BYPASS), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_DUP_PKTS_BYPASS));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "DUP_BYTES_BYPASS", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_DUP_BYTES_BYPASS), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_DUP_BYTES_BYPASS));
|
||||
printf("+------------------------------------------------+\n");
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "CTRL_PKTS_RX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_CTRL_PKTS_RX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_CTRL_PKTS_RX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "CTRL_BYTES_RX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_CTRL_BYTES_RX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_CTRL_BYTES_RX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "CTRL_PKTS_TX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_CTRL_PKTS_TX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_CTRL_PKTS_TX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "CTRL_BYTES_TX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_CTRL_BYTES_TX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_CTRL_BYTES_TX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "CTRL_PKTS_DROP", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_CTRL_PKTS_DROP), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_CTRL_PKTS_DROP));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "CTRL_BYTES_DROP", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_CTRL_BYTES_DROP), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_CTRL_BYTES_DROP));
|
||||
printf("+------------------------------------------------+\n");
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_SEGS_RX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_SEGS_RX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_SEGS_RX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_PLDS_RX", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_PLDS_RX), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_PLDS_RX));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_SEGS_EXPIRED", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_SEGS_EXPIRED), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_SEGS_EXPIRED));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_PLDS_EXPIRED", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_PLDS_EXPIRED), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_PLDS_EXPIRED));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_SEGS_OVERLAP", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_SEGS_OVERLAP), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_SEGS_OVERLAP));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_PLDS_OVERLAP", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_PLDS_OVERLAP), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_PLDS_OVERLAP));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_SEGS_NOSPACE", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_SEGS_NOSPACE), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_SEGS_NOSPACE));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_PLDS_NOSPACE", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_PLDS_NOSPACE), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_PLDS_NOSPACE));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_SEGS_INORDER", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_SEGS_INORDER), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_SEGS_INORDER));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_PLDS_INORDER", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_PLDS_INORDER), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_PLDS_INORDER));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_SEGS_REORDERED", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_SEGS_REORDERED), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_SEGS_REORDERED));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_PLDS_REORDERED", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_PLDS_REORDERED), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_PLDS_REORDERED));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_SEGS_BUFFERED", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_SEGS_BUFFERED), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_SEGS_BUFFERED));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_PLDS_BUFFERED", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_PLDS_BUFFERED), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_PLDS_BUFFERED));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_SEGS_RELEASED", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_SEGS_RELEASED), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_SEGS_RELEASED));
|
||||
printf("| %-20s | %-10" PRIu64 " | %-10" PRIu64 " |\n", "TCP_PLDS_RELEASED", session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_PLDS_RELEASED), session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_PLDS_RELEASED));
|
||||
printf("+------------------------------------------------+\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user