TSG-13837 支持decrypted traffic steering/mirroring,并重构packet_io
This commit is contained in:
@@ -8,49 +8,75 @@
|
||||
|
||||
enum SCE_STAT_FIELD
|
||||
{
|
||||
// dev endpoint
|
||||
STAT_ENDPOINT_RX_PKT,
|
||||
STAT_ENDPOINT_RX_B,
|
||||
// device_metrics
|
||||
STAT_DEVICE_NF_RX_PKT,
|
||||
STAT_DEVICE_NF_RX_B,
|
||||
|
||||
STAT_ENDPOINT_TX_PKT,
|
||||
STAT_ENDPOINT_TX_B,
|
||||
STAT_DEVICE_NF_TX_PKT,
|
||||
STAT_DEVICE_NF_TX_B,
|
||||
|
||||
STAT_ENDPOINT_ERR_DROP_PKT,
|
||||
STAT_ENDPOINT_ERR_DROP_B,
|
||||
STAT_DEVICE_ENDPOINT_RX_PKT,
|
||||
STAT_DEVICE_ENDPOINT_RX_B,
|
||||
|
||||
// hit block policy
|
||||
STAT_HIT_BLOCK_POLICY_PKT,
|
||||
STAT_HIT_BLOCK_POLICY_B,
|
||||
STAT_DEVICE_ENDPOINT_TX_PKT,
|
||||
STAT_DEVICE_ENDPOINT_TX_B,
|
||||
|
||||
// dev nf interface
|
||||
STAT_RAW_PKT_RX_PKT,
|
||||
STAT_RAW_PKT_RX_B,
|
||||
// keepalived_pkt_metrics
|
||||
STAT_KEE_PKT_DOWN_RX_PKT,
|
||||
STAT_KEE_PKT_DOWN_RX_B,
|
||||
|
||||
STAT_RAW_PKT_TX_PKT,
|
||||
STAT_RAW_PKT_TX_B,
|
||||
STAT_KEE_PKT_DOWN_TX_PKT,
|
||||
STAT_KEE_PKT_DOWN_TX_B,
|
||||
|
||||
STAT_RAW_PKT_ERR_BYPASS_PKT,
|
||||
STAT_RAW_PKT_ERR_BYPASS_B,
|
||||
STAT_KEE_PKT_UP_RX_PKT,
|
||||
STAT_KEE_PKT_UP_RX_B,
|
||||
|
||||
// hit bypass policy
|
||||
STAT_HIT_BYPASS_POLICY_PKT,
|
||||
STAT_HIT_BYPASS_POLICY_B,
|
||||
STAT_KEE_PKT_UP_TX_DROP_PKT,
|
||||
STAT_KEE_PKT_UP_TX_DROP_B,
|
||||
|
||||
// steering
|
||||
STAT_STEERING_TX_PKT,
|
||||
STAT_STEERING_TX_B,
|
||||
STAT_STEERING_RX_PKT,
|
||||
STAT_STEERING_RX_B,
|
||||
// raw_pkt_metrics
|
||||
STAT_RAW_PKT_MIRR_BYPASS_PKT,
|
||||
STAT_RAW_PKT_MIRR_BYPASS_B,
|
||||
|
||||
// mirroring
|
||||
STAT_MIRRORING_TX_PKT,
|
||||
STAT_MIRRORING_TX_B,
|
||||
STAT_MIRRORING_RX_DROP_PKT,
|
||||
STAT_MIRRORING_RX_DROP_B,
|
||||
STAT_RAW_PKT_MIRR_BLOCK_PKT,
|
||||
STAT_RAW_PKT_MIRR_BLOCK_B,
|
||||
|
||||
// control packet
|
||||
STAT_CONTROL_RX_PKT,
|
||||
STAT_CONTROL_RX_B,
|
||||
STAT_RAW_PKT_MIRR_RX_DROP_PKT,
|
||||
STAT_RAW_PKT_MIRR_RX_DROP_B,
|
||||
|
||||
STAT_RAW_PKT_MIRR_TX_PKT,
|
||||
STAT_RAW_PKT_MIRR_TX_B,
|
||||
|
||||
STAT_RAW_PKT_STEE_BYPASS_PKT,
|
||||
STAT_RAW_PKT_STEE_BYPASS_B,
|
||||
|
||||
STAT_RAW_PKT_STEE_BLOCK_PKT,
|
||||
STAT_RAW_PKT_STEE_BLOCK_B,
|
||||
|
||||
STAT_RAW_PKT_STEE_RX_PKT,
|
||||
STAT_RAW_PKT_STEE_RX_B,
|
||||
|
||||
STAT_RAW_PKT_STEE_TX_PKT,
|
||||
STAT_RAW_PKT_STEE_TX_B,
|
||||
|
||||
STAT_RAW_PKT_MISS_SESS_PKT,
|
||||
STAT_RAW_PKT_MISS_SESS_B,
|
||||
|
||||
STAT_RAW_PKT_ERROR_BYPASS_PKT,
|
||||
STAT_RAW_PKT_ERROR_BYPASS_B,
|
||||
|
||||
STAT_RAW_PKT_ERROR_BLOCK_PKT,
|
||||
STAT_RAW_PKT_ERROR_BLOCK_B,
|
||||
|
||||
STAT_DEVICE_ENDPOINT_DROP_PKT,
|
||||
STAT_DEVICE_ENDPOINT_DROP_B,
|
||||
|
||||
// ctrl_pkt_metrics
|
||||
STAT_CTRL_PKT_RX_PKT,
|
||||
STAT_CTRL_PKT_RX_B,
|
||||
|
||||
STAT_CTRL_PKT_TX_PKT,
|
||||
STAT_CTRL_PKT_TX_B,
|
||||
|
||||
STAT_CTRL_PKT_OPENING,
|
||||
STAT_CTRL_PKT_ACTIVE,
|
||||
@@ -58,21 +84,13 @@ enum SCE_STAT_FIELD
|
||||
STAT_CTRL_PKT_RESETALL,
|
||||
STAT_CTRL_PKT_ERROR,
|
||||
|
||||
// current session number
|
||||
STAT_CURRENT_SESSION_NUMS,
|
||||
// sf_session_metrics
|
||||
STAT_SF_SESSION_NUM,
|
||||
STAT_SF_SESSION_LOG,
|
||||
|
||||
// keepalive packet
|
||||
STAT_DOWNLINK_KEEPALIVE_RX_PKT,
|
||||
STAT_DOWNLINK_KEEPALIVE_RX_B,
|
||||
STAT_UPLINK_KEEPALIVE_RX_PKT,
|
||||
STAT_UPLINK_KEEPALIVE_RX_B,
|
||||
|
||||
// health check
|
||||
STAT_SF_ACTIVE_TIMES,
|
||||
STAT_SF_INACTIVE_TIMES,
|
||||
|
||||
// send log
|
||||
STAT_SEND_LOG,
|
||||
// sf_status_metrics
|
||||
STAT_SF_STATUS_ACTIVE,
|
||||
STAT_SF_STATUS_INACTIVE,
|
||||
|
||||
// max
|
||||
STAT_MAX,
|
||||
@@ -80,75 +98,93 @@ enum SCE_STAT_FIELD
|
||||
|
||||
static const char *stat_map[] =
|
||||
{
|
||||
// dev endpoint
|
||||
[STAT_ENDPOINT_RX_PKT] = "endp_rx_pkt",
|
||||
[STAT_ENDPOINT_RX_B] = "endp_rx_B",
|
||||
// device_metrics
|
||||
[STAT_DEVICE_NF_RX_PKT] = "nf_rx_pkt",
|
||||
[STAT_DEVICE_NF_RX_B] = "nf_rx_B",
|
||||
|
||||
[STAT_ENDPOINT_TX_PKT] = "endp_tx_pkt",
|
||||
[STAT_ENDPOINT_TX_B] = "endp_tx_B",
|
||||
[STAT_DEVICE_NF_TX_PKT] = "nf_tx_pkt",
|
||||
[STAT_DEVICE_NF_TX_B] = "nf_tx_B",
|
||||
|
||||
[STAT_ENDPOINT_ERR_DROP_PKT] = "endp_edrop_pkt",
|
||||
[STAT_ENDPOINT_ERR_DROP_B] = "endp_edrop_B",
|
||||
[STAT_DEVICE_ENDPOINT_RX_PKT] = "endp_rx_pkt",
|
||||
[STAT_DEVICE_ENDPOINT_RX_B] = "endp_rx_B",
|
||||
|
||||
// hit block policy
|
||||
[STAT_HIT_BLOCK_POLICY_PKT] = "hit_block_pkt",
|
||||
[STAT_HIT_BLOCK_POLICY_B] = "hit_block_B",
|
||||
[STAT_DEVICE_ENDPOINT_TX_PKT] = "endp_tx_pkt",
|
||||
[STAT_DEVICE_ENDPOINT_TX_B] = "endp_tx_B",
|
||||
|
||||
// dev nf interface
|
||||
[STAT_RAW_PKT_RX_PKT] = "raw_rx_pkt",
|
||||
[STAT_RAW_PKT_RX_B] = "raw_rx_B",
|
||||
// keepalived_pkt_metrics
|
||||
[STAT_KEE_PKT_DOWN_RX_PKT] = "kee_d_rx_pkt",
|
||||
[STAT_KEE_PKT_DOWN_RX_B] = "kee_d_rx_B",
|
||||
|
||||
[STAT_RAW_PKT_TX_PKT] = "raw_tx_pkt",
|
||||
[STAT_RAW_PKT_TX_B] = "raw_tx_B",
|
||||
[STAT_KEE_PKT_DOWN_TX_PKT] = "kee_d_tx_pkt",
|
||||
[STAT_KEE_PKT_DOWN_TX_B] = "kee_d_tx_B",
|
||||
|
||||
[STAT_RAW_PKT_ERR_BYPASS_PKT] = "raw_ebypass_pkt",
|
||||
[STAT_RAW_PKT_ERR_BYPASS_B] = "raw_ebypass_B",
|
||||
[STAT_KEE_PKT_UP_RX_PKT] = "kee_u_rx_pkt",
|
||||
[STAT_KEE_PKT_UP_RX_B] = "kee_u_rx_B",
|
||||
|
||||
// hit bypass policy
|
||||
[STAT_HIT_BYPASS_POLICY_PKT] = "hit_bypass_pkt",
|
||||
[STAT_HIT_BYPASS_POLICY_B] = "hit_bypass_B",
|
||||
[STAT_KEE_PKT_UP_TX_DROP_PKT] = "kee_u_rxdop_pkt",
|
||||
[STAT_KEE_PKT_UP_TX_DROP_B] = "kee_u_rxdop_B",
|
||||
|
||||
// steering
|
||||
[STAT_STEERING_TX_PKT] = "stee_tx_pkt",
|
||||
[STAT_STEERING_TX_B] = "stee_tx_B",
|
||||
[STAT_STEERING_RX_PKT] = "stee_rx_pkt",
|
||||
[STAT_STEERING_RX_B] = "stee_rx_B",
|
||||
// raw_pkt_metrics
|
||||
[STAT_RAW_PKT_MIRR_BYPASS_PKT] = "mirr_bypass_pkt",
|
||||
[STAT_RAW_PKT_MIRR_BYPASS_B] = "mirr_bypass_B",
|
||||
|
||||
// mirroring
|
||||
[STAT_MIRRORING_TX_PKT] = "mirr_tx_pkt",
|
||||
[STAT_MIRRORING_TX_B] = "mirr_tx_B",
|
||||
[STAT_MIRRORING_RX_DROP_PKT] = "mirr_rx_dop_pkt",
|
||||
[STAT_MIRRORING_RX_DROP_B] = "mirr_rx_dop_B",
|
||||
[STAT_RAW_PKT_MIRR_BLOCK_PKT] = "mirr_block_pkt",
|
||||
[STAT_RAW_PKT_MIRR_BLOCK_B] = "mirr_block_B",
|
||||
|
||||
// control packet
|
||||
[STAT_CONTROL_RX_PKT] = "ctrl_rx_pkt",
|
||||
[STAT_CONTROL_RX_B] = "ctrl_rx_B",
|
||||
[STAT_RAW_PKT_MIRR_RX_DROP_PKT] = "mirr_rxdop_pkt",
|
||||
[STAT_RAW_PKT_MIRR_RX_DROP_B] = "mirr_rxdop_B",
|
||||
|
||||
[STAT_CTRL_PKT_OPENING] = "ctrl_pkt_open",
|
||||
[STAT_CTRL_PKT_ACTIVE] = "ctrl_pkt_avtive",
|
||||
[STAT_CTRL_PKT_CLOSING] = "ctrl_pkt_close",
|
||||
[STAT_CTRL_PKT_RESETALL] = "ctrl_pkt_reset",
|
||||
[STAT_CTRL_PKT_ERROR] = "ctrl_pkt_error",
|
||||
[STAT_RAW_PKT_MIRR_TX_PKT] = "mirro_tx_pkt",
|
||||
[STAT_RAW_PKT_MIRR_TX_B] = "mirro_tx_B",
|
||||
|
||||
// current session number
|
||||
[STAT_CURRENT_SESSION_NUMS] = "curr_sess_num",
|
||||
[STAT_RAW_PKT_STEE_BYPASS_PKT] = "stee_bypass_pkt",
|
||||
[STAT_RAW_PKT_STEE_BYPASS_B] = "stee_bypass_B",
|
||||
|
||||
// keepalive packet
|
||||
[STAT_DOWNLINK_KEEPALIVE_RX_PKT] = "dlnk_kep_rx_pkt",
|
||||
[STAT_DOWNLINK_KEEPALIVE_RX_B] = "dlnk_kep_rx_B",
|
||||
[STAT_UPLINK_KEEPALIVE_RX_PKT] = "ulnk_kep_rx_pkt",
|
||||
[STAT_UPLINK_KEEPALIVE_RX_B] = "ulnk_kep_rx_B",
|
||||
[STAT_RAW_PKT_STEE_BLOCK_PKT] = "stee_block_pkt",
|
||||
[STAT_RAW_PKT_STEE_BLOCK_B] = "stee_block_B",
|
||||
|
||||
// health check
|
||||
[STAT_SF_ACTIVE_TIMES] = "sf_active",
|
||||
[STAT_SF_INACTIVE_TIMES] = "sf_inactive",
|
||||
[STAT_RAW_PKT_STEE_RX_PKT] = "stee_rx_pkt",
|
||||
[STAT_RAW_PKT_STEE_RX_B] = "stee_rx_B",
|
||||
|
||||
// send log
|
||||
[STAT_SEND_LOG] = "send_log",
|
||||
[STAT_RAW_PKT_STEE_TX_PKT] = "stee_tx_pkt",
|
||||
[STAT_RAW_PKT_STEE_TX_B] = "stee_tx_B",
|
||||
|
||||
[STAT_RAW_PKT_MISS_SESS_PKT] = "miss_sess_pkt",
|
||||
[STAT_RAW_PKT_MISS_SESS_B] = "miss_sess_B",
|
||||
|
||||
[STAT_RAW_PKT_ERROR_BYPASS_PKT] = "err_bypass_pkt",
|
||||
[STAT_RAW_PKT_ERROR_BYPASS_B] = "err_bypass_B",
|
||||
|
||||
[STAT_RAW_PKT_ERROR_BLOCK_PKT] = "err_block_pkt",
|
||||
[STAT_RAW_PKT_ERROR_BLOCK_B] = "err_block_B",
|
||||
|
||||
[STAT_DEVICE_ENDPOINT_DROP_PKT] = "endp_drop_pkt",
|
||||
[STAT_DEVICE_ENDPOINT_DROP_B] = "endp_drop_B",
|
||||
|
||||
// ctrl_pkt_metrics
|
||||
[STAT_CTRL_PKT_RX_PKT] = "ctrl_rx_pkt",
|
||||
[STAT_CTRL_PKT_RX_B] = "ctrl_rx_B",
|
||||
|
||||
[STAT_CTRL_PKT_TX_PKT] = "ctrl_tx_pkt",
|
||||
[STAT_CTRL_PKT_TX_B] = "ctrl_tx_B",
|
||||
|
||||
[STAT_CTRL_PKT_OPENING] = "ctrl_opening",
|
||||
[STAT_CTRL_PKT_ACTIVE] = "ctrl_active",
|
||||
[STAT_CTRL_PKT_CLOSING] = "ctrl_closing",
|
||||
[STAT_CTRL_PKT_RESETALL] = "ctrl_resetall",
|
||||
[STAT_CTRL_PKT_ERROR] = "ctrl_error",
|
||||
|
||||
// sf_session_metrics
|
||||
[STAT_SF_SESSION_NUM] = "session_num",
|
||||
[STAT_SF_SESSION_LOG] = "session_logs",
|
||||
|
||||
// sf_status_metrics
|
||||
[STAT_SF_STATUS_ACTIVE] = "sf_active",
|
||||
[STAT_SF_STATUS_INACTIVE] = "sf_inactive",
|
||||
|
||||
[STAT_MAX] = NULL};
|
||||
|
||||
static void global_metrics_parse_config(const char *profile, struct global_metrics_config *config)
|
||||
static void global_metrics_parse_config(const char *profile, struct metrics_config *config)
|
||||
{
|
||||
MESA_load_profile_string_def(profile, "STAT", "output_file", config->output_file, sizeof(config->output_file), "log/sce.fs2");
|
||||
MESA_load_profile_string_def(profile, "STAT", "statsd_server", config->statsd_server, sizeof(config->statsd_server), "127.0.0.1");
|
||||
@@ -231,73 +267,90 @@ void global_metrics_destory(struct global_metrics *metrics)
|
||||
|
||||
void global_metrics_dump(struct global_metrics *metrics)
|
||||
{
|
||||
// dev endpoint
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_ENDPOINT_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->dev_endpoint_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_ENDPOINT_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->dev_endpoint_rx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_ENDPOINT_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->dev_endpoint_tx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_ENDPOINT_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->dev_endpoint_tx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
// device_metrics
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_NF_RX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.nf_rx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_NF_RX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.nf_rx.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_ENDPOINT_ERR_DROP_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->dev_endpoint_err_drop.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_ENDPOINT_ERR_DROP_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->dev_endpoint_err_drop.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_NF_TX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.nf_tx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_NF_TX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.nf_tx.n_bytes)));
|
||||
|
||||
// dev nf interface
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->raw_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->raw_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_ENDPOINT_RX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.endpoint_rx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_ENDPOINT_RX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.endpoint_rx.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->raw_pkt_tx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->raw_pkt_tx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_ENDPOINT_TX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.endpoint_tx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_ENDPOINT_TX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.endpoint_tx.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_ERR_BYPASS_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->raw_pkt_err_bypass.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_ERR_BYPASS_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->raw_pkt_err_bypass.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_ENDPOINT_DROP_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.endpoint_drop.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DEVICE_ENDPOINT_DROP_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->device.endpoint_drop.n_bytes)));
|
||||
|
||||
// hit block policy
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_HIT_BLOCK_POLICY_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->hit_block_policy.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_HIT_BLOCK_POLICY_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->hit_block_policy.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
// raw_pkt_metrics
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MIRR_BYPASS_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.mirr_bypass.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MIRR_BYPASS_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.mirr_bypass.n_bytes)));
|
||||
|
||||
// hit bypass policy
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_HIT_BYPASS_POLICY_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->hit_bypass_policy.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_HIT_BYPASS_POLICY_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->hit_bypass_policy.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MIRR_BLOCK_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.mirr_block.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MIRR_BLOCK_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.mirr_block.n_bytes)));
|
||||
|
||||
// steering
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_STEERING_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->steering_tx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_STEERING_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->steering_tx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MIRR_RX_DROP_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.mirr_rx_drop.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MIRR_RX_DROP_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.mirr_rx_drop.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_STEERING_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->steering_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_STEERING_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->steering_rx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MIRR_TX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.mirr_tx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MIRR_TX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.mirr_tx.n_bytes)));
|
||||
|
||||
// mirroring
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_MIRRORING_TX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->mirroring_tx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_MIRRORING_TX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->mirroring_tx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_STEE_BYPASS_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.stee_bypass.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_STEE_BYPASS_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.stee_bypass.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_MIRRORING_RX_DROP_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->mirroring_rx_drop.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_MIRRORING_RX_DROP_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->mirroring_rx_drop.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_STEE_BLOCK_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.stee_block.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_STEE_BLOCK_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.stee_block.n_bytes)));
|
||||
|
||||
// keepalive packet
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DOWNLINK_KEEPALIVE_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->downlink_keepalive_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DOWNLINK_KEEPALIVE_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->downlink_keepalive_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_UPLINK_KEEPALIVE_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->uplink_keepalive_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_UPLINK_KEEPALIVE_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->uplink_keepalive_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_STEE_RX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.stee_rx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_STEE_RX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.stee_rx.n_bytes)));
|
||||
|
||||
// control packet
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CONTROL_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->ctrl_pkt_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CONTROL_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->ctrl_pkt_rx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_STEE_TX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.stee_tx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_STEE_TX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.stee_tx.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_OPENING], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->ctrl_pkt_opening_num), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_ACTIVE], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->ctrl_pkt_active_num), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_CLOSING], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->ctrl_pkt_closing_num), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_RESETALL], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->ctrl_pkt_resetall_num), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_ERROR], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->ctrl_pkt_error_num), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MISS_SESS_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.miss_sess.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_MISS_SESS_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.miss_sess.n_bytes)));
|
||||
|
||||
// current session number
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CURRENT_SESSION_NUMS], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->session_nums), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_ERROR_BYPASS_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.error_bypass.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_ERROR_BYPASS_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.error_bypass.n_bytes)));
|
||||
|
||||
// health check
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_SF_ACTIVE_TIMES], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->sf_active_times), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_SF_INACTIVE_TIMES], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->sf_inactive_times), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_ERROR_BLOCK_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.error_block.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_RAW_PKT_ERROR_BLOCK_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->raw_pkt.error_block.n_bytes)));
|
||||
|
||||
// send log
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_SEND_LOG], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->send_log), 0, __ATOMIC_RELAXED));
|
||||
// ctrl_pkt_metrics
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_RX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->ctrl_pkt.rx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_RX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->ctrl_pkt.rx.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_TX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->ctrl_pkt.tx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_TX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->ctrl_pkt.tx.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_OPENING], 0, FS_OP_SET, ATOMIC_READ(&(metrics->ctrl_pkt.opening)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_ACTIVE], 0, FS_OP_SET, ATOMIC_READ(&(metrics->ctrl_pkt.active)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_CLOSING], 0, FS_OP_SET, ATOMIC_READ(&(metrics->ctrl_pkt.closing)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_RESETALL], 0, FS_OP_SET, ATOMIC_READ(&(metrics->ctrl_pkt.resetall)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CTRL_PKT_ERROR], 0, FS_OP_SET, ATOMIC_READ(&(metrics->ctrl_pkt.error)));
|
||||
|
||||
// keepalived_pkt_metrics
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEE_PKT_DOWN_RX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->kee_pkt.downlink_rx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEE_PKT_DOWN_RX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->kee_pkt.downlink_rx.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEE_PKT_DOWN_TX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->kee_pkt.downlink_tx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEE_PKT_DOWN_TX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->kee_pkt.downlink_tx.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEE_PKT_UP_RX_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->kee_pkt.uplink_rx.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEE_PKT_UP_RX_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->kee_pkt.uplink_rx.n_bytes)));
|
||||
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEE_PKT_UP_TX_DROP_PKT], 0, FS_OP_SET, ATOMIC_READ(&(metrics->kee_pkt.uplink_tx_drop.n_pkts)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEE_PKT_UP_TX_DROP_B], 0, FS_OP_SET, ATOMIC_READ(&(metrics->kee_pkt.uplink_tx_drop.n_bytes)));
|
||||
|
||||
// sf_status_metrics
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_SF_STATUS_ACTIVE], 0, FS_OP_SET, ATOMIC_READ(&(metrics->sf_status.active)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_SF_STATUS_INACTIVE], 0, FS_OP_SET, ATOMIC_READ(&(metrics->sf_status.inactive)));
|
||||
|
||||
// sf_session_metrics
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_SF_SESSION_NUM], 0, FS_OP_SET, ATOMIC_READ(&(metrics->sf_session.num)));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_SF_SESSION_LOG], 0, FS_OP_SET, ATOMIC_READ(&(metrics->sf_session.log)));
|
||||
|
||||
FS_passive_output(metrics->fs_handle);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user