summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author杨威 <[email protected]>2020-10-13 18:24:50 +0800
committer杨威 <[email protected]>2020-10-13 18:24:50 +0800
commitace0c22d2e754d2e74d727a88499bff0618e376b (patch)
tree632a102e0ae1a1c501f5bda56726414bcf50972b
parent32e232d251c30bff7d5b6801d9d74984967b0007 (diff)
🐞fix(stream_control.h): 补充确实的带方向流量计数v4.1.10
-rw-r--r--include/public/stream_inc/stream_control.h8
-rw-r--r--src/inner_plug/sapp_assistant.cpp105
2 files changed, 110 insertions, 3 deletions
diff --git a/include/public/stream_inc/stream_control.h b/include/public/stream_inc/stream_control.h
index 836fa2e..88a6a0f 100644
--- a/include/public/stream_inc/stream_control.h
+++ b/include/public/stream_inc/stream_control.h
@@ -83,13 +83,21 @@ enum sapp_platform_opt{
SPO_UDP_STREAM_CONCURRENT, /* realtime Concurrent udp streams, opt_val type must be unsigned long long */
SPO_TOTAL_RCV_INBOUND_IPV4_PKT, /* total recv ipv4 packet number, opt_val type must be unsigned long long */
+ SPO_TOTAL_RCV_INBOUND_IPV4_BYTE, /* total recv ipv4 packet number, opt_val type must be unsigned long long */
+ SPO_TOTAL_RCV_OUTBOUND_IPV4_PKT, /* total recv ipv4 packet bytes, opt_val type must be unsigned long long */
SPO_TOTAL_RCV_OUTBOUND_IPV4_BYTE, /* total recv ipv4 packet bytes, opt_val type must be unsigned long long */
SPO_TOTAL_RCV_INBOUND_IPV6_PKT, /* total recv ipv6 packet number, opt_val type must be unsigned long long */
+ SPO_TOTAL_RCV_INBOUND_IPV6_BYTE, /* total recv ipv6 packet number, opt_val type must be unsigned long long */
+ SPO_TOTAL_RCV_OUTBOUND_IPV6_PKT, /* total recv ipv6 packet bytes, opt_val type must be unsigned long long */
SPO_TOTAL_RCV_OUTBOUND_IPV6_BYTE, /* total recv ipv6 packet bytes, opt_val type must be unsigned long long */
SPO_TOTAL_RCV_INBOUND_TCP_PKT, /* total recv tcp packet number, opt_val type must be unsigned long long */
+ SPO_TOTAL_RCV_INBOUND_TCP_BYTE, /* total recv tcp packet number, opt_val type must be unsigned long long */
+ SPO_TOTAL_RCV_OUTBOUND_TCP_PKT, /* total recv tcp packet bytes, opt_val type must be unsigned long long */
SPO_TOTAL_RCV_OUTBOUND_TCP_BYTE, /* total recv tcp packet bytes, opt_val type must be unsigned long long */
SPO_TOTAL_RCV_INBOUND_UDP_PKT, /* total recv udp packet number, opt_val type must be unsigned long long */
+ SPO_TOTAL_RCV_INBOUND_UDP_BYTE, /* total recv udp packet number, opt_val type must be unsigned long long */
+ SPO_TOTAL_RCV_OUTBOUND_UDP_PKT, /* total recv udp packet bytes, opt_val type must be unsigned long long */
SPO_TOTAL_RCV_OUTBOUND_UDP_BYTE, /* total recv udp packet bytes, opt_val type must be unsigned long long */
SPO_CURTIME_TIMET_MS, /* current time in millisecond, opt_val type must be long long */
SPO_CURRENT_STATE, /* running stage of sapp, opt_val type is enum sapp_state_t */
diff --git a/src/inner_plug/sapp_assistant.cpp b/src/inner_plug/sapp_assistant.cpp
index 3144ffb..f54e07d 100644
--- a/src/inner_plug/sapp_assistant.cpp
+++ b/src/inner_plug/sapp_assistant.cpp
@@ -293,7 +293,31 @@ int sapp_get_platform_opt(enum sapp_platform_opt opt, void *opt_val, int *opt_va
*tot_pkt = __get_platform_opt_traffic('c', SAPP_STAT_IPV4_INBOUND);
}
break;
-
+ case SPO_TOTAL_RCV_INBOUND_IPV4_BYTE:
+ {
+ if (*opt_val_len != sizeof(long long))
+ {
+ ret = -1;
+ sapp_runtime_log(RLOG_LV_DEBUG, "sapp_get_platform_opt() error:opt_val_len:%d is invalid!\n", *opt_val_len);
+ break;
+ }
+ unsigned long long *tot_pkt = (unsigned long long *)opt_val;
+ *tot_pkt = __get_platform_opt_traffic('l', SAPP_STAT_IPV4_INBOUND);
+ }
+ break;
+ case SPO_TOTAL_RCV_OUTBOUND_IPV4_PKT:
+ {
+ if (*opt_val_len != sizeof(long long))
+ {
+ ret = -1;
+ sapp_runtime_log(RLOG_LV_DEBUG, "sapp_get_platform_opt() error:opt_val_len:%d is invalid!\n", *opt_val_len);
+ break;
+ }
+ unsigned long long *tot_byte = (unsigned long long *)opt_val;
+ *tot_byte = *tot_byte = __get_platform_opt_traffic('c', SAPP_STAT_IPV4_OUTBOUND);
+ ;
+ }
+ break;
case SPO_TOTAL_RCV_OUTBOUND_IPV4_BYTE:
{
if (*opt_val_len != sizeof(long long))
@@ -320,7 +344,31 @@ int sapp_get_platform_opt(enum sapp_platform_opt opt, void *opt_val, int *opt_va
*tot_pkt = __get_platform_opt_traffic('c', SAPP_STAT_IPV6_INBOUND);
}
break;
-
+ case SPO_TOTAL_RCV_INBOUND_IPV6_BYTE:
+ {
+ if (*opt_val_len != sizeof(long long))
+ {
+ ret = -1;
+ sapp_runtime_log(RLOG_LV_DEBUG, "sapp_get_platform_opt() error:opt_val_len:%d is invalid!\n", *opt_val_len);
+ break;
+ }
+ unsigned long long *tot_pkt = (unsigned long long *)opt_val;
+ *tot_pkt = __get_platform_opt_traffic('l', SAPP_STAT_IPV6_INBOUND);
+ }
+ break;
+ case SPO_TOTAL_RCV_OUTBOUND_IPV6_PKT:
+ {
+ if (*opt_val_len != sizeof(long long))
+ {
+ ret = -1;
+ sapp_runtime_log(RLOG_LV_DEBUG, "sapp_get_platform_opt() error:opt_val_len:%d is invalid!\n", *opt_val_len);
+ break;
+ }
+ unsigned long long *tot_byte = (unsigned long long *)opt_val;
+ *tot_byte = *tot_byte = __get_platform_opt_traffic('c', SAPP_STAT_IPV6_OUTBOUND);
+ ;
+ }
+ break;
case SPO_TOTAL_RCV_OUTBOUND_IPV6_BYTE:
{
if (*opt_val_len != sizeof(long long))
@@ -347,7 +395,31 @@ int sapp_get_platform_opt(enum sapp_platform_opt opt, void *opt_val, int *opt_va
*tot_pkt = __get_platform_opt_traffic('c', SAPP_STAT_TCP_INBOUND);
}
break;
-
+ case SPO_TOTAL_RCV_INBOUND_TCP_BYTE:
+ {
+ if (*opt_val_len != sizeof(long long))
+ {
+ ret = -1;
+ sapp_runtime_log(RLOG_LV_DEBUG, "sapp_get_platform_opt() error:opt_val_len:%d is invalid!\n", *opt_val_len);
+ break;
+ }
+ unsigned long long *tot_pkt = (unsigned long long *)opt_val;
+ *tot_pkt = __get_platform_opt_traffic('l', SAPP_STAT_TCP_INBOUND);
+ }
+ break;
+ case SPO_TOTAL_RCV_OUTBOUND_TCP_PKT:
+ {
+ if (*opt_val_len != sizeof(long long))
+ {
+ ret = -1;
+ sapp_runtime_log(RLOG_LV_DEBUG, "sapp_get_platform_opt() error:opt_val_len:%d is invalid!\n", *opt_val_len);
+ break;
+ }
+ unsigned long long *tot_byte = (unsigned long long *)opt_val;
+ *tot_byte = *tot_byte = __get_platform_opt_traffic('c', SAPP_STAT_TCP_OUTBOUND);
+ ;
+ }
+ break;
case SPO_TOTAL_RCV_OUTBOUND_TCP_BYTE:
{
if (*opt_val_len != sizeof(long long))
@@ -375,6 +447,33 @@ int sapp_get_platform_opt(enum sapp_platform_opt opt, void *opt_val, int *opt_va
}
break;
+ case SPO_TOTAL_RCV_INBOUND_UDP_BYTE:
+ {
+ if (*opt_val_len != sizeof(long long))
+ {
+ ret = -1;
+ sapp_runtime_log(RLOG_LV_DEBUG, "sapp_get_platform_opt() error:opt_val_len:%d is invalid!\n", *opt_val_len);
+ break;
+ }
+ unsigned long long *tot_pkt = (unsigned long long *)opt_val;
+ *tot_pkt = __get_platform_opt_traffic('l', SAPP_STAT_UDP_INBOUND);
+ }
+ break;
+
+ case SPO_TOTAL_RCV_OUTBOUND_UDP_PKT:
+ {
+ if (*opt_val_len != sizeof(long long))
+ {
+ ret = -1;
+ sapp_runtime_log(RLOG_LV_DEBUG, "sapp_get_platform_opt() error:opt_val_len:%d is invalid!\n", *opt_val_len);
+ break;
+ }
+ unsigned long long *tot_byte = (unsigned long long *)opt_val;
+ *tot_byte = *tot_byte = __get_platform_opt_traffic('c', SAPP_STAT_UDP_OUTBOUND);
+ ;
+ }
+ break;
+
case SPO_TOTAL_RCV_OUTBOUND_UDP_BYTE:
{
if (*opt_val_len != sizeof(long long))