summaryrefslogtreecommitdiffstats
path: root/veslibrary/ves_cpplibrary/src/lib/encode/XGtpPerFlowMetricsImp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'veslibrary/ves_cpplibrary/src/lib/encode/XGtpPerFlowMetricsImp.cpp')
-rw-r--r--veslibrary/ves_cpplibrary/src/lib/encode/XGtpPerFlowMetricsImp.cpp395
1 files changed, 395 insertions, 0 deletions
diff --git a/veslibrary/ves_cpplibrary/src/lib/encode/XGtpPerFlowMetricsImp.cpp b/veslibrary/ves_cpplibrary/src/lib/encode/XGtpPerFlowMetricsImp.cpp
new file mode 100644
index 0000000..a068f98
--- /dev/null
+++ b/veslibrary/ves_cpplibrary/src/lib/encode/XGtpPerFlowMetricsImp.cpp
@@ -0,0 +1,395 @@
+#include "XGtpPerFlowMetricsImp.h"
+
+XGtpPerFlowMetricsImp::XGtpPerFlowMetricsImp(XNumber avgBitErrorRate,
+ XNumber avgPacketDelayVariation,
+ XNumber avgPacketLatency,
+ XNumber avgReceiveThroughput,
+ XNumber avgTransmitThroughput,
+ XNumber flowActivationEpoch,
+ XNumber flowActivationMicrosec,
+ XNumber flowDeactivationEpoch,
+ XNumber flowDeactivationMicrosec,
+ const XString& flowDeactivationTime,
+ const XString& flowStatus,
+ XNumber maxPacketDelayVariation,
+ XNumber numActivationFailures,
+ XNumber numBitErrors,
+ XNumber numBytesReceived,
+ XNumber numBytesTransmitted,
+ XNumber numDroppedPackets,
+ XNumber numL7BytesReceived,
+ XNumber numL7BytesTransmitted,
+ XNumber numLostPackets,
+ XNumber numOutOfOrderPackets,
+ XNumber numPacketErrors,
+ XNumber numPacketsReceivedExclRetrans,
+ XNumber numPacketsReceivedInclRetrans,
+ XNumber numPacketsTransmittedInclRetrans,
+ XNumber numRetries,
+ XNumber numTimeouts,
+ XNumber numTunneledL7BytesReceived,
+ XNumber roundTripTime,
+ XNumber timeToFirstByte):
+ avgBitErrorRate_(avgBitErrorRate),
+ avgPacketDelayVariation_(avgPacketDelayVariation),
+ avgPacketLatency_(avgPacketLatency),
+ avgReceiveThroughput_(avgReceiveThroughput),
+ avgTransmitThroughput_(avgTransmitThroughput),
+ flowActivationEpoch_(flowActivationEpoch),
+ flowActivationMicrosec_(flowActivationMicrosec),
+ flowDeactivationEpoch_(flowDeactivationEpoch),
+ flowDeactivationMicrosec_(flowDeactivationMicrosec),
+ flowDeactivationTime_(flowDeactivationTime),
+ flowStatus_(flowStatus),
+ maxPacketDelayVariation_(maxPacketDelayVariation),
+ numActivationFailures_(numActivationFailures),
+ numBitErrors_(numBitErrors),
+ numBytesReceived_(numBytesReceived),
+ numBytesTransmitted_(numBytesTransmitted),
+ numDroppedPackets_(numDroppedPackets),
+ numL7BytesReceived_(numL7BytesReceived),
+ numL7BytesTransmitted_(numL7BytesTransmitted),
+ numLostPackets_(numLostPackets),
+ numOutOfOrderPackets_(numOutOfOrderPackets),
+ numPacketErrors_(numPacketErrors),
+ numPacketsReceivedExclRetrans_(numPacketsReceivedExclRetrans),
+ numPacketsReceivedInclRetrans_(numPacketsReceivedInclRetrans),
+ numPacketsTransmittedInclRetrans_(numPacketsTransmittedInclRetrans),
+ numRetries_(numRetries),
+ numTimeouts_(numTimeouts),
+ numTunneledL7BytesReceived_(numTunneledL7BytesReceived),
+ roundTripTime_(roundTripTime),
+ timeToFirstByte_(timeToFirstByte)
+{
+
+}
+
+void XGtpPerFlowMetricsImp::setNumLostPackets(XNumber numLostPackets)
+{
+ comVals_["numLostPackets"] = numLostPackets;
+}
+
+void XGtpPerFlowMetricsImp::setNumPacketsReceivedExclRetrans(XNumber numPacketsReceivedExclRetrans)
+{
+ comVals_["numPacketsReceivedExclRetrans"] = numPacketsReceivedExclRetrans;
+}
+
+void XGtpPerFlowMetricsImp::setFlowActivationTime(const XString& flowActivationTime)
+{
+ comVals_["flowActivationTime"] = flowActivationTime;
+}
+
+void XGtpPerFlowMetricsImp::setFlowDeactivationMicrosec(XNumber flowDeactivationMicrosec)
+{
+ comVals_["flowDeactivationMicrosec"] = flowDeactivationMicrosec;
+}
+
+void XGtpPerFlowMetricsImp::setFlowDeactivationTime(const XString& flowDeactivationTime)
+{
+ comVals_["flowDeactivationTime"] = flowDeactivationTime;
+}
+
+void XGtpPerFlowMetricsImp::setAvgTransmitThroughput(XNumber avgTransmitThroughput)
+{
+ comVals_["avgTransmitThroughput"] = avgTransmitThroughput;
+}
+
+void XGtpPerFlowMetricsImp::setLargePacketRtt(XNumber largePacketRtt)
+{
+ comVals_["largePacketRtt"] = largePacketRtt;
+}
+
+void XGtpPerFlowMetricsImp::setNumHttpErrors(XNumber numHttpErrors)
+{
+ comVals_["numHttpErrors"] = numHttpErrors;
+}
+
+void XGtpPerFlowMetricsImp::setNumTimeouts(XNumber numTimeouts)
+{
+ comVals_["numTimeouts"] = numTimeouts;
+}
+
+void XGtpPerFlowMetricsImp::setFlowActivationEpoch(XNumber flowActivationEpoch)
+{
+ comVals_["flowActivationEpoch"] = flowActivationEpoch;
+}
+
+void XGtpPerFlowMetricsImp::setNumPacketErrors(XNumber numPacketErrors)
+{
+ comVals_["numPacketErrors"] = numPacketErrors;
+}
+
+void XGtpPerFlowMetricsImp::setAvgPacketDelayVariation(XNumber avgPacketDelayVariation)
+{
+ comVals_["avgPacketDelayVariation"] = avgPacketDelayVariation;
+}
+
+void XGtpPerFlowMetricsImp::setAvgBitErrorRate(XNumber avgBitErrorRate)
+{
+ comVals_["avgBitErrorRate"] = avgBitErrorRate;
+}
+
+void XGtpPerFlowMetricsImp::setFlowActivationMicrosec(XNumber flowActivationMicrosec)
+{
+ comVals_["flowActivationMicrosec"] = flowActivationMicrosec;
+}
+
+void XGtpPerFlowMetricsImp::setAvgPacketLatency(XNumber avgPacketLatency)
+{
+ comVals_["avgPacketLatency"] = avgPacketLatency;
+}
+
+void XGtpPerFlowMetricsImp::setNumBytesTransmitted(XNumber numBytesTransmitted)
+{
+ comVals_["numBytesTransmitted"] = numBytesTransmitted;
+}
+
+void XGtpPerFlowMetricsImp::setNumBitErrors(XNumber numBitErrors)
+{
+ comVals_["numBitErrors"] = numBitErrors;
+}
+
+void XGtpPerFlowMetricsImp::setMaxReceiveBitRate(XNumber maxReceiveBitRate)
+{
+ comVals_["maxReceiveBitRate"] = maxReceiveBitRate;
+}
+
+void XGtpPerFlowMetricsImp::setMaxTransmitBitRate(XNumber maxTransmitBitRate)
+{
+ comVals_["maxTransmitBitRate"] = maxTransmitBitRate;
+}
+
+void XGtpPerFlowMetricsImp::setAvgReceiveThroughput(XNumber avgReceiveThroughput)
+{
+ comVals_["avgReceiveThroughput"] = avgReceiveThroughput;
+}
+
+void XGtpPerFlowMetricsImp::setFlowActivatedBy(const XString& flowActivatedBy)
+{
+ comVals_["flowActivatedBy"] = flowActivatedBy;
+}
+
+void XGtpPerFlowMetricsImp::setNumRetries(XNumber numRetries)
+{
+ comVals_["numRetries"] = numRetries;
+}
+
+void XGtpPerFlowMetricsImp::setDurConnectionFailedStatus(XNumber durConnectionFailedStatus)
+{
+ comVals_["durConnectionFailedStatus"] = durConnectionFailedStatus;
+}
+
+void XGtpPerFlowMetricsImp::setIpTosCountList(const XHashMap& ipTosCountList)
+{
+ ipTosCountList_ = ipTosCountList;
+}
+
+void XGtpPerFlowMetricsImp::setNumL7BytesTransmitted(XNumber numL7BytesTransmitted)
+{
+ comVals_["numL7BytesTransmitted"] = numL7BytesTransmitted;
+}
+
+void XGtpPerFlowMetricsImp::setTimeToFirstByte(XNumber timeToFirstByte)
+{
+ comVals_["timeToFirstByte"] = timeToFirstByte;
+}
+
+void XGtpPerFlowMetricsImp::setNumBytesReceived(XNumber numBytesReceived)
+{
+ comVals_["numBytesReceived"] = numBytesReceived;
+}
+
+void XGtpPerFlowMetricsImp::setFlowDeactivationEpoch(XNumber flowDeactivationEpoch)
+{
+ comVals_["flowDeactivationEpoch"] = flowDeactivationEpoch;
+}
+
+void XGtpPerFlowMetricsImp::setNumGtpEchoFailures(XNumber numGtpEchoFailures)
+{
+ comVals_["numGtpEchoFailures"] = numGtpEchoFailures;
+}
+
+void XGtpPerFlowMetricsImp::setNumPacketsReceivedInclRetrans(XNumber numPacketsReceivedInclRetrans)
+{
+ comVals_["numPacketsReceivedInclRetrans"] = numPacketsReceivedInclRetrans;
+}
+
+void XGtpPerFlowMetricsImp::setMobileQciCosCountList(const XHashMap& mobileQciCosCountList)
+{
+ mobileQciCosCountList_ = mobileQciCosCountList;
+}
+
+void XGtpPerFlowMetricsImp::setNumGtpTunnelErrors(XNumber numGtpTunnelErrors)
+{
+ comVals_["numGtpTunnelErrors"] = numGtpTunnelErrors;
+}
+
+void XGtpPerFlowMetricsImp::setRoundTripTime(XNumber roundTripTime)
+{
+ comVals_["roundTripTime"] = roundTripTime;
+}
+
+void XGtpPerFlowMetricsImp::setNumActivationFailures(XNumber numActivationFailures)
+{
+ comVals_["numActivationFailures"] = numActivationFailures;
+}
+
+void XGtpPerFlowMetricsImp::setMaxPacketDelayVariation(XNumber maxPacketDelayVariation)
+{
+ comVals_["maxPacketDelayVariation"] = maxPacketDelayVariation;
+}
+
+void XGtpPerFlowMetricsImp::setNumTunneledL7BytesReceived(XNumber numTunneledL7BytesReceived)
+{
+ comVals_["numTunneledL7BytesReceived"] = numTunneledL7BytesReceived;
+}
+
+void XGtpPerFlowMetricsImp::setNumL7BytesReceived(XNumber numL7BytesReceived)
+{
+ comVals_["numL7BytesReceived"] = numL7BytesReceived;
+}
+
+void XGtpPerFlowMetricsImp::setIpTosList(const XArrayOfString& ipTosList)
+{
+ ipTosList_ = ipTosList;
+}
+
+void XGtpPerFlowMetricsImp::setMobileQciCosList(const XArrayOfString& mobileQciCosList)
+{
+ mobileQciCosList_ = mobileQciCosList;
+}
+
+void XGtpPerFlowMetricsImp::setGtpConnectionStatus(const XString& gtpConnectionStatus)
+{
+ comVals_["gtpConnectionStatus"] = gtpConnectionStatus;
+}
+
+void XGtpPerFlowMetricsImp::setTcpFlagList(const XArrayOfString& tcpFlagList)
+{
+ tcpFlagList_ = tcpFlagList;
+}
+
+void XGtpPerFlowMetricsImp::setFlowStatus(const XString& flowStatus)
+{
+ comVals_["flowStatus"] = flowStatus;
+}
+
+void XGtpPerFlowMetricsImp::setNumDroppedPackets(XNumber numDroppedPackets)
+{
+ comVals_["numDroppedPackets"] = numDroppedPackets;
+}
+
+void XGtpPerFlowMetricsImp::setGtpTunnelStatus(const XString& gtpTunnelStatus)
+{
+ comVals_["gtpTunnelStatus"] = gtpTunnelStatus;
+}
+
+void XGtpPerFlowMetricsImp::setNumPacketsTransmittedInclRetrans(XNumber numPacketsTransmittedInclRetrans)
+{
+ comVals_["numPacketsTransmittedInclRetrans"] = numPacketsTransmittedInclRetrans;
+}
+
+void XGtpPerFlowMetricsImp::setNumOutOfOrderPackets(XNumber numOutOfOrderPackets)
+{
+ comVals_["numOutOfOrderPackets"] = numOutOfOrderPackets;
+}
+
+void XGtpPerFlowMetricsImp::setLargePacketThreshold(XNumber largePacketThreshold)
+{
+ comVals_["largePacketThreshold"] = largePacketThreshold;
+}
+
+void XGtpPerFlowMetricsImp::setDurTunnelFailedStatus(XNumber durTunnelFailedStatus)
+{
+ comVals_["durTunnelFailedStatus"] = durTunnelFailedStatus;
+}
+
+void XGtpPerFlowMetricsImp::setTcpFlagCountList(const XHashMap& tcpFlagCountList)
+{
+ tcpFlagCountList_ = tcpFlagCountList;
+}
+
+void XGtpPerFlowMetricsImp::setFlowDeactivatedBy(const XString& flowDeactivatedBy)
+{
+ comVals_["flowDeactivatedBy"] = flowDeactivatedBy;
+}
+
+json XGtpPerFlowMetricsImp::toJson()
+{
+ try
+ {
+ json field = {
+ {"numLostPackets", numLostPackets_},
+ {"numPacketsReceivedExclRetrans", numPacketsReceivedExclRetrans_},
+ {"flowDeactivationMicrosec", flowDeactivationMicrosec_},
+ {"flowDeactivationTime", flowDeactivationTime_},
+ {"avgTransmitThroughput", avgTransmitThroughput_},
+ {"numTimeouts", numTimeouts_},
+ {"flowActivationEpoch", flowActivationEpoch_},
+ {"numPacketErrors", numPacketErrors_},
+ {"avgPacketDelayVariation", avgPacketDelayVariation_},
+ {"avgBitErrorRate", avgBitErrorRate_},
+ {"flowActivationMicrosec", flowActivationMicrosec_},
+ {"avgPacketLatency", avgPacketLatency_},
+ {"numBytesTransmitted", numBytesTransmitted_},
+ {"numBitErrors", numBitErrors_},
+ {"avgReceiveThroughput", avgReceiveThroughput_},
+ {"numRetries", numRetries_},
+ {"numL7BytesTransmitted", numL7BytesTransmitted_},
+ {"timeToFirstByte", timeToFirstByte_},
+ {"numBytesReceived", numBytesReceived_},
+ {"flowDeactivationEpoch", flowDeactivationEpoch_},
+ {"numPacketsReceivedInclRetrans", numPacketsReceivedInclRetrans_},
+ {"roundTripTime", roundTripTime_},
+ {"numActivationFailures", numActivationFailures_},
+ {"maxPacketDelayVariation", maxPacketDelayVariation_},
+ {"numTunneledL7BytesReceived", numTunneledL7BytesReceived_},
+ {"numL7BytesReceived", numL7BytesReceived_},
+ {"flowStatus", flowStatus_},
+ {"numDroppedPackets", numDroppedPackets_},
+ {"numPacketsTransmittedInclRetrans", numPacketsTransmittedInclRetrans_},
+ {"numOutOfOrderPackets", numOutOfOrderPackets_}
+ };
+
+ //optional val
+ if (!ipTosCountList_.empty())
+ {
+ field["ipTosCountList"] = ipTosCountList_;
+ }
+
+ if (!mobileQciCosCountList_.empty())
+ {
+ field["mobileQciCosCountList"] = mobileQciCosCountList_;
+ }
+
+ if (!ipTosList_.empty())
+ {
+ field["ipTosList"] = ipTosList_;
+ }
+
+ if (!mobileQciCosList_.empty())
+ {
+ field["mobileQciCosList"] = mobileQciCosList_;
+ }
+
+ if (!tcpFlagList_.empty())
+ {
+ field["tcpFlagList"] = tcpFlagList_;
+ }
+
+ if (!tcpFlagCountList_.empty())
+ {
+ field["tcpFlagCountList"] = tcpFlagCountList_;
+ }
+
+ field = mergeCommonValues(field, comVals_);
+
+ return field;
+ }
+ catch (json::exception& e)
+ {
+ SPDLOG_ERROR("Fail to build XGtpPerFlowMetrics to json object:{}.", e.what());
+ return json();
+ }
+}
+ \ No newline at end of file