diff options
Diffstat (limited to 'common/src/tfe_packet_io_fs.cpp')
| -rw-r--r-- | common/src/tfe_packet_io_fs.cpp | 129 |
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); } |
