summaryrefslogtreecommitdiff
path: root/common/src/tfe_packet_io_fs.cpp
diff options
context:
space:
mode:
authorwangmenglan <[email protected]>2023-05-15 16:41:59 +0800
committerwangmenglan <[email protected]>2023-05-15 16:41:59 +0800
commitb931a3dc58dead4e02cda48813bdffd2e2d072c0 (patch)
treedc6a7bf00c7bfdaa166e060d640da1aa780798ed /common/src/tfe_packet_io_fs.cpp
parent935aa7235e05b508ca7c989c2b54abad45bc2c1f (diff)
packet io增加fieldstat状态统计v4.8.12-20230515
Diffstat (limited to 'common/src/tfe_packet_io_fs.cpp')
-rw-r--r--common/src/tfe_packet_io_fs.cpp129
1 files changed, 81 insertions, 48 deletions
diff --git a/common/src/tfe_packet_io_fs.cpp b/common/src/tfe_packet_io_fs.cpp
index 13469b2..0a31e8a 100644
--- a/common/src/tfe_packet_io_fs.cpp
+++ b/common/src/tfe_packet_io_fs.cpp
@@ -8,14 +8,9 @@
enum PACKET_IO_STAT_FIELD
{
- // hit block policy
- STAT_HIT_POLICY_PKT,
- STAT_HIT_POLICY_B,
-
// dev nf interface
STAT_RAW_PKT_RX_PKT,
STAT_RAW_PKT_RX_B,
-
STAT_RAW_PKT_TX_PKT,
STAT_RAW_PKT_TX_B,
@@ -24,16 +19,18 @@ enum PACKET_IO_STAT_FIELD
STAT_DECRYPTED_RX_PKT,
STAT_DECRYPTED_RX_B,
- // control packet
- STAT_CONTROL_RX_PKT,
- STAT_CONTROL_RX_B,
- STAT_CONTROL_TX_PKT,
- STAT_CONTROL_TX_B,
+ STAT_RAW_PKT_BYPASS_PKT,
+ STAT_RAW_PKT_BYPASS_B,
+
+ STAT_DECRYPT_RXDROP_PKT,
+ STAT_DECRYPT_RXDROP_B,
STAT_TAP_RX_PKT,
STAT_TAP_RX_B,
STAT_TAP_TX_PKT,
STAT_TAP_TX_B,
+ STAT_TAP_RXDROP_PKT,
+ STAT_TAP_RXDROP_B,
STAT_TAP_C_RX_PKT,
STAT_TAP_C_RX_B,
@@ -45,14 +42,26 @@ enum PACKET_IO_STAT_FIELD
STAT_TAP_S_TX_PKT,
STAT_TAP_S_TX_B,
+ // keepalived packet
+ STAT_KEEPALIVED_RX_PKT,
+ STAT_KEEPALIVED_RX_B,
+ STAT_KEEPALIVED_TX_PKT,
+ STAT_KEEPALIVED_TX_B,
+
+ // control packet
+ STAT_CONTROL_RX_PKT,
+ STAT_CONTROL_RX_B,
+ STAT_CONTROL_TX_PKT,
+ STAT_CONTROL_TX_B,
+
STAT_CTRL_PKT_OPENING,
STAT_CTRL_PKT_ACTIVE,
STAT_CTRL_PKT_CLOSING,
STAT_CTRL_PKT_RESETALL,
STAT_CTRL_PKT_ERROR,
- // send log
- STAT_SEND_LOG,
+ STAT_SESSION_NUM,
+ STAT_SESSION_LOG,
// max
STAT_MAX,
@@ -60,14 +69,9 @@ enum PACKET_IO_STAT_FIELD
static const char *stat_map[] =
{
- // hit policy
- [STAT_HIT_POLICY_PKT] = "hit_policy_pkt",
- [STAT_HIT_POLICY_B] = "hit_policy_B",
-
// dev nf interface
[STAT_RAW_PKT_RX_PKT] = "raw_rx_pkt",
[STAT_RAW_PKT_RX_B] = "raw_rx_B",
-
[STAT_RAW_PKT_TX_PKT] = "raw_tx_pkt",
[STAT_RAW_PKT_TX_B] = "raw_tx_B",
@@ -77,26 +81,44 @@ static const char *stat_map[] =
[STAT_DECRYPTED_RX_PKT] = "decrypt_rx_pkt",
[STAT_DECRYPTED_RX_B] = "decrypt_rx_B",
- // control packet
- [STAT_CONTROL_RX_PKT] = "ctrl_rx_pkt",
- [STAT_CONTROL_RX_B] = "ctrl_rx_B",
- [STAT_CONTROL_TX_PKT] = "ctrl_tx_pkt",
- [STAT_CONTROL_TX_B] = "ctrl_tx_B",
+ [STAT_RAW_PKT_BYPASS_PKT] = "raw_bypass_pkt",
+ [STAT_RAW_PKT_BYPASS_B] = "raw_bypass_B",
+
+ [STAT_DECRYPT_RXDROP_PKT] = "dec_rxdrop_pkt",
+ [STAT_DECRYPT_RXDROP_B] = "dec_rxdrop_B",
// tap packet
[STAT_TAP_RX_PKT] = "tap_rx_pkt",
[STAT_TAP_RX_B] = "tap_rx_B",
[STAT_TAP_TX_PKT] = "tap_tx_pkt",
[STAT_TAP_TX_B] = "tap_tx_B",
+ [STAT_TAP_RXDROP_PKT] = "tap_rxdrop_pkt",
+ [STAT_TAP_RXDROP_B] = "tap_rxdrop_B",
+
+ // tap_c packet
[STAT_TAP_C_RX_PKT] = "tap_c_rx_pkt",
[STAT_TAP_C_RX_B] = "tap_c_rx_B",
[STAT_TAP_C_TX_PKT] = "tap_c_tx_pkt",
[STAT_TAP_C_TX_B] = "tap_c_tx_B",
+
+ // tap_s packet
[STAT_TAP_S_RX_PKT] = "tap_s_rx_pkt",
[STAT_TAP_S_RX_B] = "tap_s_rx_B",
[STAT_TAP_S_TX_PKT] = "tap_s_tx_pkt",
[STAT_TAP_S_TX_B] = "tap_s_tx_B",
+ // keepalived packet
+ [STAT_KEEPALIVED_RX_PKT] = "keep_rx_pkt",
+ [STAT_KEEPALIVED_RX_B] = "keep_rx_B",
+ [STAT_KEEPALIVED_TX_PKT] = "keep_tx_pkt",
+ [STAT_KEEPALIVED_TX_B] = "keep_tx_B",
+
+ // control packet
+ [STAT_CONTROL_RX_PKT] = "ctrl_rx_pkt",
+ [STAT_CONTROL_RX_B] = "ctrl_rx_B",
+ [STAT_CONTROL_TX_PKT] = "ctrl_tx_pkt",
+ [STAT_CONTROL_TX_B] = "ctrl_tx_B",
+
[STAT_CTRL_PKT_OPENING] = "ctrl_pkt_open",
[STAT_CTRL_PKT_ACTIVE] = "ctrl_pkt_avtive",
[STAT_CTRL_PKT_CLOSING] = "ctrl_pkt_close",
@@ -104,7 +126,8 @@ static const char *stat_map[] =
[STAT_CTRL_PKT_ERROR] = "ctrl_pkt_error",
// send log
- [STAT_SEND_LOG] = "send_log",
+ [STAT_SESSION_NUM] = "session_num",
+ [STAT_SESSION_LOG] = "session_log",
[STAT_MAX] = NULL
};
@@ -119,21 +142,22 @@ void throughput_metrics_inc(struct throughput_metrics *iterm, uint64_t n_pkts, u
__atomic_fetch_add(&iterm->n_pkts, n_pkts, __ATOMIC_RELAXED);
}
-struct packet_io_fs *packet_io_fs_create()
+struct packet_io_fs *packet_io_fs_create(const char *profile)
{
- int value=0, i=0;
+ int value=0;
const char* app_name="packet_io";
const char* fieldstat_output="log/packet_io.fs2";
struct packet_io_fs *handle = (struct packet_io_fs *)calloc(1, sizeof(struct packet_io_fs));
-
handle->fs_handle=FS_create_handle();
- FS_set_para(handle->fs_handle, OUTPUT_DEVICE, fieldstat_output, strlen(fieldstat_output)+1);
- value=1;
- FS_set_para(handle->fs_handle, PRINT_MODE, &value, sizeof(value));
- value=0;
- FS_set_para(handle->fs_handle, CREATE_THREAD, &value, sizeof(value));
FS_set_para(handle->fs_handle, APP_NAME, app_name, strlen(app_name)+1);
+ FS_set_para(handle->fs_handle, OUTPUT_DEVICE, fieldstat_output, strlen(fieldstat_output)+1);
+ value = 1;
+ FS_set_para(handle->fs_handle, OUTPUT_PROMETHEUS, &value, sizeof(value));
+ value=1;
+ FS_set_para(handle->fs_handle, PRINT_MODE, &value, sizeof(value));
+ value=0;
+ FS_set_para(handle->fs_handle, CREATE_THREAD, &value, sizeof(value));
for (int i = 0; i < STAT_MAX; i++)
{
@@ -147,7 +171,6 @@ void packet_io_fs_destory(struct packet_io_fs *handle)
{
if (handle)
{
- FS_library_destroy();
free(handle);
handle = NULL;
}
@@ -157,42 +180,51 @@ void packet_io_fs_dump(struct packet_io_fs *handle)
{
if (handle == NULL)
return;
- FS_operate(handle->fs_handle, handle->fs_id[STAT_HIT_POLICY_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->hit_policy.n_pkts), 0, __ATOMIC_RELAXED));
- FS_operate(handle->fs_handle, handle->fs_id[STAT_HIT_POLICY_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->hit_policy.n_bytes), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_RAW_PKT_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->raw_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_RAW_PKT_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->raw_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
-
FS_operate(handle->fs_handle, handle->fs_id[STAT_RAW_PKT_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->raw_pkt_tx.n_pkts), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_RAW_PKT_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->raw_pkt_tx.n_bytes), 0, __ATOMIC_RELAXED));
-
FS_operate(handle->fs_handle, handle->fs_id[STAT_DECRYPTED_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->decrypt_tx.n_pkts), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_DECRYPTED_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->decrypt_tx.n_bytes), 0, __ATOMIC_RELAXED));
-
FS_operate(handle->fs_handle, handle->fs_id[STAT_DECRYPTED_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->decrypt_rx.n_pkts), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_DECRYPTED_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->decrypt_rx.n_bytes), 0, __ATOMIC_RELAXED));
- // control packet
- FS_operate(handle->fs_handle, handle->fs_id[STAT_CONTROL_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
- FS_operate(handle->fs_handle, handle->fs_id[STAT_CONTROL_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
- FS_operate(handle->fs_handle, handle->fs_id[STAT_CONTROL_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_tx.n_pkts), 0, __ATOMIC_RELAXED));
- FS_operate(handle->fs_handle, handle->fs_id[STAT_CONTROL_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_tx.n_bytes), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_RAW_PKT_BYPASS_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->raw_bypass.n_pkts), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_RAW_PKT_BYPASS_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->raw_bypass.n_bytes), 0, __ATOMIC_RELAXED));
+
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_DECRYPT_RXDROP_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->decrypt_rxdrop.n_pkts), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_DECRYPT_RXDROP_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->decrypt_rxdrop.n_bytes), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_tx.n_pkts), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_tx.n_bytes), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_RXDROP_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_rxdrop.n_pkts), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_RXDROP_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_rxdrop.n_bytes), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_C_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_c_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_C_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_c_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_C_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_c_pkt_tx.n_pkts), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_C_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_c_pkt_tx.n_bytes), 0, __ATOMIC_RELAXED));
- FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_S_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
- FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_S_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
- FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_S_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_tx.n_pkts), 0, __ATOMIC_RELAXED));
- FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_S_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_pkt_tx.n_bytes), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_S_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_s_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_S_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_s_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_S_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_s_pkt_tx.n_pkts), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_TAP_S_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->tap_s_pkt_tx.n_bytes), 0, __ATOMIC_RELAXED));
+
+ // keepalived packet
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_KEEPALIVED_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->keepalived_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_KEEPALIVED_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->keepalived_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_KEEPALIVED_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->keepalived_pkt_tx.n_pkts), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_KEEPALIVED_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->keepalived_pkt_tx.n_bytes), 0, __ATOMIC_RELAXED));
+
+ // control packet
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_CONTROL_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_CONTROL_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_CONTROL_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_tx.n_pkts), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_CONTROL_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_tx.n_bytes), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_CTRL_PKT_OPENING], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_opening_num), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_CTRL_PKT_ACTIVE], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_active_num), 0, __ATOMIC_RELAXED));
@@ -200,6 +232,7 @@ void packet_io_fs_dump(struct packet_io_fs *handle)
FS_operate(handle->fs_handle, handle->fs_id[STAT_CTRL_PKT_RESETALL], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_resetall_num), 0, __ATOMIC_RELAXED));
FS_operate(handle->fs_handle, handle->fs_id[STAT_CTRL_PKT_ERROR], 0, FS_OP_SET, __atomic_fetch_add(&(handle->ctrl_pkt_error_num), 0, __ATOMIC_RELAXED));
- // send log
- FS_operate(handle->fs_handle, handle->fs_id[STAT_SEND_LOG], 0, FS_OP_SET, __atomic_fetch_add(&(handle->send_log), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_SESSION_NUM], 0, FS_OP_SET, __atomic_fetch_add(&(handle->session_num), 0, __ATOMIC_RELAXED));
+ FS_operate(handle->fs_handle, handle->fs_id[STAT_SESSION_LOG], 0, FS_OP_SET, __atomic_fetch_add(&(handle->session_log), 0, __ATOMIC_RELAXED));
+ FS_passive_output(handle->fs_handle);
}