fieldstat增加对控制报文类型的计数
This commit is contained in:
@@ -556,7 +556,7 @@ static int packet_io_get_metadata(marsio_buff_t *rx_buff, struct metadata *meta)
|
||||
}
|
||||
|
||||
meta->sids.num = marsio_buff_get_sid_list(rx_buff, meta->sids.elems, sizeof(meta->sids.elems) / sizeof(meta->sids.elems[0]));
|
||||
if (meta->sids.num <= 0)
|
||||
if (meta->sids.num < 0)
|
||||
{
|
||||
LOG_ERROR("%s: unable to get sid_list from metadata", LOG_TAG_PKTIO);
|
||||
return -1;
|
||||
@@ -618,7 +618,7 @@ static int packet_io_set_metadata(marsio_buff_t *tx_buff, struct metadata *meta)
|
||||
}
|
||||
}
|
||||
|
||||
if (meta->sids.num)
|
||||
if (meta->sids.num > 0)
|
||||
{
|
||||
if (marsio_buff_set_sid_list(tx_buff, meta->sids.elems, meta->sids.num) != 0)
|
||||
{
|
||||
@@ -639,11 +639,15 @@ static void packet_io_dump_metadata(marsio_buff_t *tx_buff, struct metadata *met
|
||||
// return -1 : error
|
||||
static int handle_control_packet(struct packet_io *handle, marsio_buff_t *rx_buff, int thread_seq, void *ctx)
|
||||
{
|
||||
struct thread_ctx *thread = (struct thread_ctx *)ctx;
|
||||
struct global_metrics *g_metrics = thread->ref_metrics;
|
||||
|
||||
struct metadata meta;
|
||||
if (packet_io_get_metadata(rx_buff, &meta) == -1)
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet, unable to get metadata", LOG_TAG_PKTIO);
|
||||
packet_io_dump_metadata(rx_buff, &meta);
|
||||
__atomic_fetch_add(&g_metrics->control_packet_error_num, 1, __ATOMIC_RELAXED);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -652,27 +656,37 @@ static int handle_control_packet(struct packet_io *handle, marsio_buff_t *rx_buf
|
||||
if (ctrl_packet_parser_parse(&ctrl_parser, meta.raw_data + meta.l7_offset, meta.raw_len - meta.l7_offset) == -1)
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet, unable to parse data", LOG_TAG_PKTIO);
|
||||
__atomic_fetch_add(&g_metrics->control_packet_error_num, 1, __ATOMIC_RELAXED);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (ctrl_parser.session_id != meta.session_id)
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet, metadata's session %lu != control packet's session %lu", LOG_TAG_PKTIO, meta.session_id, ctrl_parser.session_id);
|
||||
__atomic_fetch_add(&g_metrics->control_packet_error_num, 1, __ATOMIC_RELAXED);
|
||||
return -1;
|
||||
}
|
||||
|
||||
LOG_INFO("%s: recv control packet, session %lu %s", LOG_TAG_PKTIO, ctrl_parser.session_id, session_state_to_string(ctrl_parser.state));
|
||||
|
||||
switch (ctrl_parser.state)
|
||||
{
|
||||
case SESSION_STATE_OPENING:
|
||||
__atomic_fetch_add(&g_metrics->control_packet_opening_num, 1, __ATOMIC_RELAXED);
|
||||
// when session opening, firewall not send policy id
|
||||
// return handle_session_opening(&meta, &ctrl_parser, thread_seq, ctx);
|
||||
break;
|
||||
case SESSION_STATE_CLONING:
|
||||
case SESSION_STATE_CLOSING:
|
||||
__atomic_fetch_add(&g_metrics->control_packet_closing_num, 1, __ATOMIC_RELAXED);
|
||||
return handle_session_closing(&meta, &ctrl_parser, thread_seq, ctx);
|
||||
case SESSION_STATE_ACTIVE:
|
||||
__atomic_fetch_add(&g_metrics->control_packet_active_num, 1, __ATOMIC_RELAXED);
|
||||
return handle_session_active(&meta, &ctrl_parser, thread_seq, ctx);
|
||||
case SESSION_STATE_RESETALL:
|
||||
__atomic_fetch_add(&g_metrics->control_packet_resetall_num, 1, __ATOMIC_RELAXED);
|
||||
return handle_session_resetall(&meta, &ctrl_parser, thread_seq, ctx);
|
||||
default:
|
||||
__atomic_fetch_add(&g_metrics->control_packet_error_num, 1, __ATOMIC_RELAXED);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -1201,7 +1215,7 @@ static int handle_session_opening(struct metadata *meta, struct ctrl_pkt_parser
|
||||
s_ctx->first_ctrl_pkt.header_len = meta->l7_offset;
|
||||
s_ctx->chaining = selected_chaining_create(128);
|
||||
|
||||
LOG_INFO("%s: session %lu %s opening", LOG_TAG_PKTIO, s_ctx->session_id, s_ctx->first_ctrl_pkt.addr_string);
|
||||
LOG_INFO("%s: session %lu %s active first", LOG_TAG_PKTIO, s_ctx->session_id, s_ctx->first_ctrl_pkt.addr_string);
|
||||
|
||||
for (int i = 0; i < parser->policy_id_num; i++)
|
||||
{
|
||||
@@ -1266,7 +1280,7 @@ static int handle_session_active(struct metadata *meta, struct ctrl_pkt_parser *
|
||||
}
|
||||
|
||||
struct session_ctx *s_ctx = (struct session_ctx *)node->val_data;
|
||||
LOG_INFO("%s: session %lu %s update", LOG_TAG_PKTIO, s_ctx->session_id, s_ctx->first_ctrl_pkt.addr_string);
|
||||
LOG_INFO("%s: session %lu %s active again", LOG_TAG_PKTIO, s_ctx->session_id, s_ctx->first_ctrl_pkt.addr_string);
|
||||
|
||||
for (int i = 0; i < parser->policy_id_num; i++)
|
||||
{
|
||||
@@ -1299,7 +1313,7 @@ static int handle_session_resetall(struct metadata *meta, struct ctrl_pkt_parser
|
||||
struct global_metrics *g_metrics = thread->ref_metrics;
|
||||
struct sce_ctx *sce_ctx = thread->ref_sce_ctx;
|
||||
|
||||
LOG_ERROR("%s: session %lu notification clears all session tables !!!", LOG_TAG_PKTIO, meta->session_id);
|
||||
LOG_ERROR("%s: session %lu resetall: notification clears all session tables !!!", LOG_TAG_PKTIO, meta->session_id);
|
||||
|
||||
__atomic_fetch_and(&g_metrics->session_nums, 0, __ATOMIC_RELAXED);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user