summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author杨威 <[email protected]>2023-05-04 17:29:17 +0800
committer杨威 <[email protected]>2023-05-04 17:29:17 +0800
commit6e7c576d95f60d4e90e6c5616f818d4a9ce07dbd (patch)
tree998b76260f493749911e2d3008f684f47ab583e9
parentf0e89b13b03391973e632f854df7706aafc8246c (diff)
✨ feat(stream_control): 支持获取单向流计数,区分TCP和UDPv4.3.0
-rw-r--r--include/public/stream_inc/stream_control.h6
-rw-r--r--src/inner_plug/sapp_assistant.cpp72
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);