diff options
| author | 杨威 <[email protected]> | 2020-10-13 18:24:50 +0800 |
|---|---|---|
| committer | 杨威 <[email protected]> | 2020-10-13 18:24:50 +0800 |
| commit | ace0c22d2e754d2e74d727a88499bff0618e376b (patch) | |
| tree | 632a102e0ae1a1c501f5bda56726414bcf50972b | |
| parent | 32e232d251c30bff7d5b6801d9d74984967b0007 (diff) | |
🐞fix(stream_control.h): 补充确实的带方向流量计数v4.1.10
| -rw-r--r-- | include/public/stream_inc/stream_control.h | 8 | ||||
| -rw-r--r-- | src/inner_plug/sapp_assistant.cpp | 105 |
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)) |
