feature: packet IO support IP reassembly

This commit is contained in:
luwenpeng
2024-10-23 10:01:20 +08:00
parent a7b79a0e22
commit fd3cc20554
54 changed files with 3474 additions and 4271 deletions

View File

@@ -14,15 +14,13 @@ extern "C"
#include "stellar/session.h"
#include "tcp_reassembly.h"
#define EX_DATA_MAX_COUNT 4
// output format: "${src_addr}:${src_port}-${dst_addr}:${dst_port}-${ip_proto}-${domain}"
// output max len: (46 + 1 + 5) + 1 + (46 + 1 + 5) + 1 + 1 + 1 + 20 = 129
#define TUPLE6_STR_SIZE 130
struct tcp_half
{
struct tcp_reassembly *assembler;
struct tcp_reassembly *tcp_reass;
struct tcp_segment in_order; // current packet in order segment
uint32_t in_order_ref; // reference count of current packet in order segment
@@ -62,7 +60,6 @@ struct session
struct route_ctx route_ctx[MAX_FLOW_TYPE];
const struct packet *first_pkt[MAX_FLOW_TYPE];
const struct packet *curr_pkt;
void *ex_data[EX_DATA_MAX_COUNT];
void *user_data;
int is_symmetric;
int dup;
@@ -75,7 +72,7 @@ struct session
struct session_manager_stat *sess_mgr_stat;
};
TAILQ_HEAD(session_list, session);
TAILQ_HEAD(session_queue, session);
void session_init(struct session *sess);