add packet type raw and pseudo

This commit is contained in:
luwenpeng
2024-11-13 14:43:38 +08:00
parent 8349a631e1
commit 492a7fb8ea
10 changed files with 65 additions and 52 deletions

View File

@@ -136,7 +136,7 @@ static void on_packet_forward(struct packet *pkt, enum packet_stage stage, void
struct session *sess = session_manager_rte_lookup_session_by_packet(sess_mgr_rte, pkt);
if (sess == NULL)
{
if (packet_is_ctrl(pkt))
if (packet_get_type(pkt) == PACKET_TYPE_PSEUDO)
{
goto fast_path;
}
@@ -154,7 +154,7 @@ static void on_packet_forward(struct packet *pkt, enum packet_stage stage, void
}
else
{
if (packet_is_ctrl(pkt))
if (packet_get_type(pkt) == PACKET_TYPE_PSEUDO)
{
goto ctrl_path;
}
@@ -226,17 +226,17 @@ static void on_packet_output(struct packet *pkt, enum packet_stage stage, void *
flow = FLOW_TYPE_S2C;
}
int is_ctrl = packet_is_ctrl(pkt);
int is_pseudo = (packet_get_type(pkt) == PACKET_TYPE_PSEUDO);
uint16_t len = packet_get_raw_len(pkt);
switch (packet_get_action(pkt))
{
case PACKET_ACTION_DROP:
session_inc_stat(sess, flow, (is_ctrl ? STAT_CONTROL_PACKETS_DROPPED : STAT_RAW_PACKETS_DROPPED), 1);
session_inc_stat(sess, flow, (is_ctrl ? STAT_CONTROL_BYTES_DROPPED : STAT_RAW_BYTES_DROPPED), len);
session_inc_stat(sess, flow, (is_pseudo ? STAT_PSEUDO_PACKETS_DROPPED : STAT_RAW_PACKETS_DROPPED), 1);
session_inc_stat(sess, flow, (is_pseudo ? STAT_PSEUDO_BYTES_DROPPED : STAT_RAW_BYTES_DROPPED), len);
break;
case PACKET_ACTION_FORWARD:
session_inc_stat(sess, flow, (is_ctrl ? STAT_CONTROL_PACKETS_TRANSMITTED : STAT_RAW_PACKETS_TRANSMITTED), 1);
session_inc_stat(sess, flow, (is_ctrl ? STAT_CONTROL_BYTES_TRANSMITTED : STAT_RAW_BYTES_TRANSMITTED), len);
session_inc_stat(sess, flow, (is_pseudo ? STAT_PSEUDO_PACKETS_TRANSMITTED : STAT_RAW_PACKETS_TRANSMITTED), 1);
session_inc_stat(sess, flow, (is_pseudo ? STAT_PSEUDO_BYTES_TRANSMITTED : STAT_RAW_BYTES_TRANSMITTED), len);
break;
default:
assert(0);