diff options
| author | 杨威 <[email protected]> | 2023-05-04 17:29:17 +0800 |
|---|---|---|
| committer | 杨威 <[email protected]> | 2023-05-04 17:29:17 +0800 |
| commit | 6e7c576d95f60d4e90e6c5616f818d4a9ce07dbd (patch) | |
| tree | 998b76260f493749911e2d3008f684f47ab583e9 | |
| parent | f0e89b13b03391973e632f854df7706aafc8246c (diff) | |
✨ feat(stream_control): 支持获取单向流计数,区分TCP和UDPv4.3.0
| -rw-r--r-- | include/public/stream_inc/stream_control.h | 6 | ||||
| -rw-r--r-- | src/inner_plug/sapp_assistant.cpp | 72 |
2 files changed, 78 insertions, 0 deletions
diff --git a/include/public/stream_inc/stream_control.h b/include/public/stream_inc/stream_control.h index 9e43c45..10efa07 100644 --- a/include/public/stream_inc/stream_control.h +++ b/include/public/stream_inc/stream_control.h @@ -112,6 +112,12 @@ enum sapp_platform_opt{ SPO_CONFIG_ROOT_DIR, /* config file root directory, opt_val type must be char[], opt_val_len is value-result argument */
SPO_DATA_ROOT_DIR, /* data or state file root directory, opt_val type must be char[], opt_val_len is value-result argument */
SPO_DEPLOYMENT_MODE, /* Similar to SPO_DEPLOYMENT_MODE_STR, opt_val type is sapp_deploment_mode_t */
+ SPO_TCP_STREAM_C2S, /* total number of TCP c2s flows processed since start of run, opt_val type must be unsigned long long */
+ SPO_TCP_STREAM_S2C, /* total number of TCP s2c flows processed since start of run, opt_val type must be unsigned long long */
+ SPO_TCP_STREAM_DOUBLE, /* total number of TCP bidirectional flows processed since start of run, opt_val type must be unsigned long long */
+ SPO_UDP_STREAM_C2S, /* total number of TCP c2s flows processed since start of run, opt_val type must be unsigned long long */
+ SPO_UDP_STREAM_S2C, /* total number of TCP s2c flows processed since start of run, opt_val type must be unsigned long long */
+ SPO_UDP_STREAM_DOUBLE, /* total number of TCP bidirectional flows processed since start of run, opt_val type must be unsigned long long */
};
diff --git a/src/inner_plug/sapp_assistant.cpp b/src/inner_plug/sapp_assistant.cpp index 570edbe..71b9c0f 100644 --- a/src/inner_plug/sapp_assistant.cpp +++ b/src/inner_plug/sapp_assistant.cpp @@ -712,6 +712,78 @@ int sapp_get_platform_opt(enum sapp_platform_opt opt, void *opt_val, int *opt_va } break; + case SPO_TCP_STREAM_C2S: + { + if(*opt_val_len != sizeof(long long)){ + ret = -1; + sapp_runtime_log(RLOG_LV_INFO, "sapp_get_platform_opt() SPO_TCP_STREAM_C2S error:opt_val_len:%d is invalid!\n", *opt_val_len); + break; + } + unsigned long long *tot_num = (unsigned long long *)opt_val; + *tot_num = __get_platform_opt_traffic('c', SAPP_STAT_TCP_STREAM_TOTAL_C2S); + } + break; + + case SPO_TCP_STREAM_S2C: + { + if(*opt_val_len != sizeof(long long)){ + ret = -1; + sapp_runtime_log(RLOG_LV_INFO, "sapp_get_platform_opt() SPO_TCP_STREAM_S2C error:opt_val_len:%d is invalid!\n", *opt_val_len); + break; + } + unsigned long long *tot_num = (unsigned long long *)opt_val; + *tot_num = __get_platform_opt_traffic('c', SAPP_STAT_TCP_STREAM_TOTAL_S2C); + } + break; + + case SPO_TCP_STREAM_DOUBLE: + { + if(*opt_val_len != sizeof(long long)){ + ret = -1; + sapp_runtime_log(RLOG_LV_INFO, "sapp_get_platform_opt() SPO_TCP_STREAM_DOUBLE error:opt_val_len:%d is invalid!\n", *opt_val_len); + break; + } + unsigned long long *tot_num = (unsigned long long *)opt_val; + *tot_num = __get_platform_opt_traffic('c', SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE); + } + break; + + case SPO_UDP_STREAM_C2S: + { + if(*opt_val_len != sizeof(long long)){ + ret = -1; + sapp_runtime_log(RLOG_LV_INFO, "sapp_get_platform_opt() SPO_UDP_STREAM_C2S error:opt_val_len:%d is invalid!\n", *opt_val_len); + break; + } + unsigned long long *tot_num = (unsigned long long *)opt_val; + *tot_num = __get_platform_opt_traffic('c', SAPP_STAT_UDP_STREAM_TOTAL_C2S); + } + break; + + case SPO_UDP_STREAM_S2C: + { + if(*opt_val_len != sizeof(long long)){ + ret = -1; + sapp_runtime_log(RLOG_LV_INFO, "sapp_get_platform_opt() SPO_UDP_STREAM_S2C error:opt_val_len:%d is invalid!\n", *opt_val_len); + break; + } + unsigned long long *tot_num = (unsigned long long *)opt_val; + *tot_num = __get_platform_opt_traffic('c', SAPP_STAT_UDP_STREAM_TOTAL_S2C); + } + break; + + case SPO_UDP_STREAM_DOUBLE: + { + if(*opt_val_len != sizeof(long long)){ + ret = -1; + sapp_runtime_log(RLOG_LV_INFO, "sapp_get_platform_opt() SPO_UDP_STREAM_DOUBLE error:opt_val_len:%d is invalid!\n", *opt_val_len); + break; + } + unsigned long long *tot_num = (unsigned long long *)opt_val; + *tot_num = __get_platform_opt_traffic('c', SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE); + } + break; + default: sapp_runtime_log(RLOG_LV_FATAL, "sapp_get_platform_opt() error:opt_type:%d not support!\n", (int)opt); |
